From a4912d7a12728b049d5cc740a94d5b2332e8ba30 Mon Sep 17 00:00:00 2001 From: scc <66scc66@gmail.com> Date: Tue, 25 Jul 2023 19:27:54 +0800 Subject: [PATCH] feat: add node and browser contract builder (#114) --- package.json | 12 +- packages/contract_builder/package.json | 5 +- packages/contract_builder/src/ast.utils.ts | 4 +- packages/contract_builder/src/browser.ts | 35 +- packages/contract_builder/src/builder.ts | 49 +- packages/contract_builder/src/cli.ts | 40 +- packages/contract_builder/src/index.ts | 5 +- packages/contract_builder/src/node.mts | 13 +- .../src/content/docs/zh-cn/dev_log/202307.md | 10 +- packages/webui/package.json | 1 + packages/webui/vite.config.ts | 1 + pnpm-lock.yaml | 726 ++++++++++++------ 12 files changed, 618 insertions(+), 283 deletions(-) diff --git a/package.json b/package.json index d7b3026..90b431d 100644 --- a/package.json +++ b/package.json @@ -24,11 +24,11 @@ "type": "module", "homepage": "https://github.com/chain-web/trustack#readme", "dependencies": { - "@types/jest": "^29.5.2", - "@types/node": "^20.4.1", - "@typescript-eslint/eslint-plugin": "^5.61.0", - "@typescript-eslint/parser": "^5.61.0", - "eslint": "^8.44.0", + "@types/jest": "^29.5.3", + "@types/node": "^20.4.4", + "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/parser": "^5.62.0", + "eslint": "^8.45.0", "eslint-config-prettier": "^8.8.0", "eslint-define-config": "^1.21.0", "eslint-plugin-import": "^2.27.5", @@ -38,7 +38,7 @@ "jest": "^29.6.1", "lint-staged": "^13.2.3", "prettier": "^2.8.8", - "simple-git-hooks": "^2.8.1", + "simple-git-hooks": "^2.9.0", "ts-jest": "^29.1.1", "typescript": "^5.1.6" }, diff --git a/packages/contract_builder/package.json b/packages/contract_builder/package.json index bac7df6..97a18e9 100644 --- a/packages/contract_builder/package.json +++ b/packages/contract_builder/package.json @@ -9,14 +9,15 @@ "typings": "./src/index.ts", "scripts": { "test": "tsc -p ../tsconfig.build.json && node ./dist/src/cli.js build ./examples/coin/index.ts && rm -rf ./dist", + "dev-build": "tsc -w -p ./tsconfig.build.json", "build": "tsc -p ./tsconfig.build.json" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { - "@swc/core": "^1.3.68", - "@swc/wasm-web": "^1.3.66", + "@swc/core": "^1.3.70", + "@swc/wasm-web": "^1.3.70", "@trustack/vm": "workspace:^1.0.0", "cac": "^6.7.14", "chalk": "^5.3.0", diff --git a/packages/contract_builder/src/ast.utils.ts b/packages/contract_builder/src/ast.utils.ts index 0ca5259..d6ec94a 100644 --- a/packages/contract_builder/src/ast.utils.ts +++ b/packages/contract_builder/src/ast.utils.ts @@ -5,7 +5,7 @@ import type { ExportDeclaration, Expression, ExpressionStatement, - Module, + Program, Span, } from '@swc/core'; @@ -15,7 +15,7 @@ export const BUILDER_NAMES = { CONTRACT_CLASS_NAME: '__contract_class_name__', }; -export const walkTop = (ast: Module): Module => { +export const walkTop = (ast: Program): Program => { // 处理import while (ast.body[0].type === 'ImportDeclaration') { const node = ast.body[0]; diff --git a/packages/contract_builder/src/browser.ts b/packages/contract_builder/src/browser.ts index 198f911..e625c67 100644 --- a/packages/contract_builder/src/browser.ts +++ b/packages/contract_builder/src/browser.ts @@ -1,6 +1,35 @@ export { BUILDER_NAMES } from './ast.utils.js'; +import type { Output, Program } from '@swc/wasm-web'; +import swc, { parseSync, transform } from '@swc/wasm-web'; +import { walkTop } from './ast.utils.js'; +import type { BuildCodeString } from './index.js'; -// TODO -export const buildeCodeString = (code: string): { code: string } => { - return { code }; +export const builder = async (code: string): Promise => { + const opt = parseSync(code, { + syntax: 'typescript', + target: 'es2022', + }); + const contractAst = walkTop(opt) as Program; + // const codeOpt = printSync(contractAst, {}); + // console.log(opt); + // console.log(codeOpt); + // TODO fix error, by https://github.com/swc-project/swc/issues/7140 + const contractCode = await transform(contractAst, { + jsc: { + parser: { + syntax: 'typescript', + }, + target: 'es2022', + }, + }); + + return contractCode; +}; + +export const buildCodeString: BuildCodeString = async (code) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + await (swc as any)(); + const buildCode = await builder(code); + + return buildCode; }; diff --git a/packages/contract_builder/src/builder.ts b/packages/contract_builder/src/builder.ts index 57b529c..ac099f9 100644 --- a/packages/contract_builder/src/builder.ts +++ b/packages/contract_builder/src/builder.ts @@ -1,21 +1,22 @@ -import { resolve } from 'path'; -import { readFileSync, writeFileSync } from 'fs'; -import { bytes } from 'multiformats'; -import { Output, parseSync, printSync, transformSync } from '@swc/core'; -import chalk from 'chalk'; -import type { BuildOption } from './cli.js'; import { walkTop } from './ast.utils.js'; +import type { Output, Program, Options, ParseOptions } from '@swc/core'; -export const buildeCodeString = (code: string): Output => { - const opt = parseSync(code, { +export const buildCodeString = ( + code: string, + buildConfig: { + parseSync: (code: string, opt: ParseOptions) => Program; + transformSync: (ast: Program, opt: Options) => Output; + }, +): Output => { + const opt = buildConfig.parseSync(code, { syntax: 'typescript', target: 'es2022', }); const contractAst = walkTop(opt); - const codeOpt = printSync(contractAst, {}); + // const codeOpt = printSync(contractAst, {}); // console.log(opt); // console.log(codeOpt); - const contractCode = transformSync(contractAst, { + const contractCode = buildConfig.transformSync(contractAst, { jsc: { parser: { syntax: 'typescript', @@ -26,31 +27,3 @@ export const buildeCodeString = (code: string): Output => { return contractCode; }; - -export const builder = async (input: string, opts: BuildOption) => { - try { - console.log(chalk.green('starting build contract...')); - input = resolve(input, './'); - // console.log(codeSnippet); - let code = readFileSync(input).toString(); - // console.log(code); - const res = buildeCodeString(code); - // console.log(contractCode); - const resultUint8 = bytes.fromString(res.code); - // const resultU8String = `export default new Uint8Array([${resultUint8.toString()}]);`; - // console.log(resultUint8); - writeFileSync( - resolve(input, '../index.contract.bin'), - resultUint8.toString(), - { - flag: 'w+', - }, - ); - writeFileSync(resolve(input, '../index.contract.js'), res.code, { - flag: 'w+', - }); - console.log(chalk.green('contract build success')); - } catch (error) { - console.log(error); - } -}; diff --git a/packages/contract_builder/src/cli.ts b/packages/contract_builder/src/cli.ts index 48f4506..3916796 100644 --- a/packages/contract_builder/src/cli.ts +++ b/packages/contract_builder/src/cli.ts @@ -1,10 +1,17 @@ #!/usr/bin/env node +/* eslint-disable import/no-nodejs-modules */ +/* eslint-disable no-console */ /* eslint-disable node/shebang */ +import { readFileSync, writeFileSync } from 'fs'; +import { resolve } from 'path'; import { cac } from 'cac'; import chalk from 'chalk'; +import { parseSync, transformSync } from '@swc/core'; + +import { bytes } from 'multiformats'; import pkg from '../package.json' assert { type: 'json' }; -import { builder } from './builder.js'; +import { buildCodeString } from './builder.js'; const version = pkg.version; const cli = cac('sk-contract-builder'); @@ -13,6 +20,37 @@ export interface BuildOption { watch?: boolean; } +const builder = async (input: string, opts: BuildOption) => { + try { + console.log(chalk.green('starting build contract...')); + input = resolve(input, './'); + // console.log(codeSnippet); + const code = readFileSync(input).toString(); + // console.log(code); + const res = buildCodeString(code, { + parseSync, + transformSync, + }); + // console.log(contractCode); + const resultUint8 = bytes.fromString(res.code); + // const resultU8String = `export default new Uint8Array([${resultUint8.toString()}]);`; + // console.log(resultUint8); + writeFileSync( + resolve(input, '../index.contract.bin'), + resultUint8.toString(), + { + flag: 'w+', + }, + ); + writeFileSync(resolve(input, '../index.contract.js'), res.code, { + flag: 'w+', + }); + console.log(chalk.green('contract build success')); + } catch (error) { + console.log(error); + } +}; + cli .command('build [contract]') .option('--output ', `[string] output file`) diff --git a/packages/contract_builder/src/index.ts b/packages/contract_builder/src/index.ts index 9aa9d54..909ec74 100644 --- a/packages/contract_builder/src/index.ts +++ b/packages/contract_builder/src/index.ts @@ -1,5 +1,8 @@ export { BUILDER_NAMES } from './ast.utils.js'; +export type BuildCodeString = (code: string) => Promise<{ code: string }>; -export const buildeCodeString = (code: string): { code: string } => { +// only for export type +// runtime code will be export by ./node.mts and ./browser.mts +export const buildCodeString: BuildCodeString = async (code) => { return { code }; }; diff --git a/packages/contract_builder/src/node.mts b/packages/contract_builder/src/node.mts index 6ca4560..8e9e9a3 100644 --- a/packages/contract_builder/src/node.mts +++ b/packages/contract_builder/src/node.mts @@ -1,2 +1,13 @@ -export { buildeCodeString } from './builder.js'; export { BUILDER_NAMES } from './ast.utils.js'; +import { parseSync, transformSync } from '@swc/core'; +import { buildCodeString as builder } from './builder.js'; +import type { BuildCodeString } from './index.js'; + +export const buildCodeString: BuildCodeString = async (code) => { + const buildCode = builder(code, { + parseSync, + transformSync, + }); + + return buildCode; +}; diff --git a/packages/docs/src/content/docs/zh-cn/dev_log/202307.md b/packages/docs/src/content/docs/zh-cn/dev_log/202307.md index 919160d..b5ea4d0 100644 --- a/packages/docs/src/content/docs/zh-cn/dev_log/202307.md +++ b/packages/docs/src/content/docs/zh-cn/dev_log/202307.md @@ -25,4 +25,12 @@ description: '' - run: git submodule update --init --recursive ``` -- [ ] 解决了 GitHub action 问题时发现 yml 配置中有很多重复的配置,比如上面配置,可以将这些配置提取到一个单独的文件中,然后在 yml 中引入 +- [ ] 解决 GitHub action 问题时发现 yml 配置中有很多重复的配置,比如上面配置,可以将这些配置提取到一个单独的文件中,然后在 yml 中引入 + +### 7-20~7-25 + +被 swc 的 bug 卡了几天 + +- [ ] 计划把在浏览器中加载并编译合约的流程跑通(sad),但因为 swc-wasm 的问题,暂时没法跑通,等待 swc-wasm 的[修复](https://github.com/swc-project/swc/issues/7140) +- [x] 整理了 contract_builder 的代码,实现 cli、node、browser 三种方式的导出 +- [x] vite dev 处理@swc/wasm-web,不能走预编译,配置了排除 diff --git a/packages/webui/package.json b/packages/webui/package.json index 4b3e647..40807ba 100644 --- a/packages/webui/package.json +++ b/packages/webui/package.json @@ -17,6 +17,7 @@ "@esbuild-plugins/node-globals-polyfill": "^0.2.3", "@trustack/common": "workspace:^1.0.0", "@trustack/contract": "workspace:^1.0.0", + "@trustack/contract_builder": "workspace:^1.0.0", "@trustack/node-modules-polyfill": "^0.2.5", "@trustack/rollup-plugin-node-polyfills": "^0.2.2", "@xstate/react": "^3.2.2", diff --git a/packages/webui/vite.config.ts b/packages/webui/vite.config.ts index b62a63d..2a77a72 100644 --- a/packages/webui/vite.config.ts +++ b/packages/webui/vite.config.ts @@ -42,6 +42,7 @@ export default defineConfig({ target: 'es2020', supported: { bigint: true }, }, + exclude: ['@swc/wasm-web'], }, define: { global: 'globalThis', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e8b03c..7cffa54 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,11 +7,11 @@ importers: .: specifiers: '@trustack/contract': workspace:^1.0.0 - '@types/jest': ^29.5.2 - '@types/node': ^20.4.1 - '@typescript-eslint/eslint-plugin': ^5.61.0 - '@typescript-eslint/parser': ^5.61.0 - eslint: ^8.44.0 + '@types/jest': ^29.5.3 + '@types/node': ^20.4.4 + '@typescript-eslint/eslint-plugin': ^5.62.0 + '@typescript-eslint/parser': ^5.62.0 + eslint: ^8.45.0 eslint-config-prettier: ^8.8.0 eslint-define-config: ^1.21.0 eslint-plugin-import: ^2.27.5 @@ -21,25 +21,25 @@ importers: jest: ^29.6.1 lint-staged: ^13.2.3 prettier: ^2.8.8 - simple-git-hooks: ^2.8.1 + simple-git-hooks: ^2.9.0 ts-jest: ^29.1.1 typescript: ^5.1.6 dependencies: - '@types/jest': 29.5.2 - '@types/node': 20.4.1 - '@typescript-eslint/eslint-plugin': 5.61.0_24v3duij7ab7rtbfz4qzw7dc5u - '@typescript-eslint/parser': 5.61.0_iqf7tbmerllfqanu4l3d6aqdn4 - eslint: 8.44.0 - eslint-config-prettier: 8.8.0_eslint@8.44.0 + '@types/jest': 29.5.3 + '@types/node': 20.4.4 + '@typescript-eslint/eslint-plugin': 5.62.0_tbbci4he2x65aggpp4j2oxxdvm + '@typescript-eslint/parser': 5.62.0_ko3fmmbeyij36muomfgt2u76xu + eslint: 8.45.0 + eslint-config-prettier: 8.8.0_eslint@8.45.0 eslint-define-config: 1.21.0 - eslint-plugin-import: 2.27.5_ejqdggoi4ttnavuewvp24znboa - eslint-plugin-node: 11.1.0_eslint@8.44.0 - eslint-plugin-prettier: 4.2.1_qkgbdr345imkz5woyd5e5k6xse - eslint-plugin-regexp: 1.15.0_eslint@8.44.0 - jest: 29.6.1_@types+node@20.4.1 + eslint-plugin-import: 2.27.5_vdlnholh74uk2lamdhhi4g2qza + eslint-plugin-node: 11.1.0_eslint@8.45.0 + eslint-plugin-prettier: 4.2.1_6nuyjbnyo6rwr4pwddenxlklsi + eslint-plugin-regexp: 1.15.0_eslint@8.45.0 + jest: 29.6.1_@types+node@20.4.4 lint-staged: 13.2.3 prettier: 2.8.8 - simple-git-hooks: 2.8.1 + simple-git-hooks: 2.9.0 ts-jest: 29.1.1_i6gtp52dwlhvyn32a6bohskwlu typescript: 5.1.6 devDependencies: @@ -87,15 +87,15 @@ importers: packages/contract_builder: specifiers: - '@swc/core': ^1.3.68 - '@swc/wasm-web': ^1.3.66 + '@swc/core': ^1.3.70 + '@swc/wasm-web': ^1.3.70 '@trustack/vm': workspace:^1.0.0 cac: ^6.7.14 chalk: ^5.3.0 multiformats: ^11.0.2 dependencies: - '@swc/core': 1.3.68 - '@swc/wasm-web': 1.3.66 + '@swc/core': 1.3.70 + '@swc/wasm-web': 1.3.70 '@trustack/vm': link:../skvm cac: 6.7.14 chalk: 5.3.0 @@ -372,6 +372,7 @@ importers: '@rollup/plugin-inject': ^5.0.3 '@trustack/common': workspace:^1.0.0 '@trustack/contract': workspace:^1.0.0 + '@trustack/contract_builder': workspace:^1.0.0 '@trustack/node-modules-polyfill': ^0.2.5 '@trustack/rollup-plugin-node-polyfills': ^0.2.2 '@types/react': ^18.2.14 @@ -396,6 +397,7 @@ importers: '@esbuild-plugins/node-globals-polyfill': 0.2.3_esbuild@0.17.19 '@trustack/common': link:../common '@trustack/contract': link:../contract + '@trustack/contract_builder': link:../contract_builder '@trustack/node-modules-polyfill': 0.2.5_esbuild@0.17.19 '@trustack/rollup-plugin-node-polyfills': 0.2.2 '@xstate/react': 3.2.2_pw3jtckrkofreyhdypv366cqwu @@ -791,6 +793,11 @@ packages: engines: {node: '>=6.9.0'} dev: false + /@babel/compat-data/7.22.9: + resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/core/7.22.8: resolution: {integrity: sha512-75+KxFB4CZqYRXjx4NlR4J7yGvKumBuZTmV4NV6v09dVXXkuYVYLT68N6HCzLvfJ+fWCxQsntNzKwwIXL4bHnw==} engines: {node: '>=6.9.0'} @@ -814,6 +821,29 @@ packages: - supports-color dev: false + /@babel/core/7.22.9: + resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9_@babel+core@7.22.9 + '@babel/helper-module-transforms': 7.22.9_@babel+core@7.22.9 + '@babel/helpers': 7.22.6 + '@babel/parser': 7.22.7 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.8 + '@babel/types': 7.22.5 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/generator/7.22.7: resolution: {integrity: sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ==} engines: {node: '>=6.9.0'} @@ -824,6 +854,16 @@ packages: jsesc: 2.5.2 dev: false + /@babel/generator/7.22.9: + resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: false + /@babel/helper-annotate-as-pure/7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} @@ -845,6 +885,20 @@ packages: lru-cache: 5.1.1 dev: false + /@babel/helper-compilation-targets/7.22.9_@babel+core@7.22.9: + resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-validator-option': 7.22.5 + browserslist: 4.21.9 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: false + /@babel/helper-environment-visitor/7.22.5: resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} @@ -888,6 +942,20 @@ packages: - supports-color dev: false + /@babel/helper-module-transforms/7.22.9_@babel+core@7.22.9: + resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.5 + dev: false + /@babel/helper-plugin-utils/7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} @@ -950,48 +1018,48 @@ packages: '@babel/types': 7.22.5 dev: false - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.22.8: + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.22.9: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.22.8: + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.22.9: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.22.8: + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.22.9: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.22.8: + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.22.9: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.22.8: + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.22.9: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: false @@ -1005,77 +1073,87 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.22.8: + /@babel/plugin-syntax-jsx/7.22.5_@babel+core@7.22.9: + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.22.9: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.22.8: + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.22.9: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.22.8: + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.22.9: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.22.8: + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.22.9: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.22.8: + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.22.9: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.22.8: + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.22.9: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.22.8: + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.22.9: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-typescript/7.22.5_@babel+core@7.22.8: + /@babel/plugin-syntax-typescript/7.22.5_@babel+core@7.22.9: resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/helper-plugin-utils': 7.22.5 dev: false @@ -1114,7 +1192,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.7 + '@babel/generator': 7.22.9 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-hoist-variables': 7.22.5 @@ -1796,18 +1874,18 @@ packages: requiresBuild: true optional: true - /@eslint-community/eslint-utils/4.4.0_eslint@8.44.0: + /@eslint-community/eslint-utils/4.4.0_eslint@8.45.0: resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.44.0 + eslint: 8.45.0 eslint-visitor-keys: 3.4.1 dev: false - /@eslint-community/regexpp/4.5.1: - resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} + /@eslint-community/regexpp/4.6.0: + resolution: {integrity: sha512-uiPeRISaglZnaZk8vwrjQZ1CxogZeY/4IYft6gBOTqu1WhVXWmCmZMWxUv2Q/pxSvPdp1JPaO62kLOcOkMqWrw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: false @@ -1817,7 +1895,7 @@ packages: dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.6.0 + espree: 9.6.1 globals: 13.20.0 ignore: 5.2.4 import-fresh: 3.3.0 @@ -1915,7 +1993,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.4.1 + '@types/node': 20.4.4 chalk: 4.1.2 jest-message-util: 29.6.1 jest-util: 29.6.1 @@ -1936,14 +2014,14 @@ packages: '@jest/test-result': 29.6.1 '@jest/transform': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.1 + '@types/node': 20.4.4 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.5.0 - jest-config: 29.6.1_@types+node@20.4.1 + jest-config: 29.6.1_@types+node@20.4.4 jest-haste-map: 29.6.1 jest-message-util: 29.6.1 jest-regex-util: 29.4.3 @@ -1970,7 +2048,7 @@ packages: dependencies: '@jest/fake-timers': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.1 + '@types/node': 20.4.4 jest-mock: 29.6.1 dev: false @@ -1997,7 +2075,7 @@ packages: dependencies: '@jest/types': 29.6.1 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.4.1 + '@types/node': 20.4.4 jest-message-util: 29.6.1 jest-mock: 29.6.1 jest-util: 29.6.1 @@ -2030,7 +2108,7 @@ packages: '@jest/transform': 29.6.1 '@jest/types': 29.6.1 '@jridgewell/trace-mapping': 0.3.18 - '@types/node': 20.4.1 + '@types/node': 20.4.4 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -2092,7 +2170,7 @@ packages: resolution: {integrity: sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@jest/types': 29.6.1 '@jridgewell/trace-mapping': 0.3.18 babel-plugin-istanbul: 6.1.1 @@ -2118,7 +2196,7 @@ packages: '@jest/schemas': 29.6.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.4.1 + '@types/node': 20.4.4 '@types/yargs': 17.0.24 chalk: 4.1.2 dev: false @@ -3680,6 +3758,16 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-arm64/1.3.70: + resolution: {integrity: sha512-31+mcl0dgdRHvZRjhLOK9V6B+qJ7nxDZYINr9pBlqGWxknz37Vld5KK19Kpr79r0dXUZvaaelLjCnJk9dA2PcQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false optional: true /@swc/core-darwin-x64/1.3.68: @@ -3688,6 +3776,16 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64/1.3.70: + resolution: {integrity: sha512-GMFJ65E18zQC80t0os+TZvI+8lbRuitncWVge/RXmXbVLPRcdykP4EJ87cqzcG5Ah0z18/E0T+ixD6jHRisrYQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false optional: true /@swc/core-linux-arm-gnueabihf/1.3.68: @@ -3696,6 +3794,16 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf/1.3.70: + resolution: {integrity: sha512-wjhCwS8LCiAq2VedF1b4Bryyw68xZnfMED4pLRazAl8BaUlDFANfRBORNunxlfHQj4V3x39IaiLgCZRHMdzXBg==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false optional: true /@swc/core-linux-arm64-gnu/1.3.68: @@ -3704,6 +3812,16 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu/1.3.70: + resolution: {integrity: sha512-9D/Rx67cAOnMiexvCqARxvhj7coRajTp5HlJHuf+rfwMqI2hLhpO9/pBMQxBUAWxODO/ksQ/OF+GJRjmtWw/2A==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false optional: true /@swc/core-linux-arm64-musl/1.3.68: @@ -3712,6 +3830,16 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl/1.3.70: + resolution: {integrity: sha512-gkjxBio7XD+1GlQVVyPP/qeFkLu83VhRHXaUrkNYpr5UZG9zZurBERT9nkS6Y+ouYh+Q9xmw57aIyd2KvD2zqQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false optional: true /@swc/core-linux-x64-gnu/1.3.68: @@ -3720,6 +3848,16 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu/1.3.70: + resolution: {integrity: sha512-/nCly+V4xfMVwfEUoLLAukxUSot/RcSzsf6GdsGTjFcrp5sZIntAjokYRytm3VT1c2TK321AfBorsi9R5w8Y7Q==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false optional: true /@swc/core-linux-x64-musl/1.3.68: @@ -3728,6 +3866,16 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl/1.3.70: + resolution: {integrity: sha512-HoOsPJbt361KGKaivAK0qIiYARkhzlxeAfvF5NlnKxkIMOZpQ46Lwj3tR0VWohKbrhS+cYKFlVuDi5XnDkx0XA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false optional: true /@swc/core-win32-arm64-msvc/1.3.68: @@ -3736,6 +3884,16 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc/1.3.70: + resolution: {integrity: sha512-hm4IBK/IaRil+aj1cWU6f0GyAdHpw/Jr5nyFYLM2c/tt7w2t5hgb8NjzM2iM84lOClrig1fG6edj2vCF1dFzNQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false optional: true /@swc/core-win32-ia32-msvc/1.3.68: @@ -3744,6 +3902,16 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc/1.3.70: + resolution: {integrity: sha512-5cgKUKIT/9Fp5fCA+zIjYCQ4dSvjFYOeWGZR3QiTXGkC4bGa1Ji9SEPyeIAX0iruUnKjYaZB9RvHK2tNn7RLrQ==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false optional: true /@swc/core-win32-x64-msvc/1.3.68: @@ -3752,6 +3920,16 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc/1.3.70: + resolution: {integrity: sha512-LE8lW46+TQBzVkn2mHBlk8DIElPIZ2dO5P8AbJiARNBAnlqQWu67l9gWM89UiZ2l33J2cI37pHzON3tKnT8f9g==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false optional: true /@swc/core/1.3.68: @@ -3774,9 +3952,32 @@ packages: '@swc/core-win32-arm64-msvc': 1.3.68 '@swc/core-win32-ia32-msvc': 1.3.68 '@swc/core-win32-x64-msvc': 1.3.68 + dev: true + + /@swc/core/1.3.70: + resolution: {integrity: sha512-LWVWlEDLlOD25PvA2NEz41UzdwXnlDyBiZbe69s3zM0DfCPwZXLUm79uSqH9ItsOjTrXSL5/1+XUL6C/BZwChA==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.70 + '@swc/core-darwin-x64': 1.3.70 + '@swc/core-linux-arm-gnueabihf': 1.3.70 + '@swc/core-linux-arm64-gnu': 1.3.70 + '@swc/core-linux-arm64-musl': 1.3.70 + '@swc/core-linux-x64-gnu': 1.3.70 + '@swc/core-linux-x64-musl': 1.3.70 + '@swc/core-win32-arm64-msvc': 1.3.70 + '@swc/core-win32-ia32-msvc': 1.3.70 + '@swc/core-win32-x64-msvc': 1.3.70 + dev: false - /@swc/wasm-web/1.3.66: - resolution: {integrity: sha512-rlpMDT30TFb1JDK16yYPcDwkBDEjb0QnEY1+8xM5tjEgm/xsZgrlm8ro3YQforVFx9LML9FnxT/9yMEKXcYmOg==} + /@swc/wasm-web/1.3.70: + resolution: {integrity: sha512-5UrD0pqq4rnvWjrsxy1I0b6MK8GB9yyKTasclNf0Yay+zn5VNAF5Jl1tjAWpcKFiKUkJfmquW64elskJ878VIA==} dev: false /@trpc/client/10.34.0_@trpc+server@10.34.0: @@ -3913,7 +4114,7 @@ packages: /@types/graceful-fs/4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 20.4.1 + '@types/node': 20.4.4 dev: false /@types/hammerjs/2.0.41: @@ -3946,8 +4147,8 @@ packages: '@types/istanbul-lib-report': 3.0.0 dev: false - /@types/jest/29.5.2: - resolution: {integrity: sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==} + /@types/jest/29.5.3: + resolution: {integrity: sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==} dependencies: expect: 29.6.1 pretty-format: 29.6.1 @@ -4018,6 +4219,10 @@ packages: /@types/node/20.4.1: resolution: {integrity: sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==} + /@types/node/20.4.4: + resolution: {integrity: sha512-CukZhumInROvLq3+b5gLev+vgpsIqC2D0deQr/yS1WnxvmYLlJXZpaQrQiseMY+6xusl79E04UjWoqyr+t1/Ew==} + dev: false + /@types/offscreencanvas/2019.7.0: resolution: {integrity: sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg==} dev: false @@ -4112,8 +4317,8 @@ packages: '@types/yargs-parser': 21.0.0 dev: false - /@typescript-eslint/eslint-plugin/5.61.0_24v3duij7ab7rtbfz4qzw7dc5u: - resolution: {integrity: sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g==} + /@typescript-eslint/eslint-plugin/5.62.0_tbbci4he2x65aggpp4j2oxxdvm: + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -4123,13 +4328,13 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.61.0_iqf7tbmerllfqanu4l3d6aqdn4 - '@typescript-eslint/scope-manager': 5.61.0 - '@typescript-eslint/type-utils': 5.61.0_iqf7tbmerllfqanu4l3d6aqdn4 - '@typescript-eslint/utils': 5.61.0_iqf7tbmerllfqanu4l3d6aqdn4 + '@eslint-community/regexpp': 4.6.0 + '@typescript-eslint/parser': 5.62.0_ko3fmmbeyij36muomfgt2u76xu + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0_ko3fmmbeyij36muomfgt2u76xu + '@typescript-eslint/utils': 5.62.0_ko3fmmbeyij36muomfgt2u76xu debug: 4.3.4 - eslint: 8.44.0 + eslint: 8.45.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 @@ -4140,8 +4345,8 @@ packages: - supports-color dev: false - /@typescript-eslint/parser/5.61.0_iqf7tbmerllfqanu4l3d6aqdn4: - resolution: {integrity: sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg==} + /@typescript-eslint/parser/5.62.0_ko3fmmbeyij36muomfgt2u76xu: + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -4150,26 +4355,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.61.0 - '@typescript-eslint/types': 5.61.0 - '@typescript-eslint/typescript-estree': 5.61.0_typescript@5.1.6 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 debug: 4.3.4 - eslint: 8.44.0 + eslint: 8.45.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: false - /@typescript-eslint/scope-manager/5.61.0: - resolution: {integrity: sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw==} + /@typescript-eslint/scope-manager/5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.61.0 - '@typescript-eslint/visitor-keys': 5.61.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 dev: false - /@typescript-eslint/type-utils/5.61.0_iqf7tbmerllfqanu4l3d6aqdn4: - resolution: {integrity: sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg==} + /@typescript-eslint/type-utils/5.62.0_ko3fmmbeyij36muomfgt2u76xu: + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -4178,23 +4383,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.61.0_typescript@5.1.6 - '@typescript-eslint/utils': 5.61.0_iqf7tbmerllfqanu4l3d6aqdn4 + '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 + '@typescript-eslint/utils': 5.62.0_ko3fmmbeyij36muomfgt2u76xu debug: 4.3.4 - eslint: 8.44.0 + eslint: 8.45.0 tsutils: 3.21.0_typescript@5.1.6 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: false - /@typescript-eslint/types/5.61.0: - resolution: {integrity: sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ==} + /@typescript-eslint/types/5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: false - /@typescript-eslint/typescript-estree/5.61.0_typescript@5.1.6: - resolution: {integrity: sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw==} + /@typescript-eslint/typescript-estree/5.62.0_typescript@5.1.6: + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -4202,8 +4407,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.61.0 - '@typescript-eslint/visitor-keys': 5.61.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -4214,19 +4419,19 @@ packages: - supports-color dev: false - /@typescript-eslint/utils/5.61.0_iqf7tbmerllfqanu4l3d6aqdn4: - resolution: {integrity: sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ==} + /@typescript-eslint/utils/5.62.0_ko3fmmbeyij36muomfgt2u76xu: + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.44.0 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.45.0 '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.61.0 - '@typescript-eslint/types': 5.61.0 - '@typescript-eslint/typescript-estree': 5.61.0_typescript@5.1.6 - eslint: 8.44.0 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 + eslint: 8.45.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -4234,11 +4439,11 @@ packages: - typescript dev: false - /@typescript-eslint/visitor-keys/5.61.0: - resolution: {integrity: sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg==} + /@typescript-eslint/visitor-keys/5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.61.0 + '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.1 dev: false @@ -4519,7 +4724,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 get-intrinsic: 1.2.1 is-string: 1.0.7 dev: false @@ -4543,7 +4748,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 dev: false @@ -4553,10 +4758,22 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 dev: false + /arraybuffer.prototype.slice/1.0.1: + resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: false + /astral-regex/2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -4648,17 +4865,17 @@ packages: engines: {node: '>= 0.4'} dev: false - /babel-jest/29.6.1_@babel+core@7.22.8: + /babel-jest/29.6.1_@babel+core@7.22.9: resolution: {integrity: sha512-qu+3bdPEQC6KZSPz+4Fyjbga5OODNcp49j6GKzG1EKbkfyJBxEYGVUmVGpwCSeGouG52R4EgYMLb6p9YeEEQ4A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@jest/transform': 29.6.1 '@types/babel__core': 7.20.1 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.5.0_@babel+core@7.22.8 + babel-preset-jest: 29.5.0_@babel+core@7.22.9 chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -4700,35 +4917,35 @@ packages: resolve: 1.22.2 dev: false - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.22.8: + /babel-preset-current-node-syntax/1.0.1_@babel+core@7.22.9: resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.8 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.22.8 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.22.8 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.22.8 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.22.8 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.22.8 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.22.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.22.8 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.22.8 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.8 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.22.8 - dev: false - - /babel-preset-jest/29.5.0_@babel+core@7.22.8: + '@babel/core': 7.22.9 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.22.9 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.22.9 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.22.9 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.22.9 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.22.9 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.22.9 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.9 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.9 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.22.9 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.22.9 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.9 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.22.9 + dev: false + + /babel-preset-jest/29.5.0_@babel+core@7.22.9: resolution: {integrity: sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 babel-plugin-jest-hoist: 29.5.0 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.22.8 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.22.9 dev: false /bail/2.0.2: @@ -4850,8 +5067,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001514 - electron-to-chromium: 1.4.454 + caniuse-lite: 1.0.30001517 + electron-to-chromium: 1.4.468 node-releases: 2.0.13 update-browserslist-db: 1.0.11_browserslist@4.21.9 dev: false @@ -4933,8 +5150,8 @@ packages: engines: {node: '>=10'} dev: false - /caniuse-lite/1.0.30001514: - resolution: {integrity: sha512-ENcIpYBmwAAOm/V2cXgM7rZUrKKaqisZl4ZAI520FIkqGXUxJjmaIssbRW5HVVR5tyV6ygTLIm15aU8LUmQSaQ==} + /caniuse-lite/1.0.30001517: + resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} dev: false /catering/2.1.1: @@ -5442,8 +5659,8 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: false - /electron-to-chromium/1.4.454: - resolution: {integrity: sha512-pmf1rbAStw8UEQ0sr2cdJtWl48ZMuPD9Sto8HVQOq9vx9j2WgDEN6lYoaqFvqEHYOmGA9oRGn7LqWI9ta0YugQ==} + /electron-to-chromium/1.4.468: + resolution: {integrity: sha512-6M1qyhaJOt7rQtNti1lBA0GwclPH+oKCmsra/hkcWs5INLxfXXD/dtdnaKUYQu/pjOBP/8Osoe4mAcNvvzoFag==} dev: false /emittery/0.13.1: @@ -5476,11 +5693,12 @@ packages: is-arrayish: 0.2.1 dev: false - /es-abstract/1.21.2: - resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + /es-abstract/1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.1 available-typed-arrays: 1.0.5 call-bind: 1.0.2 es-set-tostringtag: 2.0.1 @@ -5501,19 +5719,23 @@ packages: is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 is-string: 1.0.7 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 is-weakref: 1.0.2 object-inspect: 1.12.3 object-keys: 1.1.1 object.assign: 4.1.4 regexp.prototype.flags: 1.5.0 + safe-array-concat: 1.0.0 safe-regex-test: 1.0.0 string.prototype.trim: 1.2.7 string.prototype.trimend: 1.0.6 string.prototype.trimstart: 1.0.6 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.9 + which-typed-array: 1.1.11 dev: false /es-module-lexer/1.3.0: @@ -5628,13 +5850,13 @@ packages: engines: {node: '>=12'} dev: false - /eslint-config-prettier/8.8.0_eslint@8.44.0: + /eslint-config-prettier/8.8.0_eslint@8.45.0: resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.44.0 + eslint: 8.45.0 dev: false /eslint-define-config/1.21.0: @@ -5652,7 +5874,7 @@ packages: - supports-color dev: false - /eslint-module-utils/2.8.0_j3z4vesu4fp3wym4mpkczbtsqy: + /eslint-module-utils/2.8.0_h2tu665zyzp3li3mokdnt2kw74: resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -5673,26 +5895,26 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.61.0_iqf7tbmerllfqanu4l3d6aqdn4 + '@typescript-eslint/parser': 5.62.0_ko3fmmbeyij36muomfgt2u76xu debug: 3.2.7 - eslint: 8.44.0 + eslint: 8.45.0 eslint-import-resolver-node: 0.3.7 transitivePeerDependencies: - supports-color dev: false - /eslint-plugin-es/3.0.1_eslint@8.44.0: + /eslint-plugin-es/3.0.1_eslint@8.45.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.44.0 + eslint: 8.45.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: false - /eslint-plugin-import/2.27.5_ejqdggoi4ttnavuewvp24znboa: + /eslint-plugin-import/2.27.5_vdlnholh74uk2lamdhhi4g2qza: resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -5702,22 +5924,22 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.61.0_iqf7tbmerllfqanu4l3d6aqdn4 + '@typescript-eslint/parser': 5.62.0_ko3fmmbeyij36muomfgt2u76xu array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.44.0 + eslint: 8.45.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0_j3z4vesu4fp3wym4mpkczbtsqy + eslint-module-utils: 2.8.0_h2tu665zyzp3li3mokdnt2kw74 has: 1.0.3 is-core-module: 2.12.1 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.6 resolve: 1.22.2 - semver: 6.3.0 + semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -5725,22 +5947,22 @@ packages: - supports-color dev: false - /eslint-plugin-node/11.1.0_eslint@8.44.0: + /eslint-plugin-node/11.1.0_eslint@8.45.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.44.0 - eslint-plugin-es: 3.0.1_eslint@8.44.0 + eslint: 8.45.0 + eslint-plugin-es: 3.0.1_eslint@8.45.0 eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 resolve: 1.22.2 - semver: 6.3.0 + semver: 6.3.1 dev: false - /eslint-plugin-prettier/4.2.1_qkgbdr345imkz5woyd5e5k6xse: + /eslint-plugin-prettier/4.2.1_6nuyjbnyo6rwr4pwddenxlklsi: resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -5751,22 +5973,22 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.44.0 - eslint-config-prettier: 8.8.0_eslint@8.44.0 + eslint: 8.45.0 + eslint-config-prettier: 8.8.0_eslint@8.45.0 prettier: 2.8.8 prettier-linter-helpers: 1.0.0 dev: false - /eslint-plugin-regexp/1.15.0_eslint@8.44.0: + /eslint-plugin-regexp/1.15.0_eslint@8.45.0: resolution: {integrity: sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==} engines: {node: ^12 || >=14} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.44.0 - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.45.0 + '@eslint-community/regexpp': 4.6.0 comment-parser: 1.3.1 - eslint: 8.44.0 + eslint: 8.45.0 grapheme-splitter: 1.0.4 jsdoctypeparser: 9.0.0 refa: 0.11.0 @@ -5782,8 +6004,8 @@ packages: estraverse: 4.3.0 dev: false - /eslint-scope/7.2.0: - resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} + /eslint-scope/7.2.1: + resolution: {integrity: sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 @@ -5807,13 +6029,13 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: false - /eslint/8.44.0: - resolution: {integrity: sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==} + /eslint/8.45.0: + resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.44.0 - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.45.0 + '@eslint-community/regexpp': 4.6.0 '@eslint/eslintrc': 2.1.0 '@eslint/js': 8.44.0 '@humanwhocodes/config-array': 0.11.10 @@ -5825,9 +6047,9 @@ packages: debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 + eslint-scope: 7.2.1 eslint-visitor-keys: 3.4.1 - espree: 9.6.0 + espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -5837,7 +6059,6 @@ packages: globals: 13.20.0 graphemer: 1.4.0 ignore: 5.2.4 - import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -5849,14 +6070,13 @@ packages: natural-compare: 1.4.0 optionator: 0.9.3 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color dev: false - /espree/9.6.0: - resolution: {integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==} + /espree/9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.10.0 @@ -5988,7 +6208,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/expect-utils': 29.6.1 - '@types/node': 20.4.1 + '@types/node': 20.4.4 jest-get-type: 29.4.3 jest-matcher-utils: 29.6.1 jest-message-util: 29.6.1 @@ -6025,6 +6245,17 @@ packages: micromatch: 4.0.5 dev: false + /fast-glob/3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: false + /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: false @@ -6147,7 +6378,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 functions-have-names: 1.2.3 dev: false @@ -6284,7 +6515,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.0 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -6650,7 +6881,7 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: false /is-arrayish/0.2.1: @@ -6836,15 +7067,11 @@ packages: has-symbols: 1.0.3 dev: false - /is-typed-array/1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + /is-typed-array/1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 + which-typed-array: 1.1.11 dev: false /is-unicode-supported/1.3.0: @@ -6865,6 +7092,10 @@ packages: is-docker: 2.2.1 dev: false + /isarray/2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: false + /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: false @@ -6883,11 +7114,11 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@babel/parser': 7.22.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: false @@ -7109,7 +7340,7 @@ packages: '@jest/expect': 29.6.1 '@jest/test-result': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.1 + '@types/node': 20.4.4 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -7129,7 +7360,7 @@ packages: - supports-color dev: false - /jest-cli/29.6.1_@types+node@20.4.1: + /jest-cli/29.6.1_@types+node@20.4.4: resolution: {integrity: sha512-607dSgTA4ODIN6go9w6xY3EYkyPFGicx51a69H7yfvt7lN53xNswEVLovq+E77VsTRi5fWprLH0yl4DJgE8Ing==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -7146,7 +7377,7 @@ packages: exit: 0.1.2 graceful-fs: 4.2.11 import-local: 3.1.0 - jest-config: 29.6.1_@types+node@20.4.1 + jest-config: 29.6.1_@types+node@20.4.4 jest-util: 29.6.1 jest-validate: 29.6.1 prompts: 2.4.2 @@ -7157,7 +7388,7 @@ packages: - ts-node dev: false - /jest-config/29.6.1_@types+node@20.4.1: + /jest-config/29.6.1_@types+node@20.4.4: resolution: {integrity: sha512-XdjYV2fy2xYixUiV2Wc54t3Z4oxYPAELUzWnV6+mcbq0rh742X2p52pii5A3oeRzYjLnQxCsZmp0qpI6klE2cQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -7169,11 +7400,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.22.8 + '@babel/core': 7.22.9 '@jest/test-sequencer': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.1 - babel-jest: 29.6.1_@babel+core@7.22.8 + '@types/node': 20.4.4 + babel-jest: 29.6.1_@babel+core@7.22.9 chalk: 4.1.2 ci-info: 3.8.0 deepmerge: 4.3.1 @@ -7231,7 +7462,7 @@ packages: '@jest/environment': 29.6.1 '@jest/fake-timers': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.1 + '@types/node': 20.4.4 jest-mock: 29.6.1 jest-util: 29.6.1 dev: false @@ -7247,7 +7478,7 @@ packages: dependencies: '@jest/types': 29.6.1 '@types/graceful-fs': 4.1.6 - '@types/node': 20.4.1 + '@types/node': 20.4.4 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -7298,7 +7529,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.4.1 + '@types/node': 20.4.4 jest-util: 29.6.1 dev: false @@ -7353,7 +7584,7 @@ packages: '@jest/test-result': 29.6.1 '@jest/transform': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.1 + '@types/node': 20.4.4 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -7384,7 +7615,7 @@ packages: '@jest/test-result': 29.6.1 '@jest/transform': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.1 + '@types/node': 20.4.4 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -7407,16 +7638,16 @@ packages: resolution: {integrity: sha512-G4UQE1QQ6OaCgfY+A0uR1W2AY0tGXUPQpoUClhWHq1Xdnx1H6JOrC2nH5lqnOEqaDgbHFgIwZ7bNq24HpB180A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.22.8 - '@babel/generator': 7.22.7 - '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.8 - '@babel/plugin-syntax-typescript': 7.22.5_@babel+core@7.22.8 + '@babel/core': 7.22.9 + '@babel/generator': 7.22.9 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.9 + '@babel/plugin-syntax-typescript': 7.22.5_@babel+core@7.22.9 '@babel/types': 7.22.5 '@jest/expect-utils': 29.6.1 '@jest/transform': 29.6.1 '@jest/types': 29.6.1 '@types/prettier': 2.7.3 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.22.8 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.22.9 chalk: 4.1.2 expect: 29.6.1 graceful-fs: 4.2.11 @@ -7437,7 +7668,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.4.1 + '@types/node': 20.4.4 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -7462,7 +7693,7 @@ packages: dependencies: '@jest/test-result': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.1 + '@types/node': 20.4.4 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -7474,13 +7705,13 @@ packages: resolution: {integrity: sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.4.1 + '@types/node': 20.4.4 jest-util: 29.6.1 merge-stream: 2.0.0 supports-color: 8.1.1 dev: false - /jest/29.6.1_@types+node@20.4.1: + /jest/29.6.1_@types+node@20.4.4: resolution: {integrity: sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -7493,7 +7724,7 @@ packages: '@jest/core': 29.6.1 '@jest/types': 29.6.1 import-local: 3.1.0 - jest-cli: 29.6.1_@types+node@20.4.1 + jest-cli: 29.6.1_@types+node@20.4.4 transitivePeerDependencies: - '@types/node' - supports-color @@ -7903,7 +8134,7 @@ packages: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} dependencies: - semver: 6.3.0 + semver: 6.3.1 dev: false /make-error/1.3.6: @@ -8600,7 +8831,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: false /observable-webworkers/2.0.1: @@ -9682,7 +9913,7 @@ packages: resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/regexpp': 4.6.0 dev: false /regenerator-runtime/0.13.11: @@ -9693,7 +9924,7 @@ packages: resolution: {integrity: sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/regexpp': 4.6.0 refa: 0.11.0 dev: false @@ -9972,6 +10203,16 @@ packages: mri: 1.2.0 dev: false + /safe-array-concat/1.0.0: + resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: false + /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: false @@ -10029,7 +10270,7 @@ packages: /scslre/0.2.0: resolution: {integrity: sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==} dependencies: - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/regexpp': 4.6.0 refa: 0.11.0 regexp-ast-analysis: 0.6.0 dev: false @@ -10047,8 +10288,8 @@ packages: kind-of: 6.0.3 dev: false - /semver/6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + /semver/6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true dev: false @@ -10101,8 +10342,8 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: false - /simple-git-hooks/2.8.1: - resolution: {integrity: sha512-DYpcVR1AGtSfFUNzlBdHrQGPsOhuuEJ/FkmPOOlFysP60AHd3nsEpkGq/QEOdtUyT1Qhk7w9oLmFoMG+75BDog==} + /simple-git-hooks/2.9.0: + resolution: {integrity: sha512-waSQ5paUQtyGC0ZxlHmcMmD9I1rRXauikBwX31bX58l5vTOhCEcBC5Bi+ZDkPXTjDnZAF8TbCqKBY+9+sVPScw==} hasBin: true requiresBuild: true dev: false @@ -10241,7 +10482,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: false /string.prototype.trimend/1.0.6: @@ -10249,7 +10490,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: false /string.prototype.trimstart/1.0.6: @@ -10257,7 +10498,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: false /string_decoder/1.3.0: @@ -10476,7 +10717,7 @@ packages: dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.6.1_@types+node@20.4.1 + jest: 29.6.1_@types+node@20.4.4 jest-util: 29.6.1 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -10591,12 +10832,42 @@ packages: engines: {node: '>=12.20'} dev: false + /typed-array-buffer/1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-byte-length/1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-byte-offset/1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: false + /typed-array-length/1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: call-bind: 1.0.2 for-each: 0.3.3 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: false /typescript/3.9.10: @@ -11037,8 +11308,8 @@ packages: path-exists: 4.0.0 dev: false - /which-typed-array/1.1.9: - resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + /which-typed-array/1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 @@ -11046,7 +11317,6 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 dev: false /which/2.0.2: