diff --git a/packages/astro/package.json b/packages/astro/package.json index 22ceda1ca..f5b635bd6 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -120,7 +120,6 @@ "resolve": "^1.22.0", "rollup": "^2.70.2", "semver": "^7.3.7", - "serialize-javascript": "^6.0.0", "shiki": "^0.10.1", "shorthash": "^0.0.2", "sirv": "^2.0.2", diff --git a/packages/astro/src/@types/serialize-javascript.d.ts b/packages/astro/src/@types/serialize-javascript.d.ts deleted file mode 100644 index 35ee081b2..000000000 --- a/packages/astro/src/@types/serialize-javascript.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare module 'serialize-javascript' { - export default function serialize(value: any): string; -} diff --git a/packages/astro/src/core/create-vite.ts b/packages/astro/src/core/create-vite.ts index eca7cd264..d902b9dc7 100644 --- a/packages/astro/src/core/create-vite.ts +++ b/packages/astro/src/core/create-vite.ts @@ -21,7 +21,6 @@ const ALWAYS_EXTERNAL = new Set([ ...builtinModules.map((name) => `node:${name}`), '@sveltejs/vite-plugin-svelte', 'micromark-util-events-to-acorn', - 'serialize-javascript', 'node-fetch', 'prismjs', 'shiki', diff --git a/packages/astro/src/runtime/server/hydration.ts b/packages/astro/src/runtime/server/hydration.ts index e7267fe16..cd33d901d 100644 --- a/packages/astro/src/runtime/server/hydration.ts +++ b/packages/astro/src/runtime/server/hydration.ts @@ -1,7 +1,7 @@ import type { AstroComponentMetadata, SSRLoadedRenderer } from '../../@types/astro'; import type { SSRElement, SSRResult } from '../../@types/astro'; import { hydrationSpecifier, serializeListValue } from './util.js'; -import serializeJavaScript from 'serialize-javascript'; +import serializeJavaScript from '../utils/serialize-javascript'; // Serializes props passed into a component so that they can be reused during hydration. // The value is any diff --git a/packages/astro/src/runtime/utils/random-bytes.ts b/packages/astro/src/runtime/utils/random-bytes.ts new file mode 100644 index 000000000..69a052330 --- /dev/null +++ b/packages/astro/src/runtime/utils/random-bytes.ts @@ -0,0 +1,47 @@ +// Based off of https://www.npmjs.com/package/@lumeweb/randombytes-browser and https://www.npmjs.com/package/randombytes +// This rendition adds better browser support, plus better typescript support + +// limit of Crypto.getRandomValues() +// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues +const MAX_BYTES = 65536; + +// Node supports requesting up to this number of bytes +// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48 +const MAX_UINT32 = 4294967295; + +const GlobalCrypto = globalThis.crypto as Crypto; + +export function randomBytes(size: number, cb?: (...args: any) => any) { + if (!(GlobalCrypto && GlobalCrypto.getRandomValues)) { + throw new Error('Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11') + } + + // phantomjs needs to throw + if (size > MAX_UINT32) throw new RangeError('requested too many random bytes'); + + let bytes = new Uint32Array(size) + + if (size > 0) { // getRandomValues fails on IE if size == 0 + if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues + // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues + for (let generated = 0; generated < size; generated += MAX_BYTES) { + // buffer.slice automatically checks if the end is past the end of + // the buffer so we don't have to here + GlobalCrypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES)); + } + } else { + GlobalCrypto.getRandomValues(bytes); + } + } + + if (typeof cb === 'function') { + Promise.resolve().then(() => { + return cb(null, bytes); + }); + return; + } + + return bytes; +} + +export default randomBytes; \ No newline at end of file diff --git a/packages/astro/src/runtime/utils/serialize-javascript.ts b/packages/astro/src/runtime/utils/serialize-javascript.ts new file mode 100644 index 000000000..673f4fe28 --- /dev/null +++ b/packages/astro/src/runtime/utils/serialize-javascript.ts @@ -0,0 +1,277 @@ +// Based off of https://www.npmjs.com/package/serialize-javascript +// Had to replace `random-bytes` so it worked better in the browser + +/* +Copyright (c) 2014, Yahoo! Inc. All rights reserved. +Copyrights licensed under the New BSD License. +See the accompanying LICENSE file for terms. +*/ + +import { randomBytes } from "./random-bytes"; + +// Generate an internal UID to make the regexp pattern harder to guess. +const UID_LENGTH = 16; +const UID = generateUID(); +const PLACE_HOLDER_REGEXP = new RegExp('(\\\\)?"@__(F|R|D|M|S|A|U|I|B|L)-' + UID + '-(\\d+)__@"', 'g'); + +const IS_NATIVE_CODE_REGEXP = /\{\s*\[native code\]\s*\}/g; +const IS_PURE_FUNCTION = /function.*?\(/; +const IS_ARROW_FUNCTION = /.*?=>.*?/; +const UNSAFE_CHARS_REGEXP = /[<>\/\u2028\u2029]/g; + +const RESERVED_SYMBOLS = ['*', 'async']; + +// Mapping of unsafe HTML and invalid JavaScript line terminator chars to their +// Unicode char counterparts which are safe to use in JavaScript strings. +const ESCAPED_CHARS = { + '<': '\\u003C', + '>': '\\u003E', + '/': '\\u002F', + '\u2028': '\\u2028', + '\u2029': '\\u2029' +}; + +function escapeUnsafeChars(unsafeChar: keyof typeof ESCAPED_CHARS): typeof ESCAPED_CHARS[keyof typeof ESCAPED_CHARS] { + return ESCAPED_CHARS[unsafeChar]; +} + +function generateUID() { + let bytes = randomBytes(UID_LENGTH) as Uint32Array; + let result = ''; + for (let i = 0; i < UID_LENGTH; ++i) { + result += bytes[i].toString(16); + } + return result; +} + +function deleteFunctions(obj: Record) { + let functionKeys = []; + for (let key in obj) { + if (typeof obj[key] === "function") { + functionKeys.push(key); + } + } + for (let i = 0; i < functionKeys.length; i++) { + delete obj[functionKeys[i]]; + } +} + +export type TypeGenericFunction = (...args: any[]) => any; +export function serialize(obj: Record | any, options?: number | string | Record): string | any { + options || (options = {}); + + // Backwards-compatibility for `space` as the second argument. + if (typeof options === 'number' || typeof options === 'string') { + options = { space: options }; + } + + let functions: TypeGenericFunction[] = []; + let regexps: RegExp[] = []; + let dates: Date[] = []; + let maps: Map[] = []; + let sets: Set[] = []; + let arrays: any[] = []; + let undefs: undefined[] = []; + let infinities: (typeof Infinity)[] = []; + let bigInts: BigInt[] = []; + let urls: URL[] = []; + + // Returns placeholders for functions and regexps (identified by index) + // which are later replaced by their string representation. + function replacer(key: any, value: any) { + + // For nested function + // @ts-ignore + if (options.ignoreFunction) { + deleteFunctions(value); + } + + if (!value && value !== undefined) { + return value; + } + + // If the value is an object w/ a toJSON method, toJSON is called before + // the replacer runs, so we use this[key] to get the non-toJSONed value. + // @ts-ignore + let origValue = (this as any)[key]; + let type = typeof origValue; + + if (type === 'object') { + if (origValue instanceof RegExp) { + return '@__R-' + UID + '-' + (regexps.push(origValue) - 1) + '__@'; + } + + if (origValue instanceof Date) { + return '@__D-' + UID + '-' + (dates.push(origValue) - 1) + '__@'; + } + + if (origValue instanceof Map) { + return '@__M-' + UID + '-' + (maps.push(origValue) - 1) + '__@'; + } + + if (origValue instanceof Set) { + return '@__S-' + UID + '-' + (sets.push(origValue) - 1) + '__@'; + } + + if (origValue instanceof Array) { + let isSparse = origValue.filter(function () { return true }).length !== origValue.length; + if (isSparse) { + return '@__A-' + UID + '-' + (arrays.push(origValue) - 1) + '__@'; + } + } + + if (origValue instanceof URL) { + return '@__L-' + UID + '-' + (urls.push(origValue) - 1) + '__@'; + } + } + + if (type === 'function') { + return '@__F-' + UID + '-' + (functions.push(origValue) - 1) + '__@'; + } + + if (type === 'undefined') { + return '@__U-' + UID + '-' + (undefs.push(origValue) - 1) + '__@'; + } + + if (type === 'number' && !isNaN(origValue) && !isFinite(origValue)) { + return '@__I-' + UID + '-' + (infinities.push(origValue) - 1) + '__@'; + } + + if (type === 'bigint') { + return '@__B-' + UID + '-' + (bigInts.push(origValue) - 1) + '__@'; + } + + return value; + } + + function serializeFunc(fn: TypeGenericFunction) { + let serializedFn = fn.toString(); + if (IS_NATIVE_CODE_REGEXP.test(serializedFn)) { + throw new TypeError('Serializing native function: ' + fn.name); + } + + // pure functions, example: {key: function() {}} + if (IS_PURE_FUNCTION.test(serializedFn)) { + return serializedFn; + } + + // arrow functions, example: arg1 => arg1+5 + if (IS_ARROW_FUNCTION.test(serializedFn)) { + return serializedFn; + } + + let argsStartsAt = serializedFn.indexOf('('); + let def = serializedFn.substr(0, argsStartsAt) + .trim() + .split(' ') + .filter(function (val: string) { return val.length > 0 }); + + let nonReservedSymbols = def.filter(function (val: string) { + return RESERVED_SYMBOLS.indexOf(val) === -1 + }); + + // enhanced literal objects, example: {key() {}} + if (nonReservedSymbols.length > 0) { + return (def.indexOf('async') > -1 ? 'async ' : '') + 'function' + + (def.join('').indexOf('*') > -1 ? '*' : '') + + serializedFn.substr(argsStartsAt); + } + + // arrow functions + return serializedFn; + } + + // Check if the parameter is function + if (options.ignoreFunction && typeof obj === "function") { + obj = undefined; + } + // Protects against `JSON.stringify()` returning `undefined`, by serializing + // to the literal string: "undefined". + if (obj === undefined) { + return String(obj); + } + + let str; + + // Creates a JSON string representation of the value. + // NOTE: Node 0.12 goes into slow mode with extra JSON.stringify() args. + if (options.isJSON && !options.space) { + str = JSON.stringify(obj); + } else { + // @ts-ignore + str = JSON.stringify(obj, options.isJSON ? null : replacer, options.space); + } + + // Protects against `JSON.stringify()` returning `undefined`, by serializing + // to the literal string: "undefined". + if (typeof str !== 'string') { + return String(str); + } + + // Replace unsafe HTML and invalid JavaScript line terminator chars with + // their safe Unicode char counterpart. This _must_ happen before the + // regexps and functions are serialized and added back to the string. + if (options.unsafe !== true) { + // @ts-ignore + str = str.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars); + } + + if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && arrays.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0 && urls.length === 0) { + return str; + } + + // Replaces all occurrences of function, regexp, date, map and set placeholders in the + // JSON string with their string representations. If the original value can + // not be found, then `undefined` is used. + // @ts-ignore + return str.replace(PLACE_HOLDER_REGEXP, function (match, backSlash, type, valueIndex) { + // The placeholder may not be preceded by a backslash. This is to prevent + // replacing things like `"a\"@__R--0__@"` and thus outputting + // invalid JS. + if (backSlash) { + return match; + } + + if (type === 'D') { + return "new Date(\"" + dates[valueIndex].toISOString() + "\")"; + } + + if (type === 'R') { + return "new RegExp(" + serialize(regexps[valueIndex].source) + ", \"" + regexps[valueIndex].flags + "\")"; + } + + if (type === 'M') { + return "new Map(" + serialize(Array.from(maps[valueIndex].entries()), options) + ")"; + } + + if (type === 'S') { + return "new Set(" + serialize(Array.from(sets[valueIndex].values()), options) + ")"; + } + + if (type === 'A') { + return "Array.prototype.slice.call(" + serialize(Object.assign({ length: arrays[valueIndex].length }, arrays[valueIndex]), options) + ")"; + } + + if (type === 'U') { + return 'undefined' + } + + if (type === 'I') { + return infinities[valueIndex]; + } + + if (type === 'B') { + return "BigInt(\"" + bigInts[valueIndex] + "\")"; + } + + if (type === 'L') { + return "new URL(\"" + urls[valueIndex].toString() + "\")"; + } + + let fn = functions[valueIndex]; + + return serializeFunc(fn); + }); +} + +export default serialize; \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6552ef97d..4a21808b8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,13 +28,13 @@ importers: '@changesets/changelog-github': 0.4.4 '@changesets/cli': 2.22.0 '@octokit/action': 3.18.0 - '@typescript-eslint/eslint-plugin': 5.20.0_b9ac9b5656ce5dffade639fcf5e491bf - '@typescript-eslint/parser': 5.20.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/eslint-plugin': 5.21.0_829e74f28e9c9eb05edda582d47d45b8 + '@typescript-eslint/parser': 5.21.0_eslint@8.14.0+typescript@4.6.3 del: 6.0.0 esbuild: 0.14.38 - eslint: 8.13.0 - eslint-config-prettier: 8.5.0_eslint@8.13.0 - eslint-plugin-prettier: 4.0.0_1815ac95b7fb26c13c7d48a8eef62d0f + eslint: 8.14.0 + eslint-config-prettier: 8.5.0_eslint@8.14.0 + eslint-plugin-prettier: 4.0.0_665eb419c9d7860ca0c224f7f6dcdace execa: 6.1.0 patch-package: 6.4.7 prettier: 2.6.2 @@ -65,7 +65,7 @@ importers: devDependencies: '@astrojs/preact': link:../../packages/integrations/preact astro: link:../../packages/astro - sass: 1.50.1 + sass: 1.51.0 examples/component: specifiers: @@ -158,9 +158,9 @@ importers: '@webcomponents/template-shadowroot': 0.1.0 lit: 2.2.2 preact: 10.7.1 - react: 18.0.0 - react-dom: 18.0.0_react@18.0.0 - solid-js: 1.3.16 + react: 18.1.0 + react-dom: 18.1.0_react@18.1.0 + solid-js: 1.3.17 svelte: 3.47.0 vue: 3.2.33 devDependencies: @@ -190,8 +190,8 @@ importers: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - react: 18.0.0 - react-dom: 18.0.0_react@18.0.0 + react: 18.1.0 + react-dom: 18.1.0_react@18.1.0 devDependencies: '@astrojs/react': link:../../packages/integrations/react astro: link:../../packages/astro @@ -202,7 +202,7 @@ importers: astro: ^1.0.0-beta.18 solid-js: ^1.3.16 dependencies: - solid-js: 1.3.16 + solid-js: 1.3.17 devDependencies: '@astrojs/solid-js': link:../../packages/integrations/solid astro: link:../../packages/astro @@ -250,9 +250,9 @@ importers: '@webcomponents/template-shadowroot': 0.1.0 lit: 2.2.2 preact: 10.7.1 - react: 18.0.0 - react-dom: 18.0.0_react@18.0.0 - solid-js: 1.3.16 + react: 18.1.0 + react-dom: 18.1.0_react@18.1.0 + solid-js: 1.3.17 svelte: 3.47.0 vue: 3.2.33 devDependencies: @@ -287,7 +287,7 @@ importers: devDependencies: '@astrojs/preact': link:../../packages/integrations/preact astro: link:../../packages/astro - sass: 1.50.1 + sass: 1.51.0 examples/ssr: specifiers: @@ -324,12 +324,12 @@ importers: react-dom: ^18.0.0 sass: ^1.50.1 dependencies: - react: 18.0.0 - react-dom: 18.0.0_react@18.0.0 + react: 18.1.0 + react-dom: 18.1.0_react@18.1.0 devDependencies: '@astrojs/react': link:../../packages/integrations/react astro: link:../../packages/astro - sass: 1.50.1 + sass: 1.51.0 examples/with-markdown: specifiers: @@ -346,8 +346,8 @@ importers: vue: ^3.2.33 dependencies: preact: 10.7.1 - react: 18.0.0 - react-dom: 18.0.0_react@18.0.0 + react: 18.1.0 + react-dom: 18.1.0_react@18.1.0 svelte: 3.47.0 vue: 3.2.33 devDependencies: @@ -403,12 +403,12 @@ importers: vue: ^3.2.33 dependencies: '@nanostores/preact': 0.1.3_nanostores@0.5.12+preact@10.7.1 - '@nanostores/react': 0.1.5_33de46f26c75888291546388c72611d1 + '@nanostores/react': 0.1.5_407e9911d1bb1a589c959c61993fa28f '@nanostores/vue': 0.4.1_nanostores@0.5.12+vue@3.2.33 nanostores: 0.5.12 preact: 10.7.1 - react: 18.0.0 - react-dom: 18.0.0_react@18.0.0 + react: 18.1.0 + react-dom: 18.1.0_react@18.1.0 solid-nanostores: 0.0.6 vue: 3.2.33 devDependencies: @@ -430,7 +430,7 @@ importers: devDependencies: '@astrojs/tailwind': link:../../packages/integrations/tailwind astro: link:../../packages/astro - autoprefixer: 10.4.4_postcss@8.4.12 + autoprefixer: 10.4.5_postcss@8.4.12 canvas-confetti: 1.5.1 postcss: 8.4.12 tailwindcss: 3.0.24 @@ -518,7 +518,6 @@ importers: rollup: ^2.70.2 sass: ^1.50.1 semver: ^7.3.7 - serialize-javascript: ^6.0.0 shiki: ^0.10.1 shorthash: ^0.0.2 sirv: ^2.0.2 @@ -542,8 +541,8 @@ importers: '@babel/generator': 7.17.9 '@babel/parser': 7.17.9 '@babel/traverse': 7.17.9 - '@proload/core': 0.3.2-next.4 - '@proload/plugin-tsm': 0.2.1-next.0_@proload+core@0.3.2-next.4 + '@proload/core': 0.3.2 + '@proload/plugin-tsm': 0.2.1_@proload+core@0.3.2 ast-types: 0.14.2 boxen: 6.2.1 ci-info: 3.3.0 @@ -578,7 +577,6 @@ importers: resolve: 1.22.0 rollup: 2.70.2 semver: 7.3.7 - serialize-javascript: 6.0.0 shiki: 0.10.1 shorthash: 0.0.2 sirv: 2.0.2 @@ -588,14 +586,14 @@ importers: strip-ansi: 7.0.1 supports-esm: 1.0.0 tsconfig-resolver: 3.0.1 - vite: 2.9.5_sass@1.50.1 + vite: 2.9.6_sass@1.51.0 yargs-parser: 21.0.1 zod: 3.14.4 devDependencies: '@babel/types': 7.17.0 '@types/babel__core': 7.1.19 '@types/babel__generator': 7.6.4 - '@types/babel__traverse': 7.17.0 + '@types/babel__traverse': 7.17.1 '@types/chai': 4.3.1 '@types/common-ancestor-path': 1.0.0 '@types/connect': 3.4.35 @@ -617,7 +615,7 @@ importers: chai: 4.3.6 cheerio: 1.0.0-rc.10 mocha: 9.2.2 - sass: 1.50.1 + sass: 1.51.0 srcset-parse: 1.1.0 packages/astro-prism: @@ -1012,7 +1010,7 @@ importers: '@astrojs/svelte': link:../../../../integrations/svelte '@astrojs/vue': link:../../../../integrations/vue astro: link:../../.. - autoprefixer: 10.4.4_postcss@8.4.12 + autoprefixer: 10.4.5_postcss@8.4.12 postcss: 8.4.12 packages/astro/test/fixtures/preact-component: @@ -1035,8 +1033,8 @@ importers: '@astrojs/react': link:../../../../integrations/react '@astrojs/vue': link:../../../../integrations/vue astro: link:../../.. - react: 18.0.0 - react-dom: 18.0.0_react@18.0.0 + react: 18.1.0 + react-dom: 18.1.0_react@18.1.0 vue: 3.2.33 packages/astro/test/fixtures/remote-css: @@ -1057,7 +1055,7 @@ importers: sass: ^1.50.1 dependencies: astro: link:../../.. - sass: 1.50.1 + sass: 1.51.0 packages/astro/test/fixtures/slots-preact: specifiers: @@ -1176,7 +1174,7 @@ importers: dependencies: '@astrojs/tailwind': link:../../../../integrations/tailwind astro: link:../../.. - autoprefixer: 10.4.4_postcss@8.4.12 + autoprefixer: 10.4.5_postcss@8.4.12 postcss: 8.4.12 tailwindcss: 3.0.24 @@ -1357,11 +1355,11 @@ importers: '@babel/plugin-transform-react-jsx': 7.17.3 devDependencies: '@types/react': 17.0.44 - '@types/react-dom': 17.0.15 + '@types/react-dom': 17.0.16 astro: link:../../astro astro-scripts: link:../../../scripts - react: 18.0.0 - react-dom: 18.0.0_react@18.0.0 + react: 18.1.0 + react-dom: 18.1.0_react@18.1.0 packages/integrations/sitemap: specifiers: @@ -1381,11 +1379,11 @@ importers: babel-preset-solid: ^1.3.16 solid-js: ^1.3.16 dependencies: - babel-preset-solid: 1.3.16 + babel-preset-solid: 1.3.17 devDependencies: astro: link:../../astro astro-scripts: link:../../../scripts - solid-js: 1.3.16 + solid-js: 1.3.17 packages/integrations/svelte: specifiers: @@ -1414,8 +1412,8 @@ importers: postcss: ^8.4.12 tailwindcss: ^3.0.24 dependencies: - '@proload/core': 0.3.1 - autoprefixer: 10.4.4_postcss@8.4.12 + '@proload/core': 0.3.2 + autoprefixer: 10.4.5_postcss@8.4.12 postcss: 8.4.12 tailwindcss: 3.0.24 devDependencies: @@ -1545,7 +1543,7 @@ importers: '@rollup/plugin-typescript': 8.3.2_056aba5e56e0ab5307259a29131f3fbe '@types/chai': 4.3.1 '@types/mocha': 9.1.1 - '@types/node': 14.18.13 + '@types/node': 14.18.16 '@ungap/structured-clone': 0.3.4 abort-controller: 3.0.0 chai: 4.3.6 @@ -1745,8 +1743,8 @@ packages: lodash: 4.17.21 source-map: 0.7.3 typescript: 4.6.3 - vscode-css-languageservice: 5.4.1 - vscode-html-languageservice: 4.2.4 + vscode-css-languageservice: 5.4.2 + vscode-html-languageservice: 4.2.5 vscode-languageserver: 7.0.0 vscode-languageserver-protocol: 3.16.0 vscode-languageserver-textdocument: 1.0.4 @@ -1829,7 +1827,7 @@ packages: '@babel/compat-data': 7.17.7 '@babel/core': 7.17.9 '@babel/helper-validator-option': 7.16.7 - browserslist: 4.20.2 + browserslist: 4.20.3 semver: 6.3.0 /@babel/helper-create-class-features-plugin/7.17.9_@babel+core@7.17.9: @@ -3344,8 +3342,8 @@ packages: resolution: {integrity: sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==} dev: false - /@eslint/eslintrc/1.2.1: - resolution: {integrity: sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==} + /@eslint/eslintrc/1.2.2: + resolution: {integrity: sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -3393,8 +3391,8 @@ packages: - supports-color dev: true - /@jridgewell/resolve-uri/3.0.5: - resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==} + /@jridgewell/resolve-uri/3.0.6: + resolution: {integrity: sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==} engines: {node: '>=6.0.0'} /@jridgewell/sourcemap-codec/1.4.11: @@ -3403,7 +3401,7 @@ packages: /@jridgewell/trace-mapping/0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: - '@jridgewell/resolve-uri': 3.0.5 + '@jridgewell/resolve-uri': 3.0.6 '@jridgewell/sourcemap-codec': 1.4.11 /@jsdevtools/rehype-toc/3.0.2: @@ -3425,7 +3423,7 @@ packages: dependencies: '@lit-labs/ssr-client': 1.0.1 '@lit/reactive-element': 1.3.1 - '@types/node': 16.11.27 + '@types/node': 16.11.31 lit: 2.2.2 lit-element: 3.2.0 lit-html: 2.2.2 @@ -3448,7 +3446,7 @@ packages: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: '@babel/runtime': 7.17.9 - '@types/node': 12.20.48 + '@types/node': 12.20.50 find-up: 4.1.0 fs-extra: 8.1.0 dev: true @@ -3475,7 +3473,7 @@ packages: preact: 10.7.1 dev: false - /@nanostores/react/0.1.5_33de46f26c75888291546388c72611d1: + /@nanostores/react/0.1.5_407e9911d1bb1a589c959c61993fa28f: resolution: {integrity: sha512-1XEsszpCDcxNeX21QJ+4mFROdn45ulahJ9oLJEo0IA2HZPkwfjSzG+iSXImqFU5nzo0earvlD09z4C9olf8Sxw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} peerDependencies: @@ -3484,8 +3482,8 @@ packages: react-dom: '>=16.8.0' dependencies: nanostores: 0.5.12 - react: 18.0.0 - react-dom: 18.0.0_react@18.0.0 + react: 18.1.0 + react-dom: 18.1.0_react@18.1.0 dev: false /@nanostores/vue/0.4.1_nanostores@0.5.12+vue@3.2.33: @@ -3646,27 +3644,19 @@ packages: /@polka/url/1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} - /@proload/core/0.3.1: - resolution: {integrity: sha512-u902sdjipQ6WjpV6rxcF0CnQP6Z6Gd54MBPuMbZ5amCcdb/meWY6UtCQSLIJmG+zbXtf8Hwzf6ePBey158QAQQ==} - dependencies: - deepmerge: 4.2.2 - escalade: 3.1.1 - resolve-pkg: 2.0.0 - dev: false - - /@proload/core/0.3.2-next.4: - resolution: {integrity: sha512-58nw3h4+qBDizhlTbt/Q4iGWiiSWcYqdRgIAy3KMla1nqNFO8stG5vzDjPGMPyX6DsAhEj3PCqb4G0d82b2kqQ==} + /@proload/core/0.3.2: + resolution: {integrity: sha512-4ga4HpS0ieVYWVMS+F62W++6SNACBu0lkw8snw3tEdH6AeqZu8i8262n3I81jWAWXVcg3sMfhb+kBexrfGrTUQ==} dependencies: deepmerge: 4.2.2 escalade: 3.1.1 dev: false - /@proload/plugin-tsm/0.2.1-next.0_@proload+core@0.3.2-next.4: - resolution: {integrity: sha512-76NvJmWD1MBip1oifMLohTJfdi4DQihTUnwWacscsLxUaT/5/FNNolD5CIoH/+qhsU6HyVpz8JfEzVpkMuxKfA==} + /@proload/plugin-tsm/0.2.1_@proload+core@0.3.2: + resolution: {integrity: sha512-Ex1sL2BxU+g8MHdAdq9SZKz+pU34o8Zcl9PHWo2WaG9hrnlZme607PU6gnpoAYsDBpHX327+eu60wWUk+d/b+A==} peerDependencies: - '@proload/core': ^0.3.2-next.0 + '@proload/core': ^0.3.2 dependencies: - '@proload/core': 0.3.2-next.4 + '@proload/core': 0.3.2 tsm: 2.2.1 dev: false @@ -3834,7 +3824,7 @@ packages: '@babel/types': 7.17.0 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.17.0 + '@types/babel__traverse': 7.17.1 dev: true /@types/babel__generator/7.6.4: @@ -3850,8 +3840,8 @@ packages: '@babel/types': 7.17.0 dev: true - /@types/babel__traverse/7.17.0: - resolution: {integrity: sha512-r8aveDbd+rzGP+ykSdF3oPuTVRWRfbBiHl0rVDM2yNEmSMXfkObQLV46b4RnCv3Lra51OlfnZhkkFaDl2MIRaA==} + /@types/babel__traverse/7.17.1: + resolution: {integrity: sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==} dependencies: '@babel/types': 7.17.0 dev: true @@ -3867,7 +3857,7 @@ packages: /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 17.0.25 + '@types/node': 17.0.29 dev: true /@types/debug/4.1.7: @@ -3904,7 +3894,7 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 3.0.5 - '@types/node': 17.0.25 + '@types/node': 17.0.29 dev: true /@types/hast/2.3.4: @@ -3968,20 +3958,20 @@ packages: '@types/unist': 2.0.6 dev: false - /@types/node/12.20.48: - resolution: {integrity: sha512-4kxzqkrpwYtn6okJUcb2lfUu9ilnb3yhUOH6qX3nug8D2DupZ2drIkff2yJzYcNJVl3begnlcaBJ7tqiTTzjnQ==} + /@types/node/12.20.50: + resolution: {integrity: sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA==} dev: true - /@types/node/14.18.13: - resolution: {integrity: sha512-Z6/KzgyWOga3pJNS42A+zayjhPbf2zM3hegRQaOPnLOzEi86VV++6FLDWgR1LGrVCRufP/ph2daa3tEa5br1zA==} + /@types/node/14.18.16: + resolution: {integrity: sha512-X3bUMdK/VmvrWdoTkz+VCn6nwKwrKCFTHtqwBIaQJNx4RUIBBUFXM00bqPz/DsDd+Icjmzm6/tyYZzeGVqb6/Q==} dev: true - /@types/node/16.11.27: - resolution: {integrity: sha512-C1pD3kgLoZ56Uuy5lhfOxie4aZlA3UMGLX9rXteq4WitEZH6Rl80mwactt9QG0w0gLFlN/kLBTFnGXtDVWvWQw==} + /@types/node/16.11.31: + resolution: {integrity: sha512-wh/d0pcu/Ie2mqTIqh4tjd0mLAB4JWxOjHQtLN20HS7sjMHiV4Afr+90hITTyZcxowwha5wjv32jGEn1zkEFMg==} dev: false - /@types/node/17.0.25: - resolution: {integrity: sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==} + /@types/node/17.0.29: + resolution: {integrity: sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA==} /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -4005,7 +3995,7 @@ packages: /@types/prompts/2.0.14: resolution: {integrity: sha512-HZBd99fKxRWpYCErtm2/yxUZv6/PBI9J7N4TNFffl5JbrYMHBwF25DjQGTW3b3jmXq+9P6/8fCIb2ee57BFfYA==} dependencies: - '@types/node': 17.0.25 + '@types/node': 17.0.29 dev: false /@types/prop-types/15.7.5: @@ -4015,8 +4005,8 @@ packages: resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} dev: false - /@types/react-dom/17.0.15: - resolution: {integrity: sha512-Tr9VU9DvNoHDWlmecmcsE5ZZiUkYx+nKBzum4Oxe1K0yJVyBlfbq7H3eXjxXqJczBKqPGq3EgfTru4MgKb9+Yw==} + /@types/react-dom/17.0.16: + resolution: {integrity: sha512-DWcXf8EbMrO/gWnQU7Z88Ws/p16qxGpPyjTKTpmBSFKeE+HveVubqGO1CVK7FrwlWD5MuOcvh8gtd0/XO38NdQ==} dependencies: '@types/react': 17.0.44 dev: true @@ -4031,7 +4021,7 @@ packages: /@types/resolve/1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 14.18.13 + '@types/node': 17.0.29 dev: true /@types/resolve/1.20.2: @@ -4041,19 +4031,19 @@ packages: resolution: {integrity: sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==} dependencies: '@types/glob': 7.2.0 - '@types/node': 17.0.25 + '@types/node': 17.0.29 dev: true /@types/sass/1.43.1: resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==} dependencies: - '@types/node': 17.0.25 + '@types/node': 17.0.29 dev: false /@types/sax/1.2.4: resolution: {integrity: sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==} dependencies: - '@types/node': 17.0.25 + '@types/node': 17.0.29 dev: false /@types/scheduler/0.16.2: @@ -4067,7 +4057,7 @@ packages: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: '@types/mime': 1.3.2 - '@types/node': 17.0.25 + '@types/node': 17.0.29 dev: true /@types/tailwindcss/3.0.10: @@ -4088,8 +4078,8 @@ packages: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true - /@typescript-eslint/eslint-plugin/5.20.0_b9ac9b5656ce5dffade639fcf5e491bf: - resolution: {integrity: sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==} + /@typescript-eslint/eslint-plugin/5.21.0_829e74f28e9c9eb05edda582d47d45b8: + resolution: {integrity: sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -4099,12 +4089,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.20.0_eslint@8.13.0+typescript@4.6.3 - '@typescript-eslint/scope-manager': 5.20.0 - '@typescript-eslint/type-utils': 5.20.0_eslint@8.13.0+typescript@4.6.3 - '@typescript-eslint/utils': 5.20.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/parser': 5.21.0_eslint@8.14.0+typescript@4.6.3 + '@typescript-eslint/scope-manager': 5.21.0 + '@typescript-eslint/type-utils': 5.21.0_eslint@8.14.0+typescript@4.6.3 + '@typescript-eslint/utils': 5.21.0_eslint@8.14.0+typescript@4.6.3 debug: 4.3.4 - eslint: 8.13.0 + eslint: 8.14.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -4115,8 +4105,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.20.0_eslint@8.13.0+typescript@4.6.3: - resolution: {integrity: sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==} + /@typescript-eslint/parser/5.21.0_eslint@8.14.0+typescript@4.6.3: + resolution: {integrity: sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -4125,26 +4115,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.20.0 - '@typescript-eslint/types': 5.20.0 - '@typescript-eslint/typescript-estree': 5.20.0_typescript@4.6.3 + '@typescript-eslint/scope-manager': 5.21.0 + '@typescript-eslint/types': 5.21.0 + '@typescript-eslint/typescript-estree': 5.21.0_typescript@4.6.3 debug: 4.3.4 - eslint: 8.13.0 + eslint: 8.14.0 typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.20.0: - resolution: {integrity: sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==} + /@typescript-eslint/scope-manager/5.21.0: + resolution: {integrity: sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.20.0 - '@typescript-eslint/visitor-keys': 5.20.0 + '@typescript-eslint/types': 5.21.0 + '@typescript-eslint/visitor-keys': 5.21.0 dev: true - /@typescript-eslint/type-utils/5.20.0_eslint@8.13.0+typescript@4.6.3: - resolution: {integrity: sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==} + /@typescript-eslint/type-utils/5.21.0_eslint@8.14.0+typescript@4.6.3: + resolution: {integrity: sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -4153,22 +4143,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.20.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/utils': 5.21.0_eslint@8.14.0+typescript@4.6.3 debug: 4.3.4 - eslint: 8.13.0 + eslint: 8.14.0 tsutils: 3.21.0_typescript@4.6.3 typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.20.0: - resolution: {integrity: sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==} + /@typescript-eslint/types/5.21.0: + resolution: {integrity: sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.20.0_typescript@4.6.3: - resolution: {integrity: sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==} + /@typescript-eslint/typescript-estree/5.21.0_typescript@4.6.3: + resolution: {integrity: sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -4176,8 +4166,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.20.0 - '@typescript-eslint/visitor-keys': 5.20.0 + '@typescript-eslint/types': 5.21.0 + '@typescript-eslint/visitor-keys': 5.21.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -4188,29 +4178,29 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.20.0_eslint@8.13.0+typescript@4.6.3: - resolution: {integrity: sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==} + /@typescript-eslint/utils/5.21.0_eslint@8.14.0+typescript@4.6.3: + resolution: {integrity: sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.20.0 - '@typescript-eslint/types': 5.20.0 - '@typescript-eslint/typescript-estree': 5.20.0_typescript@4.6.3 - eslint: 8.13.0 + '@typescript-eslint/scope-manager': 5.21.0 + '@typescript-eslint/types': 5.21.0 + '@typescript-eslint/typescript-estree': 5.21.0_typescript@4.6.3 + eslint: 8.14.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.13.0 + eslint-utils: 3.0.0_eslint@8.14.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.20.0: - resolution: {integrity: sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==} + /@typescript-eslint/visitor-keys/5.21.0: + resolution: {integrity: sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.20.0 + '@typescript-eslint/types': 5.21.0 eslint-visitor-keys: 3.3.0 dev: true @@ -4332,7 +4322,7 @@ packages: jsonc-parser: 2.3.1 vscode-languageserver-textdocument: 1.0.4 vscode-languageserver-types: 3.16.0 - vscode-nls: 5.0.0 + vscode-nls: 5.0.1 vscode-uri: 2.1.2 dev: false @@ -4434,12 +4424,12 @@ packages: event-target-shim: 5.0.1 dev: true - /acorn-jsx/5.3.2_acorn@8.7.0: + /acorn-jsx/5.3.2_acorn@8.7.1: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.7.0 + acorn: 8.7.1 dev: true /acorn-node/1.8.2: @@ -4463,8 +4453,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - /acorn/8.7.0: - resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} + /acorn/8.7.1: + resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -4661,14 +4651,14 @@ packages: engines: {node: '>= 4.0.0'} dev: true - /autoprefixer/10.4.4_postcss@8.4.12: - resolution: {integrity: sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==} + /autoprefixer/10.4.5_postcss@8.4.12: + resolution: {integrity: sha512-Fvd8yCoA7lNX/OUllvS+aS1I7WRBclGXsepbvT8ZaPgrH24rgXpZzF0/6Hh3ZEkwg+0AES/Osd196VZmYoEFtw==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.20.2 + browserslist: 4.20.3 caniuse-lite: 1.0.30001332 fraction.js: 4.2.0 normalize-range: 0.1.2 @@ -4687,8 +4677,8 @@ packages: object.assign: 4.1.2 dev: true - /babel-plugin-jsx-dom-expressions/0.32.16: - resolution: {integrity: sha512-bKyjMBFmwZ9X9eFbJj+zvy1X7PSkenzFS5Qdv7Rli1WwxQceSLb7MjhipnLonKnS63HUqFjm1g0aXp6LJPSiRQ==} + /babel-plugin-jsx-dom-expressions/0.32.17: + resolution: {integrity: sha512-S3VLVh4zBsyWqNhMQq/Kof/sxULKZXaIhiNEy8Iy7XlpMXY4rpJ6XYtRVFtN/2+OnH+tyGDpZRWflvwqbuZxmA==} dependencies: '@babel/helper-module-imports': 7.16.0 '@babel/plugin-syntax-jsx': 7.16.7 @@ -4743,10 +4733,10 @@ packages: - supports-color dev: true - /babel-preset-solid/1.3.16: - resolution: {integrity: sha512-2EvhAh9GK4O8OWsYIQVZIapcA5cjQDHFFDDMSDjnFo8sY+RCUfT6hMg+tnJpJJlwSle4mtE933pxgMsMtVeD5w==} + /babel-preset-solid/1.3.17: + resolution: {integrity: sha512-3lBNUtDj9SkEuO+sJCUlSkW7s8U/yhPJIxmRlXauSMOcGHgeOMu3omx//C9Fnz0DajG3fgSBeQLl7nhy5tS+dA==} dependencies: - babel-plugin-jsx-dom-expressions: 0.32.16 + babel-plugin-jsx-dom-expressions: 0.32.17 transitivePeerDependencies: - '@babel/core' dev: false @@ -4839,13 +4829,13 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist/4.20.2: - resolution: {integrity: sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==} + /browserslist/4.20.3: + resolution: {integrity: sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: caniuse-lite: 1.0.30001332 - electron-to-chromium: 1.4.118 + electron-to-chromium: 1.4.122 escalade: 3.1.1 node-releases: 2.0.3 picocolors: 1.0.0 @@ -5113,8 +5103,8 @@ packages: /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /color-string/1.9.0: - resolution: {integrity: sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==} + /color-string/1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 @@ -5125,7 +5115,7 @@ packages: engines: {node: '>=12.5.0'} dependencies: color-convert: 2.0.1 - color-string: 1.9.0 + color-string: 1.9.1 dev: true /colorette/2.0.16: @@ -5182,7 +5172,7 @@ packages: /core-js-compat/3.22.2: resolution: {integrity: sha512-Fns9lU06ZJ07pdfmPMu7OnkIKGPKDzXKIiuGlSvHHapwqMUF2QnnsWwtueFZtSyZEilP0o6iUeHQwpn7LxtLUw==} dependencies: - browserslist: 4.20.2 + browserslist: 4.20.3 semver: 7.0.0 dev: true @@ -5531,8 +5521,8 @@ packages: jake: 10.8.5 dev: true - /electron-to-chromium/1.4.118: - resolution: {integrity: sha512-maZIKjnYDvF7Fs35nvVcyr44UcKNwybr93Oba2n3HkKDFAtk0svERkLN/HyczJDS3Fo4wU9th9fUQd09ZLtj1w==} + /electron-to-chromium/1.4.122: + resolution: {integrity: sha512-VuLNxTIt8sBWIT2sd186xPd18Y8KcK8myLd9nMdSJOYZwFUxxbLVmX/T1VX+qqaytRlrYYQv39myxJdXtu7Ysw==} /emmet/2.3.6: resolution: {integrity: sha512-pLS4PBPDdxuUAmw7Me7+TcHbykTsBKN/S9XJbUOMFQrNv9MoshzyMFK/R57JBm94/6HSL4vHnDeEmxlC82NQ4A==} @@ -5602,7 +5592,7 @@ packages: object.assign: 4.1.2 string.prototype.trimend: 1.0.4 string.prototype.trimstart: 1.0.4 - unbox-primitive: 1.0.1 + unbox-primitive: 1.0.2 /es-module-lexer/0.10.5: resolution: {integrity: sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw==} @@ -5842,16 +5832,16 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier/8.5.0_eslint@8.13.0: + /eslint-config-prettier/8.5.0_eslint@8.14.0: resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.13.0 + eslint: 8.14.0 dev: true - /eslint-plugin-prettier/4.0.0_1815ac95b7fb26c13c7d48a8eef62d0f: + /eslint-plugin-prettier/4.0.0_665eb419c9d7860ca0c224f7f6dcdace: resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} engines: {node: '>=6.0.0'} peerDependencies: @@ -5862,8 +5852,8 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.13.0 - eslint-config-prettier: 8.5.0_eslint@8.13.0 + eslint: 8.14.0 + eslint-config-prettier: 8.5.0_eslint@8.14.0 prettier: 2.6.2 prettier-linter-helpers: 1.0.0 dev: true @@ -5884,13 +5874,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.13.0: + /eslint-utils/3.0.0_eslint@8.14.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.13.0 + eslint: 8.14.0 eslint-visitor-keys: 2.1.0 dev: true @@ -5904,12 +5894,12 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.13.0: - resolution: {integrity: sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==} + /eslint/8.14.0: + resolution: {integrity: sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.2.1 + '@eslint/eslintrc': 1.2.2 '@humanwhocodes/config-array': 0.9.5 ajv: 6.12.6 chalk: 4.1.2 @@ -5918,7 +5908,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.13.0 + eslint-utils: 3.0.0_eslint@8.14.0 eslint-visitor-keys: 3.3.0 espree: 9.3.1 esquery: 1.4.0 @@ -5952,8 +5942,8 @@ packages: resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.7.0 - acorn-jsx: 5.3.2_acorn@8.7.0 + acorn: 8.7.1 + acorn-jsx: 5.3.2_acorn@8.7.1 eslint-visitor-keys: 3.3.0 dev: true @@ -7074,7 +7064,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 14.18.13 + '@types/node': 17.0.29 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -8657,6 +8647,7 @@ packages: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 + dev: true /raw-body/2.5.1: resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} @@ -8689,14 +8680,14 @@ packages: scheduler: 0.20.2 dev: false - /react-dom/18.0.0_react@18.0.0: - resolution: {integrity: sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==} + /react-dom/18.1.0_react@18.1.0: + resolution: {integrity: sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==} peerDependencies: - react: ^18.0.0 + react: ^18.1.0 dependencies: loose-envify: 1.4.0 - react: 18.0.0 - scheduler: 0.21.0 + react: 18.1.0 + scheduler: 0.22.0 /react/17.0.2: resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} @@ -8706,8 +8697,8 @@ packages: object-assign: 4.1.1 dev: false - /react/18.0.0: - resolution: {integrity: sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==} + /react/18.1.0: + resolution: {integrity: sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==} engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 @@ -8965,13 +8956,7 @@ packages: /resolve-from/5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - - /resolve-pkg/2.0.0: - resolution: {integrity: sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==} - engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - dev: false + dev: true /resolve/1.22.0: resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} @@ -9050,7 +9035,7 @@ packages: jest-worker: 26.6.2 rollup: 2.70.2 serialize-javascript: 4.0.0 - terser: 5.12.1 + terser: 5.13.0 dev: true /rollup/2.70.2: @@ -9097,8 +9082,8 @@ packages: rimraf: 2.7.1 dev: false - /sass/1.50.1: - resolution: {integrity: sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==} + /sass/1.51.0: + resolution: {integrity: sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==} engines: {node: '>=12.0.0'} hasBin: true dependencies: @@ -9117,8 +9102,8 @@ packages: object-assign: 4.1.1 dev: false - /scheduler/0.21.0: - resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==} + /scheduler/0.22.0: + resolution: {integrity: sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==} dependencies: loose-envify: 1.4.0 @@ -9161,6 +9146,7 @@ packages: resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} dependencies: randombytes: 2.1.0 + dev: true /set-blocking/2.0.0: resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=} @@ -9274,7 +9260,7 @@ packages: engines: {node: '>=12.0.0', npm: '>=5.6.0'} hasBin: true dependencies: - '@types/node': 17.0.25 + '@types/node': 17.0.29 '@types/sax': 1.2.4 arg: 5.0.1 sax: 1.2.4 @@ -9331,14 +9317,14 @@ packages: smart-buffer: 4.2.0 dev: true - /solid-js/1.3.16: - resolution: {integrity: sha512-ks9wrUFLx2vzXnR+yXLtL/qO++lixueYsPb9baN0jMNpe1nzAdZn8AbodCmDu9yLPrA7oEFt5CYnzN6/MwtswA==} + /solid-js/1.3.17: + resolution: {integrity: sha512-BFCosxa4hRm+LF7S+kBL5bNr4RtuZif6AaR5FdQkBpV1E6QNLAOFm4HWgEN8vL2aCWEKl384cT8Etw8ziW8aag==} /solid-nanostores/0.0.6: resolution: {integrity: sha512-iwbgdBzQSxBKoxkzaZgC9MGGUsHWJ74at9i7FF0naoqtwGuKdLYOgOJ9QRlA353DHDS/ttH2e0SRS6s3gz8NLQ==} dependencies: nanostores: 0.5.12 - solid-js: 1.3.16 + solid-js: 1.3.17 dev: false /sorcery/0.10.0: @@ -9374,6 +9360,7 @@ packages: /source-map/0.7.3: resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} engines: {node: '>= 8'} + dev: false /source-map/0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} @@ -9782,14 +9769,14 @@ packages: engines: {node: '>=8'} dev: true - /terser/5.12.1: - resolution: {integrity: sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==} + /terser/5.13.0: + resolution: {integrity: sha512-sgQ99P+fRBM1jAYzN9RTnD/xEWx/7LZgYTCRgmYriSq1wxxqiQPJgXkkLBBuwySDWJ2PP0PnVQyuf4xLUuH4Ng==} engines: {node: '>=10'} hasBin: true dependencies: - acorn: 8.7.0 + acorn: 8.7.1 commander: 2.20.3 - source-map: 0.7.3 + source-map: 0.8.0-beta.0 source-map-support: 0.5.21 dev: true @@ -10085,10 +10072,10 @@ packages: engines: {node: '>=4.2.0'} hasBin: true - /unbox-primitive/1.0.1: - resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - function-bind: 1.1.1 + call-bind: 1.0.2 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -10376,8 +10363,8 @@ packages: - supports-color dev: true - /vite/2.9.5_sass@1.50.1: - resolution: {integrity: sha512-dvMN64X2YEQgSXF1lYabKXw3BbN6e+BL67+P3Vy4MacnY+UzT1AfkHiioFSi9+uiDUiaDy7Ax/LQqivk6orilg==} + /vite/2.9.6_sass@1.51.0: + resolution: {integrity: sha512-3IffdrByHW95Yjv0a13TQOQfJs7L5dVlSPuTt432XLbRMriWbThqJN2k/IS6kXn5WY4xBLhK9XoaWay1B8VzUw==} engines: {node: '>=12.2.0'} hasBin: true peerDependencies: @@ -10396,7 +10383,7 @@ packages: postcss: 8.4.12 resolve: 1.22.0 rollup: 2.70.2 - sass: 1.50.1 + sass: 1.51.0 optionalDependencies: fsevents: 2.3.2 dev: false @@ -10406,25 +10393,25 @@ packages: engines: {node: '>=6.0'} hasBin: true dependencies: - acorn: 8.7.0 + acorn: 8.7.1 acorn-walk: 8.2.0 dev: true - /vscode-css-languageservice/5.4.1: - resolution: {integrity: sha512-W7D3GKFXf97ReAaU4EZ2nxVO1kQhztbycJgc1b/Ipr0h8zYWr88BADmrXu02z+lsCS84D7Sr4hoUzDKeaFn2Kg==} + /vscode-css-languageservice/5.4.2: + resolution: {integrity: sha512-DT7+7vfdT2HDNjDoXWtYJ0lVDdeDEdbMNdK4PKqUl2MS8g7PWt7J5G9B6k9lYox8nOfhCEjLnoNC3UKHHCR1lg==} dependencies: vscode-languageserver-textdocument: 1.0.4 vscode-languageserver-types: 3.16.0 - vscode-nls: 5.0.0 + vscode-nls: 5.0.1 vscode-uri: 3.0.3 dev: false - /vscode-html-languageservice/4.2.4: - resolution: {integrity: sha512-1HqvXKOq9WlZyW4HTD+0XzrjZoZ/YFrgQY2PZqktbRloHXVAUKm6+cAcvZi4YqKPVn05/CK7do+KBHfuSaEdbg==} + /vscode-html-languageservice/4.2.5: + resolution: {integrity: sha512-dbr10KHabB9EaK8lI0XZW7SqOsTfrNyT3Nuj0GoPi4LjGKUmMiLtsqzfedIzRTzqY+w0FiLdh0/kQrnQ0tLxrw==} dependencies: vscode-languageserver-textdocument: 1.0.4 vscode-languageserver-types: 3.16.0 - vscode-nls: 5.0.0 + vscode-nls: 5.0.1 vscode-uri: 3.0.3 dev: false @@ -10455,8 +10442,8 @@ packages: vscode-languageserver-protocol: 3.16.0 dev: false - /vscode-nls/5.0.0: - resolution: {integrity: sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==} + /vscode-nls/5.0.1: + resolution: {integrity: sha512-hHQV6iig+M21lTdItKPkJAaWrxALQb/nqpVffakO4knJOh3DrU2SXOMzUzNgo1eADPzu3qSsJY1weCzvR52q9A==} dev: false /vscode-oniguruma/1.6.2: