From e047e54df81207255c05766a6b6323a2e6961a07 Mon Sep 17 00:00:00 2001 From: Peter Schmalfeldt <peter@manifestinteractive.com> Date: Mon, 18 Sep 2023 06:59:40 -0400 Subject: [PATCH] Lot's of goodies - Added Quota Docs for #17 - Added Schema Docs for #16 - Added Progressive Web App support - Added note for how to use search on home page for #9 - Added Sitemap Generator to Build Script - Added some cleanup to generator scripts to remove old folders before recreating ( cause of #10 ) - Fixed #10 where incorrect URLs were showing up in search results - Fixed #11 Mobile Menu Filter page tap issue - Fixed #12 Mobile Menu Overscroll - Fixed #13 Page Scroll resetting - Fixed #14 where Mobile Active Link was not scrolled into viewport - Fixed #18 where scrolling issue was causing iPad devices to scroll search off screen - Started support for #15 that wants Offline Doc support ( getting PWA setup first was key ) --- .env.example | 1 + .gitignore | 10 + .npmrc | 1 + CHANGELOG.md | 16 + bin/cmd/build-nav.mjs | 4 +- bin/cmd/convert.mjs | 8 +- bin/cmd/prep.mjs | 42 +- bin/cmd/update-site.mjs | 19 + bin/utils.mjs | 1 - next-sitemap.config.mjs | 9 + next.config.mjs | 13 +- package-lock.json | 3958 ++++++++++++++++++++++++-- package.json | 11 +- public/android-chrome-192x192.png | Bin 5793 -> 0 bytes public/android-chrome-512x512.png | Bin 12473 -> 0 bytes public/apple-touch-icon.png | Bin 5255 -> 0 bytes public/assets/icons/icon-128x128.png | Bin 0 -> 1164 bytes public/assets/icons/icon-144x144.png | Bin 0 -> 1687 bytes public/assets/icons/icon-152x152.png | Bin 0 -> 1836 bytes public/assets/icons/icon-15x150.png | Bin 0 -> 2387 bytes public/assets/icons/icon-167x167.png | Bin 0 -> 2601 bytes public/assets/icons/icon-16x16.png | Bin 0 -> 282 bytes public/assets/icons/icon-180x180.png | Bin 0 -> 2784 bytes public/assets/icons/icon-192x192.png | Bin 0 -> 2416 bytes public/assets/icons/icon-310x310.png | Bin 0 -> 4814 bytes public/assets/icons/icon-310x50.png | Bin 0 -> 1956 bytes public/assets/icons/icon-32x32.png | Bin 0 -> 415 bytes public/assets/icons/icon-384x384.png | Bin 0 -> 3140 bytes public/assets/icons/icon-48x48.png | Bin 0 -> 607 bytes public/assets/icons/icon-512x512.png | Bin 0 -> 5618 bytes public/assets/icons/icon-70x70.png | Bin 0 -> 5618 bytes public/assets/icons/icon-72x72.png | Bin 0 -> 854 bytes public/assets/icons/icon-96x96.png | Bin 0 -> 1195 bytes public/assets/icons/mask-icon.png | Bin 0 -> 5771 bytes public/assets/website-card.png | Bin 0 -> 19404 bytes public/humans.txt | 5 + public/manifest.webmanifest | 63 + sfcc-docs.code-workspace | 8 + src/components/Fence.jsx | 4 + src/components/Layout.jsx | 14 +- src/components/MobileNavigation.jsx | 35 +- src/components/Navigation.jsx | 51 +- src/pages/_app.jsx | 81 +- src/pages/_document.jsx | 2 +- src/pages/_offline.jsx | 20 + src/pages/index.md | 11 +- 46 files changed, 4151 insertions(+), 236 deletions(-) create mode 100644 next-sitemap.config.mjs delete mode 100644 public/android-chrome-192x192.png delete mode 100644 public/android-chrome-512x512.png delete mode 100644 public/apple-touch-icon.png create mode 100644 public/assets/icons/icon-128x128.png create mode 100644 public/assets/icons/icon-144x144.png create mode 100644 public/assets/icons/icon-152x152.png create mode 100644 public/assets/icons/icon-15x150.png create mode 100644 public/assets/icons/icon-167x167.png create mode 100644 public/assets/icons/icon-16x16.png create mode 100644 public/assets/icons/icon-180x180.png create mode 100644 public/assets/icons/icon-192x192.png create mode 100644 public/assets/icons/icon-310x310.png create mode 100644 public/assets/icons/icon-310x50.png create mode 100644 public/assets/icons/icon-32x32.png create mode 100644 public/assets/icons/icon-384x384.png create mode 100644 public/assets/icons/icon-48x48.png create mode 100644 public/assets/icons/icon-512x512.png create mode 100644 public/assets/icons/icon-70x70.png create mode 100644 public/assets/icons/icon-72x72.png create mode 100644 public/assets/icons/icon-96x96.png create mode 100644 public/assets/icons/mask-icon.png create mode 100644 public/assets/website-card.png create mode 100644 public/humans.txt create mode 100644 public/manifest.webmanifest create mode 100644 src/pages/_offline.jsx diff --git a/.env.example b/.env.example index 2c1cbfc..ca7a897 100644 --- a/.env.example +++ b/.env.example @@ -1 +1,2 @@ SELECTED_VERSION="23.8" +SITE_URL="https://sfccdocs.com" diff --git a/.gitignore b/.gitignore index cee26b8..51c8e5f 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,13 @@ src/data public/json *.zip .env + +#PWA +public/sw.js +public/sw.js.map +public/workbox-*.js +public/workbox-*.js.map +public/fallback-*.js +public/sitemap.xml +public/sitemap-*.xml +public/robots.txt diff --git a/.npmrc b/.npmrc index 83b0a43..ac17533 100644 --- a/.npmrc +++ b/.npmrc @@ -3,3 +3,4 @@ audit=false fund=false loglevel=error legacy-peer-deps=true +enable-pre-post-scripts=true diff --git a/CHANGELOG.md b/CHANGELOG.md index cca2974..a6ea199 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,22 @@ > Here's our record of all notable changes +## v0.4.0 + +- Added Quota Docs for #17 +- Added Schema Docs for #16 +- Added Progressive Web App support +- Added note for how to use search on home page for #9 +- Added Sitemap Generator to Build Script +- Added some cleanup to generator scripts to remove old folders before recreating ( cause of #10 ) +- Fixed #10 where incorrect URLs were showing up in search results +- Fixed #11 Mobile Menu Filter page tap issue +- Fixed #12 Mobile Menu Overscroll +- Fixed #13 Page Scroll resetting +- Fixed #14 where Mobile Active Link was not scrolled into viewport +- Fixed #18 where scrolling issue was causing iPad devices to scroll search off screen +- Started support for #15 that wants Offline Doc support ( getting PWA setup first was key ) + ## v0.3.0 - Major updates to Search Engine to make it easier to use diff --git a/bin/cmd/build-nav.mjs b/bin/cmd/build-nav.mjs index b1f1d16..2233f88 100644 --- a/bin/cmd/build-nav.mjs +++ b/bin/cmd/build-nav.mjs @@ -78,10 +78,8 @@ export default (cli) => { } }) - const rootSort = ['ISML', 'Script', 'Job Step', 'Pipelet'] - // Sort all the things - nav.sort((a, b) => (rootSort.indexOf(a.title) > rootSort.indexOf(b.title) ? 1 : -1)) + nav.sort((a, b) => (a.title > b.title ? 1 : -1)) nav.forEach((page) => page.links.sort((a, b) => (a.title > b.title ? 1 : -1))) nav.forEach((page) => page.links.forEach((sub) => { diff --git a/bin/cmd/convert.mjs b/bin/cmd/convert.mjs index 72d5fdb..1c49825 100644 --- a/bin/cmd/convert.mjs +++ b/bin/cmd/convert.mjs @@ -8,6 +8,7 @@ import TurndownService from 'turndown' import { Glob } from 'glob' import { minify } from 'html-minifier' +import { spawnSync } from 'child_process' import { getVersion } from '../utils.mjs' import { DATA_FOLDER, MARKDOWN_FOLDER, PREP_FOLDER } from '../config.mjs' @@ -69,7 +70,12 @@ export default (cli) => { process.exit() } - // Make markdown folder if needed + // Remove old prep folder for version if it exists + if (fs.existsSync(markdownFolder)) { + spawnSync('rm', ['-fr', markdownFolder]) + } + + // Recreate Markdown folder if (!fs.existsSync(markdownFolder)) { fs.mkdirSync(markdownFolder, { recursive: true }) } diff --git a/bin/cmd/prep.mjs b/bin/cmd/prep.mjs index 0c36ffe..f75a23e 100644 --- a/bin/cmd/prep.mjs +++ b/bin/cmd/prep.mjs @@ -89,6 +89,18 @@ export default async (cli) => { groupTitle = groupTitle.replace(/ \(internal\)/gi, '') } + if (!groupTitle && file.toLowerCase().includes(`${SEP}specification${SEP}isml${SEP}`)) { + groupTitle = 'ISML' + } + + if (!groupTitle && file.toLowerCase().includes(`${SEP}specification${SEP}quota${SEP}`)) { + groupTitle = 'Quota' + } + + if (!groupTitle && file.toLowerCase().includes(`${SEP}specification${SEP}schema${SEP}`)) { + groupTitle = 'Schema' + } + // Set a new file name for prepped HTML file const newFile = prepURI(file, version, groupTitle) @@ -157,7 +169,7 @@ export default async (cli) => { dom.querySelector('body').removeAttribute('onload') // Remove elements that are not helpful for search indexer of markdown conversion - dom.querySelectorAll('div:empty, a:empty, link, script, meta, div.banner, img, div.packageName').forEach((x) => { + dom.querySelectorAll('div:empty, a:empty, link, script, meta, style, div.banner, img, div.packageName').forEach((x) => { x.remove() }) @@ -167,6 +179,14 @@ export default async (cli) => { $hr.remove() } + // Generate H1 Tags + const $code = dom.querySelectorAll('p.className') + if ($code) { + $code.forEach((x) => { + x.tagName = 'code' + }) + } + // Generate H1 Tags const $h1 = dom.querySelectorAll('div.className, span.newTitle') if ($h1) { @@ -208,9 +228,9 @@ export default async (cli) => { } // Covert elements to code - const $code = dom.querySelectorAll('div.parameterDetail') - if ($code) { - $code.forEach((x) => { + const $blockquote = dom.querySelectorAll('div.parameterDetail') + if ($blockquote) { + $blockquote.forEach((x) => { x.tagName = 'blockquote' }) } @@ -346,6 +366,10 @@ export default async (cli) => { let title = dom.querySelector('title')?.innerText.replace(/\n/g, ' ').trim() || null let description = dom.querySelector('div.topLevelDescription')?.innerText.replace(/\n/g, ' ').trim() || null + if (!title) { + title = dom.querySelector('h1')?.innerText.replace(/\n/g, ' ').trim() || null + } + if (!groupTitle) { const splitGroup = newFilePath.match(/script\/([^\/]+)/) groupTitle = splitGroup ? splitGroup[1] : null @@ -413,15 +437,15 @@ export default async (cli) => { } else if (newFilePath.includes(`${SEP}pipelet${SEP}`)) { title = title !== groupTitle ? title.replace('Pipelet ', `${groupTitle} `) : title.replace('Pipelet ', '') parent = 'Pipelet' - } else if (newFilePath.includes(`${SEP}quota${SEP}`)) { - parent = 'Quota' } else if (newFilePath.includes(`${SEP}script${SEP}`)) { title = title.replace('Class ', groupTitle === 'Top Level' ? `Class ${groupTitle} ` : `Class ${groupTitle}.`) parent = 'Script' - } else if (newFilePath.includes(`${SEP}isml${SEP}`)) { + } else if (newFilePath.includes(`${SEP}specification${SEP}`)) { + parent = 'Specification' + } + + if (newFilePath.includes(`${SEP}isml${SEP}`)) { title = title.replace('ISML ', '').replace(' Element', '') - groupTitle = 'Element' - parent = 'ISML' } // Last check to see if we have a description diff --git a/bin/cmd/update-site.mjs b/bin/cmd/update-site.mjs index 7d1f176..f8eb53c 100644 --- a/bin/cmd/update-site.mjs +++ b/bin/cmd/update-site.mjs @@ -17,6 +17,25 @@ export default (cli) => { debug(chalk.green.bold(`UPDATING SITE: v${version}`)) + // Dynamic folders we should trash + const folderDeprecated = path.resolve(SRC_PAGES_FOLDER, 'deprecated') + const folderJobStep = path.resolve(SRC_PAGES_FOLDER, 'jobstep') + const folderPipelet = path.resolve(SRC_PAGES_FOLDER, 'pipelet') + const folderSpecification = path.resolve(SRC_PAGES_FOLDER, 'specification') + + // Remove old version folder if it exists + if (fs.existsSync(folderDeprecated)) { + spawnSync('rm', ['-fr', folderDeprecated]) + } + + if (fs.existsSync(folderJobStep)) { + spawnSync('rm', ['-fr', folderJobStep]) + } + + if (fs.existsSync(folderSpecification)) { + spawnSync('rm', ['-fr', folderSpecification]) + } + // Copy new version folder spawnSync('cp', ['-R', path.join(MARKDOWN_FOLDER, version, '/*'), SRC_PAGES_FOLDER], { shell: true }) diff --git a/bin/utils.mjs b/bin/utils.mjs index 59007ad..0031ad4 100644 --- a/bin/utils.mjs +++ b/bin/utils.mjs @@ -87,7 +87,6 @@ export function isHelpfulFile(string) { !uri.endsWith(`${SEP}grouplist.html`) && !uri.endsWith(`${SEP}jobstepapi${SEP}html${SEP}index.html`) && !uri.endsWith(`${SEP}jobsteplist.html`) && - !uri.endsWith(`${SEP}overview.html`) && !uri.endsWith(`${SEP}packagelist.html`) && !uri.endsWith(`${SEP}pipeletapi${SEP}html${SEP}index.html`) && !uri.endsWith(`${SEP}pipeletlist.html`) && diff --git a/next-sitemap.config.mjs b/next-sitemap.config.mjs new file mode 100644 index 0000000..31d7c67 --- /dev/null +++ b/next-sitemap.config.mjs @@ -0,0 +1,9 @@ +import 'dotenv/config' + +/** @type {import('next-sitemap').IConfig} */ +export default { + siteUrl: process.env.SITE_URL || 'https://sfccdocs.com', + generateRobotsTxt: true, + sitemapSize: 1000, + changefreq: 'weekly', +} diff --git a/next.config.mjs b/next.config.mjs index cd2b3a7..c3f9bb6 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,7 +1,14 @@ import withMarkdoc from '@markdoc/next.js' - +import nextPWA from 'next-pwa' +import runtimeCaching from 'next-pwa/cache.js' import withSearch from './src/markdoc/search.mjs' +const withPWA = nextPWA({ + dest: 'public', + runtimeCaching, + disable: process.env.NODE_ENV === 'development', +}) + /** @type {import('next').NextConfig} */ const nextConfig = { trailingSlash: false, @@ -10,9 +17,9 @@ const nextConfig = { output: 'export', distDir: 'dist', images: { - unoptimized: true + unoptimized: true, }, pageExtensions: ['js', 'jsx', 'md'], } -export default withSearch(withMarkdoc({ schemaPath: './src/markdoc' })(nextConfig)) +export default withSearch(withMarkdoc({ schemaPath: './src/markdoc' })(withPWA(nextConfig))) diff --git a/package-lock.json b/package-lock.json index 53cd6b8..30151f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@sfccdevops/sfcc-docs", - "version": "0.3.0", + "version": "0.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@sfccdevops/sfcc-docs", - "version": "0.2.0", + "version": "0.4.0", "license": "MIT", "dependencies": { "@algolia/autocomplete-core": "^1.9.2", @@ -23,6 +23,7 @@ "flexsearch": "^0.7.31", "focus-visible": "^5.2.0", "next": "13.4.2", + "next-pwa": "^5.6.0", "postcss-focus-visible": "^6.0.4", "postcss-import": "^14.1.0", "prism-react-renderer": "^1.3.5", @@ -32,131 +33,1824 @@ "simple-functional-loader": "^1.2.1", "tailwindcss": "^3.3.0" }, - "bin": { - "sfcc-docs": "bin/cli.mjs" + "bin": { + "sfcc-docs": "bin/cli.mjs" + }, + "devDependencies": { + "chalk": "^5.3.0", + "cheerio": "^1.0.0-rc.12", + "debug": "^4.3.4", + "dir-compare": "^4.2.0", + "dotenv": "^16.3.1", + "eslint": "8.26.0", + "eslint-config-next": "13.0.2", + "glob": "^10.3.3", + "html-minifier": "^4.0.0", + "html-to-text": "^9.0.5", + "markdownlint": "^0.30.0", + "next-sitemap": "^4.2.3", + "node-html-parser": "^6.1.5", + "prettier": "^2.8.7", + "prettier-plugin-tailwindcss": "^0.2.6", + "react-diff-view": "^3.1.0", + "serve": "^14.2.1", + "sharp": "^0.32.5", + "turndown": "^7.1.2", + "turndown-plugin-gfm": "^1.0.2", + "yargs": "^17.7.2" + }, + "engines": { + "node": ">= 18.17.0", + "npm": ">= 9.6.7" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.11.0.tgz", + "integrity": "sha512-kFtn8XPMdE1QGDxyMTObGgaUpq5lcG2fLVsda6E88MoZZsfYkC8Oua6dwa0b06/GpgEWaliby/7AksUqz05uzw==", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.11.0", + "@algolia/autocomplete-shared": "1.11.0" + } + }, + "node_modules/@algolia/autocomplete-js": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-js/-/autocomplete-js-1.11.0.tgz", + "integrity": "sha512-+INNaRwwztxUboAoTnDSAm7INPcyLOu4SANYTZihyQiVRr6ZeJd7/AlifMnonJxrEH7j5RgX7WhjUm5xMN+r8A==", + "dependencies": { + "@algolia/autocomplete-core": "1.11.0", + "@algolia/autocomplete-preset-algolia": "1.11.0", + "@algolia/autocomplete-shared": "1.11.0", + "htm": "^3.1.1", + "preact": "^10.13.2" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.5.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.11.0.tgz", + "integrity": "sha512-TsJ5vs1jR9IbYDRWnd0tHLF/y54quoSAV7fDbyDdfUdkuI9bVP0bzulxT+POezPT5+6Ya5IJNCrg4DViA3Dm0Q==", + "dependencies": { + "@algolia/autocomplete-shared": "1.11.0" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-plugin-recent-searches": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-recent-searches/-/autocomplete-plugin-recent-searches-1.11.0.tgz", + "integrity": "sha512-2rACIroHtcXr3we1OZ1TiS6DYG6ebLcnfIRvegj5dRo6OqGU4iorBMlRK5IA8TwC2/YFlG/2aLe4k2mc6J/HIQ==", + "dependencies": { + "@algolia/autocomplete-core": "1.11.0", + "@algolia/autocomplete-js": "1.11.0", + "@algolia/autocomplete-preset-algolia": "1.11.0", + "@algolia/autocomplete-shared": "1.11.0" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.5.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.11.0.tgz", + "integrity": "sha512-a2Tg6TOXN75xIzcx9P7srTNIH8kFjap6IEDHiMYWwa3V4qWNZjbE3e07HxwD3Pme8zp700y3EiYTQMBaYETe6g==", + "dependencies": { + "@algolia/autocomplete-shared": "1.11.0" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.11.0.tgz", + "integrity": "sha512-ug1HYGQfe8+bvGuVJ3Fbdxn+YvR6MHPD36vQ5kv+5WWnBiW+QTyGk5yiluS9+i81l9wxH34Zl3XN/6MQ68MAgw==", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", + "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.20.tgz", + "integrity": "sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.22.20", + "@babel/helpers": "^7.22.15", + "@babel/parser": "^7.22.16", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.20", + "@babel/types": "^7.22.19", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", + "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "dependencies": { + "@babel/types": "^7.22.15", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz", + "integrity": "sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz", + "integrity": "sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz", + "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", + "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", + "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", + "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz", + "integrity": "sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz", + "integrity": "sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", + "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", + "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz", + "integrity": "sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", + "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz", + "integrity": "sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz", + "integrity": "sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", + "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz", + "integrity": "sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", + "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, - "devDependencies": { - "chalk": "^5.3.0", - "cheerio": "^1.0.0-rc.12", - "debug": "^4.3.4", - "dir-compare": "^4.2.0", - "dotenv": "^16.3.1", - "eslint": "8.26.0", - "eslint-config-next": "13.0.2", - "glob": "^10.3.3", - "html-minifier": "^4.0.0", - "html-to-text": "^9.0.5", - "markdownlint": "^0.30.0", - "node-html-parser": "^6.1.5", - "prettier": "^2.8.7", - "prettier-plugin-tailwindcss": "^0.2.6", - "react-diff-view": "^3.1.0", - "serve": "^14.2.1", - "turndown": "^7.1.2", - "turndown-plugin-gfm": "^1.0.2", - "yargs": "^17.7.2" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" }, "engines": { - "node": ">= 18.17.0", - "npm": ">= 9.6.7" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@algolia/autocomplete-core": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.11.0.tgz", - "integrity": "sha512-kFtn8XPMdE1QGDxyMTObGgaUpq5lcG2fLVsda6E88MoZZsfYkC8Oua6dwa0b06/GpgEWaliby/7AksUqz05uzw==", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.11.0", - "@algolia/autocomplete-shared": "1.11.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@algolia/autocomplete-js": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-js/-/autocomplete-js-1.11.0.tgz", - "integrity": "sha512-+INNaRwwztxUboAoTnDSAm7INPcyLOu4SANYTZihyQiVRr6ZeJd7/AlifMnonJxrEH7j5RgX7WhjUm5xMN+r8A==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dependencies": { - "@algolia/autocomplete-core": "1.11.0", - "@algolia/autocomplete-preset-algolia": "1.11.0", - "@algolia/autocomplete-shared": "1.11.0", - "htm": "^3.1.1", - "preact": "^10.13.2" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@algolia/client-search": ">= 4.5.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.11.0.tgz", - "integrity": "sha512-TsJ5vs1jR9IbYDRWnd0tHLF/y54quoSAV7fDbyDdfUdkuI9bVP0bzulxT+POezPT5+6Ya5IJNCrg4DViA3Dm0Q==", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dependencies": { - "@algolia/autocomplete-shared": "1.11.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "search-insights": ">= 1 < 3" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@algolia/autocomplete-plugin-recent-searches": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-recent-searches/-/autocomplete-plugin-recent-searches-1.11.0.tgz", - "integrity": "sha512-2rACIroHtcXr3we1OZ1TiS6DYG6ebLcnfIRvegj5dRo6OqGU4iorBMlRK5IA8TwC2/YFlG/2aLe4k2mc6J/HIQ==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dependencies": { - "@algolia/autocomplete-core": "1.11.0", - "@algolia/autocomplete-js": "1.11.0", - "@algolia/autocomplete-preset-algolia": "1.11.0", - "@algolia/autocomplete-shared": "1.11.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@algolia/client-search": ">= 4.5.1 < 6" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.11.0.tgz", - "integrity": "sha512-a2Tg6TOXN75xIzcx9P7srTNIH8kFjap6IEDHiMYWwa3V4qWNZjbE3e07HxwD3Pme8zp700y3EiYTQMBaYETe6g==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dependencies": { - "@algolia/autocomplete-shared": "1.11.0" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@algolia/autocomplete-shared": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.11.0.tgz", - "integrity": "sha512-ug1HYGQfe8+bvGuVJ3Fbdxn+YvR6MHPD36vQ5kv+5WWnBiW+QTyGk5yiluS9+i81l9wxH34Zl3XN/6MQ68MAgw==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": ">=10" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.20.tgz", + "integrity": "sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg==", + "dependencies": { + "@babel/compat-data": "^7.22.20", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.15", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.15", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-classes": "^7.22.15", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.15", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.11", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-for-of": "^7.22.15", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.11", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.15", + "@babel/plugin-transform-modules-systemjs": "^7.22.11", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.22.15", + "@babel/plugin-transform-parameters": "^7.22.15", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.22.19", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, "node_modules/@babel/runtime": { "version": "7.22.10", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", - "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -164,6 +1858,66 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.20.tgz", + "integrity": "sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.16", + "@babel/types": "^7.22.19", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.22.19", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz", + "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==", + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.19", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@corex/deepmerge": { + "version": "4.0.43", + "resolved": "https://registry.npmjs.org/@corex/deepmerge/-/deepmerge-4.0.43.tgz", + "integrity": "sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ==", + "dev": true + }, "node_modules/@eslint/eslintrc": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", @@ -316,6 +2070,15 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", @@ -562,6 +2325,75 @@ "node": ">=14" } }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, "node_modules/@rushstack/eslint-patch": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.3.3.tgz", @@ -610,6 +2442,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, "node_modules/@swc/helpers": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz", @@ -632,12 +2475,54 @@ "tailwindcss": ">=3.0.0 || insiders" } }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", + "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==" + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" + }, + "node_modules/@types/node": { + "version": "20.6.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.2.tgz", + "integrity": "sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==" + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.4.tgz", + "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==" + }, "node_modules/@typescript-eslint/parser": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", @@ -762,7 +2647,6 @@ "version": "8.10.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -783,7 +2667,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -795,6 +2678,14 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -837,7 +2728,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -908,7 +2798,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "is-array-buffer": "^3.0.1" @@ -940,11 +2829,18 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, "engines": { "node": ">=8" } }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array.prototype.findlastindex": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz", @@ -1017,7 +2913,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", - "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", @@ -1039,6 +2934,11 @@ "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", "dev": true }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, "node_modules/asynciterator.prototype": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", @@ -1048,6 +2948,14 @@ "has-symbols": "^1.0.3" } }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/autoprefixer": { "version": "10.4.15", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz", @@ -1088,7 +2996,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -1114,11 +3021,99 @@ "dequal": "^2.0.3" } }, + "node_modules/b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "dev": true + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.31.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -1135,6 +3130,17 @@ "node": ">=8" } }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -1226,6 +3232,46 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -1250,7 +3296,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -1435,6 +3480,12 @@ "node": ">= 6" } }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, "node_modules/classnames": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", @@ -1453,6 +3504,20 @@ "node": ">= 4.0" } }, + "node_modules/clean-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", + "dependencies": { + "del": "^4.1.1" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.0 <6.0.0" + } + }, "node_modules/cli-boxes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", @@ -1546,11 +3611,23 @@ "node": ">=6" } }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -1561,14 +3638,35 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" }, "node_modules/compressible": { "version": "2.0.18", @@ -1629,6 +3727,23 @@ "node": ">= 0.6" } }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/core-js-compat": { + "version": "3.32.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", + "integrity": "sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==", + "dependencies": { + "browserslist": "^4.21.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1643,6 +3758,14 @@ "node": ">= 8" } }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, "node_modules/css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", @@ -1692,7 +3815,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -1705,6 +3827,21 @@ } } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -1724,7 +3861,6 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -1733,7 +3869,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -1745,6 +3880,95 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -1754,6 +3978,15 @@ "node": ">=6" } }, + "node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -1779,7 +4012,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, "dependencies": { "path-type": "^4.0.0" }, @@ -1883,6 +4115,20 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.499", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.499.tgz", @@ -1902,6 +4148,15 @@ "node": ">= 4" } }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -1918,7 +4173,6 @@ "version": "1.22.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", - "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.1", @@ -1993,7 +4247,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.3", "has": "^1.0.3", @@ -2016,7 +4269,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -2529,11 +4781,15 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -2567,10 +4823,24 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", "dev": true }, "node_modules/fast-glob": { @@ -2602,8 +4872,7 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -2631,19 +4900,46 @@ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dependencies": { - "reusify": "^1.0.4" + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dependencies": { - "flat-cache": "^3.0.4" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=10" } }, "node_modules/fill-range": { @@ -2657,6 +4953,22 @@ "node": ">=8" } }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -2706,7 +5018,6 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, "dependencies": { "is-callable": "^1.1.3" } @@ -2739,6 +5050,26 @@ "url": "https://www.patreon.com/infusion" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2766,7 +5097,6 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -2784,11 +5114,18 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -2802,7 +5139,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -2813,6 +5149,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -2829,7 +5170,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -2847,6 +5187,12 @@ "integrity": "sha512-YQJnY8aew65id8okGxKCksH3efDCJ9HzV7M9rsvd65habf39Pkh4cgYJ27AaoDMqo1X98pgNJhNMrm/kpV7UVQ==", "dev": true }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true + }, "node_modules/glob": { "version": "10.3.3", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", @@ -2923,7 +5269,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, "dependencies": { "define-properties": "^1.1.3" }, @@ -2938,7 +5283,6 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -2958,7 +5302,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -2966,6 +5309,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, "node_modules/grapheme-splitter": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", @@ -2987,7 +5335,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2996,7 +5343,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -3005,7 +5351,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -3017,7 +5362,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -3029,7 +5373,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -3041,7 +5384,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, @@ -3136,11 +5478,35 @@ "node": ">=10.17.0" } }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, "engines": { "node": ">= 4" } @@ -3194,7 +5560,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.0", "has": "^1.0.3", @@ -3208,7 +5573,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", @@ -3218,6 +5582,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, "node_modules/is-async-function": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", @@ -3237,7 +5607,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, "dependencies": { "has-bigints": "^1.0.1" }, @@ -3260,7 +5629,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -3276,7 +5644,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -3299,7 +5666,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -3389,11 +5755,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -3413,7 +5783,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -3424,6 +5793,44 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd/node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -3449,7 +5856,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -3461,6 +5867,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-set": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", @@ -3474,7 +5888,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2" }, @@ -3486,7 +5899,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, "engines": { "node": ">=8" }, @@ -3498,7 +5910,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -3513,7 +5924,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, @@ -3528,7 +5938,6 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, "dependencies": { "which-typed-array": "^1.1.11" }, @@ -3552,7 +5961,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2" }, @@ -3588,8 +5996,7 @@ "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/isexe": { "version": "2.0.0", @@ -3628,6 +6035,65 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/jiti": { "version": "1.19.3", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.3.tgz", @@ -3662,11 +6128,26 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -3685,6 +6166,25 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -3724,6 +6224,14 @@ "url": "https://ko-fi.com/killymxi" } }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -3790,14 +6298,18 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.castarray": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==" }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -3808,6 +6320,11 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -3834,6 +6351,36 @@ "node": "14 || >=16.14" } }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/markdown-it": { "version": "13.0.1", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", @@ -3898,8 +6445,7 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/merge2": { "version": "1.4.1", @@ -3951,6 +6497,18 @@ "node": ">=6" } }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3980,11 +6538,16 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/mz": { "version": "2.7.0", @@ -4013,6 +6576,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "dev": true + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -4081,6 +6650,55 @@ } } }, + "node_modules/next-pwa": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/next-pwa/-/next-pwa-5.6.0.tgz", + "integrity": "sha512-XV8g8C6B7UmViXU8askMEYhWwQ4qc/XqJGnexbLV68hzKaGHZDMtHsm2TNxFcbR7+ypVuth/wwpiIlMwpRJJ5A==", + "dependencies": { + "babel-loader": "^8.2.5", + "clean-webpack-plugin": "^4.0.0", + "globby": "^11.0.4", + "terser-webpack-plugin": "^5.3.3", + "workbox-webpack-plugin": "^6.5.4", + "workbox-window": "^6.5.4" + }, + "peerDependencies": { + "next": ">=9.0.0" + } + }, + "node_modules/next-sitemap": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/next-sitemap/-/next-sitemap-4.2.3.tgz", + "integrity": "sha512-vjdCxeDuWDzldhCnyFCQipw5bfpl4HmZA7uoo3GAaYGjGgfL4Cxb1CiztPuWGmS+auYs7/8OekRS8C2cjdAsjQ==", + "dev": true, + "funding": [ + { + "url": "https://github.com/iamvishnusankar/next-sitemap.git" + } + ], + "dependencies": { + "@corex/deepmerge": "^4.0.43", + "@next/env": "^13.4.3", + "fast-glob": "^3.2.12", + "minimist": "^1.2.8" + }, + "bin": { + "next-sitemap": "bin/next-sitemap.mjs", + "next-sitemap-cjs": "bin/next-sitemap.cjs" + }, + "engines": { + "node": ">=14.18" + }, + "peerDependencies": { + "next": "*" + } + }, + "node_modules/next-sitemap/node_modules/@next/env": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.19.tgz", + "integrity": "sha512-FsAT5x0jF2kkhNkKkukhsyYOrRqtSxrEhfliniIq0bwWbuXLgyt3Gv0Ml+b91XwjwArmuP7NxCiGd++GGKdNMQ==", + "dev": true + }, "node_modules/no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", @@ -4090,6 +6708,24 @@ "lower-case": "^1.1.1" } }, + "node_modules/node-abi": { + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.47.0.tgz", + "integrity": "sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true + }, "node_modules/node-html-parser": { "version": "6.1.6", "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.6.tgz", @@ -4165,7 +6801,6 @@ "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4174,7 +6809,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -4183,7 +6817,6 @@ "version": "4.1.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -4349,6 +6982,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", @@ -4412,7 +7061,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, "engines": { "node": ">=8" } @@ -4428,8 +7076,7 @@ "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "dev": true + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" }, "node_modules/path-key": { "version": "3.1.1", @@ -4471,7 +7118,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, "engines": { "node": ">=8" } @@ -4509,6 +7155,25 @@ "node": ">=0.10.0" } }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", @@ -4517,6 +7182,65 @@ "node": ">= 6" } }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/postcss": { "version": "8.4.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", @@ -4672,6 +7396,60 @@ "url": "https://opencollective.com/preact" } }, + "node_modules/prebuild-install": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "dev": true, + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuild-install/node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/prebuild-install/node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -4766,6 +7544,17 @@ } } }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/prism-react-renderer": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz", @@ -4784,11 +7573,20 @@ "react-is": "^16.13.1" } }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, "engines": { "node": ">=6" } @@ -4812,6 +7610,20 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, "node_modules/range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", @@ -4911,6 +7723,20 @@ "pify": "^2.3.0" } }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -4942,17 +7768,39 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/regenerator-runtime": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } }, "node_modules/regexp.prototype.flags": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -4977,6 +7825,22 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/registry-auth-token": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", @@ -4999,6 +7863,25 @@ "node": ">=0.10.0" } }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -5021,7 +7904,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -5095,6 +7977,56 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -5121,7 +8053,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", @@ -5138,14 +8069,12 @@ "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/safe-regex-test": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -5163,6 +8092,23 @@ "loose-envify": "^1.1.0" } }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/selderee": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/selderee/-/selderee-0.11.0.tgz", @@ -5202,6 +8148,14 @@ "node": ">=10" } }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/serve": { "version": "14.2.1", "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.1.tgz", @@ -5304,6 +8258,29 @@ "integrity": "sha512-pfVOw8QZIXpMbhBWvzBISicvToTiM5WBF1EeAUZDDSb5Dt29yl4AYbyywbJFSEsRUMr7gJaxqCdr4L3tQf9wVg==", "dev": true }, + "node_modules/sharp": { + "version": "0.32.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.5.tgz", + "integrity": "sha512-0dap3iysgDkNaPOaOL4X/0akdu0ma62GcdC2NBQ+93eqpePdDdr2/LM0sFdDSMmN7yS+odyZtPsb7tx/cYBKnQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.2", + "node-addon-api": "^6.1.0", + "prebuild-install": "^7.1.1", + "semver": "^7.5.4", + "simple-get": "^4.0.1", + "tar-fs": "^3.0.4", + "tunnel-agent": "^0.6.0" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5329,7 +8306,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -5351,6 +8327,26 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/simple-functional-loader": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/simple-functional-loader/-/simple-functional-loader-1.2.1.tgz", @@ -5359,20 +8355,57 @@ "loader-utils": "^2.0.0" } }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, "engines": { "node": ">=8" } }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -5385,6 +8418,21 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -5393,6 +8441,45 @@ "node": ">=10.0.0" } }, + "node_modules/streamx": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz", + "integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -5462,7 +8549,6 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -5481,7 +8567,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -5498,7 +8583,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -5512,7 +8596,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -5522,6 +8605,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -5556,6 +8652,14 @@ "node": ">=4" } }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -5651,7 +8755,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -5761,6 +8864,131 @@ "node": ">=4" } }, + "node_modules/tar-fs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", + "dev": true, + "dependencies": { + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + } + }, + "node_modules/tar-stream": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.19.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz", + "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -5786,6 +9014,14 @@ "node": ">=0.8" } }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -5797,6 +9033,14 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dependencies": { + "punycode": "^2.1.0" + } + }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", @@ -5852,6 +9096,18 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, "node_modules/turndown": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.1.2.tgz", @@ -5895,7 +9151,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -5909,7 +9164,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -5927,7 +9181,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -5946,7 +9199,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -5978,7 +9230,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -5989,6 +9240,70 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", @@ -6038,7 +9353,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -6066,6 +9380,30 @@ "loose-envify": "^1.0.0" } }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -6085,7 +9423,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -6142,7 +9479,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", - "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -6172,6 +9508,250 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", + "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", diff --git a/package.json b/package.json index 0db23e3..4cd5df2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@sfccdevops/sfcc-docs", - "version": "0.3.0", + "version": "0.4.0", "description": "Unofficial community edition of the Salesforce Commerce Cloud developer documentation.", "license": "MIT", "author": "Peter Schmalfeldt <me@peterschmalfeldt.com>", @@ -8,10 +8,12 @@ "registry": "https://npm.pkg.github.com" }, "scripts": { - "dev": "next dev", - "build": "next build", + "dev": "NODE_ENV=development npm run -s clean && next dev", + "build": "NODE_ENV=production npm run -s clean && next build", + "postbuild": "next-sitemap --config next-sitemap.config.mjs", "start": "npx serve ./dist/", "lint": "next lint", + "clean": "rm -fr dist && rm -fr .next", "cli:init": "DEBUG=sfcc-docs:* bin/cli.mjs init --verbose", "cli:prep": "DEBUG=sfcc-docs:* bin/cli.mjs prep --verbose", "cli:update-links": "DEBUG=sfcc-docs:* bin/cli.mjs update-links --verbose", @@ -55,6 +57,7 @@ "flexsearch": "^0.7.31", "focus-visible": "^5.2.0", "next": "13.4.2", + "next-pwa": "^5.6.0", "postcss-focus-visible": "^6.0.4", "postcss-import": "^14.1.0", "prism-react-renderer": "^1.3.5", @@ -76,11 +79,13 @@ "html-minifier": "^4.0.0", "html-to-text": "^9.0.5", "markdownlint": "^0.30.0", + "next-sitemap": "^4.2.3", "node-html-parser": "^6.1.5", "prettier": "^2.8.7", "prettier-plugin-tailwindcss": "^0.2.6", "react-diff-view": "^3.1.0", "serve": "^14.2.1", + "sharp": "^0.32.5", "turndown": "^7.1.2", "turndown-plugin-gfm": "^1.0.2", "yargs": "^17.7.2" diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png deleted file mode 100644 index 1f6f0161fd02b2418895eaf47c82dad5a441a885..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5793 zcmchb=R4e6)c1cghRmp=MDKziy69y@@1jLFiDdMHh~PvSy-P%mp6E<OLiCu?6GS%z z(YxqG=brOC|H6IUFZSLq*1GoI*DmY3)+g53P>X_;nG^s33LR~A6T*o5uR%!&y~&LG zEy4iuG0}PeR1L6h006y>j=HLuzx{UZt3dPdw4M;R{OoK7BVOI-M3A>EcP$;9OMR7t z#I`3hmL?f2BH$3cKIh6hM;qbX$qxgQQx)c{?z}M2$7H;T6J~tyv_c-QJ5AljCliWz z+jn7Le==J$5oib@r}-X~ll^K?ZYxmvOz738Z+O4$Ii-s~HG{K|#t3vY>`k;|#!w`n z4vfGQ4G@s|jU&B1ZeW8bkB<|)_u`z_pBjAxGNOfp{N=A`TA+w?bSW$bP|OX6*+V#k zaH9})AkPpB5e2_do_7Ir14g9|VGJN`jy)+5HM(?Ev@ISeqVmr|Lvf=U8S@&z$gTgi zW&9EV!5y-dzX<~z?}L)5l}%rd=|8j964GXJQgfuE>xSQb-FB;Bm~7on%q*I(mf1QI zb}bSTy!;)dFBkUfsqSVZT7$Ea*m$3A?eDg`vJ8rGEoJo(fWXR-oB*dxC>=YvED^^A z`~<FbNv;|l?KSkk(nV!tu&2d<F3a@b{LZWp$c#ua^nEvw<4GGr;>D<b(RNA}!wx;! z389V`jhlMv&@UT<z(Wf#FZJyEozk-&+8L<FBV=DO%3Z%hoM=w^qfYQ&?8>;55<IA8 z&3ITOPt>e#Y#q+Pj(Ch^chK|qL{?nrk@FHNvC2xuQ*QJKxp$rXB#XL#P65YOrpi|z z%S-2{g++co2vsAzG054672ya7-gz^35E|=<RPIku<NRZhRoC;}cY1&)dTM1L%{pB| z5FOh$$I2qqkA0W9DtUSj&~#mxG-;-q=i@W433_so;&Qg)@wD)CZ<XwOPlnoIkLq0# zV<?V!btUW#QSjg)Q)rueY%Ns*yI7O3IAYibP-3bQ4EdG5u7tY71I}z*Ow3`s9+rH! zX9|R56jLn)bzT;XoNH}wV`oCMvQncoc!g%~7PNdWw%+QCsfOcTWM5bdQCnn@1k-Lw zPM_S%c{z!?sFITT17^fZm_5CFPAci3(!X?BMDsmjLdVg{dwG6zE5+Yf#C1lNyR=V* z40oH;mh{1Vk;6%mqJjo*y9hWBR4t<U8#`^~YoC$3`WxkDNsRotvz|A*g0xMZmqPJ1 zO5$Fr9(gXDwXMX;N(4W1ZjxB16bpgiCe=4fEYo4KMWNU?s`XK8<}FztlqM`V*g;~W zMNuVR?y^+2HFP#gZB&6d=4K^i{MS>(#Y_X#+#ZS^a^o#YAK0UoivNMnX;CW<1$b2R z)U-Zz*xFzKB-5lLlnd^s6TNu+mrEPRqsbwlm?PQi=Qh2@$H9m}6;vHBkzaYBoj}Wa zxPRs2UC|E2mCZeLf0e$v{7ul7XYqNvT}xI_`@Z-=_PIDBm&)s=rLN<XvdPgpZ@@}C zJ4ZuNd)BXwUx93&TW?2ryRfbCQ+ZJ_`dutEmwL1<&o2LLC`DNli<Q6sD2vj}e>~56 z!ug7y2Gx|oO<W(rknzIEYFNH$@RKL1-2hP%t*G`^TJ@3^yVF$Y(MB9T+Z9zi{{iem zi}+E2k1aY=VY+l-*k^{5`cXT(NVzJ$O`*L2g|D*Z_V}qcKrqt3>R<GP{qRWgk~J_a z(EzS|W*ZCtahh+s$9$`lXh8&AFYb&=Z|RIz(F{9&8SqiG)bB@K<=}6Q5DmXH{nr5V zgN%;OLV$E8vM*>De)>L>*>`lHVm~j?0oe@bx@MPzCd`3sS6g=$dt;<Bccl{_)(1R< z)RE$>hne0_E&(Dw&mMVu8b^P;b-HbX$LRb1h#rOi;s;QIE>JsS11d1%iWGcNG_v;f zr%7>{1{Y)cezV#@)5mRP?aAW5C23HG0zyHQpi!WZZb$>bV6PcMX0ZNLw^S$f66}Bn zz?FgcH#YGPukNB)nY<y<)~)P+`tH1%hQP~qWmAT0ND_=t5}Ymy#NY(q;L}#cJ+?Ll z4t@<0<RTgDGFZ&O5x>GI&+{W4Gx$&eL>hX`XK_>#x1r*jgb5U)&99i^Lob^D%;z`2 zhkM>IziiCWM(cxb+?;&(O0`NqW5IhX<aD%RS)r^ph5xRJJpT4(S}TE`(Y8k^nz<uh zbhGYj?kHo81~AGZbAIBt(xR@8A3-(d7$8L%MZ?c`mzgYk)TiH_1s6YY(^}iAdm%bq ztpV`*zVG|EQa>=z?4Pdz!R*%As2)XxSx+ac1OzojX_b@V&Wk>k9=nKzaK{62LOYzu zpa?pW$G&$^v&l)X15N005mP1c_lM<4tn!b4@Ipo&pwab+Bj4V^ppTA!BiNgnbqoOf zn3LUi>zzFw;|CW<lPlQCeHxIPwfV4`=Dn9j7ws;O6&@Jr0Qj}w>wj*-$@{-{Fn#8N zEE1OLt5)689#3*ZkzWsRQ}Xo072WwSDgtU(GLjg(>17&lhZg#CcnpKD;pSzKpn@O4 zj_^1<(?5#4_b*Fpi=G}o+}UYyy519Zt@!I_zX=UOCup5nj6J;w8rn}i&!aoM&6X{+ zqpJxihZRU40Z=^&hL+lUkaNE@`45OWrRMs;uJf+cA@)xMyYdk?BR-wuIV@D4cCw3f zZp!|)yLM;t7{r)iiV_*fO`&VW^+pqX3&~j1aaf|r;>q%ZZ2oL5h}TAsw&{20R%$9O zSO7k$*?%+B$axw9Sm_BGzTy=I+<KzRn7*z&>ohj(y@^DCAyP5;a_6}ZNg9%WDa=J( zK>B55Y1!zUY6-f>XCZu0bvkDkE#EFXwflK3fUAwDv<_C;jOZYQ>kTzHA|~wGtLL)3 zbh}W85H;$Kud<G^nP7&@x54|={sOBqsNF2dXKUqg{K9D5W|B$Lac$39bSe#)iED^# zF}uTtJz(C9<APrl*kVEM{7Ol#E_%oX=LeBss{)TA2O7h76LM<-%wN6D2Y7)yJc~yf zaj;Nw_&lTbZ@N5({hBsr!cBJhzORR7CWn?4>2SRPKs!?7W#!=>muYVSu<!e?<bhlu zqoOkScPQw|VfO&>=uUv=k^pJJnFWb(pSJo)8C*LCxFHU1l~Q!tgbjWqoP6sudP$Xx zHykFG(5GR*aIn~;=*n;`+hm|FII{t@MJG9R@+A<SADf_?4Wp^1RJeTTZ?b36&%M>M zaxKIQf^5zyr!1sw!)f~?=mzOP=i%jhUAgAB@%F{#WB@*Hs17Fq|D98jDG{kYbxaq^ z6ZL`W>m&1)XRiT_ALy&_BXk2jj?w6SDw0hHjpofAS9QDP!?FVay{`2MuZ@r7(6ejW z+>5n6&^_9P&ECOjKERFt6yeb)!8fxg{+6an684Ae(XGK+Eui1kqyw)bo^*}2lJ0qq z3fU`|h!Pi8^wc$Vtw9LQeuph5=5%2G0oH9ZSi`p4X6L`Xi4|}5Q5}-+6>4-D`cJ^! z=$Ee)!mGeyBd?&mPxxs$_eKUbd#`Vk!?3rY7|OISvH9qW2|$2996t9=2MwjjJq$O8 zk#X*MjRuH~<&p;qGVS}*)~n|RK~8^p`K}bhV4TKt);};D#0y}rMZcs!;hgLN832~4 zs_M_&kX#kl(6F#EJ9wdH<m}tDhb`S%x0ml;P6Nd2Xm4u;z=)?Ta6@V0{9v7;g!o0c z!ozydX-l6Tw;xleECi?DRcWK5lf{B#T$2E3lImgP!sxfR4VK=NS`amubzjZy2#X{H z2Q|q154+@px+fxAQNYPmuzUlVi>@{$5AHO`Uv(&}mm`qg`LfqI+2m3h(ZfI?cTe5> z5i}<WC)z&V=5~t#K~agY>ibPT!$}^AW`V)I^ax>dK$Tc*fkAjJljMd0nli)K(s>6` z@KdOLLf^*k3*hQ%hCCRT5$iCCb})v47-;5aSRD`2D@)y#bbw;4vr4$nIdkTjqzJj~ z0~#=W=zy0^SEnPtZeBIr2h7X9TIjn^U_}c{7$}3rlD3L+K#6`D2EJSF*~s31(kSHx z>)V1rG4Cq;%pPIn(||nUL;jWlokc(4&~KRM$}Qh2{%of}jQ?Jyw|vJ>f`G;<3J36^ ze5liK=~@H>wpnF;pKIvU{QYaeM1~ea?L|K!kVLGvmeb=ik4%GA9Y28SruqIp%_9|1 zJG*lpt-WzTJJ(dtF5&M9Q_-AOhUq~Yk^%860o041Q-o}20(Y83#%VlZ+gIQ!Ln103 zkOvUCK5l55nQA|b(1XmMwJrn$<n9Hn?Nm{Oq#z!c$@h%iQwKB8Hxgd7)-56)KVU;- zhYxX-BYoDVPzBqe2Q?^+)BOGcp`_i|Qm8kRX0^HCQRCd;o8`h?Vq6l=XOKOGc}MIB zRA|enXbZK#Ze;n5a*LPsjmS`GQ<4f%>R2>8xbQ|&oKTQ-z*s@$o)K#qpI8NxKvZqQ zbB=pd(G{FG4B%e|XpB{US_yMN$3~PgKUL^vwy0wXe~p6dz9E!c1AXI)Zk@Deb7!k4 zI=)%*Lm!w6I~}|3yzwwzY~y?OB^dyH6z_Vpi>bJDY`La5<%}vXYCZN9JMm<^lL7al z0ddb(rSA6r4KTfa6EnvjNNr&|ai9hc5v3+Fv4B3!1Ga&MsJ-;@*M%jT{ELGyFmx<R z`Fq3~u+0BNy_YmppSn8ujA^smEBI_Gbn9~Icnt!g8~=wjzwi<ZUV7_Kp)JStMgWY@ z%x8?3ud50W7<RaJRL=KDbRQ00fTwjm9lQOOFF)xQn@_Q20WNS)^atLBfR!6EIF+5# z9u0pk+|+jBk{WEKrJa|Cd05U58PP&F$L!0ddONLM9;}*8%jx`o$v;_ERMr0?XHoH@ zxb-)LlIGCwyw<+PX`!~`B_qdCLN)BG0Yi3?eQNY$1$cbo7|e@7^4o&sdeh&ExO$WN zld4El_O}dWWLL}Ul*8U^MNXxrPxPRyyalR9f^HbW{)HavRT8RS2CJ#LuNHe(1;oRH zDKu}q-xB2TF%JUyq*m;7Aam|ytg4c4m&D2~@DJATYHJp2dX(e#ZsQ*y@~@0AeIyP6 zzKWluL=RE64;~(jZT_t3qbkWBc8QiTWwy~e@$K1hDqG5qEt%%}yekZbus;1jfo#zo z5<Na$r@9ys8<V>|&ed~rTS!ggH>nX(!;npRvh(NzG!FTP&qTBaf8)q_Wa5xNrKGw$ zT_3!!F<e_4z+9+CimR|0*{d%XOPmXXr_%C7D`;5Z*$<U-)i?%11*HmyPt=&wka^H< zCiT0hAza58mE;mYEgw^@k#cTh*nhcIN8R@E$2}YETd@rgG_yr<N|s8ojuI64M4pv8 zJBf2h4`)CSg-VWw#W*9tqAby!&hNg%hg9nxaydlD?F}Q&7(Wy$_}TI)_RIFB&IN7R zyK#*r2Hdb%_e7mNreF(^$+s2xMZUgHegeCfaFmmDX6jHs?iH2Ddk+vBjfnawY4Gzt z5F*`it#{a=igs2ZBCCItc0-bS*<Q2Yb$?izhA<huu7y-0k4jKtEGDgxI9B@J3Y*$I z6hx*ljmH?g{NXLFl~oIzhr7B<ftA)mvY6_Lo>IgvJCC~$ybNnS9vlwONEC>ft^cp; z2pea6sCXa5N+Dh?Z>Gyvg-;Ly<&Yug%`$lqF)6!Th)IotT^~=?4rH@nb7Y1v*njOG zoF?apNk5+m|GXy3tbzFLttDr^b>3X!G|{Jhfk92rk@*0LzvaH!-Fml-rUXj|vi281 zAt-^hfkLkdOw%j?M;;}&yA_Qevyt`66d`|zn~!p%mxd>*1>cR?!k$?Q={li(iJ`PH z<(Z+}01wGKT_prgndBvSl5AcL7<fVc&`I7k$Yc`oAx%)_WFhGn?O!>`gwAh<p8%3` z(+<~}h>{1zSHzm21G5Al1JeuggENZap3mKFcQ^jwsEpYt)xI|}no+6A#CI~Qhhw0j zGH~tG!9j+@jW@4*@gF~mj`hcNSq<LqiZTLp76r>G?1<V2TcpQzBS^@YB$Y|JtvGE4 zJ$HzZY>fLK4$5!VGq(~K29S1QTg1lJb9BhE(s$m5Z<(Jz`Kn~>idu;fSV;G<DRJvm zCbhs@+-Cs08;F$M2^-;bCmChwKfkYbmiH-BHei&j=DR8Obay5F7z|{Bg=|`TN&8Z? zn|LbW&Mr>AU0;?4Bu5+Oc9<4a{GIQ?v!MnVz!4W5OQoLzEK|@pi^kN4ZFs=#i8da| zKB?1+kNdmb7&t>+|83YndYBRp>=kQD+i(1H#e<Vfp%@c5hSq|Vul3hvkXkLuHY_YB zpWpdl0!5gH@fC4)`}mXRa#~QFt}*gipGx&&50K#F*<NO&8d6{Q(ML}4uUJ-jj=UyN zoVb0~RC*#JmVQT$WPol-eJZFcW9f!pMp(x1&Z&N?Zvt?>3qJms)_*>6wM#eSw~d!S z_{=uZKe^mG^hJhS3x;dAY!N)tkvOA<=O%x%q&-eJ5%}QwqMxeDu(l-CC=tB`L1!_W z+e+^Wh6R7;-6i4fJoTmwRB^WvYn1u=LU&soCTsNn(z9g^YMWl1j7P9)>Rl{dUkcwk z|8ug0$d1pq4C4lxzBKU=BcFX(PA>6|898Y?5~U2fE8S)pZyRLiKQN|L^~a79+WQ$? zJxQ-r?Hz#~3L!&#%Kh<DNkQL#i1j|Kk~76<ggk#1gDxaSiq}M`QOEt(Psq+Z&#-g4 z7$;iQbTHaYoKDZ#%KCl#3)^}5rB4fh!D0L$GvhwIDNV%lNP2!p7V4d!!>ua^xNJ77 z=aInqL;P47%yiXI#^72!=9+r`DSbk*uu%UbQmpDzrtN;*1VceF#dDgd-#qBTw%4!x zPqeYSLo$zp5=nA$7j{#a=D)>_i55yNDkxNT`|&38l)u#kSJC3cExIbLMY$7Q5g`IR zYq{c-Gz&V2iNsxnOA|inU;{_2ccRM#X+cQE3ylW!;cNY{SWoz4N(A2T$3`pWwE<p0 zVrM5&W43PVUgZmgZS#vNdR(*4v#eTIH!FQD`U8dhNAw`6?vjOMl66iT-u7D3S}VQp zU-q@{KX}0YGF-G1EppQIKe3si?>Yl1lSw7E4kGaMRvj#n(!fu0cL-C6^mFd5X{@4e zbD;BL&VXmYrW}aXh)VLdQfqT{!KYV6Op;oi+CASYb5%dzRrOtA+Vs-X>!KbjTDuf< z^5u2<cgqeWE9tQK^(O&MN)z4o8Q|swds(!0+GG>Jr8|k>YK{hhb7BHx>!k@;bCTSw zUoM`2C#}wCJUs}|vzn<a(}$h_FKZ5XXQ%WL5TvBB_}V=J+H_jcYx(+);EF1EGGIlR zeV{kP-%XO>`V-NWQv;0wa?(Wi@hF08c4(ZO6Ez$pE99{F@&9}ymnt=%pn@-Q`Ev=( O8PL%%RIhq~4ErBGZKXB< diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png deleted file mode 100644 index 442715468a1b01f85c5a6b1a10043400041e4ca5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12473 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 diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png deleted file mode 100644 index c8c0160077ae952cd3d45c0b9f6afc8c13843d49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5255 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 O0`#<uG;7rzqW=dt|JoV= diff --git a/public/assets/icons/icon-128x128.png b/public/assets/icons/icon-128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..aef183a483344bb103ead6988726309f1da062de GIT binary patch literal 1164 zcmV;71atd|P)<h;3K|Lk000e1NJLTq004jh004jp0{{R3^x%>C00036P)t-s4;CsK zpxgid|MvR*8k^M*8!;N5*bp8ye8%b=q1zdi%@=#D6Has2>-f#*_LI=<7>mIcY?%=( zM-Lb*`~Cji?)iqy>`t=cEvDTfqTCsn(iLNk5;#^6A~~$t@ub)AjL+?Y%IkH*=xxB~ zS+?XvuHhP=+8L3^7kH=_b)*$&loLm25<+4UJX;VdL=Y!I5F|YQ|Nrjx{Oa`k;qdv% z<@Leh^u6Enp49JUyyafG<VmpMKdj(5tKS%bv=@G`5j0T|FiiOS{q*_$nbPiy%j;;p z=3%<zR<+|(wBs_U-WGA66<~=KTZ0r<d=p7*<?{N`>GrtY^0nRawA}KJ&+Qn7x;{;$ z@Bjb<LP<nHRCwC$*ynQ7KokYwdoH%)7RN1iz)naby#i?v5_(IczyG5kq!lY^B+Jrj zt%2F^k7s3h_UP{V?u^JV48t%C!!QiP_%{^i4~mqN;-CPb(3+x2+eSd0Cg~+Y?2y-9 ztK?K?Yo9XLM5wA<o(p(wcCuZ3M4BhtF9dB+cBU}G9ue(^f1~;NWer*gcT3qoj2fbB zQ5M#bUY*npq2j>ZMz4m$eM$vth&nd~IoxO`?|*7)B?MeiBG6z%wFRgf(zsgCqef#Y zL6a(t2ig?!4uEP-dr;b>cze*PO|jYt$9xYNNU#KY0t_gY-T=rwz-`_Ekf0Uo2~eaM z^9cH|RPK8N++SW?I)~Ti@?!4{!fJ1^e2z%h3D@AoAqyhFBQczT>nA(D!7?od3y_kv z!(Dj2W%dVn$F3)EJZ519z!Mhwh(e=X!0Q<^&sG4Oi2$Fi3l9N&ay~6bZZ$pus91wJ zSeB78Kove>8o3F(%-@}*VP=RaAHlW4e1sTD=3f!B$N=&}*Qxmr=EwN!J#$wjz$FB^ zyr;eZt1`e0^R$!bnZIP+e(C^21c>s=0E^6DJln%9iB#r4rsvWHKu7?8BYJ2*w(WUn z0Ni)}2eWAcT!#gy$N)~=pSt}<1_<b}<upYAga!EE3vedq>)BbvDh14l+d?IIB{M5( z8TK!D!(4VcUn4X*BCIEQCvz_PiZ8%BXRXB?FYH?q1gIxEhhMY(oH9V)y09wdZ@87< zWjm6+HDRe(KbuwB0ul$$f@5}dgSRYrj}AmwOBevtfdE(%!>@2XWyc|K=-yjFgq;Kd zgpa33jgwyAb77%zvJ9{H3ytF$yZUoWCynEBMWGF8c9(O20_7Z_m~((S<r|<zBV9tX z3mWYJdTme~XjP|JchIL$q%o{Pmu(u$JhUk6(ztGrx#l({QPbRV<82}n9ZIc^47?%* z#RpKeLu%TJ5!$4#-h?ehlqzKkvDW?DzfIZNLYyhuzg!cu4~mpI#AuSE(;+=}FdAvs z#3;L@UkTB+NR`?tU8Bi}>IMUvl$K)0S2tD2sr=HuzvEqXX!2femTV6O2V@wAVHk#C e7=~f|FMb2zd_a#3;`adn0000<MNUMnLSTZq<12jt literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-144x144.png b/public/assets/icons/icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..f3f8750b3c62ba374e6729c754b1e5e8d5e66878 GIT binary patch literal 1687 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 literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-152x152.png b/public/assets/icons/icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..895b1484a45ac1b237f524300f83eba1b0f5c3e2 GIT binary patch literal 1836 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 avDSZ*H=(-cDN?2Y0000<MNUMnLSTZEm5K-e literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-15x150.png b/public/assets/icons/icon-15x150.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a13296977692a61dd641c16c0ead17e75271b6 GIT binary patch literal 2387 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 FV1nw~t&0Ev literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-167x167.png b/public/assets/icons/icon-167x167.png new file mode 100644 index 0000000000000000000000000000000000000000..6b0680f5ff1f2b891ba2e08c302531d9915f17d8 GIT binary patch literal 2601 zcmV+^3fA?BP)<h;3K|Lk000e1NJLTq005@|005^50{{R3L&&_|0003RP)t-s4;CsK zpxgid{~M_04i6y>o7oNy9}g2J8ll|}5hN3x+83YO8l~bIr{oKo*$|xC8l>S5oY@tg z+Zv<alF{xIQh02^=n*eVBBI<7DMLA|;4rA)DyH82{r+OS<`!y}8l2V{lgb#3!4pMh z4;wKL7%bK8_!V7-6j^}y{Qm6r{NnQZq}cFAvEmw@*%*ep7j>i-ai11$n-yY=mD27^ zwBr*=YZ5zJ5jIm0B|gCA^?AkV9H840L17u0(-mfs@c8}c^!wZI`LNvbs@m~rzUNf7 z<PRP+nbYrn$m&|T<r$XG7>~sleXkdKst_VM^!okD=k~nf^tIpfjn3_c%<Q@0^gpiP z7=pDEOmLso?**9H&gu7Y!sz>tT9p6*2+B!BK~#9!?VERB;xHJ;8<Osp4o;aOQ#eE! zB8rN8Z#~D&_y0C7DMjYdBJ=aPeE(4T7~#jWl8!JG3WY+UP$(1%g+ifFC=?2XLZSSx z@FL<65=Df6i99o(@Cc=YTMHZIVzGR%P!FaMnnS5Pm)<%k?CTIhRmDG)SfZS~;6!Gw z;JI2hp+j8|Kodb%mH37qiT%=p<8XF}Q_l|WB6EX9f^K{;wp`=*uJjNu{MF2Iu~=Hp zRQ*%T4jv_Mp%3&$fcp!4n@dIRB3ZfxD#;G=1KgJDDQ+rC#niH*gMZ?KcQw>Xk4#)q z_4e$5%5C;x3QAG100l4z7~kd^L(^HD9-tE<HNKEW%w*yGaR?kx*6SP@x?T83dg$=G zpJOHo^53Yy5nZTrJX!z>_!nyI$0X}Xti@H}0)2fO9jLwmBYa9`ay^Pqe}}*oN}{9= z&SC*>OiU;`a4D1c3pgOa?1YL5ZTSQ+J_IGnwU#p?&o|~Re)Omp6fjQo{h&yeGbw*E zdr-Q+zb_qR>%sJ>GZwc1!FYjpBKJ@&C)O1RRYg%$vYsg{*GF2<@Tr6j#*CghxFPdZ z=QN<(>zU8NRaG!{l)lYNhwEkkXXjS_P61Oxfa@C<=u<7;9}~b75ny7A<L9A@oKS@9 zCz_O4RKb)HU^y+$LAAROdOxgCF^JQ1`e32_4ChSuz_Q5CynABCy;|XZ4AyB%k_;w+ z;M*ETD9S=GfW2@i8~_tRxxL_r&^fSu8qwV2;VTO!0^C4D=o}b#cG2VURJ>p!2<v{) zz0RcKr1OgxOa@qTuT$I>gjwknfP07Xwf&jt1n>a4*2xr<nd$V!A6%C_T81;z3DhJS zqLBIoUe;Ix^DEk+Q#M#b(+pPX8BELutI5E^WDRQ^D>>;bxexrqjju-~yLbL_^7eMR zTWQzH2Cge_J3FUWA){S@CU3r+?Cd<BzMcnU>%Sw5Kk>M4U!q|!82vWoI`G_q+A~)! zu6S%(I%Ol;v_9q|M(aDBKY5z`VX;BFI`T9Jo*Uz8p(tJMDkLdz;_>w8l%+3iw$*p7 z>CM-rmiZdXGG06_)*K?QRFO+>ZYR2A%HY|9IefmXoUDBP(8<19`tq+YJ4@t6xS@c( zBIc#1d?o+9dK5N+wn+>tmEEhCx7^B}>@;_B?(Q2@*Ol%XxBQk5YhJHmTs3uSYhQ^q z;KkN+64w(0e3*Z)NvxNZ0wMD6m)LMBds)^ig+sDqA&Kr*A$oTaNg?vdmyJ^Oo;7tE zBp03}%lhkj3A=DjBRaof^Kpc2M1uTPBGEYa+KCPvQ0{nF=bF723E2t>8!$Wjrx`vZ z>Bj;KgJ`L+%`X*gZ?Mu1w(S0rfh&{(??Pr$?~y6*9h1-TcJ+B9N^&wF+vYzc*s|Ps zaomxF>`!dUMJ2B^E}h69(?K^<h{W_=>eA^YRrG8$YkZApiI@#hdA8#X)~xz}x(Z3G zJPw^a^IZi!XxFymx^#93l0uIj&)1Lyj5ln)@^-$%;-iP~b!Tx;bE$Lq3nA<oNlzJc z$NkhQF57H|bEJ?YpjpYtcD=>gH@l_&e%D5>BmN<-yVuF)@r$1=orhL(^w$YAX{~bH zm<}T5sC|j+e*(uw`^UXPx+2@&yB={<H%ME0_4Z~tUJ5*0a~bQ<=QEts^_ts$?j+NR zm3rO&+$FVPHV2*CUxuyN9lr;eH7>0NClB_g)4Yl53h0L%$>FzO?CeXn{KK#<-%F<O zH^cV+QUBmd;Ya+pfIQkd1eN=S-JW4q_M{G-q^-6p+aw28TAJ3kdg<HMrN|+6`rrv( zPo(%^!`_N1<|N>iOw+X2$<1X*F61?3S@V9e+owI7Fa2RzJX&I{hG`o3KsGhY={u6c zRVL(g6?t6%{n4yd-SO^wBoYpPtdr#c@!@JT0s^7D$95-i=qfq*b{z_bLuZ!}8ECut zXebhhtetu=XM^iVNup1mwwr;*x_2pelv`@8Kee?(a&WYA{FVGZwJ$pvn|4>v9pb@@ z*rO}>;Al1HvGkkr;Pbc({_|J6r9j@(&ZXCG->pUdQbqn~v75HpQty@CJ#B{pbA<C^ zC!N65HuI}X4M9gwm(4Y~7PwmZYWehJ(`fn02<$!`dI*QV7bP>C#||gtzFkY^2xlEm zItdyZ2%VpuMbF<OCM&g_-i5BuqMH#->ui;Bcr%LaVOeVovW_B>G2(R_XPsottFf%1 zNoJ4L(0aWjX$BemG03n-Il6QH?#A>zH=4t{Mm;E`$2;p(!E6zPZNxZ&>bd}Ci2$>l ztJ_BVv(*WgUEY@|C}4)bBI8abmziN932tSQg$S5g;C*nJ5$E#pfDRO}FvLAWE;*ad z<b#QA&b3VY^nL0GFqTOnW*88;BQsS59mbY}LqBwZHYQ#2g3$I-fqEhnMB)ff|4j(N zr$eX`Ak_B@8(S$({N&S=6RmkA+jtDWSl(FJsxb)hqdc8DG2k7~k!=n3zJ}2rqrII_ z=<TNg#|5h0!O2v;PpEUu_z;=Q`XrS4^dB5EPI%5=6vnPp0ae6|8ByFW?W?N2sY4Ka zW0-Z~TO2cf5UTwsCH4gcw>n?!Mi@#{A7?7X8e%4b$cd@ocD-6nZUuvJeHfWI5FG|p zDbz)gnHan%B7!)~5?TPsg@g}ctpuO0!q|N>%`wwJtnIr_QS}~i>Fw-&;wFZP7s@|^ z;?y?yV22KKa?2x}G_@e+fkD&U`NgLa%8(DD@VtoOU3hX95B@8OiwP@pj=T$@zI7b+ znZolW=wfQDa?Feo)A!Ixrn-QbnIoo)gF~<T=0PSF%5MzX)(7|NGY|U5Hp%$ET&lyn z;GD?Ba1YC%pHi~1keR2Qydv_KVo(t}%SVl89=JK%8ZDw=_Ipf$ALuv5>czaNB#0an zOl~aOWVar~dE92++~)Sdyo#hyC=?2XLZMJ76bgkxp-?Ck%Kyb*L;d|-vSU0?00000 LNkvXXu0mjf=b#e1 literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-16x16.png b/public/assets/icons/icon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..da230368f4faeea3851301d4a8bfd54d2aca279f GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}RDe&2E5DeQ)WW-byz=}a8q%v@ zN-cfJFQm%HuPC+Xp7h$+{IW)p(=Ui-Ocsf#7YVKu)Nqno{zRhZpm^CbVXs_amsBD9 z1R;wsL47X)WowD<1LC#o#d2qfCiRF$H@Q3h=>ghO?djqeB5}F*bR^$l0}j_f9toQx zWzUve{<l5y%9fY;eMgS(7Aoje5L)@Cy!z^tYq9%%x1Fhx{$;a%_5{{9H!R=JHJ808 zXxGGTqkY1z;`?EL7M+W8AEhijR-kj<hKX@$^@jNuir01LZpcnfiC@;1b$i0HPZ0vF eel05sZc3+Bvbg@q4c`KE27{-opUXO@geCx10cVx~ literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-180x180.png b/public/assets/icons/icon-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..aa4026ada7fc31b9e07134a8587c30651d0f9818 GIT binary patch literal 2784 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 literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-192x192.png b/public/assets/icons/icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..7f10f6b840beb17b3071645763f2882f3284c392 GIT binary patch literal 2416 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 literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-310x310.png b/public/assets/icons/icon-310x310.png new file mode 100644 index 0000000000000000000000000000000000000000..897a114971a641aa58ac741fca546148634fed01 GIT binary patch literal 4814 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 literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-310x50.png b/public/assets/icons/icon-310x50.png new file mode 100644 index 0000000000000000000000000000000000000000..d6ee00f6d102a64276bab331b1bd85822e044693 GIT binary patch literal 1956 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 literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-32x32.png b/public/assets/icons/icon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..47e90085ecd9494ecbdaa8293dc5869c0f1b185f GIT binary patch literal 415 zcmV;Q0bu@#P)<h;3K|Lk000e1NJLTq001BW001Be0{{R3M5Kzw0001NP)t-s4;CsK zpxX};B@PcF8l~bIqTU;+=MD}Z4;CvLqu(2>>Kdoy5<OfLSAH3n(GoXR5im;+8!#H2 z))<V!7>K<We618xcn~H(5F$DmlF1l^w-<l07HO0hc&HU*ju9$E5Fj@W3mg`2oD)cD zD|0#o0002)Nkl<ZILp<N$##P<3`LD3%M)gv0%U6c{~t?&({gIaK6m4V?$MKFi_Ze! zZCUBz2DoTSVO-UqeVt`(s<7yMDnS45UQU*zVd^fD*^Rwg*e2p^lLwMWE(bTczxV=w z73eFIY%#>l=Bs=em{JlWZL5!jfb}Xw43*pys0l65%UwZMJv{5*9O{v9UB_%(vJ0Kc zb%M<73wBmd;dUVKX;>4W<+wXJTNfBEkxLg{aBRC0{}xpfy<&_bXU`g7`&wA$`I*Dy z^Eh=P`aF2=v&S|ZrFQ{J#Av)ul1!bVI6wmwd7)9f0T9J!@&h<?3Y}t_5mEpE002ov JPDHLkV1gahqkI4W literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-384x384.png b/public/assets/icons/icon-384x384.png new file mode 100644 index 0000000000000000000000000000000000000000..4c5babf786c216e908c36a632f3301be9c48ad85 GIT binary patch literal 3140 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 literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-48x48.png b/public/assets/icons/icon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..7874461ff6727c25a8154d94edb6bd3f5ef5bf19 GIT binary patch literal 607 zcmV-l0-*hgP)<h;3K|Lk000e1NJLTq001xm001xu0{{R3VB86{0002PP)t-s4;CsK zpxZ#O;T2ngjL+>DiN2uM@GYp`6j62&Dnt++G&-%|CZydUqud&u*czJD6Gv*=@cFyq z^ck7b7>&agb)*m>I2V7h4;e1%_WR%R`p@e3#^?5{+wo1c;~9|06=#zaOmGr6RS+XP z|NsB)_x$Gc``z*S!Q}P0;`FiI@{rN(iOuX~z2;rI<r$RA8IHslg0vTSs1|RW6=RJR zTZ0lnU=lS_`27Bx)bEzi?Rm%QDW=^Rhr1M3eG)@t5GO!M(MXX100CD?L_t(Y$L-J8 za>6hWK+#<xx%UF5w@^Zd5J*q{|EppRX6)cbp5Z)rtQ}uThPzu-;f8Q6i6Q6te6eSY z?Gz|t;n|aNh~B=d1^Z*HmuPeMH!+JL`7BiXNd?bXj9pw#@v%hhZy}pl#>)-}%|9b` zrIMg4r+@n0o`k`w>1g3XupLo*wc8jmz92UE<fB=AVN>jk7Spk+3yn8Nb(+gZJgdat z9}Pax>K%TiCPl4H$O8#SPK#hxP(yBMBM%-ZB3+S@8je1Man=cvft=nDdC-`nE)en( z?OpGrgGw|JT2!E@PUk{P)Mjl;MM~*J!;|$O73hQz5p|V6Q4AM+pkjnUGAQT5{{pw4 z2!<Y(=^g_}@Qb!~%`V%)g<gJOS$!E&0?EZ}2gsvH{Vm3f4Kq!)9Y7Iz9S56XU|9+j t3-)m!!&Q3T={}weSE^PxsS0<u?iZ`J7Cb(Lm{<S+002ovPDHLkV1ltE8T$YL literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-512x512.png b/public/assets/icons/icon-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..d7616f6fa08c21263a42fbabd4b91d00202426a7 GIT binary patch literal 5618 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 literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-70x70.png b/public/assets/icons/icon-70x70.png new file mode 100644 index 0000000000000000000000000000000000000000..d7616f6fa08c21263a42fbabd4b91d00202426a7 GIT binary patch literal 5618 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 literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-72x72.png b/public/assets/icons/icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..79668a29b55c64815b4c328f0b3e89830136835c GIT binary patch literal 854 zcmV-c1F8IpP)<h;3K|Lk000e1NJLTq002k;002k`0{{R3VlzW^0002_P)t-s4;CsK zpxgid{~DgzTDs*B9yAXaEkCc}^ZNZtvf>$$$qyPZ9HHA8j>H#qq7`3=6i#yx9W(s? z|Jv{QuH5o~$?G$!-z=xz8JN--jKLU*y%uVg5;|ECFiZIS{`UL+p4RXgn$#JT%ov5Z z7kR1{Z=4Y=ND(SS>-PNB>-f&;_rm4%xZv}$-t(#2@ub)AZNlhiz~@!C<WRQbJFVa+ zrQIZ?-5{de8J5lzR(udAKoBH6@A&-3<@JTk?0CoObH(X#!|7kV=3cwyMX}*Tu;Ch< z))<Jq7l5)Ce61B_krPE_5<g!NHdEsB`j5};6G?0nNNW>FYK!q1iU0rt7)eAyR9M69 z)7Nt1KoEuDJ}r<Xat>?2n6TJH6HIho=dkJhA7)2{B^VTd@|C`u8QuI<-BTi)&1Ty> zIp`b?ok5v)bm)~JNJ&5K!k@r@t^sKR#T<ZKF<@n?S1cLGly+eznKnNbRty4I^n1IG zMq2)QBU2JEa_pA<g_rzu!B^7h6k*IezinK;`xvGeF8@2MlG1w$L3*b(Qm`)PGzvNR z0A~1fMza)xb6=sn?(_d>PeW=mj*0s-6~co!mbheEB_}Wzi?HTE^fKbS)Kbw4ackh= zL>yr(l7h5i<i$iaR0pCW)ZvpDntTa#Lg9OOdbkS309AKM^TFDDI^EGVp947J4l3M& zCd)CyZTm3QV09X*g}MOF_!i6_XjC!St$rwlnL2x>p-QGZzTJQs6Y-l9F6)Mpn8|W< z8u~RJt;!Bu%tu0v^_Cr!FcasW@kyx34G+#a1GG5WgWv&>4e33<6LZ&`QIsPQLYcLT zDgp{0DM|!YMNzndMNhObgm$!inss!6o}+epr9#uHha-2mi-aQ%-4!{pB_Hi4<dXLj zl2Wun_HNbrpilg;?x{p;Bw<lLKx?HQ&Cc^pb12g$?=Z(tMoN8{P;`^AKZgkblHOc? znM`}bCy9a!LccH~D<0SX2r^lfULEe4w)7WETqW98ppUtiA#Kl{pN*G$rQHNSypkmO gMsBj%Y_>1)4=b}QHtJh0@&Et;07*qoM6N<$f}3`h2><{9 literal 0 HcmV?d00001 diff --git a/public/assets/icons/icon-96x96.png b/public/assets/icons/icon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5a74ce5235056b6e82c887a3c554da53972651 GIT binary patch literal 1195 zcmV;c1XTNpP)<h;3K|Lk000e1NJLTq003YB003YJ0{{R3)kcR30003FP)t-s4;CsK zpxgid|BTP=(d+mR87>eYH{|pC+3)!niM|@0*byyA6<dQmt>7S{+z=x?GpgSjpW5&E z{OI-jcg5*Iu;DPM-Y2Eq9HHA7hr1CqQ4kz5{r>;>{QmU%{n_sL%<1=2x8ygh;3K2m z8k*D@n9&%8xfg)47HydpX_XQ{VG%G(>-YTJ@cFjj^G&tmET`TXkjEH|!54O=5i3Oy zCqduw`bo0l8I#HveXbUBp%hns6jOK;OKuW7TGZ|MtK0E~%j<l{>KT^K7ka7|W|9<7 za}!5tyW;eu+3}at?vT;#YQX1UyXIWF<wmjL7H^#uV~xh<^}^)!u-)>Y*6(h?=x4v@ z8lKs}<Mc{jF&h8?16WB!K~!ko?bwHI;y@Gy(76LH5ITh3L+>F#2!!-rHp%w={~uY~ zi5;39!w_j#@)44y!SZF^n-R8&#bU8oES7&?g6GI5;d)0UKV;5o-AguZ>#~S<<wKsR z_-mJBe8e`j>MmwDV|}9NA9R&u|GA^WQ28nr#W_N}7no8QC)O-~6-%7g$aM^}p6g^C zdsyoHxrlj=I9c7;3G>R{x2h&gH{DypDx_A&$1Yd3a_MqScw)j8R`cu_`qi#?_e|^< zuo-<6aRf%CD`Kb&Rt4i7=m0bS3rBQu4zP0`5?y>38&K%45MZNrtgM?bED?J^VM6q< z1!(qo!)3}IfGwh<hAEz>c32DW<@R@=+G*#up>XHg5iGjWZ2~lrn`SULXuJmG#X%$3 zv_a81X$BjD{R{BxSZD+XtuW^8lI8eosNBaiEsD*w67VIE6htvVvk`eNX&MkkG3&;5 znl`0#?mSqabN!JMsvDYl06ahBfN++6b;I)zNQD4=qxMHggVF?O&?D6=46^|xKU6tN zb6S(PDU~l0&Cu@=c{Vn@I;CmoSX%!P-buf?qXnGNBxE5Pa7!bCPc37b3ORSwY(TAu zcOt!uY5^xyfNY=AZD~Z*7Sm6G(!hP&TmXN8nE)HKfZOE(l6*T$>9>xlfI6lf)0>DE z5Tf+0=D|E{Nx_XNKjqYUPO_+qX(5_=nr`yG+~i|=yMuNkc{)?}WdVC+krUHADJndw z0g)E9`=nl{<YgMQ)5e*6hV+qZ(~>(sFaGi0y*rqs3Ml}O11d|kAR8#(q#w|F9X-Rm zV(;Ss?AyL)giPx`1j*C=A0cxaf}(SJk`b~$a<IwAyAT#!az+7~h%fJp;8nDf_j#b& z@#Vvww__9whH<h4HfKaWH{gK#+<@J>(QP}sVT~*o-%x#OL<fHWcK%B*(RJknqoVO6 z4_5(;!iB5G5kq_o>u_u-dOZ1%_h5}G?Q+CC?|9_|N1d#sUhy;RDsv`fheW?0zo9uV zleP7S(DCBBPzvdfxmezba4%S{*du&zOXej^`d#A(BzD(+<6D1rH7qLeWP>Kd`TC4_ zvQbCX-!qH;FhMpf5idbiIP8<pz)i}rSgcg(5sSrQu~;nsvA=ZLRU8E#0;vE1002ov JPDHLkV1jn!Ni_ff literal 0 HcmV?d00001 diff --git a/public/assets/icons/mask-icon.png b/public/assets/icons/mask-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a3a18b09595bdf9a59719943151eeaf1780a09e2 GIT binary patch literal 5771 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 I)*|$O036||=Kufz literal 0 HcmV?d00001 diff --git a/public/assets/website-card.png b/public/assets/website-card.png new file mode 100644 index 0000000000000000000000000000000000000000..473de1fd8b09ed671be1d489300d6c74356240f1 GIT binary patch literal 19404 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 A(*OVf literal 0 HcmV?d00001 diff --git a/public/humans.txt b/public/humans.txt new file mode 100644 index 0000000..712bfc7 --- /dev/null +++ b/public/humans.txt @@ -0,0 +1,5 @@ +/* TEAM */ + +Software Engineer: Peter Schmalfeldt +Twitter: @mrmidi +From: St. Petersburg, Florida, USA diff --git a/public/manifest.webmanifest b/public/manifest.webmanifest new file mode 100644 index 0000000..f0409e1 --- /dev/null +++ b/public/manifest.webmanifest @@ -0,0 +1,63 @@ +{ + "name": "SFCC Docs", + "short_name": "SFCC Docs", + "theme_color": "#0f162a", + "background_color": "#0f162a", + "display": "standalone", + "scope": "/", + "start_url": "/", + "id": "/", + "icons": [ + { + "src": "/assets/icons/icon-48x48.png", + "type": "image/png", + "sizes": "48x48" + }, + { + "src": "/assets/icons/icon-72x72.png", + "sizes": "72x72", + "type": "image/png" + }, + { + "src": "/assets/icons/icon-96x96.png", + "sizes": "96x96", + "type": "image/png" + }, + { + "src": "/assets/icons/icon-128x128.png", + "sizes": "128x128", + "type": "image/png" + }, + { + "src": "/assets/icons/icon-144x144.png", + "sizes": "144x144", + "type": "image/png" + }, + { + "src": "/assets/icons/icon-152x152.png", + "sizes": "152x152", + "type": "image/png" + }, + { + "src": "/assets/icons/icon-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/assets/icons/icon-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/assets/icons/icon-384x384.png", + "sizes": "384x384", + "type": "image/png" + }, + { + "src": "/assets/icons/icon-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} diff --git a/sfcc-docs.code-workspace b/sfcc-docs.code-workspace index 02f29e3..18e3742 100644 --- a/sfcc-docs.code-workspace +++ b/sfcc-docs.code-workspace @@ -14,7 +14,9 @@ "applepay", "bancontact", "bashhistory", + "bingbot", "callout", + "changefreq", "clsx", "commandhistory", "compareapi", @@ -25,6 +27,7 @@ "finalizeo", "flexsearch", "frontmatter", + "googlebot", "grouplist", "headlessui", "heroicons", @@ -38,6 +41,10 @@ "logomark", "manifestinteractive", "markdoc", + "mrmidi", + "msapplication", + "noodp", + "noydir", "packagelist", "paymentapi", "paymentrequest", @@ -46,6 +53,7 @@ "pipeletapi", "pipeletlist", "pipelets", + "postbuild", "preconfigured", "reindex", "rvest", diff --git a/src/components/Fence.jsx b/src/components/Fence.jsx index 7d837bc..c6e8d26 100644 --- a/src/components/Fence.jsx +++ b/src/components/Fence.jsx @@ -8,6 +8,10 @@ export function Fence({ children, language }) { defaultLanguage = 'html' } + if (children && children.startsWith('<?')) { + defaultLanguage = 'xml' + } + return ( <Highlight {...defaultProps} code={children.trimEnd()} language={language || defaultLanguage} theme={undefined}> {({ className, style, tokens, getTokenProps }) => ( diff --git a/src/components/Layout.jsx b/src/components/Layout.jsx index 63d3a03..a9ec04b 100644 --- a/src/components/Layout.jsx +++ b/src/components/Layout.jsx @@ -55,6 +55,18 @@ function Header({ navigation }) { if (header && header.innerText.includes('[DEPRECATED]')) { header.innerHTML = header.innerHTML.replace('[DEPRECATED] ', '<span class="text-pink-400">[DEPRECATED]</span> ') } + + // Scroll to Anchor or Top of Page + if (router.asPath.includes('#')) { + const splitURL = router.asPath.split('#') + const element = splitURL && splitURL.length > 1 ? document.getElementById(splitURL[1]) : null + const elementTop = element ? element.getBoundingClientRect()?.top : 0 + if (element && elementTop && elementTop > 100) { + window.scrollTo(0, elementTop - 100) + } + } else { + window.scrollTo(0, 0) + } }, [router.asPath]) useEffect(() => { @@ -70,7 +82,7 @@ function Header({ navigation }) { isMenuOpen ? 'hidden' : 'flex' )} > - <div className="mr-6 flex lg:hidden"> + <div className="mr-6 flex overscroll-none lg:hidden"> <MobileNavigation navigation={navigation} /> </div> <div className="relative flex flex-grow basis-0 items-center"> diff --git a/src/components/MobileNavigation.jsx b/src/components/MobileNavigation.jsx index 39a2125..d1feadb 100644 --- a/src/components/MobileNavigation.jsx +++ b/src/components/MobileNavigation.jsx @@ -6,7 +6,7 @@ import { Dialog } from '@headlessui/react' import { Logomark } from '@/components/Logo' import { Navigation } from '@/components/Navigation' -import { publish } from '../events' +import { publish, subscribe } from '../events' function MenuIcon(props) { return ( @@ -27,12 +27,33 @@ function CloseIcon(props) { export function MobileNavigation({ navigation }) { let router = useRouter() let [isOpen, setIsOpen] = useState(false) + let [isFiltering, setIsFiltering] = useState(false) useEffect(() => { document.documentElement.setAttribute('data-menu', isOpen ? 'open' : 'closed') publish('menuChanged', { open: isOpen }) + + const scrollToLink = () => { + const menu = document.querySelector('#mobile-menu') + const activeLink = menu ? menu.querySelector('a.current-nav-link') : null + + const elementTop = activeLink ? activeLink.getBoundingClientRect()?.top : 0 + + if (menu && activeLink && elementTop > 100) { + menu.scrollTo(0, elementTop - 100) + } + } + + if (isOpen) { + setTimeout(scrollToLink, 100) + } }, [isOpen]) + useEffect(() => { + setIsFiltering(document.documentElement.getAttribute('data-filtering') === 'true') + subscribe('menuFiltering', (evt) => setIsFiltering(evt.detail.filtering)) + }, []) + useEffect(() => { if (!isOpen) return @@ -49,12 +70,18 @@ export function MobileNavigation({ navigation }) { } }, [router, isOpen]) + const handleClose = () => { + if (!isFiltering) { + setIsOpen(false) + } + } + return ( <> <button type="button" onClick={() => setIsOpen(true)} className="relative" aria-label="Open navigation"> <MenuIcon className="h-6 w-6 stroke-slate-500" /> </button> - <Dialog open={isOpen} onClose={setIsOpen} className="fixed inset-0 z-10 flex items-start overflow-y-auto bg-slate-900/50 pr-10 backdrop-blur lg:hidden" aria-label="Navigation"> + <Dialog open={isOpen} onClose={handleClose} id="mobile-menu" className="fixed inset-0 z-10 flex items-start overflow-y-auto bg-slate-900/50 pr-10 backdrop-blur lg:hidden" aria-label="Navigation"> <Dialog.Panel className="min-h-full w-full max-w-xs bg-white px-4 pb-12 pt-5 dark:bg-slate-900 sm:px-6"> <div className="flex items-center"> <button type="button" onClick={() => setIsOpen(false)} aria-label="Close navigation"> @@ -64,7 +91,9 @@ export function MobileNavigation({ navigation }) { <Logomark className="h-9 w-9" /> </Link> </div> - <Navigation navigation={navigation} className="mt-5 px-1" /> + <div> + <Navigation navigation={navigation} className="mt-5 px-1" /> + </div> </Dialog.Panel> </Dialog> </> diff --git a/src/components/Navigation.jsx b/src/components/Navigation.jsx index d57e0b8..acdaee6 100644 --- a/src/components/Navigation.jsx +++ b/src/components/Navigation.jsx @@ -9,6 +9,7 @@ import { useRouter } from 'next/router' import { useState, useEffect, useRef } from 'react' import useDebounce from '../debounce' +import { publish } from '../events' function classNames(...classes) { return classes.filter(Boolean).join(' ') @@ -26,6 +27,9 @@ export function Navigation({ navigation, className }) { const [search, setSearch] = useState('') const debouncedSearch = useDebounce(search, 150) + const [scrollNav, setScrollNav] = useState(null) + const debouncedScroll = useDebounce(scrollNav, 150) + useEffect(() => { // Filter the navigation by keyword const filterByKeyword = () => { @@ -93,7 +97,9 @@ export function Navigation({ navigation, className }) { const [inputRef, setInputFocus] = useFocus() const [initialOpen, setInitialOpen] = useState(true) - const [sectionOpen, setSectionOpen] = useState([false, false, false, false]) + const [sectionOpen, setSectionOpen] = useState([false, false, false, false, false]) + + const [scrollTimer, setScrollTimer] = useState(null) const handleSectionClick = (index) => () => { setInitialOpen(false) @@ -122,24 +128,36 @@ export function Navigation({ navigation, className }) { } }, [setInputFocus]) - // Update on Route Change useEffect(() => { const scrollToLink = () => { + clearTimeout(scrollTimer) let newSectionOpen = [...sectionOpen] - const activeLink = document.getElementById('current-nav-link') + const activeLink = document.querySelector('#main-menu a.current-nav-link') if (activeLink) { const index = activeLink.dataset.section if (index) { newSectionOpen[index] = true setSectionOpen(newSectionOpen) - activeLink.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' }) } } } - setTimeout(scrollToLink, 1000) - }, [router.asPath]) + const handleLoad = (evt) => { + clearTimeout(scrollTimer) + setScrollTimer(setTimeout(scrollToLink, 500)) + } + + // Add event listeners + window.addEventListener('pageshow', handleLoad) + window.addEventListener('popstate', handleLoad) + + // Remove event listeners on cleanup + return () => { + window.removeEventListener('pageshow', handleLoad) + window.removeEventListener('popstate', handleLoad) + } + }, [router.asPath, scrollTimer, sectionOpen]) // Handle the panel open state const shouldSectionOpen = (open, section, pathname, keyword) => { @@ -182,7 +200,7 @@ export function Navigation({ navigation, className }) { } return ( - <nav className={clsx('relative lg:text-sm lg:leading-6', className)}> + <nav className={clsx('relative lg:text-sm lg:leading-6 ', className)}> <div className="under pointer-events-none sticky top-0 z-10 ml-0.5"> <div className="h-10 bg-slate-50 dark:bg-slate-900"></div> <div className="pointer-events-auto relative bg-slate-50 dark:bg-slate-900"> @@ -198,6 +216,16 @@ export function Navigation({ navigation, className }) { maxLength={20} spellCheck="false" value={search} + onFocus={() => { + document.documentElement.setAttribute('data-filtering', true) + publish('menuFiltering', { filtering: true }) + }} + onBlur={() => { + setTimeout(() => { + document.documentElement.setAttribute('data-filtering', false) + publish('menuFiltering', { filtering: false }) + }, 100) + }} onInput={(e) => { const value = e.target.value if (!value) { @@ -208,7 +236,7 @@ export function Navigation({ navigation, className }) { setSearch(e.target.value) }} className="dark:highlight-white/5 w-full items-center rounded-md py-1.5 pl-11 pr-3 text-base leading-6 text-slate-400 shadow-sm ring-1 ring-slate-900/10 hover:ring-slate-300 dark:bg-slate-800 dark:hover:bg-slate-700 lg:flex lg:text-sm" - placeholder="Menu filter.." + placeholder="Menu Filter ..." /> {!inputRef?.current?.value && ( <div className="pointer-events-none absolute inset-y-0 right-0 hidden items-center pr-3 md:flex"> @@ -219,7 +247,7 @@ export function Navigation({ navigation, className }) { </div> <div className="h-8 bg-gradient-to-b from-slate-50 dark:from-slate-900"></div> </div> - <ul role="list" className="z-0 ml-0.5 space-y-4"> + <ul role="list" className="z-0 ml-0.5 scroll-mt-40 space-y-4"> {filteredNavigation.length === 0 && <li className="text-slate-500">No results found.</li>} {filteredNavigation.length > 0 && filteredNavigation.map((section, index) => ( @@ -277,14 +305,13 @@ export function Navigation({ navigation, className }) { <Link href={child.href} title={child.alt} - id={child.href === router.pathname ? 'current-nav-link' : `nav-link-${index}`} data-section={index} scroll={false} className={clsx( 'block w-full truncate pl-3 text-sm before:pointer-events-none before:absolute before:-left-0.5 before:top-3 before:h-8 before:w-0.5 before:-translate-y-1/2 before:rounded-full', child.href === router.pathname - ? 'font-semibold text-sky-500 before:bg-sky-400/80 dark:before:bg-sky-500/80' - : 'text-slate-500 before:hidden before:bg-slate-300 hover:text-slate-600 hover:before:block dark:text-slate-400 dark:before:bg-slate-700 dark:hover:text-slate-300' + ? 'current-nav-link font-semibold text-sky-500 before:bg-sky-400/80 dark:before:bg-sky-500/80' + : `nav-link-${index} text-slate-500 before:hidden before:bg-slate-300 hover:text-slate-600 hover:before:block dark:text-slate-400 dark:before:bg-slate-700 dark:hover:text-slate-300` )} > <span className="flex-nowrap"> diff --git a/src/pages/_app.jsx b/src/pages/_app.jsx index 497a590..d220bfd 100644 --- a/src/pages/_app.jsx +++ b/src/pages/_app.jsx @@ -1,4 +1,7 @@ +import 'dotenv/config' + import Head from 'next/head' +import { useRouter } from 'next/router' import { slugifyWithCounter } from '@sindresorhus/slugify' import { Layout } from '@/components/Layout' @@ -51,18 +54,84 @@ function collectHeadings(nodes, slugify = slugifyWithCounter()) { } export default function App({ Component, pageProps }) { - let metaTitle = pageProps.markdoc?.frontmatter.metaTitle - let metaDescription = pageProps.markdoc?.frontmatter.metaDescription - let metaKeywords = pageProps.markdoc?.frontmatter.metaKeywords + const router = useRouter() + + const baseURL = process.env.SITE_URL || 'https://sfccdocs.com' - let tableOfContents = pageProps.markdoc?.content ? collectHeadings(pageProps.markdoc.content) : [] + const metaTitle = pageProps.markdoc?.frontmatter.metaTitle + const metaDescription = pageProps.markdoc?.frontmatter.metaDescription + const metaKeywords = pageProps.markdoc?.frontmatter.metaKeywords + const metaURL = `${baseURL}${router.pathname}` + + const tableOfContents = pageProps.markdoc?.content ? collectHeadings(pageProps.markdoc.content) : [] return ( <> <Head> + {/* Content Settings */} + <meta charSet="utf-8" /> + <meta name="viewport" content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no, user-scalable=no, viewport-fit=cover" /> + <meta name="format-detection" content="telephone=no" /> + <meta httpEquiv="x-ua-compatible" content="ie=edge" /> + <title>{metaTitle}</title> - {metaDescription && <meta name="description" content={metaDescription} />} - {metaKeywords && <meta name="keywords" content={metaKeywords} />} + + <meta name="description" content={metaDescription} /> + <meta name="keywords" content={metaKeywords} /> + + {/* Bot Settings */} + <meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" /> + <meta name="bingbot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" /> + <meta name="robots" content="noodp,noydir" /> + <meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" /> + + {/* PWA Settings */} + <meta name="application-name" content="SFCC Docs" /> + <meta name="mobile-web-app-capable" content="yes" /> + <meta name="theme-color" content="#0f162a" media="(prefers-color-scheme: dark)" /> + <meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)" /> + + {/* Microsoft App Settings */} + <meta name="msapplication-config" content="none" /> + <meta name="msapplication-square70x70logo" content="/assets/icons/icon-70x70.png" /> + <meta name="msapplication-square150x150logo" content="/assets/icons/icon-15x150.png" /> + <meta name="msapplication-square310x310logo" content="/assets/icons/icon-310x310.png" /> + <meta name="msapplication-tap-highlight" content="no" /> + <meta name="msapplication-TileColor" content="#0f162a" media="(prefers-color-scheme: dark)" /> + <meta name="msapplication-TileColor" content="#ffffff" media="(prefers-color-scheme: light)" /> + <meta name="msapplication-wide310x150logo" content="/assets/icons/icon-310x50.png" /> + + {/* Apple Settings */} + <meta name="apple-mobile-web-app-capable" content="yes" /> + <meta name="apple-mobile-web-app-status-bar-style" content="default" /> + <meta name="apple-mobile-web-app-title" content="SFCC Docs" /> + + {/* Twitter Schema */} + <meta name="twitter:card" content="summary" /> + <meta name="twitter:creator" content="@mrmidi" /> + <meta name="twitter:description" content={metaDescription} /> + <meta name="twitter:image" content={`${baseURL}/assets/website-card.png`} /> + <meta name="twitter:title" content={metaTitle} /> + <meta name="twitter:url" content={metaURL} /> + + {/* Open Graph Schema */} + <meta property="og:description" content={metaDescription} /> + <meta property="og:image" content={`${baseURL}/assets/website-card.png`} /> + <meta property="og:site_name" content="SFCC Docs" /> + <meta property="og:title" content={metaTitle} /> + <meta property="og:type" content="website" /> + <meta property="og:url" content={metaURL} /> + + {/* Icons */} + <link rel="apple-touch-icon" href="/assets/icons/icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/assets/icons/icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="167x167" href="/assets/icons/icon-167x167.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/assets/icons/icon-180x180.png" /> + <link rel="icon" href="/favicon.ico" sizes="any" /> + <link rel="mask-icon" href="/assets/icons/mask-icon.png" color="#0f162a" /> + + {/* PWA Manifest */} + <link rel="manifest" href="/manifest.webmanifest" /> </Head> <Layout title={metaTitle} tableOfContents={tableOfContents} isMarkdoc={Boolean(pageProps.markdoc)}> <Component {...pageProps} /> diff --git a/src/pages/_document.jsx b/src/pages/_document.jsx index 9f155be..bb39250 100644 --- a/src/pages/_document.jsx +++ b/src/pages/_document.jsx @@ -65,7 +65,7 @@ const headerScript = ` export default function Document() { return ( - <Html className="h-full scroll-smooth antialiased [font-feature-settings:'ss01']" lang="en"> + <Html className="h-full scroll-smooth antialiased [font-feature-settings:'ss01']" dir="ltr" lang="en-US"> <Head> <script dangerouslySetInnerHTML={{ __html: headerScript }} /> </Head> diff --git a/src/pages/_offline.jsx b/src/pages/_offline.jsx new file mode 100644 index 0000000..645e63f --- /dev/null +++ b/src/pages/_offline.jsx @@ -0,0 +1,20 @@ +import Head from 'next/head' +import Link from 'next/link' + +export default function Offline() { + return ( + <> + <Head> + <title>Offline</title> + </Head> + <div className="flex h-full flex-col items-center justify-center text-center"> + <p className="font-display text-sm font-medium text-slate-900 dark:text-white">OOPS</p> + <h1 className="mt-3 font-display text-3xl tracking-tight text-slate-900 dark:text-white">You're Offline</h1> + <p className="mt-2 text-sm text-slate-500 dark:text-slate-400">Looks like you need the internet for this page.</p> + <Link href="/" className="mt-8 text-sm font-medium text-slate-900 dark:text-white"> + Go back home + </Link> + </div> + </> + ) +} diff --git a/src/pages/index.md b/src/pages/index.md index 486c22e..053b0cd 100644 --- a/src/pages/index.md +++ b/src/pages/index.md @@ -19,12 +19,15 @@ You might ask, **"Are these the official SFCC docs?"** The answer is **No.** Our {% /quick-links %} ---- +{% callout title="Connect the Docs" %} +Easily search the docs from external tools using the following URL. Just replace `<keyword>` with your URL encoded search term. -## Disclaimer +> `https://sfccdocs.com/?q=<keyword>` -{% callout title="You should know!" %} -The only modifications made to the original documentation were how the information was organized structurally. {% /callout %} +--- + +## Disclaimer + The trademarks and product names of Salesforce®, including the mark Salesforce®, are the property of Salesforce.com. SFCC DevOps is not affiliated with Salesforce.com, nor does Salesforce.com sponsor or endorse the SFCC DevOps products or website. The use of the Salesforce® trademark on this project does not indicate an endorsement, recommendation, or business relationship between Salesforce.com and SFCC DevOps.