From 080bedf1c104dd8ace4495edd595fbcee3c22ab9 Mon Sep 17 00:00:00 2001 From: rndquu Date: Tue, 7 Mar 2023 16:06:34 +0300 Subject: [PATCH 01/85] feat: initial commit --- package.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 00000000..f9d34a4e --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "ts-template", + "version": "1.0.0", + "description": "Template repository with typescript support", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [ + "typescript", + "nodejs", + "dotenv", + "conventional-commits" + ], + "author": "", + "license": "ISC" +} From f9b45eaae8f7e2da76cd9979fd60217f4d4938cc Mon Sep 17 00:00:00 2001 From: rndquu Date: Tue, 7 Mar 2023 16:18:02 +0300 Subject: [PATCH 02/85] feat: add TS support --- .gitignore | 2 + index.ts | 1 + package.json | 8 +- tsconfig.json | 103 ++++++++++++++++++++++++ yarn.lock | 214 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 327 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 index.ts create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..2a531ed9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# dependencies +node_modules diff --git a/index.ts b/index.ts new file mode 100644 index 00000000..ae599c15 --- /dev/null +++ b/index.ts @@ -0,0 +1 @@ +console.log('Welcome to ts-template'); diff --git a/package.json b/package.json index f9d34a4e..bf20b3a6 100644 --- a/package.json +++ b/package.json @@ -13,5 +13,11 @@ "conventional-commits" ], "author": "", - "license": "ISC" + "license": "ISC", + "dependencies": {}, + "devDependencies": { + "@types/node": "^18.14.6", + "tsx": "^3.12.3", + "typescript": "^4.9.5" + } } diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..75dcaeac --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,103 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + // "outDir": "./", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..3af4531d --- /dev/null +++ b/yarn.lock @@ -0,0 +1,214 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@esbuild-kit/cjs-loader@^2.4.2": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@esbuild-kit/cjs-loader/-/cjs-loader-2.4.2.tgz#cb4dde00fbf744a68c4f20162ea15a8242d0fa54" + integrity sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg== + dependencies: + "@esbuild-kit/core-utils" "^3.0.0" + get-tsconfig "^4.4.0" + +"@esbuild-kit/core-utils@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@esbuild-kit/core-utils/-/core-utils-3.1.0.tgz#49945d533dbd5e1b7620aa0fc522c15e6ec089c5" + integrity sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw== + dependencies: + esbuild "~0.17.6" + source-map-support "^0.5.21" + +"@esbuild-kit/esm-loader@^2.5.5": + version "2.5.5" + resolved "https://registry.yarnpkg.com/@esbuild-kit/esm-loader/-/esm-loader-2.5.5.tgz#b82da14fcee3fc1d219869756c06f43f67d1ca71" + integrity sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw== + dependencies: + "@esbuild-kit/core-utils" "^3.0.0" + get-tsconfig "^4.4.0" + +"@esbuild/android-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.11.tgz#52c3e6cabc19c5e4c1c0c01cb58f0442338e1c14" + integrity sha512-QnK4d/zhVTuV4/pRM4HUjcsbl43POALU2zvBynmrrqZt9LPcLA3x1fTZPBg2RRguBQnJcnU059yKr+bydkntjg== + +"@esbuild/android-arm@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.11.tgz#f3fc768235aecbeb840d0049fdf13cd28592105f" + integrity sha512-CdyX6sRVh1NzFCsf5vw3kULwlAhfy9wVt8SZlrhQ7eL2qBjGbFhRBWkkAzuZm9IIEOCKJw4DXA6R85g+qc8RDw== + +"@esbuild/android-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.11.tgz#443ed47771a7e917e4282469ba350d117473550c" + integrity sha512-3PL3HKtsDIXGQcSCKtWD/dy+mgc4p2Tvo2qKgKHj9Yf+eniwFnuoQ0OUhlSfAEpKAFzF9N21Nwgnap6zy3L3MQ== + +"@esbuild/darwin-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.11.tgz#0e8c78d94d5759a48521dbfd83189d2ed3499a16" + integrity sha512-pJ950bNKgzhkGNO3Z9TeHzIFtEyC2GDQL3wxkMApDEghYx5Qers84UTNc1bAxWbRkuJOgmOha5V0WUeh8G+YGw== + +"@esbuild/darwin-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.11.tgz#2405cfdf70eb961c7cf973463ca7263dc2004c88" + integrity sha512-iB0dQkIHXyczK3BZtzw1tqegf0F0Ab5texX2TvMQjiJIWXAfM4FQl7D909YfXWnB92OQz4ivBYQ2RlxBJrMJOw== + +"@esbuild/freebsd-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.11.tgz#d5138e873e15f87bd4564c024dfa00ef37e623fd" + integrity sha512-7EFzUADmI1jCHeDRGKgbnF5sDIceZsQGapoO6dmw7r/ZBEKX7CCDnIz8m9yEclzr7mFsd+DyasHzpjfJnmBB1Q== + +"@esbuild/freebsd-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.11.tgz#e850b58b8fabf8e9ef0e125af3c25229ad2d6c38" + integrity sha512-iPgenptC8i8pdvkHQvXJFzc1eVMR7W2lBPrTE6GbhR54sLcF42mk3zBOjKPOodezzuAz/KSu8CPyFSjcBMkE9g== + +"@esbuild/linux-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.11.tgz#2bfb93d0809ec2357c12ebb27736b750c9ae0aa5" + integrity sha512-Qxth3gsWWGKz2/qG2d5DsW/57SeA2AmpSMhdg9TSB5Svn2KDob3qxfQSkdnWjSd42kqoxIPy3EJFs+6w1+6Qjg== + +"@esbuild/linux-arm@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.11.tgz#e56fb3b76828317a704f4a167c5bd790fe5314e7" + integrity sha512-M9iK/d4lgZH0U5M1R2p2gqhPV/7JPJcRz+8O8GBKVgqndTzydQ7B2XGDbxtbvFkvIs53uXTobOhv+RyaqhUiMg== + +"@esbuild/linux-ia32@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.11.tgz#59fa1c49b271793d14eb5effc757e8c0d0cb2cab" + integrity sha512-dB1nGaVWtUlb/rRDHmuDQhfqazWE0LMro/AIbT2lWM3CDMHJNpLckH+gCddQyhhcLac2OYw69ikUMO34JLt3wA== + +"@esbuild/linux-loong64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.11.tgz#89575bc189099c03a36daa54f3f481780c7fd502" + integrity sha512-aCWlq70Q7Nc9WDnormntGS1ar6ZFvUpqr8gXtO+HRejRYPweAFQN615PcgaSJkZjhHp61+MNLhzyVALSF2/Q0g== + +"@esbuild/linux-mips64el@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.11.tgz#0e18ca039dc7e4645efd8edc1b10952933eb6b1b" + integrity sha512-cGeGNdQxqY8qJwlYH1BP6rjIIiEcrM05H7k3tR7WxOLmD1ZxRMd6/QIOWMb8mD2s2YJFNRuNQ+wjMhgEL2oCEw== + +"@esbuild/linux-ppc64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.11.tgz#2d152cb3a253afb8c100a165ad132dc96f36cb11" + integrity sha512-BdlziJQPW/bNe0E8eYsHB40mYOluS+jULPCjlWiHzDgr+ZBRXPtgMV1nkLEGdpjrwgmtkZHEGEPaKdS/8faLDA== + +"@esbuild/linux-riscv64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.11.tgz#c6ac494a81221d53d65b33e665c7df1747952d3c" + integrity sha512-MDLwQbtF+83oJCI1Cixn68Et/ME6gelmhssPebC40RdJaect+IM+l7o/CuG0ZlDs6tZTEIoxUe53H3GmMn8oMA== + +"@esbuild/linux-s390x@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.11.tgz#4bad33894bc7415cea4be8fa90fe456226a424ad" + integrity sha512-4N5EMESvws0Ozr2J94VoUD8HIRi7X0uvUv4c0wpTHZyZY9qpaaN7THjosdiW56irQ4qnJ6Lsc+i+5zGWnyqWqQ== + +"@esbuild/linux-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.11.tgz#903fda743459f530a16a6c6ee8d2c0f6c1a12fc7" + integrity sha512-rM/v8UlluxpytFSmVdbCe1yyKQd/e+FmIJE2oPJvbBo+D0XVWi1y/NQ4iTNx+436WmDHQBjVLrbnAQLQ6U7wlw== + +"@esbuild/netbsd-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.11.tgz#b589239fe7d9b16ee03c5e191f3f5b640f1518a1" + integrity sha512-4WaAhuz5f91h3/g43VBGdto1Q+X7VEZfpcWGtOFXnggEuLvjV+cP6DyLRU15IjiU9fKLLk41OoJfBFN5DhPvag== + +"@esbuild/openbsd-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.11.tgz#b355019754116bef39ec688f8fd2fe6471b9779b" + integrity sha512-UBj135Nx4FpnvtE+C8TWGp98oUgBcmNmdYgl5ToKc0mBHxVVqVE7FUS5/ELMImOp205qDAittL6Ezhasc2Ev/w== + +"@esbuild/sunos-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.11.tgz#2ea47fb592e68406e5025a7696dc714fc6a115dc" + integrity sha512-1/gxTifDC9aXbV2xOfCbOceh5AlIidUrPsMpivgzo8P8zUtczlq1ncFpeN1ZyQJ9lVs2hILy1PG5KPp+w8QPPg== + +"@esbuild/win32-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.11.tgz#47e6fdab17c4c52e6e0d606dd9cb843b29826325" + integrity sha512-vtSfyx5yRdpiOW9yp6Ax0zyNOv9HjOAw8WaZg3dF5djEHKKm3UnoohftVvIJtRh0Ec7Hso0RIdTqZvPXJ7FdvQ== + +"@esbuild/win32-ia32@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.11.tgz#a97273aa3164c8d8f501899f55cc75a4a79599a3" + integrity sha512-GFPSLEGQr4wHFTiIUJQrnJKZhZjjq4Sphf+mM76nQR6WkQn73vm7IsacmBRPkALfpOCHsopSvLgqdd4iUW2mYw== + +"@esbuild/win32-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.11.tgz#9be796d93ae27b636da32d960899a4912bca27a1" + integrity sha512-N9vXqLP3eRL8BqSy8yn4Y98cZI2pZ8fyuHx6lKjiG2WABpT2l01TXdzq5Ma2ZUBzfB7tx5dXVhge8X9u0S70ZQ== + +"@types/node@^18.14.6": + version "18.14.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.6.tgz#ae1973dd2b1eeb1825695bb11ebfb746d27e3e93" + integrity sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +esbuild@~0.17.6: + version "0.17.11" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.11.tgz#9f3122643b21d7e7731e42f18576c10bfa28152b" + integrity sha512-pAMImyokbWDtnA/ufPxjQg0fYo2DDuzAlqwnDvbXqHLphe+m80eF++perYKVm8LeTuj2zUuFXC+xgSVxyoHUdg== + optionalDependencies: + "@esbuild/android-arm" "0.17.11" + "@esbuild/android-arm64" "0.17.11" + "@esbuild/android-x64" "0.17.11" + "@esbuild/darwin-arm64" "0.17.11" + "@esbuild/darwin-x64" "0.17.11" + "@esbuild/freebsd-arm64" "0.17.11" + "@esbuild/freebsd-x64" "0.17.11" + "@esbuild/linux-arm" "0.17.11" + "@esbuild/linux-arm64" "0.17.11" + "@esbuild/linux-ia32" "0.17.11" + "@esbuild/linux-loong64" "0.17.11" + "@esbuild/linux-mips64el" "0.17.11" + "@esbuild/linux-ppc64" "0.17.11" + "@esbuild/linux-riscv64" "0.17.11" + "@esbuild/linux-s390x" "0.17.11" + "@esbuild/linux-x64" "0.17.11" + "@esbuild/netbsd-x64" "0.17.11" + "@esbuild/openbsd-x64" "0.17.11" + "@esbuild/sunos-x64" "0.17.11" + "@esbuild/win32-arm64" "0.17.11" + "@esbuild/win32-ia32" "0.17.11" + "@esbuild/win32-x64" "0.17.11" + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +get-tsconfig@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.4.0.tgz#64eee64596668a81b8fce18403f94f245ee0d4e5" + integrity sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ== + +source-map-support@^0.5.21: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +tsx@^3.12.3: + version "3.12.3" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-3.12.3.tgz#b29f6c9246d4e3ea46451cd81d7cbc98f45c4b8a" + integrity sha512-Wc5BFH1xccYTXaQob+lEcimkcb/Pq+0en2s+ruiX0VEIC80nV7/0s7XRahx8NnsoCnpCVUPz8wrqVSPi760LkA== + dependencies: + "@esbuild-kit/cjs-loader" "^2.4.2" + "@esbuild-kit/core-utils" "^3.0.0" + "@esbuild-kit/esm-loader" "^2.5.5" + optionalDependencies: + fsevents "~2.3.2" + +typescript@^4.9.5: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== From 9c9366ad423cfb450909c36f735aa08c222cd319 Mon Sep 17 00:00:00 2001 From: rndquu Date: Tue, 7 Mar 2023 16:35:19 +0300 Subject: [PATCH 03/85] feat: add conventional commits --- .github/workflows/conventional-commits.yml | 14 + .husky/commit-msg | 4 + commitlint.config.js | 1 + package.json | 3 + yarn.lock | 1329 +++++++++++++++++++- 5 files changed, 1349 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/conventional-commits.yml create mode 100755 .husky/commit-msg create mode 100644 commitlint.config.js diff --git a/.github/workflows/conventional-commits.yml b/.github/workflows/conventional-commits.yml new file mode 100644 index 00000000..6196b200 --- /dev/null +++ b/.github/workflows/conventional-commits.yml @@ -0,0 +1,14 @@ +name: Conventional Commits + +on: + pull_request: + push: + branches: [development] + +jobs: + conventional-commits: + name: Conventional Commits + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: webiny/action-conventional-commits@v1.1.0 diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 00000000..4c49ae6a --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +yarn commitlint --edit $1 diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 00000000..5073c20d --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1 @@ +module.exports = { extends: ["@commitlint/config-conventional"] }; diff --git a/package.json b/package.json index bf20b3a6..2ccf0192 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,10 @@ "license": "ISC", "dependencies": {}, "devDependencies": { + "@commitlint/cli": "^17.4.4", + "@commitlint/config-conventional": "^17.4.4", "@types/node": "^18.14.6", + "husky": "^8.0.3", "tsx": "^3.12.3", "typescript": "^4.9.5" } diff --git a/yarn.lock b/yarn.lock index 3af4531d..5e241f06 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,195 @@ # yarn lockfile v1 +"@babel/code-frame@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/helper-validator-identifier@^7.18.6": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@commitlint/cli@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.4.4.tgz#36df08bfa31dbb9a2b6b1d7187a31e578f001a06" + integrity sha512-HwKlD7CPVMVGTAeFZylVNy14Vm5POVY0WxPkZr7EXLC/os0LH/obs6z4HRvJtH/nHCMYBvUBQhGwnufKfTjd5g== + dependencies: + "@commitlint/format" "^17.4.4" + "@commitlint/lint" "^17.4.4" + "@commitlint/load" "^17.4.4" + "@commitlint/read" "^17.4.4" + "@commitlint/types" "^17.4.4" + execa "^5.0.0" + lodash.isfunction "^3.0.9" + resolve-from "5.0.0" + resolve-global "1.0.0" + yargs "^17.0.0" + +"@commitlint/config-conventional@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.4.4.tgz#f30b1e5b2e48ce5799a483c200c52f218a98efcc" + integrity sha512-u6ztvxqzi6NuhrcEDR7a+z0yrh11elY66nRrQIpqsqW6sZmpxYkDLtpRH8jRML+mmxYQ8s4qqF06Q/IQx5aJeQ== + dependencies: + conventional-changelog-conventionalcommits "^5.0.0" + +"@commitlint/config-validator@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.4.4.tgz#d0742705719559a101d2ee49c0c514044af6d64d" + integrity sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg== + dependencies: + "@commitlint/types" "^17.4.4" + ajv "^8.11.0" + +"@commitlint/ensure@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.4.4.tgz#a36e7719bdb9c2b86c8b8c2e852b463a7bfda5fa" + integrity sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g== + dependencies: + "@commitlint/types" "^17.4.4" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.upperfirst "^4.3.1" + +"@commitlint/execute-rule@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz#4518e77958893d0a5835babe65bf87e2638f6939" + integrity sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA== + +"@commitlint/format@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.4.4.tgz#0f6e1b4d7a301c7b1dfd4b6334edd97fc050b9f5" + integrity sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ== + dependencies: + "@commitlint/types" "^17.4.4" + chalk "^4.1.0" + +"@commitlint/is-ignored@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.4.4.tgz#82e03f1abe2de2c0c8c162a250b8d466225e922b" + integrity sha512-Y3eo1SFJ2JQDik4rWkBC4tlRIxlXEFrRWxcyrzb1PUT2k3kZ/XGNuCDfk/u0bU2/yS0tOA/mTjFsV+C4qyACHw== + dependencies: + "@commitlint/types" "^17.4.4" + semver "7.3.8" + +"@commitlint/lint@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.4.4.tgz#0ecd70b44ec5f4823c2e00e0c4b04ebd41d42856" + integrity sha512-qgkCRRFjyhbMDWsti/5jRYVJkgYZj4r+ZmweZObnbYqPUl5UKLWMf9a/ZZisOI4JfiPmRktYRZ2JmqlSvg+ccw== + dependencies: + "@commitlint/is-ignored" "^17.4.4" + "@commitlint/parse" "^17.4.4" + "@commitlint/rules" "^17.4.4" + "@commitlint/types" "^17.4.4" + +"@commitlint/load@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.4.4.tgz#13fcb553572f265339801cde6dd10ee5eea07f5e" + integrity sha512-z6uFIQ7wfKX5FGBe1AkOF4l/ShOQsaa1ml/nLMkbW7R/xF8galGS7Zh0yHvzVp/srtfS0brC+0bUfQfmpMPFVQ== + dependencies: + "@commitlint/config-validator" "^17.4.4" + "@commitlint/execute-rule" "^17.4.0" + "@commitlint/resolve-extends" "^17.4.4" + "@commitlint/types" "^17.4.4" + "@types/node" "*" + chalk "^4.1.0" + cosmiconfig "^8.0.0" + cosmiconfig-typescript-loader "^4.0.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + lodash.uniq "^4.5.0" + resolve-from "^5.0.0" + ts-node "^10.8.1" + typescript "^4.6.4" + +"@commitlint/message@^17.4.2": + version "17.4.2" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.4.2.tgz#f4753a79701ad6db6db21f69076e34de6580e22c" + integrity sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q== + +"@commitlint/parse@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.4.4.tgz#8311b12f2b730de6ea0679ae2a37b386bcc5b04b" + integrity sha512-EKzz4f49d3/OU0Fplog7nwz/lAfXMaDxtriidyGF9PtR+SRbgv4FhsfF310tKxs6EPj8Y+aWWuX3beN5s+yqGg== + dependencies: + "@commitlint/types" "^17.4.4" + conventional-changelog-angular "^5.0.11" + conventional-commits-parser "^3.2.2" + +"@commitlint/read@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.4.4.tgz#de6ec00aad827764153009aa54517e3df2154555" + integrity sha512-B2TvUMJKK+Svzs6eji23WXsRJ8PAD+orI44lVuVNsm5zmI7O8RSGJMvdEZEikiA4Vohfb+HevaPoWZ7PiFZ3zA== + dependencies: + "@commitlint/top-level" "^17.4.0" + "@commitlint/types" "^17.4.4" + fs-extra "^11.0.0" + git-raw-commits "^2.0.0" + minimist "^1.2.6" + +"@commitlint/resolve-extends@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.4.4.tgz#8f931467dea8c43b9fe38373e303f7c220de6fdc" + integrity sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A== + dependencies: + "@commitlint/config-validator" "^17.4.4" + "@commitlint/types" "^17.4.4" + import-fresh "^3.0.0" + lodash.mergewith "^4.6.2" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + +"@commitlint/rules@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.4.4.tgz#9b33f41e5eb529f916396bac7c62e61f0edd6791" + integrity sha512-0tgvXnHi/mVcyR8Y8mjTFZIa/FEQXA4uEutXS/imH2v1UNkYDSEMsK/68wiXRpfW1euSgEdwRkvE1z23+yhNrQ== + dependencies: + "@commitlint/ensure" "^17.4.4" + "@commitlint/message" "^17.4.2" + "@commitlint/to-lines" "^17.4.0" + "@commitlint/types" "^17.4.4" + execa "^5.0.0" + +"@commitlint/to-lines@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-17.4.0.tgz#9bd02e911e7d4eab3fb4a50376c4c6d331e10d8d" + integrity sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg== + +"@commitlint/top-level@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-17.4.0.tgz#540cac8290044cf846fbdd99f5cc51e8ac5f27d6" + integrity sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g== + dependencies: + find-up "^5.0.0" + +"@commitlint/types@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.4.4.tgz#1416df936e9aad0d6a7bbc979ecc31e55dade662" + integrity sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ== + dependencies: + chalk "^4.1.0" + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + "@esbuild-kit/cjs-loader@^2.4.2": version "2.4.2" resolved "https://registry.yarnpkg.com/@esbuild-kit/cjs-loader/-/cjs-loader-2.4.2.tgz#cb4dde00fbf744a68c4f20162ea15a8242d0fa54" @@ -136,16 +325,308 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.11.tgz#9be796d93ae27b636da32d960899a4912bca27a1" integrity sha512-N9vXqLP3eRL8BqSy8yn4Y98cZI2pZ8fyuHx6lKjiG2WABpT2l01TXdzq5Ma2ZUBzfB7tx5dXVhge8X9u0S70ZQ== -"@types/node@^18.14.6": +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@types/minimist@^1.2.0": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + +"@types/node@*", "@types/node@^18.14.6": version "18.14.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.6.tgz#ae1973dd2b1eeb1825695bb11ebfb746d27e3e93" integrity sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA== +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +JSONStream@^1.0.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +ajv@^8.11.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +compare-func@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== + dependencies: + array-ify "^1.0.0" + dot-prop "^5.1.0" + +conventional-changelog-angular@^5.0.11: + version "5.0.13" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" + integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== + dependencies: + compare-func "^2.0.0" + q "^1.5.1" + +conventional-changelog-conventionalcommits@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz#41bdce54eb65a848a4a3ffdca93e92fa22b64a86" + integrity sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw== + dependencies: + compare-func "^2.0.0" + lodash "^4.17.15" + q "^1.5.1" + +conventional-commits-parser@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" + integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + +cosmiconfig-typescript-loader@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz#c4259ce474c9df0f32274ed162c0447c951ef073" + integrity sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q== + +cosmiconfig@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.1.0.tgz#947e174c796483ccf0a48476c24e4fefb7e1aea8" + integrity sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg== + dependencies: + import-fresh "^3.2.1" + js-yaml "^4.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + +decamelize-keys@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dot-prop@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + esbuild@~0.17.6: version "0.17.11" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.11.tgz#9f3122643b21d7e7731e42f18576c10bfa28152b" @@ -174,16 +655,628 @@ esbuild@~0.17.6: "@esbuild/win32-ia32" "0.17.11" "@esbuild/win32-x64" "0.17.11" +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +fs-extra@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.0.tgz#5784b102104433bb0e090f48bfc4a30742c357ed" + integrity sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-tsconfig@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.4.0.tgz#64eee64596668a81b8fce18403f94f245ee0d4e5" integrity sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ== +git-raw-commits@^2.0.0: + version "2.0.11" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" + integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== + dependencies: + dargs "^7.0.0" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + +global-dirs@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== + dependencies: + ini "^1.3.4" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +husky@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inherits@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-core-module@^2.5.0, is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-text-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== + dependencies: + text-extensions "^1.0.0" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.mergewith@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== + +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + +lodash@^4.17.15: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-obj@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +meow@^8.0.0: + version "8.1.2" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +punycode@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +q@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@3, readable-stream@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.1.tgz#f9f9b5f536920253b3d26e7660e7da4ccff9bb62" + integrity sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-global@1.0.0, resolve-global@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== + dependencies: + global-dirs "^0.1.1" + +resolve@^1.10.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.3.8, semver@^7.3.4: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + source-map-support@^0.5.21: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -197,6 +1290,134 @@ source-map@^0.6.0: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.12" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + +split2@^3.0.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== + +through2@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + +"through@>=2.2.7 <3": + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +ts-node@^10.8.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + tsx@^3.12.3: version "3.12.3" resolved "https://registry.yarnpkg.com/tsx/-/tsx-3.12.3.tgz#b29f6c9246d4e3ea46451cd81d7cbc98f45c4b8a" @@ -208,7 +1429,111 @@ tsx@^3.12.3: optionalDependencies: fsevents "~2.3.2" -typescript@^4.9.5: +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +typescript@^4.6.4, typescript@^4.9.5: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.0.0: + version "17.7.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" + integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 7b7c6f5decd076cf833352c03906e2dcb514428f Mon Sep 17 00:00:00 2001 From: rndquu Date: Tue, 7 Mar 2023 16:38:51 +0300 Subject: [PATCH 04/85] feat: add dotenv --- .env.example | 1 + index.ts | 5 +++++ package.json | 4 +++- yarn.lock | 5 +++++ 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..e49d79ae --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +MY_SECRET="MY_SECRET" diff --git a/index.ts b/index.ts index ae599c15..080bd1f7 100644 --- a/index.ts +++ b/index.ts @@ -1 +1,6 @@ +import * as dotenv from 'dotenv'; + +// load ENV variables (if you have them) +dotenv.config(); + console.log('Welcome to ts-template'); diff --git a/package.json b/package.json index 2ccf0192..026aa922 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,9 @@ ], "author": "", "license": "ISC", - "dependencies": {}, + "dependencies": { + "dotenv": "^16.0.3" + }, "devDependencies": { "@commitlint/cli": "^17.4.4", "@commitlint/config-conventional": "^17.4.4", diff --git a/yarn.lock b/yarn.lock index 5e241f06..c1763176 100644 --- a/yarn.lock +++ b/yarn.lock @@ -615,6 +615,11 @@ dot-prop@^5.1.0: dependencies: is-obj "^2.0.0" +dotenv@^16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" From 915cc8a33ac04182ae3a414b77bb6e49e9279799 Mon Sep 17 00:00:00 2001 From: rndquu Date: Tue, 7 Mar 2023 16:41:10 +0300 Subject: [PATCH 05/85] docs: add readme --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..81329066 --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# ts-template + +Github template repository which supports: +- typescript +- environment variables +- conventional comits From e7fff971d1ef38f2fc18516c5ba45322490a4a8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Mon, 1 May 2023 04:15:35 +0900 Subject: [PATCH 06/85] feat: add pull request template --- .github/pull_request_template.md.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .github/pull_request_template.md.md diff --git a/.github/pull_request_template.md.md b/.github/pull_request_template.md.md new file mode 100644 index 00000000..94f4821c --- /dev/null +++ b/.github/pull_request_template.md.md @@ -0,0 +1,6 @@ +Resolves # + + \ No newline at end of file From 5ce8aefcd4e839d55169156229ecce75d25dd7b0 Mon Sep 17 00:00:00 2001 From: 0xCodercrane <108444211+0xcodercrane@users.noreply.github.com> Date: Wed, 3 May 2023 02:38:11 +0800 Subject: [PATCH 07/85] Create cloudflare-deploy --- .github/workflows/cloudflare-deploy | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/cloudflare-deploy diff --git a/.github/workflows/cloudflare-deploy b/.github/workflows/cloudflare-deploy new file mode 100644 index 00000000..38183752 --- /dev/null +++ b/.github/workflows/cloudflare-deploy @@ -0,0 +1,44 @@ +name: Deploy to Cloudflare Pages + +on: + pull_request: + +jobs: + deploy-to-cloudflare: + name: Deploy to Cloudflare Pages + runs-on: ubuntu-22.04 + permissions: + contents: read + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: "18.14.1" + + - name: Yarn Install + run: yarn install + + - name: Wrangler Install + run: npm install -g wrangler + + - name: Publish to Cloudflare + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + REPOSITORY: ${{ github.repository }} + PRODUCTION_BRANCH: "development" + OUTPUT_DIRECTORY: "static" + run: | + projectName=$(echo $REPOSITORY | sed 's/\//-/g') + echo $projectName + wrangler pages project list > project_list.txt + if grep -q $projectName project_list.txt; then + echo "Project found" + else + echo "Project not found" + wrangler pages project create "$projectName" --production-branch "$PRODUCTION_BRANCH" + fi + wrangler pages publish "$OUTPUT_DIRECTORY" --project-name "$projectName" From d1e8b0b52130f6cc206675b7e2b8b616da2fda81 Mon Sep 17 00:00:00 2001 From: 0xCodercrane <108444211+0xcodercrane@users.noreply.github.com> Date: Wed, 3 May 2023 02:41:42 +0800 Subject: [PATCH 08/85] feat: create helloWorld index.html --- .../{cloudflare-deploy => cloudflare-deploy.yml} | 0 static/index.html | 9 +++++++++ 2 files changed, 9 insertions(+) rename .github/workflows/{cloudflare-deploy => cloudflare-deploy.yml} (100%) create mode 100644 static/index.html diff --git a/.github/workflows/cloudflare-deploy b/.github/workflows/cloudflare-deploy.yml similarity index 100% rename from .github/workflows/cloudflare-deploy rename to .github/workflows/cloudflare-deploy.yml diff --git a/static/index.html b/static/index.html new file mode 100644 index 00000000..f940d517 --- /dev/null +++ b/static/index.html @@ -0,0 +1,9 @@ + + + + Hello, world! + + +

Hello, world!

+ + \ No newline at end of file From af605734b9a66fa4b1d5b5887704e2940de43cf6 Mon Sep 17 00:00:00 2001 From: 0xCodercrane <108444211+0xcodercrane@users.noreply.github.com> Date: Wed, 3 May 2023 02:47:11 +0800 Subject: [PATCH 09/85] feat: push action for development branch --- .github/workflows/cloudflare-deploy.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/cloudflare-deploy.yml b/.github/workflows/cloudflare-deploy.yml index 38183752..89e19537 100644 --- a/.github/workflows/cloudflare-deploy.yml +++ b/.github/workflows/cloudflare-deploy.yml @@ -1,6 +1,9 @@ name: Deploy to Cloudflare Pages on: + push: + branches: + - development pull_request: jobs: From d2cb9f89841650c76596a03d0eab4a3026244247 Mon Sep 17 00:00:00 2001 From: 0xCodercrane <108444211+0xcodercrane@users.noreply.github.com> Date: Wed, 3 May 2023 02:48:16 +0800 Subject: [PATCH 10/85] feat: update readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 81329066..14d6bdc0 100644 --- a/README.md +++ b/README.md @@ -4,3 +4,4 @@ Github template repository which supports: - typescript - environment variables - conventional comits +- publish to cloudflare From 3b84211723362d01b848eab143727e39af411202 Mon Sep 17 00:00:00 2001 From: 0xCodercrane <108444211+0xcodercrane@users.noreply.github.com> Date: Thu, 4 May 2023 01:10:48 +0800 Subject: [PATCH 11/85] Update cloudflare-deploy.yml --- .github/workflows/cloudflare-deploy.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cloudflare-deploy.yml b/.github/workflows/cloudflare-deploy.yml index 89e19537..326640e5 100644 --- a/.github/workflows/cloudflare-deploy.yml +++ b/.github/workflows/cloudflare-deploy.yml @@ -35,7 +35,8 @@ jobs: PRODUCTION_BRANCH: "development" OUTPUT_DIRECTORY: "static" run: | - projectName=$(echo $REPOSITORY | sed 's/\//-/g') + IFS='/' read -ra fields <<< "$REPOSITORY" + projectName="${fields[1]}" echo $projectName wrangler pages project list > project_list.txt if grep -q $projectName project_list.txt; then From 8aa986e6885173d56f628ee6d887d3619a19407c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= <4975670+pavlovcik@users.noreply.github.com> Date: Sat, 10 Jun 2023 15:52:00 +0900 Subject: [PATCH 12/85] fix: rename pull_request_template --- .../{pull_request_template.md.md => pull_request_template.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/{pull_request_template.md.md => pull_request_template.md} (98%) diff --git a/.github/pull_request_template.md.md b/.github/pull_request_template.md similarity index 98% rename from .github/pull_request_template.md.md rename to .github/pull_request_template.md index 94f4821c..cde98436 100644 --- a/.github/pull_request_template.md.md +++ b/.github/pull_request_template.md @@ -3,4 +3,4 @@ Resolves # \ No newline at end of file +--> From 82c5e4b786ac7ef7790e5e4f5c0f293ce1cebf47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= <4975670+pavlovcik@users.noreply.github.com> Date: Thu, 29 Jun 2023 13:32:53 +0900 Subject: [PATCH 13/85] Update conventional-commits.yml Use our version which supports GitHub UI updates. --- .github/workflows/conventional-commits.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conventional-commits.yml b/.github/workflows/conventional-commits.yml index 6196b200..d4772958 100644 --- a/.github/workflows/conventional-commits.yml +++ b/.github/workflows/conventional-commits.yml @@ -10,5 +10,5 @@ jobs: name: Conventional Commits runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: webiny/action-conventional-commits@v1.1.0 + - uses: actions/checkout@v3 + - uses: ubiquity/action-conventional-commits@v1.1.2 From 6254a5d35664fc15017e3223bd3acd9ae4109c29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Thu, 29 Jun 2023 14:27:29 +0900 Subject: [PATCH 14/85] chore: update dependencies and prettier --- .commitlintrc | 3 + .eslintrc | 12 + .github/workflows/cloudflare-deploy.yml | 4 +- .github/workflows/conventional-commits.yml | 2 +- .gitignore | 8 +- .nvmrc | 1 + .prettierrc | 9 + .yarnrc.yml | 1 + README.md | 13 +- commitlint.config.js | 1 - index.ts | 4 +- package.json | 22 +- static/index.html | 14 +- tsconfig.json | 14 +- yarn.lock | 5050 ++++++++++++++------ 15 files changed, 3577 insertions(+), 1581 deletions(-) create mode 100644 .commitlintrc create mode 100644 .eslintrc create mode 100644 .nvmrc create mode 100644 .prettierrc create mode 100644 .yarnrc.yml delete mode 100644 commitlint.config.js diff --git a/.commitlintrc b/.commitlintrc new file mode 100644 index 00000000..a4a994c1 --- /dev/null +++ b/.commitlintrc @@ -0,0 +1,3 @@ +{ + "extends": ["@commitlint/config-conventional"] + } diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 00000000..5ee71efb --- /dev/null +++ b/.eslintrc @@ -0,0 +1,12 @@ +{ + "root": true, + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": ["./tsconfig.json"] + }, + "plugins": ["@typescript-eslint"], + "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], + "rules": { + "@typescript-eslint/no-floating-promises": "error" + } +} diff --git a/.github/workflows/cloudflare-deploy.yml b/.github/workflows/cloudflare-deploy.yml index 326640e5..7b086bc8 100644 --- a/.github/workflows/cloudflare-deploy.yml +++ b/.github/workflows/cloudflare-deploy.yml @@ -24,7 +24,7 @@ jobs: - name: Yarn Install run: yarn install - + - name: Wrangler Install run: npm install -g wrangler @@ -32,7 +32,7 @@ jobs: env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} REPOSITORY: ${{ github.repository }} - PRODUCTION_BRANCH: "development" + PRODUCTION_BRANCH: "development" OUTPUT_DIRECTORY: "static" run: | IFS='/' read -ra fields <<< "$REPOSITORY" diff --git a/.github/workflows/conventional-commits.yml b/.github/workflows/conventional-commits.yml index d4772958..2547809e 100644 --- a/.github/workflows/conventional-commits.yml +++ b/.github/workflows/conventional-commits.yml @@ -11,4 +11,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: ubiquity/action-conventional-commits@v1.1.2 + - uses: ubiquity/action-conventional-commits@v1.1.2 diff --git a/.gitignore b/.gitignore index 2a531ed9..8f59254b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,8 @@ -# dependencies +# macOS +.DS_Store +# node node_modules +# yarn2 +.yarn +.pnp.cjs +.pnp.loader.mjs diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..a5e8bba2 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v20.3.0 diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..55071e6d --- /dev/null +++ b/.prettierrc @@ -0,0 +1,9 @@ +{ + "trailingComma": "es5", + "tabWidth": 2, + "semi": true, + "singleQuote": false, + "printWidth": 160, + "htmlWhitespaceSensitivity": "strict", + "plugins": [] +} diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 00000000..3186f3f0 --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/README.md b/README.md index 14d6bdc0..39f0be20 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ -# ts-template +# `@ubiquity/ts-template` -Github template repository which supports: -- typescript -- environment variables -- conventional comits -- publish to cloudflare +This template repository includes support for the following: + +- TypeScript +- Environment Variables +- Conventional Commits +- Automatic publishing of pull requests to Cloudflare Pages diff --git a/commitlint.config.js b/commitlint.config.js deleted file mode 100644 index 5073c20d..00000000 --- a/commitlint.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { extends: ["@commitlint/config-conventional"] }; diff --git a/index.ts b/index.ts index 080bd1f7..0be3be79 100644 --- a/index.ts +++ b/index.ts @@ -1,6 +1,6 @@ -import * as dotenv from 'dotenv'; +import * as dotenv from "dotenv"; // load ENV variables (if you have them) dotenv.config(); -console.log('Welcome to ts-template'); +console.log("Welcome to ts-template"); diff --git a/package.json b/package.json index 026aa922..fee09ff4 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "ts-template", "version": "1.0.0", - "description": "Template repository with typescript support", - "main": "index.js", + "description": "Template repository with TypeScript support.", + "main": "index.ts", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, @@ -12,17 +12,19 @@ "dotenv", "conventional-commits" ], - "author": "", - "license": "ISC", + "author": "Ubiquity DAO", + "license": "MIT", "dependencies": { - "dotenv": "^16.0.3" + "dotenv": "^16.3.1" }, "devDependencies": { - "@commitlint/cli": "^17.4.4", - "@commitlint/config-conventional": "^17.4.4", - "@types/node": "^18.14.6", + "@commitlint/cli": "^17.6.6", + "@commitlint/config-conventional": "^17.6.6", + "@types/node": "^20.3.2", + "eslint": "^8.43.0", "husky": "^8.0.3", - "tsx": "^3.12.3", - "typescript": "^4.9.5" + "prettier": "^2.8.8", + "tsx": "^3.12.7", + "typescript": "^5.1.6" } } diff --git a/static/index.html b/static/index.html index f940d517..53e2f079 100644 --- a/static/index.html +++ b/static/index.html @@ -1,9 +1,9 @@ - - Hello, world! - - -

Hello, world!

- - \ No newline at end of file + + Hello, world! + + +

Hello, world!

+ + diff --git a/tsconfig.json b/tsconfig.json index 75dcaeac..cf712cb8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,7 +11,7 @@ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ /* Language and Environment */ - "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + "target": "ESNext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ @@ -25,7 +25,7 @@ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ - "module": "commonjs", /* Specify what module code is generated. */ + "module": "commonjs" /* Specify what module code is generated. */, // "rootDir": "./", /* Specify the root folder within your source files. */ // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ @@ -35,7 +35,7 @@ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ + "resolveJsonModule": true /* Enable importing .json files. */, // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ @@ -71,12 +71,12 @@ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ + "strict": true /* Enable all strict type-checking options. */, // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ @@ -98,6 +98,6 @@ /* Completeness */ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ } } diff --git a/yarn.lock b/yarn.lock index c1763176..7f27f501 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,1544 +1,3506 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/helper-validator-identifier@^7.18.6": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@commitlint/cli@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.4.4.tgz#36df08bfa31dbb9a2b6b1d7187a31e578f001a06" - integrity sha512-HwKlD7CPVMVGTAeFZylVNy14Vm5POVY0WxPkZr7EXLC/os0LH/obs6z4HRvJtH/nHCMYBvUBQhGwnufKfTjd5g== - dependencies: - "@commitlint/format" "^17.4.4" - "@commitlint/lint" "^17.4.4" - "@commitlint/load" "^17.4.4" - "@commitlint/read" "^17.4.4" - "@commitlint/types" "^17.4.4" - execa "^5.0.0" - lodash.isfunction "^3.0.9" - resolve-from "5.0.0" - resolve-global "1.0.0" - yargs "^17.0.0" - -"@commitlint/config-conventional@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.4.4.tgz#f30b1e5b2e48ce5799a483c200c52f218a98efcc" - integrity sha512-u6ztvxqzi6NuhrcEDR7a+z0yrh11elY66nRrQIpqsqW6sZmpxYkDLtpRH8jRML+mmxYQ8s4qqF06Q/IQx5aJeQ== - dependencies: - conventional-changelog-conventionalcommits "^5.0.0" - -"@commitlint/config-validator@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.4.4.tgz#d0742705719559a101d2ee49c0c514044af6d64d" - integrity sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg== - dependencies: - "@commitlint/types" "^17.4.4" - ajv "^8.11.0" - -"@commitlint/ensure@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.4.4.tgz#a36e7719bdb9c2b86c8b8c2e852b463a7bfda5fa" - integrity sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g== - dependencies: - "@commitlint/types" "^17.4.4" - lodash.camelcase "^4.3.0" - lodash.kebabcase "^4.1.1" - lodash.snakecase "^4.1.1" - lodash.startcase "^4.4.0" - lodash.upperfirst "^4.3.1" - -"@commitlint/execute-rule@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz#4518e77958893d0a5835babe65bf87e2638f6939" - integrity sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA== - -"@commitlint/format@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.4.4.tgz#0f6e1b4d7a301c7b1dfd4b6334edd97fc050b9f5" - integrity sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ== - dependencies: - "@commitlint/types" "^17.4.4" - chalk "^4.1.0" - -"@commitlint/is-ignored@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.4.4.tgz#82e03f1abe2de2c0c8c162a250b8d466225e922b" - integrity sha512-Y3eo1SFJ2JQDik4rWkBC4tlRIxlXEFrRWxcyrzb1PUT2k3kZ/XGNuCDfk/u0bU2/yS0tOA/mTjFsV+C4qyACHw== - dependencies: - "@commitlint/types" "^17.4.4" - semver "7.3.8" - -"@commitlint/lint@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.4.4.tgz#0ecd70b44ec5f4823c2e00e0c4b04ebd41d42856" - integrity sha512-qgkCRRFjyhbMDWsti/5jRYVJkgYZj4r+ZmweZObnbYqPUl5UKLWMf9a/ZZisOI4JfiPmRktYRZ2JmqlSvg+ccw== - dependencies: - "@commitlint/is-ignored" "^17.4.4" - "@commitlint/parse" "^17.4.4" - "@commitlint/rules" "^17.4.4" - "@commitlint/types" "^17.4.4" - -"@commitlint/load@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.4.4.tgz#13fcb553572f265339801cde6dd10ee5eea07f5e" - integrity sha512-z6uFIQ7wfKX5FGBe1AkOF4l/ShOQsaa1ml/nLMkbW7R/xF8galGS7Zh0yHvzVp/srtfS0brC+0bUfQfmpMPFVQ== - dependencies: - "@commitlint/config-validator" "^17.4.4" - "@commitlint/execute-rule" "^17.4.0" - "@commitlint/resolve-extends" "^17.4.4" - "@commitlint/types" "^17.4.4" - "@types/node" "*" - chalk "^4.1.0" - cosmiconfig "^8.0.0" - cosmiconfig-typescript-loader "^4.0.0" - lodash.isplainobject "^4.0.6" - lodash.merge "^4.6.2" - lodash.uniq "^4.5.0" - resolve-from "^5.0.0" - ts-node "^10.8.1" - typescript "^4.6.4" - -"@commitlint/message@^17.4.2": - version "17.4.2" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.4.2.tgz#f4753a79701ad6db6db21f69076e34de6580e22c" - integrity sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q== - -"@commitlint/parse@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.4.4.tgz#8311b12f2b730de6ea0679ae2a37b386bcc5b04b" - integrity sha512-EKzz4f49d3/OU0Fplog7nwz/lAfXMaDxtriidyGF9PtR+SRbgv4FhsfF310tKxs6EPj8Y+aWWuX3beN5s+yqGg== - dependencies: - "@commitlint/types" "^17.4.4" - conventional-changelog-angular "^5.0.11" - conventional-commits-parser "^3.2.2" - -"@commitlint/read@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.4.4.tgz#de6ec00aad827764153009aa54517e3df2154555" - integrity sha512-B2TvUMJKK+Svzs6eji23WXsRJ8PAD+orI44lVuVNsm5zmI7O8RSGJMvdEZEikiA4Vohfb+HevaPoWZ7PiFZ3zA== - dependencies: - "@commitlint/top-level" "^17.4.0" - "@commitlint/types" "^17.4.4" - fs-extra "^11.0.0" - git-raw-commits "^2.0.0" - minimist "^1.2.6" - -"@commitlint/resolve-extends@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.4.4.tgz#8f931467dea8c43b9fe38373e303f7c220de6fdc" - integrity sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A== - dependencies: - "@commitlint/config-validator" "^17.4.4" - "@commitlint/types" "^17.4.4" - import-fresh "^3.0.0" - lodash.mergewith "^4.6.2" - resolve-from "^5.0.0" - resolve-global "^1.0.0" - -"@commitlint/rules@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.4.4.tgz#9b33f41e5eb529f916396bac7c62e61f0edd6791" - integrity sha512-0tgvXnHi/mVcyR8Y8mjTFZIa/FEQXA4uEutXS/imH2v1UNkYDSEMsK/68wiXRpfW1euSgEdwRkvE1z23+yhNrQ== - dependencies: - "@commitlint/ensure" "^17.4.4" - "@commitlint/message" "^17.4.2" - "@commitlint/to-lines" "^17.4.0" - "@commitlint/types" "^17.4.4" - execa "^5.0.0" - -"@commitlint/to-lines@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-17.4.0.tgz#9bd02e911e7d4eab3fb4a50376c4c6d331e10d8d" - integrity sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg== - -"@commitlint/top-level@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-17.4.0.tgz#540cac8290044cf846fbdd99f5cc51e8ac5f27d6" - integrity sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g== - dependencies: - find-up "^5.0.0" - -"@commitlint/types@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.4.4.tgz#1416df936e9aad0d6a7bbc979ecc31e55dade662" - integrity sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ== - dependencies: - chalk "^4.1.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@esbuild-kit/cjs-loader@^2.4.2": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@esbuild-kit/cjs-loader/-/cjs-loader-2.4.2.tgz#cb4dde00fbf744a68c4f20162ea15a8242d0fa54" - integrity sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg== - dependencies: - "@esbuild-kit/core-utils" "^3.0.0" - get-tsconfig "^4.4.0" - -"@esbuild-kit/core-utils@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@esbuild-kit/core-utils/-/core-utils-3.1.0.tgz#49945d533dbd5e1b7620aa0fc522c15e6ec089c5" - integrity sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw== - dependencies: - esbuild "~0.17.6" - source-map-support "^0.5.21" - -"@esbuild-kit/esm-loader@^2.5.5": - version "2.5.5" - resolved "https://registry.yarnpkg.com/@esbuild-kit/esm-loader/-/esm-loader-2.5.5.tgz#b82da14fcee3fc1d219869756c06f43f67d1ca71" - integrity sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw== - dependencies: - "@esbuild-kit/core-utils" "^3.0.0" - get-tsconfig "^4.4.0" - -"@esbuild/android-arm64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.11.tgz#52c3e6cabc19c5e4c1c0c01cb58f0442338e1c14" - integrity sha512-QnK4d/zhVTuV4/pRM4HUjcsbl43POALU2zvBynmrrqZt9LPcLA3x1fTZPBg2RRguBQnJcnU059yKr+bydkntjg== - -"@esbuild/android-arm@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.11.tgz#f3fc768235aecbeb840d0049fdf13cd28592105f" - integrity sha512-CdyX6sRVh1NzFCsf5vw3kULwlAhfy9wVt8SZlrhQ7eL2qBjGbFhRBWkkAzuZm9IIEOCKJw4DXA6R85g+qc8RDw== - -"@esbuild/android-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.11.tgz#443ed47771a7e917e4282469ba350d117473550c" - integrity sha512-3PL3HKtsDIXGQcSCKtWD/dy+mgc4p2Tvo2qKgKHj9Yf+eniwFnuoQ0OUhlSfAEpKAFzF9N21Nwgnap6zy3L3MQ== - -"@esbuild/darwin-arm64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.11.tgz#0e8c78d94d5759a48521dbfd83189d2ed3499a16" - integrity sha512-pJ950bNKgzhkGNO3Z9TeHzIFtEyC2GDQL3wxkMApDEghYx5Qers84UTNc1bAxWbRkuJOgmOha5V0WUeh8G+YGw== - -"@esbuild/darwin-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.11.tgz#2405cfdf70eb961c7cf973463ca7263dc2004c88" - integrity sha512-iB0dQkIHXyczK3BZtzw1tqegf0F0Ab5texX2TvMQjiJIWXAfM4FQl7D909YfXWnB92OQz4ivBYQ2RlxBJrMJOw== - -"@esbuild/freebsd-arm64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.11.tgz#d5138e873e15f87bd4564c024dfa00ef37e623fd" - integrity sha512-7EFzUADmI1jCHeDRGKgbnF5sDIceZsQGapoO6dmw7r/ZBEKX7CCDnIz8m9yEclzr7mFsd+DyasHzpjfJnmBB1Q== - -"@esbuild/freebsd-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.11.tgz#e850b58b8fabf8e9ef0e125af3c25229ad2d6c38" - integrity sha512-iPgenptC8i8pdvkHQvXJFzc1eVMR7W2lBPrTE6GbhR54sLcF42mk3zBOjKPOodezzuAz/KSu8CPyFSjcBMkE9g== - -"@esbuild/linux-arm64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.11.tgz#2bfb93d0809ec2357c12ebb27736b750c9ae0aa5" - integrity sha512-Qxth3gsWWGKz2/qG2d5DsW/57SeA2AmpSMhdg9TSB5Svn2KDob3qxfQSkdnWjSd42kqoxIPy3EJFs+6w1+6Qjg== - -"@esbuild/linux-arm@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.11.tgz#e56fb3b76828317a704f4a167c5bd790fe5314e7" - integrity sha512-M9iK/d4lgZH0U5M1R2p2gqhPV/7JPJcRz+8O8GBKVgqndTzydQ7B2XGDbxtbvFkvIs53uXTobOhv+RyaqhUiMg== - -"@esbuild/linux-ia32@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.11.tgz#59fa1c49b271793d14eb5effc757e8c0d0cb2cab" - integrity sha512-dB1nGaVWtUlb/rRDHmuDQhfqazWE0LMro/AIbT2lWM3CDMHJNpLckH+gCddQyhhcLac2OYw69ikUMO34JLt3wA== - -"@esbuild/linux-loong64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.11.tgz#89575bc189099c03a36daa54f3f481780c7fd502" - integrity sha512-aCWlq70Q7Nc9WDnormntGS1ar6ZFvUpqr8gXtO+HRejRYPweAFQN615PcgaSJkZjhHp61+MNLhzyVALSF2/Q0g== - -"@esbuild/linux-mips64el@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.11.tgz#0e18ca039dc7e4645efd8edc1b10952933eb6b1b" - integrity sha512-cGeGNdQxqY8qJwlYH1BP6rjIIiEcrM05H7k3tR7WxOLmD1ZxRMd6/QIOWMb8mD2s2YJFNRuNQ+wjMhgEL2oCEw== - -"@esbuild/linux-ppc64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.11.tgz#2d152cb3a253afb8c100a165ad132dc96f36cb11" - integrity sha512-BdlziJQPW/bNe0E8eYsHB40mYOluS+jULPCjlWiHzDgr+ZBRXPtgMV1nkLEGdpjrwgmtkZHEGEPaKdS/8faLDA== - -"@esbuild/linux-riscv64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.11.tgz#c6ac494a81221d53d65b33e665c7df1747952d3c" - integrity sha512-MDLwQbtF+83oJCI1Cixn68Et/ME6gelmhssPebC40RdJaect+IM+l7o/CuG0ZlDs6tZTEIoxUe53H3GmMn8oMA== - -"@esbuild/linux-s390x@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.11.tgz#4bad33894bc7415cea4be8fa90fe456226a424ad" - integrity sha512-4N5EMESvws0Ozr2J94VoUD8HIRi7X0uvUv4c0wpTHZyZY9qpaaN7THjosdiW56irQ4qnJ6Lsc+i+5zGWnyqWqQ== - -"@esbuild/linux-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.11.tgz#903fda743459f530a16a6c6ee8d2c0f6c1a12fc7" - integrity sha512-rM/v8UlluxpytFSmVdbCe1yyKQd/e+FmIJE2oPJvbBo+D0XVWi1y/NQ4iTNx+436WmDHQBjVLrbnAQLQ6U7wlw== - -"@esbuild/netbsd-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.11.tgz#b589239fe7d9b16ee03c5e191f3f5b640f1518a1" - integrity sha512-4WaAhuz5f91h3/g43VBGdto1Q+X7VEZfpcWGtOFXnggEuLvjV+cP6DyLRU15IjiU9fKLLk41OoJfBFN5DhPvag== - -"@esbuild/openbsd-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.11.tgz#b355019754116bef39ec688f8fd2fe6471b9779b" - integrity sha512-UBj135Nx4FpnvtE+C8TWGp98oUgBcmNmdYgl5ToKc0mBHxVVqVE7FUS5/ELMImOp205qDAittL6Ezhasc2Ev/w== - -"@esbuild/sunos-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.11.tgz#2ea47fb592e68406e5025a7696dc714fc6a115dc" - integrity sha512-1/gxTifDC9aXbV2xOfCbOceh5AlIidUrPsMpivgzo8P8zUtczlq1ncFpeN1ZyQJ9lVs2hILy1PG5KPp+w8QPPg== - -"@esbuild/win32-arm64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.11.tgz#47e6fdab17c4c52e6e0d606dd9cb843b29826325" - integrity sha512-vtSfyx5yRdpiOW9yp6Ax0zyNOv9HjOAw8WaZg3dF5djEHKKm3UnoohftVvIJtRh0Ec7Hso0RIdTqZvPXJ7FdvQ== - -"@esbuild/win32-ia32@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.11.tgz#a97273aa3164c8d8f501899f55cc75a4a79599a3" - integrity sha512-GFPSLEGQr4wHFTiIUJQrnJKZhZjjq4Sphf+mM76nQR6WkQn73vm7IsacmBRPkALfpOCHsopSvLgqdd4iUW2mYw== - -"@esbuild/win32-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.11.tgz#9be796d93ae27b636da32d960899a4912bca27a1" - integrity sha512-N9vXqLP3eRL8BqSy8yn4Y98cZI2pZ8fyuHx6lKjiG2WABpT2l01TXdzq5Ma2ZUBzfB7tx5dXVhge8X9u0S70ZQ== - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== - -"@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== - -"@types/node@*", "@types/node@^18.14.6": - version "18.14.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.6.tgz#ae1973dd2b1eeb1825695bb11ebfb746d27e3e93" - integrity sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA== - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - -JSONStream@^1.0.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^8.4.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -ajv@^8.11.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -compare-func@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" - integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== - dependencies: - array-ify "^1.0.0" - dot-prop "^5.1.0" - -conventional-changelog-angular@^5.0.11: - version "5.0.13" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" - integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== - dependencies: - compare-func "^2.0.0" - q "^1.5.1" - -conventional-changelog-conventionalcommits@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz#41bdce54eb65a848a4a3ffdca93e92fa22b64a86" - integrity sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw== - dependencies: - compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" - -conventional-commits-parser@^3.2.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" - integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== - dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.1" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - -cosmiconfig-typescript-loader@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz#c4259ce474c9df0f32274ed162c0447c951ef073" - integrity sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q== - -cosmiconfig@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.1.0.tgz#947e174c796483ccf0a48476c24e4fefb7e1aea8" - integrity sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg== - dependencies: - import-fresh "^3.2.1" - js-yaml "^4.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -dargs@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" - integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== - -decamelize-keys@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" - integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dot-prop@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -dotenv@^16.0.3: - version "16.0.3" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" - integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -esbuild@~0.17.6: - version "0.17.11" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.11.tgz#9f3122643b21d7e7731e42f18576c10bfa28152b" - integrity sha512-pAMImyokbWDtnA/ufPxjQg0fYo2DDuzAlqwnDvbXqHLphe+m80eF++perYKVm8LeTuj2zUuFXC+xgSVxyoHUdg== - optionalDependencies: - "@esbuild/android-arm" "0.17.11" - "@esbuild/android-arm64" "0.17.11" - "@esbuild/android-x64" "0.17.11" - "@esbuild/darwin-arm64" "0.17.11" - "@esbuild/darwin-x64" "0.17.11" - "@esbuild/freebsd-arm64" "0.17.11" - "@esbuild/freebsd-x64" "0.17.11" - "@esbuild/linux-arm" "0.17.11" - "@esbuild/linux-arm64" "0.17.11" - "@esbuild/linux-ia32" "0.17.11" - "@esbuild/linux-loong64" "0.17.11" - "@esbuild/linux-mips64el" "0.17.11" - "@esbuild/linux-ppc64" "0.17.11" - "@esbuild/linux-riscv64" "0.17.11" - "@esbuild/linux-s390x" "0.17.11" - "@esbuild/linux-x64" "0.17.11" - "@esbuild/netbsd-x64" "0.17.11" - "@esbuild/openbsd-x64" "0.17.11" - "@esbuild/sunos-x64" "0.17.11" - "@esbuild/win32-arm64" "0.17.11" - "@esbuild/win32-ia32" "0.17.11" - "@esbuild/win32-x64" "0.17.11" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -fs-extra@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.0.tgz#5784b102104433bb0e090f48bfc4a30742c357ed" - integrity sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-tsconfig@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.4.0.tgz#64eee64596668a81b8fce18403f94f245ee0d4e5" - integrity sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ== - -git-raw-commits@^2.0.0: - version "2.0.11" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" - integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== - dependencies: - dargs "^7.0.0" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - -global-dirs@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== - dependencies: - ini "^1.3.4" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -husky@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" - integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -inherits@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@^1.3.4: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-core-module@^2.5.0, is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== - dependencies: - has "^1.0.3" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-text-path@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== - dependencies: - text-extensions "^1.0.0" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - -kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.isfunction@^3.0.9: - version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" - integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.mergewith@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" - integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== - -lodash.snakecase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" - integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== - -lodash.startcase@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" - integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash.upperfirst@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" - integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== - -lodash@^4.17.15: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== - -map-obj@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -meow@^8.0.0: - version "8.1.2" - resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" - integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -q@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -readable-stream@3, readable-stream@^3.0.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.1.tgz#f9f9b5f536920253b3d26e7660e7da4ccff9bb62" - integrity sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -resolve-from@5.0.0, resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-global@1.0.0, resolve-global@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" - integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== - dependencies: - global-dirs "^0.1.1" - -resolve@^1.10.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"semver@2 || 3 || 4 || 5": - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.3.8, semver@^7.3.4: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.3: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -source-map-support@^0.5.21: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.12" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" - integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== - -split2@^3.0.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" - integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== - dependencies: - readable-stream "^3.0.0" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -text-extensions@^1.0.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" - integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== - -through2@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" - integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== - dependencies: - readable-stream "3" - -"through@>=2.2.7 <3": - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" - integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== - -ts-node@^10.8.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tsx@^3.12.3: - version "3.12.3" - resolved "https://registry.yarnpkg.com/tsx/-/tsx-3.12.3.tgz#b29f6c9246d4e3ea46451cd81d7cbc98f45c4b8a" - integrity sha512-Wc5BFH1xccYTXaQob+lEcimkcb/Pq+0en2s+ruiX0VEIC80nV7/0s7XRahx8NnsoCnpCVUPz8wrqVSPi760LkA== - dependencies: - "@esbuild-kit/cjs-loader" "^2.4.2" - "@esbuild-kit/core-utils" "^3.0.0" - "@esbuild-kit/esm-loader" "^2.5.5" - optionalDependencies: - fsevents "~2.3.2" - -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typescript@^4.6.4, typescript@^4.9.5: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^20.2.3: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^17.0.0: - version "17.7.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" - integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 6 + cacheKey: 8 + +"@aashutoshrathi/word-wrap@npm:^1.2.3": + version: 1.2.6 + resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" + checksum: ada901b9e7c680d190f1d012c84217ce0063d8f5c5a7725bb91ec3c5ed99bb7572680eb2d2938a531ccbaec39a95422fcd8a6b4a13110c7d98dd75402f66a0cd + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/code-frame@npm:7.22.5" + dependencies: + "@babel/highlight": ^7.22.5 + checksum: cfe804f518f53faaf9a1d3e0f9f74127ab9a004912c3a16fda07fb6a633393ecb9918a053cb71804204c1b7ec3d49e1699604715e2cfb0c9f7bc4933d324ebb6 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-validator-identifier@npm:7.22.5" + checksum: 7f0f30113474a28298c12161763b49de5018732290ca4de13cdaefd4fd0d635a6fe3f6686c37a02905fb1e64f21a5ee2b55140cf7b070e729f1bd66866506aea + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/highlight@npm:7.22.5" + dependencies: + "@babel/helper-validator-identifier": ^7.22.5 + chalk: ^2.0.0 + js-tokens: ^4.0.0 + checksum: f61ae6de6ee0ea8d9b5bcf2a532faec5ab0a1dc0f7c640e5047fc61630a0edb88b18d8c92eb06566d30da7a27db841aca11820ecd3ebe9ce514c9350fbed39c4 + languageName: node + linkType: hard + +"@commitlint/cli@npm:^17.6.6": + version: 17.6.6 + resolution: "@commitlint/cli@npm:17.6.6" + dependencies: + "@commitlint/format": ^17.4.4 + "@commitlint/lint": ^17.6.6 + "@commitlint/load": ^17.5.0 + "@commitlint/read": ^17.5.1 + "@commitlint/types": ^17.4.4 + execa: ^5.0.0 + lodash.isfunction: ^3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: ^17.0.0 + bin: + commitlint: cli.js + checksum: 91c2d06bc181cb286634d963e28c71739642a94252dcf2bcd800dd3ac1d8708d8ccd195aa513a65df00fcde281a128ed763ac51f640771a11140930c5f259df8 + languageName: node + linkType: hard + +"@commitlint/config-conventional@npm:^17.6.6": + version: 17.6.6 + resolution: "@commitlint/config-conventional@npm:17.6.6" + dependencies: + conventional-changelog-conventionalcommits: ^5.0.0 + checksum: 0f649a2cbe684aa18555cb0027c21f58d74216dbe0a850be041af50f1db04e447b7d90995bee54c61059d735b398de61ac7ecbfd312d14480aac3a3f8c62dd66 + languageName: node + linkType: hard + +"@commitlint/config-validator@npm:^17.4.4": + version: 17.4.4 + resolution: "@commitlint/config-validator@npm:17.4.4" + dependencies: + "@commitlint/types": ^17.4.4 + ajv: ^8.11.0 + checksum: 71ee818608ed5c74832cdd63531c0f61b21758fba9f8b876205485ece4f047c9582bc3f323a20a5de700e3451296614d15448437270a82194eff7d71317b47ff + languageName: node + linkType: hard + +"@commitlint/ensure@npm:^17.4.4": + version: 17.4.4 + resolution: "@commitlint/ensure@npm:17.4.4" + dependencies: + "@commitlint/types": ^17.4.4 + lodash.camelcase: ^4.3.0 + lodash.kebabcase: ^4.1.1 + lodash.snakecase: ^4.1.1 + lodash.startcase: ^4.4.0 + lodash.upperfirst: ^4.3.1 + checksum: c21c189f22d8d3265e93256d101b72ef7cbdf8660438081799b9a4a8bd47d33133f250bbed858ab9bcc0d249d1c95ac58eddd9e5b46314d64ff049d0479d0d71 + languageName: node + linkType: hard + +"@commitlint/execute-rule@npm:^17.4.0": + version: 17.4.0 + resolution: "@commitlint/execute-rule@npm:17.4.0" + checksum: 17d8e56ab00bd45fdecb0ed33186d2020ce261250d6a516204b6509610b75af8c930e7226b1111af3de298db32a7e4d0ba2c9cc7ed67db5ba5159eeed634f067 + languageName: node + linkType: hard + +"@commitlint/format@npm:^17.4.4": + version: 17.4.4 + resolution: "@commitlint/format@npm:17.4.4" + dependencies: + "@commitlint/types": ^17.4.4 + chalk: ^4.1.0 + checksum: 832d9641129f2da8d32389b4a47db59d41eb1adfab742723972cad64b833c4af9e253f96757b27664fedae61644dd4c01d21f775773b45b604bd7f93b23a27d2 + languageName: node + linkType: hard + +"@commitlint/is-ignored@npm:^17.6.6": + version: 17.6.6 + resolution: "@commitlint/is-ignored@npm:17.6.6" + dependencies: + "@commitlint/types": ^17.4.4 + semver: 7.5.2 + checksum: ff5f8816765b3f2e9f16de32b1166dd099ab23793212bf4092203441fe3d9f282c80ed96cca5cd42b0ea96d899f8989bdaa6604a3f02bf4bd36b8c7c123968df + languageName: node + linkType: hard + +"@commitlint/lint@npm:^17.6.6": + version: 17.6.6 + resolution: "@commitlint/lint@npm:17.6.6" + dependencies: + "@commitlint/is-ignored": ^17.6.6 + "@commitlint/parse": ^17.6.5 + "@commitlint/rules": ^17.6.5 + "@commitlint/types": ^17.4.4 + checksum: 8601cbfe037edd4aff38cf3929444e748499558dfb01a12f1e6067fb4496926711936cbd389cf792f5e3ea6b6900c6967ca5b56dc0555d75c71340ceddc6d076 + languageName: node + linkType: hard + +"@commitlint/load@npm:^17.5.0": + version: 17.5.0 + resolution: "@commitlint/load@npm:17.5.0" + dependencies: + "@commitlint/config-validator": ^17.4.4 + "@commitlint/execute-rule": ^17.4.0 + "@commitlint/resolve-extends": ^17.4.4 + "@commitlint/types": ^17.4.4 + "@types/node": "*" + chalk: ^4.1.0 + cosmiconfig: ^8.0.0 + cosmiconfig-typescript-loader: ^4.0.0 + lodash.isplainobject: ^4.0.6 + lodash.merge: ^4.6.2 + lodash.uniq: ^4.5.0 + resolve-from: ^5.0.0 + ts-node: ^10.8.1 + typescript: ^4.6.4 || ^5.0.0 + checksum: c039114b0ad67bb9d8b05ec635d847bd5ab760528f0fb203411f433585bdab5472f4f5c7856dfc417cf64c05576f54c1afc4997a813f529304e0156bfc1d6cc8 + languageName: node + linkType: hard + +"@commitlint/message@npm:^17.4.2": + version: 17.4.2 + resolution: "@commitlint/message@npm:17.4.2" + checksum: 55b6cfeb57f7c9f913e18821aa4d972a6b6faa78c62741390996151f99554396f6df68ccfee86c163d24d8c27a4dbbcb50ef03c2972ab0a7a21d89daa2f9a519 + languageName: node + linkType: hard + +"@commitlint/parse@npm:^17.6.5": + version: 17.6.5 + resolution: "@commitlint/parse@npm:17.6.5" + dependencies: + "@commitlint/types": ^17.4.4 + conventional-changelog-angular: ^5.0.11 + conventional-commits-parser: ^3.2.2 + checksum: 579dd7b25d2b5a73817318259f4ce1191657fad8736047bcd84e2709bbe9bcb7458cbe66b6dc785e372c1c73a4563050027b94746ad0df16a89d90960a685517 + languageName: node + linkType: hard + +"@commitlint/read@npm:^17.5.1": + version: 17.5.1 + resolution: "@commitlint/read@npm:17.5.1" + dependencies: + "@commitlint/top-level": ^17.4.0 + "@commitlint/types": ^17.4.4 + fs-extra: ^11.0.0 + git-raw-commits: ^2.0.11 + minimist: ^1.2.6 + checksum: 62ee4f7a47b22a8571ae313bca36b418805a248f4986557f38f06317c44b6d18072889f95e7bc22bbb33a2f2b08236f74596ff28e3dbd0894249477a9df367c3 + languageName: node + linkType: hard + +"@commitlint/resolve-extends@npm:^17.4.4": + version: 17.4.4 + resolution: "@commitlint/resolve-extends@npm:17.4.4" + dependencies: + "@commitlint/config-validator": ^17.4.4 + "@commitlint/types": ^17.4.4 + import-fresh: ^3.0.0 + lodash.mergewith: ^4.6.2 + resolve-from: ^5.0.0 + resolve-global: ^1.0.0 + checksum: d7bf1ff1ad3db8750421b252d79cf7b96cf07d72cad8cc3f73c1363a8e68c0afde611d38ae6f213bbb54e3248160c6b9425578f3d0f8f790e84aea811d748b3e + languageName: node + linkType: hard + +"@commitlint/rules@npm:^17.6.5": + version: 17.6.5 + resolution: "@commitlint/rules@npm:17.6.5" + dependencies: + "@commitlint/ensure": ^17.4.4 + "@commitlint/message": ^17.4.2 + "@commitlint/to-lines": ^17.4.0 + "@commitlint/types": ^17.4.4 + execa: ^5.0.0 + checksum: 7f62c594153df5daf15bf66254f8abd72f14f3f0e7bac91d0fc8229c357616a9d852b2dd050a15b3de83366a732a3363ec405d453d48b81cbaeccdd7013cb59f + languageName: node + linkType: hard + +"@commitlint/to-lines@npm:^17.4.0": + version: 17.4.0 + resolution: "@commitlint/to-lines@npm:17.4.0" + checksum: 841f90f606238e145ab4ba02940662d511fc04fe553619900152a8542170fe664031b95d820ffaeb8864d4851344278e662ef29637d763fc19fd828e0f8d139b + languageName: node + linkType: hard + +"@commitlint/top-level@npm:^17.4.0": + version: 17.4.0 + resolution: "@commitlint/top-level@npm:17.4.0" + dependencies: + find-up: ^5.0.0 + checksum: 14cd77e982d2dd7989718dafdbf7a2168a5fb387005e0686c2dfa9ffc36bb9a749e5d80a151884459e4d8c88564339688dca26e9c711abe043beeb3f30c3dfd6 + languageName: node + linkType: hard + +"@commitlint/types@npm:^17.4.4": + version: 17.4.4 + resolution: "@commitlint/types@npm:17.4.4" + dependencies: + chalk: ^4.1.0 + checksum: 03c52429052d161710896d198000196bd2e60be0fd71459b22133dd83dee43e8d05ea8ee703c8369823bc40f77a54881b80d8aa4368ac52aea7f30fb234b73d2 + languageName: node + linkType: hard + +"@cspotcode/source-map-support@npm:^0.8.0": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": 0.3.9 + checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa + languageName: node + linkType: hard + +"@esbuild-kit/cjs-loader@npm:^2.4.2": + version: 2.4.2 + resolution: "@esbuild-kit/cjs-loader@npm:2.4.2" + dependencies: + "@esbuild-kit/core-utils": ^3.0.0 + get-tsconfig: ^4.4.0 + checksum: e346e339bfc7eff5c52c270fd0ec06a7f2341b624adfb69f84b7d83f119c35070420906f2761a0b4604e0a0ec90e35eaf12544585476c428ed6d6ee3b250c0fe + languageName: node + linkType: hard + +"@esbuild-kit/core-utils@npm:^3.0.0": + version: 3.1.0 + resolution: "@esbuild-kit/core-utils@npm:3.1.0" + dependencies: + esbuild: ~0.17.6 + source-map-support: ^0.5.21 + checksum: d54fd5adb3ce6784d84bb025ad54ddcfbab99267071a7f65298e547f56696f0b9d0dba96c535f9678a30d4887ec71cd445fdd277d65fbec1f3b504f6808f693e + languageName: node + linkType: hard + +"@esbuild-kit/esm-loader@npm:^2.5.5": + version: 2.5.5 + resolution: "@esbuild-kit/esm-loader@npm:2.5.5" + dependencies: + "@esbuild-kit/core-utils": ^3.0.0 + get-tsconfig: ^4.4.0 + checksum: 9d4a03ffc937fbec75a8456c3d45d7cdb1a65768416791a5720081753502bc9f485ba27942a46f564b12483b140a8a46c12433a4496430d93e4513e430484ec7 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/android-arm64@npm:0.17.19" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/android-arm@npm:0.17.19" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/android-x64@npm:0.17.19" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/darwin-arm64@npm:0.17.19" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/darwin-x64@npm:0.17.19" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/freebsd-arm64@npm:0.17.19" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/freebsd-x64@npm:0.17.19" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-arm64@npm:0.17.19" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-arm@npm:0.17.19" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-ia32@npm:0.17.19" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-loong64@npm:0.17.19" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-mips64el@npm:0.17.19" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-ppc64@npm:0.17.19" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-riscv64@npm:0.17.19" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-s390x@npm:0.17.19" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-x64@npm:0.17.19" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/netbsd-x64@npm:0.17.19" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/openbsd-x64@npm:0.17.19" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/sunos-x64@npm:0.17.19" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/win32-arm64@npm:0.17.19" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/win32-ia32@npm:0.17.19" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/win32-x64@npm:0.17.19" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.2.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: ^3.3.0 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.4.0": + version: 4.5.1 + resolution: "@eslint-community/regexpp@npm:4.5.1" + checksum: 6d901166d64998d591fab4db1c2f872981ccd5f6fe066a1ad0a93d4e11855ecae6bfb76660869a469563e8882d4307228cebd41142adb409d182f2966771e57e + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.0.3": + version: 2.0.3 + resolution: "@eslint/eslintrc@npm:2.0.3" + dependencies: + ajv: ^6.12.4 + debug: ^4.3.2 + espree: ^9.5.2 + globals: ^13.19.0 + ignore: ^5.2.0 + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + minimatch: ^3.1.2 + strip-json-comments: ^3.1.1 + checksum: ddc51f25f8524d8231db9c9bf03177e503d941a332e8d5ce3b10b09241be4d5584a378a529a27a527586bfbccf3031ae539eb891352033c340b012b4d0c81d92 + languageName: node + linkType: hard + +"@eslint/js@npm:8.43.0": + version: 8.43.0 + resolution: "@eslint/js@npm:8.43.0" + checksum: 580487a09c82ac169744d36e4af77bc4f582c9a37749d1e9481eb93626c8f3991b2390c6e4e69e5642e3b6e870912b839229a0e23594fae348156ea5a8ed7e2e + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.11.10": + version: 0.11.10 + resolution: "@humanwhocodes/config-array@npm:0.11.10" + dependencies: + "@humanwhocodes/object-schema": ^1.2.1 + debug: ^4.1.1 + minimatch: ^3.0.5 + checksum: 1b1302e2403d0e35bc43e66d67a2b36b0ad1119efc704b5faff68c41f791a052355b010fb2d27ef022670f550de24cd6d08d5ecf0821c16326b7dcd0ee5d5d8a + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 + languageName: node + linkType: hard + +"@humanwhocodes/object-schema@npm:^1.2.1": + version: 1.2.1 + resolution: "@humanwhocodes/object-schema@npm:1.2.1" + checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: ^5.1.2 + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: ^7.0.1 + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: ^8.1.0 + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.0.3": + version: 3.1.1 + resolution: "@jridgewell/resolve-uri@npm:3.1.1" + checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10": + version: 1.4.15 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" + checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" + dependencies: + "@jridgewell/resolve-uri": ^3.0.3 + "@jridgewell/sourcemap-codec": ^1.4.10 + checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": 2.0.5 + run-parallel: ^1.1.9 + checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.8": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": 2.1.5 + fastq: ^1.6.0 + checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.0 + resolution: "@npmcli/fs@npm:3.1.0" + dependencies: + semver: ^7.3.5 + checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f + languageName: node + linkType: hard + +"@tootallnate/once@npm:2": + version: 2.0.0 + resolution: "@tootallnate/once@npm:2.0.0" + checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 + languageName: node + linkType: hard + +"@tsconfig/node10@npm:^1.0.7": + version: 1.0.9 + resolution: "@tsconfig/node10@npm:1.0.9" + checksum: a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df + languageName: node + linkType: hard + +"@tsconfig/node12@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node12@npm:1.0.11" + checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a + languageName: node + linkType: hard + +"@tsconfig/node14@npm:^1.0.0": + version: 1.0.3 + resolution: "@tsconfig/node14@npm:1.0.3" + checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d + languageName: node + linkType: hard + +"@tsconfig/node16@npm:^1.0.2": + version: 1.0.4 + resolution: "@tsconfig/node16@npm:1.0.4" + checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff + languageName: node + linkType: hard + +"@types/minimist@npm:^1.2.0": + version: 1.2.2 + resolution: "@types/minimist@npm:1.2.2" + checksum: b8da83c66eb4aac0440e64674b19564d9d86c80ae273144db9681e5eeff66f238ade9515f5006ffbfa955ceff8b89ad2bd8ec577d7caee74ba101431fb07045d + languageName: node + linkType: hard + +"@types/node@npm:*, @types/node@npm:^20.3.2": + version: 20.3.2 + resolution: "@types/node@npm:20.3.2" + checksum: 5929ce2b9b12b1e2a2304a0921a953c72a81f5753ad39ac43b99ce6312fbb2b4fb5bc6b60d64a2550704e3223cd5de1299467d36085ac69888899db978f2653a + languageName: node + linkType: hard + +"@types/normalize-package-data@npm:^2.4.0": + version: 2.4.1 + resolution: "@types/normalize-package-data@npm:2.4.1" + checksum: e87bccbf11f95035c89a132b52b79ce69a1e3652fe55962363063c9c0dae0fe2477ebc585e03a9652adc6f381d24ba5589cc5e51849df4ced3d3e004a7d40ed5 + languageName: node + linkType: hard + +"JSONStream@npm:^1.0.4": + version: 1.3.5 + resolution: "JSONStream@npm:1.3.5" + dependencies: + jsonparse: ^1.2.0 + through: ">=2.2.7 <3" + bin: + JSONStream: ./bin.js + checksum: 2605fa124260c61bad38bb65eba30d2f72216a78e94d0ab19b11b4e0327d572b8d530c0c9cc3b0764f727ad26d39e00bf7ebad57781ca6368394d73169c59e46 + languageName: node + linkType: hard + +"abbrev@npm:^1.0.0": + version: 1.1.1 + resolution: "abbrev@npm:1.1.1" + checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 + languageName: node + linkType: hard + +"acorn-walk@npm:^8.1.1": + version: 8.2.0 + resolution: "acorn-walk@npm:8.2.0" + checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 + languageName: node + linkType: hard + +"acorn@npm:^8.4.1, acorn@npm:^8.8.0": + version: 8.9.0 + resolution: "acorn@npm:8.9.0" + bin: + acorn: bin/acorn + checksum: 25dfb94952386ecfb847e61934de04a4e7c2dc21c2e700fc4e2ef27ce78cb717700c4c4f279cd630bb4774948633c3859fc16063ec8573bda4568e0a312e6744 + languageName: node + linkType: hard + +"agent-base@npm:6, agent-base@npm:^6.0.2": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: 4 + checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d + languageName: node + linkType: hard + +"agentkeepalive@npm:^4.2.1": + version: 4.3.0 + resolution: "agentkeepalive@npm:4.3.0" + dependencies: + debug: ^4.1.0 + depd: ^2.0.0 + humanize-ms: ^1.2.1 + checksum: 982453aa44c11a06826c836025e5162c846e1200adb56f2d075400da7d32d87021b3b0a58768d949d824811f5654223d5a8a3dad120921a2439625eb847c6260 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: ^2.0.0 + indent-string: ^4.0.0 + checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + languageName: node + linkType: hard + +"ajv@npm:^6.10.0, ajv@npm:^6.12.4": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: ^3.1.1 + fast-json-stable-stringify: ^2.0.0 + json-schema-traverse: ^0.4.1 + uri-js: ^4.2.2 + checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 + languageName: node + linkType: hard + +"ajv@npm:^8.11.0": + version: 8.12.0 + resolution: "ajv@npm:8.12.0" + dependencies: + fast-deep-equal: ^3.1.1 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + uri-js: ^4.2.2 + checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: ^1.9.0 + checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: ^2.0.1 + checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 + languageName: node + linkType: hard + +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 + languageName: node + linkType: hard + +"are-we-there-yet@npm:^3.0.0": + version: 3.0.1 + resolution: "are-we-there-yet@npm:3.0.1" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 + languageName: node + linkType: hard + +"arg@npm:^4.1.0": + version: 4.1.3 + resolution: "arg@npm:4.1.3" + checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced + languageName: node + linkType: hard + +"array-ify@npm:^1.0.0": + version: 1.0.0 + resolution: "array-ify@npm:1.0.0" + checksum: c0502015b319c93dd4484f18036bcc4b654eb76a4aa1f04afbcef11ac918859bb1f5d71ba1f0f1141770db9eef1a4f40f1761753650873068010bbf7bcdae4a4 + languageName: node + linkType: hard + +"arrify@npm:^1.0.1": + version: 1.0.1 + resolution: "arrify@npm:1.0.1" + checksum: 745075dd4a4624ff0225c331dacb99be501a515d39bcb7c84d24660314a6ec28e68131b137e6f7e16318170842ce97538cd298fc4cd6b2cc798e0b957f2747e7 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: ^1.0.0 + concat-map: 0.0.1 + checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: ^1.0.0 + checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + languageName: node + linkType: hard + +"buffer-from@npm:^1.0.0": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb + languageName: node + linkType: hard + +"cacache@npm:^17.0.0": + version: 17.1.3 + resolution: "cacache@npm:17.1.3" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^7.7.1 + minipass: ^5.0.0 + minipass-collect: ^1.0.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: 385756781e1e21af089160d89d7462b7ed9883c978e848c7075b90b73cb823680e66092d61513050164588387d2ca87dd6d910e28d64bc13a9ac82cd8580c796 + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 + languageName: node + linkType: hard + +"camelcase-keys@npm:^6.2.2": + version: 6.2.2 + resolution: "camelcase-keys@npm:6.2.2" + dependencies: + camelcase: ^5.3.1 + map-obj: ^4.0.0 + quick-lru: ^4.0.1 + checksum: 43c9af1adf840471e54c68ab3e5fe8a62719a6b7dbf4e2e86886b7b0ff96112c945736342b837bd2529ec9d1c7d1934e5653318478d98e0cf22c475c04658e2a + languageName: node + linkType: hard + +"camelcase@npm:^5.3.1": + version: 5.3.1 + resolution: "camelcase@npm:5.3.1" + checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b + languageName: node + linkType: hard + +"chalk@npm:^2.0.0": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: ^3.2.1 + escape-string-regexp: ^1.0.5 + supports-color: ^5.3.0 + checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.1.0": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.1 + wrap-ansi: ^7.0.0 + checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: 1.1.3 + checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: ~1.1.4 + checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"color-support@npm:^1.1.3": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b + languageName: node + linkType: hard + +"compare-func@npm:^2.0.0": + version: 2.0.0 + resolution: "compare-func@npm:2.0.0" + dependencies: + array-ify: ^1.0.0 + dot-prop: ^5.1.0 + checksum: fb71d70632baa1e93283cf9d80f30ac97f003aabee026e0b4426c9716678079ef5fea7519b84d012cbed938c476493866a38a79760564a9e21ae9433e40e6f0d + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + languageName: node + linkType: hard + +"console-control-strings@npm:^1.1.0": + version: 1.1.0 + resolution: "console-control-strings@npm:1.1.0" + checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed + languageName: node + linkType: hard + +"conventional-changelog-angular@npm:^5.0.11": + version: 5.0.13 + resolution: "conventional-changelog-angular@npm:5.0.13" + dependencies: + compare-func: ^2.0.0 + q: ^1.5.1 + checksum: 6ed4972fce25a50f9f038c749cc9db501363131b0fb2efc1fccecba14e4b1c80651d0d758d4c350a609f32010c66fa343eefd49c02e79e911884be28f53f3f90 + languageName: node + linkType: hard + +"conventional-changelog-conventionalcommits@npm:^5.0.0": + version: 5.0.0 + resolution: "conventional-changelog-conventionalcommits@npm:5.0.0" + dependencies: + compare-func: ^2.0.0 + lodash: ^4.17.15 + q: ^1.5.1 + checksum: b67d12e4e0fdde5baa32c3d77af472de38646a18657b26f5543eecce041a318103092fbfcef247e2319a16957c9ac78c6ea78acc11a5db6acf74be79a28c561f + languageName: node + linkType: hard + +"conventional-commits-parser@npm:^3.2.2": + version: 3.2.4 + resolution: "conventional-commits-parser@npm:3.2.4" + dependencies: + JSONStream: ^1.0.4 + is-text-path: ^1.0.1 + lodash: ^4.17.15 + meow: ^8.0.0 + split2: ^3.0.0 + through2: ^4.0.0 + bin: + conventional-commits-parser: cli.js + checksum: 1627ff203bc9586d89e47a7fe63acecf339aba74903b9114e23d28094f79d4e2d6389bf146ae561461dcba8fc42e7bc228165d2b173f15756c43f1d32bc50bfd + languageName: node + linkType: hard + +"cosmiconfig-typescript-loader@npm:^4.0.0": + version: 4.3.0 + resolution: "cosmiconfig-typescript-loader@npm:4.3.0" + peerDependencies: + "@types/node": "*" + cosmiconfig: ">=7" + ts-node: ">=10" + typescript: ">=3" + checksum: ea61dfd8e112cf2bb18df0ef89280bd3ae3dd5b997b4a9fc22bbabdc02513aadfbc6d4e15e922b6a9a5d987e9dad42286fa38caf77a9b8dcdbe7d4ce1c9db4fb + languageName: node + linkType: hard + +"cosmiconfig@npm:^8.0.0": + version: 8.2.0 + resolution: "cosmiconfig@npm:8.2.0" + dependencies: + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + parse-json: ^5.0.0 + path-type: ^4.0.0 + checksum: 836d5d8efa750f3fb17b03d6ca74cd3154ed025dffd045304b3ef59637f662bde1e5dc88f8830080d180ec60841719cf4ea2ce73fb21ec694b16865c478ff297 + languageName: node + linkType: hard + +"create-require@npm:^1.1.0": + version: 1.1.1 + resolution: "create-require@npm:1.1.1" + checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + languageName: node + linkType: hard + +"dargs@npm:^7.0.0": + version: 7.0.0 + resolution: "dargs@npm:7.0.0" + checksum: b8f1e3cba59c42e1f13a114ad4848c3fc1cf7470f633ee9e9f1043762429bc97d91ae31b826fb135eefde203a3fdb20deb0c0a0222ac29d937b8046085d668d1 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + languageName: node + linkType: hard + +"decamelize-keys@npm:^1.1.0": + version: 1.1.1 + resolution: "decamelize-keys@npm:1.1.1" + dependencies: + decamelize: ^1.1.0 + map-obj: ^1.0.0 + checksum: fc645fe20b7bda2680bbf9481a3477257a7f9304b1691036092b97ab04c0ab53e3bf9fcc2d2ae382536568e402ec41fb11e1d4c3836a9abe2d813dd9ef4311e0 + languageName: node + linkType: hard + +"decamelize@npm:^1.1.0": + version: 1.2.0 + resolution: "decamelize@npm:1.2.0" + checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 + languageName: node + linkType: hard + +"delegates@npm:^1.0.0": + version: 1.0.0 + resolution: "delegates@npm:1.0.0" + checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd + languageName: node + linkType: hard + +"depd@npm:^2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a + languageName: node + linkType: hard + +"diff@npm:^4.0.1": + version: 4.0.2 + resolution: "diff@npm:4.0.2" + checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d + languageName: node + linkType: hard + +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: ^2.0.2 + checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce + languageName: node + linkType: hard + +"dot-prop@npm:^5.1.0": + version: 5.3.0 + resolution: "dot-prop@npm:5.3.0" + dependencies: + is-obj: ^2.0.0 + checksum: d5775790093c234ef4bfd5fbe40884ff7e6c87573e5339432870616331189f7f5d86575c5b5af2dcf0f61172990f4f734d07844b1f23482fff09e3c4bead05ea + languageName: node + linkType: hard + +"dotenv@npm:^16.3.1": + version: 16.3.1 + resolution: "dotenv@npm:16.3.1" + checksum: 15d75e7279018f4bafd0ee9706593dd14455ddb71b3bcba9c52574460b7ccaf67d5cf8b2c08a5af1a9da6db36c956a04a1192b101ee102a3e0cf8817bbcf3dfd + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: ^0.6.2 + checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: ^0.2.1 + checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 + languageName: node + linkType: hard + +"esbuild@npm:~0.17.6": + version: 0.17.19 + resolution: "esbuild@npm:0.17.19" + dependencies: + "@esbuild/android-arm": 0.17.19 + "@esbuild/android-arm64": 0.17.19 + "@esbuild/android-x64": 0.17.19 + "@esbuild/darwin-arm64": 0.17.19 + "@esbuild/darwin-x64": 0.17.19 + "@esbuild/freebsd-arm64": 0.17.19 + "@esbuild/freebsd-x64": 0.17.19 + "@esbuild/linux-arm": 0.17.19 + "@esbuild/linux-arm64": 0.17.19 + "@esbuild/linux-ia32": 0.17.19 + "@esbuild/linux-loong64": 0.17.19 + "@esbuild/linux-mips64el": 0.17.19 + "@esbuild/linux-ppc64": 0.17.19 + "@esbuild/linux-riscv64": 0.17.19 + "@esbuild/linux-s390x": 0.17.19 + "@esbuild/linux-x64": 0.17.19 + "@esbuild/netbsd-x64": 0.17.19 + "@esbuild/openbsd-x64": 0.17.19 + "@esbuild/sunos-x64": 0.17.19 + "@esbuild/win32-arm64": 0.17.19 + "@esbuild/win32-ia32": 0.17.19 + "@esbuild/win32-x64": 0.17.19 + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: ac11b1a5a6008e4e37ccffbd6c2c054746fc58d0ed4a2f9ee643bd030cfcea9a33a235087bc777def8420f2eaafb3486e76adb7bdb7241a9143b43a69a10afd8 + languageName: node + linkType: hard + +"escalade@npm:^3.1.1": + version: 3.1.1 + resolution: "escalade@npm:3.1.1" + checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + languageName: node + linkType: hard + +"eslint-scope@npm:^7.2.0": + version: 7.2.0 + resolution: "eslint-scope@npm:7.2.0" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^5.2.0 + checksum: 64591a2d8b244ade9c690b59ef238a11d5c721a98bcee9e9f445454f442d03d3e04eda88e95a4daec558220a99fa384309d9faae3d459bd40e7a81b4063980ae + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1": + version: 3.4.1 + resolution: "eslint-visitor-keys@npm:3.4.1" + checksum: f05121d868202736b97de7d750847a328fcfa8593b031c95ea89425333db59676ac087fa905eba438d0a3c5769632f828187e0c1a0d271832a2153c1d3661c2c + languageName: node + linkType: hard + +"eslint@npm:^8.43.0": + version: 8.43.0 + resolution: "eslint@npm:8.43.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.4.0 + "@eslint/eslintrc": ^2.0.3 + "@eslint/js": 8.43.0 + "@humanwhocodes/config-array": ^0.11.10 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + ajv: ^6.10.0 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.3.2 + doctrine: ^3.0.0 + escape-string-regexp: ^4.0.0 + eslint-scope: ^7.2.0 + eslint-visitor-keys: ^3.4.1 + espree: ^9.5.2 + esquery: ^1.4.2 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + globals: ^13.19.0 + graphemer: ^1.4.0 + ignore: ^5.2.0 + import-fresh: ^3.0.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + is-path-inside: ^3.0.3 + js-yaml: ^4.1.0 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.1 + strip-ansi: ^6.0.1 + strip-json-comments: ^3.1.0 + text-table: ^0.2.0 + bin: + eslint: bin/eslint.js + checksum: 55654ce00b0d128822b57526e40473d0497c7c6be3886afdc0b41b6b0dfbd34d0eae8159911b18451b4db51a939a0e6d2e117e847ae419086884fc3d4fe23c7c + languageName: node + linkType: hard + +"espree@npm:^9.5.2": + version: 9.5.2 + resolution: "espree@npm:9.5.2" + dependencies: + acorn: ^8.8.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^3.4.1 + checksum: 6506289d6eb26471c0b383ee24fee5c8ae9d61ad540be956b3127be5ce3bf687d2ba6538ee5a86769812c7c552a9d8239e8c4d150f9ea056c6d5cbe8399c03c1 + languageName: node + linkType: hard + +"esquery@npm:^1.4.2": + version: 1.5.0 + resolution: "esquery@npm:1.5.0" + dependencies: + estraverse: ^5.1.0 + checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: ^5.2.0 + checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 + languageName: node + linkType: hard + +"execa@npm:^5.0.0": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^6.0.0 + human-signals: ^2.1.0 + is-stream: ^2.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^4.0.1 + onetime: ^5.1.2 + signal-exit: ^3.0.3 + strip-final-newline: ^2.0.0 + checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.15.0 + resolution: "fastq@npm:1.15.0" + dependencies: + reusify: ^1.0.4 + checksum: 0170e6bfcd5d57a70412440b8ef600da6de3b2a6c5966aeaf0a852d542daff506a0ee92d6de7679d1de82e644bce69d7a574a6c93f0b03964b5337eed75ada1a + languageName: node + linkType: hard + +"file-entry-cache@npm:^6.0.1": + version: 6.0.1 + resolution: "file-entry-cache@npm:6.0.1" + dependencies: + flat-cache: ^3.0.4 + checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 + languageName: node + linkType: hard + +"find-up@npm:^4.1.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: ^5.0.0 + path-exists: ^4.0.0 + checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 + languageName: node + linkType: hard + +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: ^6.0.0 + path-exists: ^4.0.0 + checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + languageName: node + linkType: hard + +"flat-cache@npm:^3.0.4": + version: 3.0.4 + resolution: "flat-cache@npm:3.0.4" + dependencies: + flatted: ^3.1.0 + rimraf: ^3.0.2 + checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365 + languageName: node + linkType: hard + +"flatted@npm:^3.1.0": + version: 3.2.7 + resolution: "flatted@npm:3.2.7" + checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.1.1 + resolution: "foreground-child@npm:3.1.1" + dependencies: + cross-spawn: ^7.0.0 + signal-exit: ^4.0.1 + checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + languageName: node + linkType: hard + +"fs-extra@npm:^11.0.0": + version: 11.1.1 + resolution: "fs-extra@npm:11.1.1" + dependencies: + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: fb883c68245b2d777fbc1f2082c9efb084eaa2bbf9fddaa366130d196c03608eebef7fb490541276429ee1ca99f317e2d73e96f5ca0999eefedf5a624ae1edfd + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.2 + resolution: "fs-minipass@npm:3.0.2" + dependencies: + minipass: ^5.0.0 + checksum: e9cc0e1f2d01c6f6f62f567aee59530aba65c6c7b2ae88c5027bc34c711ebcfcfaefd0caf254afa6adfe7d1fba16bc2537508a6235196bac7276747d078aef0a + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 + languageName: node + linkType: hard + +"fsevents@npm:~2.3.2": + version: 2.3.2 + resolution: "fsevents@npm:2.3.2" + dependencies: + node-gyp: latest + checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@~2.3.2#~builtin": + version: 2.3.2 + resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.1": + version: 1.1.1 + resolution: "function-bind@npm:1.1.1" + checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a + languageName: node + linkType: hard + +"gauge@npm:^4.0.3": + version: 4.0.4 + resolution: "gauge@npm:4.0.4" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.3 + console-control-strings: ^1.1.0 + has-unicode: ^2.0.1 + signal-exit: ^3.0.7 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.5 + checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad + languageName: node + linkType: hard + +"get-tsconfig@npm:^4.4.0": + version: 4.6.2 + resolution: "get-tsconfig@npm:4.6.2" + dependencies: + resolve-pkg-maps: ^1.0.0 + checksum: e791e671a9b55e91efea3ca819ecd7a25beae679e31c83234bf3dd62ddd93df070c1b95ae7e29d206358ebb6408f6f79ac6d83a32a3bbd6a6d217babe23de077 + languageName: node + linkType: hard + +"git-raw-commits@npm:^2.0.11": + version: 2.0.11 + resolution: "git-raw-commits@npm:2.0.11" + dependencies: + dargs: ^7.0.0 + lodash: ^4.17.15 + meow: ^8.0.0 + split2: ^3.0.0 + through2: ^4.0.0 + bin: + git-raw-commits: cli.js + checksum: c178af43633684106179793b6e3473e1d2bb50bb41d04e2e285ea4eef342ca4090fee6bc8a737552fde879d22346c90de5c49f18c719a0f38d4c934f258a0f79 + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: ^4.0.3 + checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + languageName: node + linkType: hard + +"glob@npm:^10.2.2": + version: 10.3.1 + resolution: "glob@npm:10.3.1" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^2.0.3 + minimatch: ^9.0.1 + minipass: ^5.0.0 || ^6.0.2 + path-scurry: ^1.10.0 + bin: + glob: dist/cjs/src/bin.js + checksum: 19c8c2805658b1002fecf0722cd609a33153d756a0d5260676bd0e9c5e6ef889ec9cce6d3dac0411aa90bce8de3d14f25b6f5589a3292582cccbfeddd0e98cc4 + languageName: node + linkType: hard + +"glob@npm:^7.1.3, glob@npm:^7.1.4": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.1.1 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + languageName: node + linkType: hard + +"global-dirs@npm:^0.1.1": + version: 0.1.1 + resolution: "global-dirs@npm:0.1.1" + dependencies: + ini: ^1.3.4 + checksum: 10624f5a8ddb8634c22804c6b24f93fb591c3639a6bc78e3584e01a238fc6f7b7965824184e57d63f6df36980b6c191484ad7bc6c35a1599b8f1d64be64c2a4a + languageName: node + linkType: hard + +"globals@npm:^13.19.0": + version: 13.20.0 + resolution: "globals@npm:13.20.0" + dependencies: + type-fest: ^0.20.2 + checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 + languageName: node + linkType: hard + +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 + languageName: node + linkType: hard + +"hard-rejection@npm:^2.1.0": + version: 2.1.0 + resolution: "hard-rejection@npm:2.1.0" + checksum: 7baaf80a0c7fff4ca79687b4060113f1529589852152fa935e6787a2bc96211e784ad4588fb3048136ff8ffc9dfcf3ae385314a5b24db32de20bea0d1597f9dc + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad + languageName: node + linkType: hard + +"has-unicode@npm:^2.0.1": + version: 2.0.1 + resolution: "has-unicode@npm:2.0.1" + checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 + languageName: node + linkType: hard + +"has@npm:^1.0.3": + version: 1.0.3 + resolution: "has@npm:1.0.3" + dependencies: + function-bind: ^1.1.1 + checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 + languageName: node + linkType: hard + +"hosted-git-info@npm:^2.1.4": + version: 2.8.9 + resolution: "hosted-git-info@npm:2.8.9" + checksum: c955394bdab888a1e9bb10eb33029e0f7ce5a2ac7b3f158099dc8c486c99e73809dca609f5694b223920ca2174db33d32b12f9a2a47141dc59607c29da5a62dd + languageName: node + linkType: hard + +"hosted-git-info@npm:^4.0.1": + version: 4.1.0 + resolution: "hosted-git-info@npm:4.1.0" + dependencies: + lru-cache: ^6.0.0 + checksum: c3f87b3c2f7eb8c2748c8f49c0c2517c9a95f35d26f4bf54b2a8cba05d2e668f3753548b6ea366b18ec8dadb4e12066e19fa382a01496b0ffa0497eb23cbe461 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" + dependencies: + "@tootallnate/once": 2 + agent-base: 6 + debug: 4 + checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.0": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: 6 + debug: 4 + checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 + languageName: node + linkType: hard + +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 + languageName: node + linkType: hard + +"humanize-ms@npm:^1.2.1": + version: 1.2.1 + resolution: "humanize-ms@npm:1.2.1" + dependencies: + ms: ^2.0.0 + checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 + languageName: node + linkType: hard + +"husky@npm:^8.0.3": + version: 8.0.3 + resolution: "husky@npm:8.0.3" + bin: + husky: lib/bin.js + checksum: 837bc7e4413e58c1f2946d38fb050f5d7324c6f16b0fd66411ffce5703b294bd21429e8ba58711cd331951ee86ed529c5be4f76805959ff668a337dbfa82a1b0 + languageName: node + linkType: hard + +"iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: ">= 2.1.2 < 3.0.0" + checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf + languageName: node + linkType: hard + +"ignore@npm:^5.2.0": + version: 5.2.4 + resolution: "ignore@npm:5.2.4" + checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef + languageName: node + linkType: hard + +"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": + version: 3.3.0 + resolution: "import-fresh@npm:3.3.0" + dependencies: + parent-module: ^1.0.0 + resolve-from: ^4.0.0 + checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: ^1.3.0 + wrappy: 1 + checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.3": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 + languageName: node + linkType: hard + +"ini@npm:^1.3.4": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 + languageName: node + linkType: hard + +"ip@npm:^2.0.0": + version: 2.0.0 + resolution: "ip@npm:2.0.0" + checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 + languageName: node + linkType: hard + +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f + languageName: node + linkType: hard + +"is-core-module@npm:^2.12.0, is-core-module@npm:^2.5.0": + version: 2.12.1 + resolution: "is-core-module@npm:2.12.1" + dependencies: + has: ^1.0.3 + checksum: f04ea30533b5e62764e7b2e049d3157dc0abd95ef44275b32489ea2081176ac9746ffb1cdb107445cf1ff0e0dfcad522726ca27c27ece64dadf3795428b8e468 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.3": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: ^2.1.1 + checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 + languageName: node + linkType: hard + +"is-obj@npm:^2.0.0": + version: 2.0.0 + resolution: "is-obj@npm:2.0.0" + checksum: c9916ac8f4621962a42f5e80e7ffdb1d79a3fab7456ceaeea394cd9e0858d04f985a9ace45be44433bf605673c8be8810540fe4cc7f4266fc7526ced95af5a08 + languageName: node + linkType: hard + +"is-path-inside@npm:^3.0.3": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 + languageName: node + linkType: hard + +"is-plain-obj@npm:^1.1.0": + version: 1.1.0 + resolution: "is-plain-obj@npm:1.1.0" + checksum: 0ee04807797aad50859652a7467481816cbb57e5cc97d813a7dcd8915da8195dc68c436010bf39d195226cde6a2d352f4b815f16f26b7bf486a5754290629931 + languageName: node + linkType: hard + +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 + languageName: node + linkType: hard + +"is-text-path@npm:^1.0.1": + version: 1.0.1 + resolution: "is-text-path@npm:1.0.1" + dependencies: + text-extensions: ^1.0.0 + checksum: fb5d78752c22b3f73a7c9540768f765ffcfa38c9e421e2b9af869565307fa1ae5e3d3a2ba016a43549742856846566d327da406e94a5846ec838a288b1704fd2 + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 + languageName: node + linkType: hard + +"jackspeak@npm:^2.0.3": + version: 2.2.1 + resolution: "jackspeak@npm:2.2.1" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: e29291c0d0f280a063fa18fbd1e891ab8c2d7519fd34052c0ebde38538a15c603140d60c2c7f432375ff7ee4c5f1c10daa8b2ae19a97c3d4affe308c8360c1df + languageName: node + linkType: hard + +"js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 + languageName: node + linkType: hard + +"js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: ^2.0.1 + bin: + js-yaml: bin/js-yaml.js + checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^2.3.0": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b + languageName: node + linkType: hard + +"json-schema-traverse@npm:^1.0.0": + version: 1.0.0 + resolution: "json-schema-traverse@npm:1.0.0" + checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 + languageName: node + linkType: hard + +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: ^4.1.6 + universalify: ^2.0.0 + dependenciesMeta: + graceful-fs: + optional: true + checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 + languageName: node + linkType: hard + +"jsonparse@npm:^1.2.0": + version: 1.3.1 + resolution: "jsonparse@npm:1.3.1" + checksum: 6514a7be4674ebf407afca0eda3ba284b69b07f9958a8d3113ef1005f7ec610860c312be067e450c569aab8b89635e332cee3696789c750692bb60daba627f4d + languageName: node + linkType: hard + +"kind-of@npm:^6.0.3": + version: 6.0.3 + resolution: "kind-of@npm:6.0.3" + checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b + languageName: node + linkType: hard + +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: ^1.2.1 + type-check: ~0.4.0 + checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 + languageName: node + linkType: hard + +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" + dependencies: + p-locate: ^4.1.0 + checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 + languageName: node + linkType: hard + +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: ^5.0.0 + checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + languageName: node + linkType: hard + +"lodash.camelcase@npm:^4.3.0": + version: 4.3.0 + resolution: "lodash.camelcase@npm:4.3.0" + checksum: cb9227612f71b83e42de93eccf1232feeb25e705bdb19ba26c04f91e885bfd3dd5c517c4a97137658190581d3493ea3973072ca010aab7e301046d90740393d1 + languageName: node + linkType: hard + +"lodash.isfunction@npm:^3.0.9": + version: 3.0.9 + resolution: "lodash.isfunction@npm:3.0.9" + checksum: 99e54c34b1e8a9ba75c034deb39cedbd2aca7af685815e67a2a8ec4f73ec9748cda6ebee5a07d7de4b938e90d421fd280e9c385cc190f903ac217ac8aff30314 + languageName: node + linkType: hard + +"lodash.isplainobject@npm:^4.0.6": + version: 4.0.6 + resolution: "lodash.isplainobject@npm:4.0.6" + checksum: 29c6351f281e0d9a1d58f1a4c8f4400924b4c79f18dfc4613624d7d54784df07efaff97c1ff2659f3e085ecf4fff493300adc4837553104cef2634110b0d5337 + languageName: node + linkType: hard + +"lodash.kebabcase@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.kebabcase@npm:4.1.1" + checksum: 5a6c59161914e1bae23438a298c7433e83d935e0f59853fa862e691164696bc07f6dfa4c313d499fbf41ba8d53314e9850416502376705a357d24ee6ca33af78 + languageName: node + linkType: hard + +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 + languageName: node + linkType: hard + +"lodash.mergewith@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.mergewith@npm:4.6.2" + checksum: a6db2a9339752411f21b956908c404ec1e088e783a65c8b29e30ae5b3b6384f82517662d6f425cc97c2070b546cc2c7daaa8d33f78db7b6e9be06cd834abdeb8 + languageName: node + linkType: hard + +"lodash.snakecase@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.snakecase@npm:4.1.1" + checksum: 1685ed3e83dda6eae5a4dcaee161a51cd210aabb3e1c09c57150e7dd8feda19e4ca0d27d0631eabe8d0f4eaa51e376da64e8c018ae5415417c5890d42feb72a8 + languageName: node + linkType: hard + +"lodash.startcase@npm:^4.4.0": + version: 4.4.0 + resolution: "lodash.startcase@npm:4.4.0" + checksum: c03a4a784aca653845fe09d0ef67c902b6e49288dc45f542a4ab345a9c406a6dc194c774423fa313ee7b06283950301c1221dd2a1d8ecb2dac8dfbb9ed5606b5 + languageName: node + linkType: hard + +"lodash.uniq@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.uniq@npm:4.5.0" + checksum: a4779b57a8d0f3c441af13d9afe7ecff22dd1b8ce1129849f71d9bbc8e8ee4e46dfb4b7c28f7ad3d67481edd6e51126e4e2a6ee276e25906d10f7140187c392d + languageName: node + linkType: hard + +"lodash.upperfirst@npm:^4.3.1": + version: 4.3.1 + resolution: "lodash.upperfirst@npm:4.3.1" + checksum: cadec6955900afe1928cc60cdc4923a79c2ef991e42665419cc81630ed9b4f952a1093b222e0141ab31cbc4dba549f97ec28ff67929d71e01861c97188a5fa83 + languageName: node + linkType: hard + +"lodash@npm:^4.17.15": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: ^4.0.0 + checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 + languageName: node + linkType: hard + +"lru-cache@npm:^7.7.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 + languageName: node + linkType: hard + +"lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.0.0 + resolution: "lru-cache@npm:10.0.0" + checksum: 18f101675fe283bc09cda0ef1e3cc83781aeb8373b439f086f758d1d91b28730950db785999cd060d3c825a8571c03073e8c14512b6655af2188d623031baf50 + languageName: node + linkType: hard + +"make-error@npm:^1.1.1": + version: 1.3.6 + resolution: "make-error@npm:1.3.6" + checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 + languageName: node + linkType: hard + +"make-fetch-happen@npm:^11.0.3": + version: 11.1.1 + resolution: "make-fetch-happen@npm:11.1.1" + dependencies: + agentkeepalive: ^4.2.1 + cacache: ^17.0.0 + http-cache-semantics: ^4.1.1 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.0 + is-lambda: ^1.0.1 + lru-cache: ^7.7.1 + minipass: ^5.0.0 + minipass-fetch: ^3.0.0 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + socks-proxy-agent: ^7.0.0 + ssri: ^10.0.0 + checksum: 7268bf274a0f6dcf0343829489a4506603ff34bd0649c12058753900b0eb29191dce5dba12680719a5d0a983d3e57810f594a12f3c18494e93a1fbc6348a4540 + languageName: node + linkType: hard + +"map-obj@npm:^1.0.0": + version: 1.0.1 + resolution: "map-obj@npm:1.0.1" + checksum: 9949e7baec2a336e63b8d4dc71018c117c3ce6e39d2451ccbfd3b8350c547c4f6af331a4cbe1c83193d7c6b786082b6256bde843db90cb7da2a21e8fcc28afed + languageName: node + linkType: hard + +"map-obj@npm:^4.0.0": + version: 4.3.0 + resolution: "map-obj@npm:4.3.0" + checksum: fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e + languageName: node + linkType: hard + +"meow@npm:^8.0.0": + version: 8.1.2 + resolution: "meow@npm:8.1.2" + dependencies: + "@types/minimist": ^1.2.0 + camelcase-keys: ^6.2.2 + decamelize-keys: ^1.1.0 + hard-rejection: ^2.1.0 + minimist-options: 4.1.0 + normalize-package-data: ^3.0.0 + read-pkg-up: ^7.0.1 + redent: ^3.0.0 + trim-newlines: ^3.0.0 + type-fest: ^0.18.0 + yargs-parser: ^20.2.3 + checksum: bc23bf1b4423ef6a821dff9734406bce4b91ea257e7f10a8b7f896f45b59649f07adc0926e2917eacd8cf1df9e4cd89c77623cf63dfd0f8bf54de07a32ee5a85 + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a + languageName: node + linkType: hard + +"min-indent@npm:^1.0.0": + version: 1.0.1 + resolution: "min-indent@npm:1.0.1" + checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 + languageName: node + linkType: hard + +"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: ^1.1.7 + checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + languageName: node + linkType: hard + +"minimatch@npm:^9.0.1": + version: 9.0.2 + resolution: "minimatch@npm:9.0.2" + dependencies: + brace-expansion: ^2.0.1 + checksum: 2eb12e2047a062fdb973fb51b9803f2455e3a00977858c038d66646d303a5a15bbcbc6ed5a2fc403bc869b1309f829ed3acd881d3246faf044ea7a494974b924 + languageName: node + linkType: hard + +"minimist-options@npm:4.1.0": + version: 4.1.0 + resolution: "minimist-options@npm:4.1.0" + dependencies: + arrify: ^1.0.1 + is-plain-obj: ^1.1.0 + kind-of: ^6.0.3 + checksum: 8c040b3068811e79de1140ca2b708d3e203c8003eb9a414c1ab3cd467fc5f17c9ca02a5aef23bedc51a7f8bfbe77f87e9a7e31ec81fba304cda675b019496f4e + languageName: node + linkType: hard + +"minimist@npm:^1.2.6": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 + languageName: node + linkType: hard + +"minipass-collect@npm:^1.0.2": + version: 1.0.2 + resolution: "minipass-collect@npm:1.0.2" + dependencies: + minipass: ^3.0.0 + checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.3 + resolution: "minipass-fetch@npm:3.0.3" + dependencies: + encoding: ^0.1.13 + minipass: ^5.0.0 + minipass-sized: ^1.0.3 + minizlib: ^2.1.2 + dependenciesMeta: + encoding: + optional: true + checksum: af5ab2552a16fcf505d35fd7ffb84b57f4a0eeb269e6e1d9a2a75824dda48b36e527083250b7cca4a4def21d9544e2ade441e4730e233c0bc2133f6abda31e18 + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: ^3.0.0 + checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: ^3.0.0 + checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: ^3.0.0 + checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: ^4.0.0 + checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2": + version: 6.0.2 + resolution: "minipass@npm:6.0.2" + checksum: d140b91f4ab2e5ce5a9b6c468c0e82223504acc89114c1a120d4495188b81fedf8cade72a9f4793642b4e66672f990f1e0d902dd858485216a07cd3c8a62fac9 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: ^3.0.0 + yallist: ^4.0.0 + checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + languageName: node + linkType: hard + +"ms@npm:^2.0.0": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d + languageName: node + linkType: hard + +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d + languageName: node + linkType: hard + +"negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 9.4.0 + resolution: "node-gyp@npm:9.4.0" + dependencies: + env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 + glob: ^7.1.4 + graceful-fs: ^4.2.6 + make-fetch-happen: ^11.0.3 + nopt: ^6.0.0 + npmlog: ^6.0.0 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^2.0.2 + bin: + node-gyp: bin/node-gyp.js + checksum: 78b404e2e0639d64e145845f7f5a3cb20c0520cdaf6dda2f6e025e9b644077202ea7de1232396ba5bde3fee84cdc79604feebe6ba3ec84d464c85d407bb5da99 + languageName: node + linkType: hard + +"nopt@npm:^6.0.0": + version: 6.0.0 + resolution: "nopt@npm:6.0.0" + dependencies: + abbrev: ^1.0.0 + bin: + nopt: bin/nopt.js + checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac + languageName: node + linkType: hard + +"normalize-package-data@npm:^2.5.0": + version: 2.5.0 + resolution: "normalize-package-data@npm:2.5.0" + dependencies: + hosted-git-info: ^2.1.4 + resolve: ^1.10.0 + semver: 2 || 3 || 4 || 5 + validate-npm-package-license: ^3.0.1 + checksum: 7999112efc35a6259bc22db460540cae06564aa65d0271e3bdfa86876d08b0e578b7b5b0028ee61b23f1cae9fc0e7847e4edc0948d3068a39a2a82853efc8499 + languageName: node + linkType: hard + +"normalize-package-data@npm:^3.0.0": + version: 3.0.3 + resolution: "normalize-package-data@npm:3.0.3" + dependencies: + hosted-git-info: ^4.0.1 + is-core-module: ^2.5.0 + semver: ^7.3.4 + validate-npm-package-license: ^3.0.1 + checksum: bbcee00339e7c26fdbc760f9b66d429258e2ceca41a5df41f5df06cc7652de8d82e8679ff188ca095cad8eff2b6118d7d866af2b68400f74602fbcbce39c160a + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: ^3.0.0 + checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 + languageName: node + linkType: hard + +"npmlog@npm:^6.0.0": + version: 6.0.2 + resolution: "npmlog@npm:6.0.2" + dependencies: + are-we-there-yet: ^3.0.0 + console-control-strings: ^1.1.0 + gauge: ^4.0.3 + set-blocking: ^2.0.0 + checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a + languageName: node + linkType: hard + +"once@npm:^1.3.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: 1 + checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"onetime@npm:^5.1.2": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: ^2.1.0 + checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 + languageName: node + linkType: hard + +"optionator@npm:^0.9.1": + version: 0.9.3 + resolution: "optionator@npm:0.9.3" + dependencies: + "@aashutoshrathi/word-wrap": ^1.2.3 + deep-is: ^0.1.3 + fast-levenshtein: ^2.0.6 + levn: ^0.4.1 + prelude-ls: ^1.2.1 + type-check: ^0.4.0 + checksum: 09281999441f2fe9c33a5eeab76700795365a061563d66b098923eb719251a42bdbe432790d35064d0816ead9296dbeb1ad51a733edf4167c96bd5d0882e428a + languageName: node + linkType: hard + +"p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: ^2.0.0 + checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 + languageName: node + linkType: hard + +"p-limit@npm:^3.0.2": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: ^0.1.0 + checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + languageName: node + linkType: hard + +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: ^2.2.0 + checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 + languageName: node + linkType: hard + +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: ^3.0.2 + checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: ^3.0.0 + checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: ^3.0.0 + checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff + languageName: node + linkType: hard + +"parse-json@npm:^5.0.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": ^7.0.0 + error-ex: ^1.3.1 + json-parse-even-better-errors: ^2.3.0 + lines-and-columns: ^1.1.6 + checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a + languageName: node + linkType: hard + +"path-scurry@npm:^1.10.0": + version: 1.10.0 + resolution: "path-scurry@npm:1.10.0" + dependencies: + lru-cache: ^9.1.1 || ^10.0.0 + minipass: ^5.0.0 || ^6.0.2 + checksum: 3b66a4a6ab66e45755b577c966ecf0da92d3e068b3c992d8f69aa2cc908ef4eda9358253e9b4f86cad43d3ad810ec445be164105975f5cb3fdab68459c59dc6e + languageName: node + linkType: hard + +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 + languageName: node + linkType: hard + +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a + languageName: node + linkType: hard + +"prettier@npm:^2.8.8": + version: 2.8.8 + resolution: "prettier@npm:2.8.8" + bin: + prettier: bin-prettier.js + checksum: b49e409431bf129dd89238d64299ba80717b57ff5a6d1c1a8b1a28b590d998a34e083fa13573bc732bb8d2305becb4c9a4407f8486c81fa7d55100eb08263cf8 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: ^2.0.2 + retry: ^0.12.0 + checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 + languageName: node + linkType: hard + +"punycode@npm:^2.1.0": + version: 2.3.0 + resolution: "punycode@npm:2.3.0" + checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 + languageName: node + linkType: hard + +"q@npm:^1.5.1": + version: 1.5.1 + resolution: "q@npm:1.5.1" + checksum: 147baa93c805bc1200ed698bdf9c72e9e42c05f96d007e33a558b5fdfd63e5ea130e99313f28efc1783e90e6bdb4e48b67a36fcc026b7b09202437ae88a1fb12 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 + languageName: node + linkType: hard + +"quick-lru@npm:^4.0.1": + version: 4.0.1 + resolution: "quick-lru@npm:4.0.1" + checksum: bea46e1abfaa07023e047d3cf1716a06172c4947886c053ede5c50321893711577cb6119360f810cc3ffcd70c4d7db4069c3cee876b358ceff8596e062bd1154 + languageName: node + linkType: hard + +"read-pkg-up@npm:^7.0.1": + version: 7.0.1 + resolution: "read-pkg-up@npm:7.0.1" + dependencies: + find-up: ^4.1.0 + read-pkg: ^5.2.0 + type-fest: ^0.8.1 + checksum: e4e93ce70e5905b490ca8f883eb9e48b5d3cebc6cd4527c25a0d8f3ae2903bd4121c5ab9c5a3e217ada0141098eeb661313c86fa008524b089b8ed0b7f165e44 + languageName: node + linkType: hard + +"read-pkg@npm:^5.2.0": + version: 5.2.0 + resolution: "read-pkg@npm:5.2.0" + dependencies: + "@types/normalize-package-data": ^2.4.0 + normalize-package-data: ^2.5.0 + parse-json: ^5.0.0 + type-fest: ^0.6.0 + checksum: eb696e60528b29aebe10e499ba93f44991908c57d70f2d26f369e46b8b9afc208ef11b4ba64f67630f31df8b6872129e0a8933c8c53b7b4daf0eace536901222 + languageName: node + linkType: hard + +"readable-stream@npm:3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.6.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: ^2.0.3 + string_decoder: ^1.1.1 + util-deprecate: ^1.0.1 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d + languageName: node + linkType: hard + +"redent@npm:^3.0.0": + version: 3.0.0 + resolution: "redent@npm:3.0.0" + dependencies: + indent-string: ^4.0.0 + strip-indent: ^3.0.0 + checksum: fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 + languageName: node + linkType: hard + +"require-from-string@npm:^2.0.2": + version: 2.0.2 + resolution: "require-from-string@npm:2.0.2" + checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b + languageName: node + linkType: hard + +"resolve-from@npm:5.0.0, resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f + languageName: node + linkType: hard + +"resolve-global@npm:1.0.0, resolve-global@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-global@npm:1.0.0" + dependencies: + global-dirs: ^0.1.1 + checksum: c4e11d33e84bde7516b824503ffbe4b6cce863d5ce485680fd3db997b7c64da1df98321b1fd0703b58be8bc9bc83bc96bd83043f96194386b45eb47229efb6b6 + languageName: node + linkType: hard + +"resolve-pkg-maps@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-pkg-maps@npm:1.0.0" + checksum: 1012afc566b3fdb190a6309cc37ef3b2dcc35dff5fa6683a9d00cd25c3247edfbc4691b91078c97adc82a29b77a2660c30d791d65dab4fc78bfc473f60289977 + languageName: node + linkType: hard + +"resolve@npm:^1.10.0": + version: 1.22.3 + resolution: "resolve@npm:1.22.3" + dependencies: + is-core-module: ^2.12.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: fb834b81348428cb545ff1b828a72ea28feb5a97c026a1cf40aa1008352c72811ff4d4e71f2035273dc536dcfcae20c13604ba6283c612d70fa0b6e44519c374 + languageName: node + linkType: hard + +"resolve@patch:resolve@^1.10.0#~builtin": + version: 1.22.3 + resolution: "resolve@patch:resolve@npm%3A1.22.3#~builtin::version=1.22.3&hash=c3c19d" + dependencies: + is-core-module: ^2.12.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: ad59734723b596d0891321c951592ed9015a77ce84907f89c9d9307dd0c06e11a67906a3e628c4cae143d3e44898603478af0ddeb2bba3f229a9373efe342665 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: ^7.1.3 + bin: + rimraf: bin.js + checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: ^1.2.2 + checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + languageName: node + linkType: hard + +"safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 + languageName: node + linkType: hard + +"semver@npm:2 || 3 || 4 || 5": + version: 5.7.1 + resolution: "semver@npm:5.7.1" + bin: + semver: ./bin/semver + checksum: 57fd0acfd0bac382ee87cd52cd0aaa5af086a7dc8d60379dfe65fea491fb2489b6016400813930ecd61fd0952dae75c115287a1b16c234b1550887117744dfaf + languageName: node + linkType: hard + +"semver@npm:7.5.2": + version: 7.5.2 + resolution: "semver@npm:7.5.2" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 3fdf5d1e6f170fe8bcc41669e31787649af91af7f54f05c71d0865bb7aa27e8b92f68b3e6b582483e2c1c648008bc84249d2cd86301771fe5cbf7621d1fe5375 + languageName: node + linkType: hard + +"semver@npm:^7.3.4, semver@npm:^7.3.5": + version: 7.5.3 + resolution: "semver@npm:7.5.3" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 9d58db16525e9f749ad0a696a1f27deabaa51f66e91d2fa2b0db3de3e9644e8677de3b7d7a03f4c15bc81521e0c3916d7369e0572dbde250d9bedf5194e2a8a7 + languageName: node + linkType: hard + +"set-blocking@npm:^2.0.0": + version: 2.0.0 + resolution: "set-blocking@npm:2.0.0" + checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: ^3.0.0 + checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.0.2 + resolution: "signal-exit@npm:4.0.2" + checksum: 41f5928431cc6e91087bf0343db786a6313dd7c6fd7e551dbc141c95bb5fb26663444fd9df8ea47c5d7fc202f60aa7468c3162a9365cbb0615fc5e1b1328fe31 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "socks-proxy-agent@npm:7.0.0" + dependencies: + agent-base: ^6.0.2 + debug: ^4.3.3 + socks: ^2.6.2 + checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 + languageName: node + linkType: hard + +"socks@npm:^2.6.2": + version: 2.7.1 + resolution: "socks@npm:2.7.1" + dependencies: + ip: ^2.0.0 + smart-buffer: ^4.2.0 + checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 + languageName: node + linkType: hard + +"source-map-support@npm:^0.5.21": + version: 0.5.21 + resolution: "source-map-support@npm:0.5.21" + dependencies: + buffer-from: ^1.0.0 + source-map: ^0.6.0 + checksum: 43e98d700d79af1d36f859bdb7318e601dfc918c7ba2e98456118ebc4c4872b327773e5a1df09b0524e9e5063bb18f0934538eace60cca2710d1fa687645d137 + languageName: node + linkType: hard + +"source-map@npm:^0.6.0": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 + languageName: node + linkType: hard + +"spdx-correct@npm:^3.0.0": + version: 3.2.0 + resolution: "spdx-correct@npm:3.2.0" + dependencies: + spdx-expression-parse: ^3.0.0 + spdx-license-ids: ^3.0.0 + checksum: e9ae98d22f69c88e7aff5b8778dc01c361ef635580e82d29e5c60a6533cc8f4d820803e67d7432581af0cc4fb49973125076ee3b90df191d153e223c004193b2 + languageName: node + linkType: hard + +"spdx-exceptions@npm:^2.1.0": + version: 2.3.0 + resolution: "spdx-exceptions@npm:2.3.0" + checksum: cb69a26fa3b46305637123cd37c85f75610e8c477b6476fa7354eb67c08128d159f1d36715f19be6f9daf4b680337deb8c65acdcae7f2608ba51931540687ac0 + languageName: node + linkType: hard + +"spdx-expression-parse@npm:^3.0.0": + version: 3.0.1 + resolution: "spdx-expression-parse@npm:3.0.1" + dependencies: + spdx-exceptions: ^2.1.0 + spdx-license-ids: ^3.0.0 + checksum: a1c6e104a2cbada7a593eaa9f430bd5e148ef5290d4c0409899855ce8b1c39652bcc88a725259491a82601159d6dc790bedefc9016c7472f7de8de7361f8ccde + languageName: node + linkType: hard + +"spdx-license-ids@npm:^3.0.0": + version: 3.0.13 + resolution: "spdx-license-ids@npm:3.0.13" + checksum: 3469d85c65f3245a279fa11afc250c3dca96e9e847f2f79d57f466940c5bb8495da08a542646086d499b7f24a74b8d0b42f3fc0f95d50ff99af1f599f6360ad7 + languageName: node + linkType: hard + +"split2@npm:^3.0.0": + version: 3.2.2 + resolution: "split2@npm:3.2.2" + dependencies: + readable-stream: ^3.0.0 + checksum: 8127ddbedd0faf31f232c0e9192fede469913aa8982aa380752e0463b2e31c2359ef6962eb2d24c125bac59eeec76873678d723b1c7ff696216a1cd071e3994a + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.4 + resolution: "ssri@npm:10.0.4" + dependencies: + minipass: ^5.0.0 + checksum: fb14da9f8a72b04eab163eb13a9dda11d5962cd2317f85457c4e0b575e9a6e0e3a6a87b5bf122c75cb36565830cd5f263fb457571bf6f1587eb5f95d095d6165 + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: ^8.0.0 + is-fullwidth-code-point: ^3.0.0 + strip-ansi: ^6.0.1 + checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: ^0.2.0 + emoji-regex: ^9.2.2 + strip-ansi: ^7.0.1 + checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: ~5.2.0 + checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: ^6.0.1 + checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 + languageName: node + linkType: hard + +"strip-indent@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-indent@npm:3.0.0" + dependencies: + min-indent: ^1.0.0 + checksum: 18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530 + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: ^3.0.0 + checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: ^4.0.0 + checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.1.2": + version: 6.1.15 + resolution: "tar@npm:6.1.15" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^5.0.0 + minizlib: ^2.1.1 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: f23832fceeba7578bf31907aac744ae21e74a66f4a17a9e94507acf460e48f6db598c7023882db33bab75b80e027c21f276d405e4a0322d58f51c7088d428268 + languageName: node + linkType: hard + +"text-extensions@npm:^1.0.0": + version: 1.9.0 + resolution: "text-extensions@npm:1.9.0" + checksum: 56a9962c1b62d39b2bcb369b7558ca85c1b55e554b38dfd725edcc0a1babe5815782a60c17ff6b839093b163dfebb92b804208aaaea616ec7571c8059ae0cf44 + languageName: node + linkType: hard + +"text-table@npm:^0.2.0": + version: 0.2.0 + resolution: "text-table@npm:0.2.0" + checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a + languageName: node + linkType: hard + +"through2@npm:^4.0.0": + version: 4.0.2 + resolution: "through2@npm:4.0.2" + dependencies: + readable-stream: 3 + checksum: ac7430bd54ccb7920fd094b1c7ff3e1ad6edd94202e5528331253e5fde0cc56ceaa690e8df9895de2e073148c52dfbe6c4db74cacae812477a35660090960cc0 + languageName: node + linkType: hard + +"through@npm:>=2.2.7 <3": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd + languageName: node + linkType: hard + +"trim-newlines@npm:^3.0.0": + version: 3.0.1 + resolution: "trim-newlines@npm:3.0.1" + checksum: b530f3fadf78e570cf3c761fb74fef655beff6b0f84b29209bac6c9622db75ad1417f4a7b5d54c96605dcd72734ad44526fef9f396807b90839449eb543c6206 + languageName: node + linkType: hard + +"ts-node@npm:^10.8.1": + version: 10.9.1 + resolution: "ts-node@npm:10.9.1" + dependencies: + "@cspotcode/source-map-support": ^0.8.0 + "@tsconfig/node10": ^1.0.7 + "@tsconfig/node12": ^1.0.7 + "@tsconfig/node14": ^1.0.0 + "@tsconfig/node16": ^1.0.2 + acorn: ^8.4.1 + acorn-walk: ^8.1.1 + arg: ^4.1.0 + create-require: ^1.1.0 + diff: ^4.0.1 + make-error: ^1.1.1 + v8-compile-cache-lib: ^3.0.1 + yn: 3.1.1 + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: 090adff1302ab20bd3486e6b4799e90f97726ed39e02b39e566f8ab674fd5bd5f727f43615debbfc580d33c6d9d1c6b1b3ce7d8e3cca3e20530a145ffa232c35 + languageName: node + linkType: hard + +"ts-template@workspace:.": + version: 0.0.0-use.local + resolution: "ts-template@workspace:." + dependencies: + "@commitlint/cli": ^17.6.6 + "@commitlint/config-conventional": ^17.6.6 + "@types/node": ^20.3.2 + dotenv: ^16.3.1 + eslint: ^8.43.0 + husky: ^8.0.3 + prettier: ^2.8.8 + tsx: ^3.12.7 + typescript: ^5.1.6 + languageName: unknown + linkType: soft + +"tsx@npm:^3.12.7": + version: 3.12.7 + resolution: "tsx@npm:3.12.7" + dependencies: + "@esbuild-kit/cjs-loader": ^2.4.2 + "@esbuild-kit/core-utils": ^3.0.0 + "@esbuild-kit/esm-loader": ^2.5.5 + fsevents: ~2.3.2 + dependenciesMeta: + fsevents: + optional: true + bin: + tsx: dist/cli.js + checksum: ddec149ad263e5c75fc8fde5c6ba7ec2ee390934c0a2e2c23897bacab83bc8c665955a23b608a19c42f49c14a7362cf74ad793b52cc94eda684be5c2c13fdb4d + languageName: node + linkType: hard + +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: ^1.2.1 + checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a + languageName: node + linkType: hard + +"type-fest@npm:^0.18.0": + version: 0.18.1 + resolution: "type-fest@npm:0.18.1" + checksum: e96dcee18abe50ec82dab6cbc4751b3a82046da54c52e3b2d035b3c519732c0b3dd7a2fa9df24efd1a38d953d8d4813c50985f215f1957ee5e4f26b0fe0da395 + languageName: node + linkType: hard + +"type-fest@npm:^0.20.2": + version: 0.20.2 + resolution: "type-fest@npm:0.20.2" + checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 + languageName: node + linkType: hard + +"type-fest@npm:^0.6.0": + version: 0.6.0 + resolution: "type-fest@npm:0.6.0" + checksum: b2188e6e4b21557f6e92960ec496d28a51d68658018cba8b597bd3ef757721d1db309f120ae987abeeda874511d14b776157ff809f23c6d1ce8f83b9b2b7d60f + languageName: node + linkType: hard + +"type-fest@npm:^0.8.1": + version: 0.8.1 + resolution: "type-fest@npm:0.8.1" + checksum: d61c4b2eba24009033ae4500d7d818a94fd6d1b481a8111612ee141400d5f1db46f199c014766b9fa9b31a6a7374d96fc748c6d688a78a3ce5a33123839becb7 + languageName: node + linkType: hard + +"typescript@npm:^4.6.4 || ^5.0.0, typescript@npm:^5.1.6": + version: 5.1.6 + resolution: "typescript@npm:5.1.6" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: b2f2c35096035fe1f5facd1e38922ccb8558996331405eb00a5111cc948b2e733163cc22fab5db46992aba7dd520fff637f2c1df4996ff0e134e77d3249a7350 + languageName: node + linkType: hard + +"typescript@patch:typescript@^4.6.4 || ^5.0.0#~builtin, typescript@patch:typescript@^5.1.6#~builtin": + version: 5.1.6 + resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=1f5320" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 21e88b0a0c0226f9cb9fd25b9626fb05b4c0f3fddac521844a13e1f30beb8f14e90bd409a9ac43c812c5946d714d6e0dee12d5d02dfc1c562c5aacfa1f49b606 + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: ^4.0.0 + checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.0 + resolution: "universalify@npm:2.0.0" + checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: ^2.1.0 + checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + +"v8-compile-cache-lib@npm:^3.0.1": + version: 3.0.1 + resolution: "v8-compile-cache-lib@npm:3.0.1" + checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 + languageName: node + linkType: hard + +"validate-npm-package-license@npm:^3.0.1": + version: 3.0.4 + resolution: "validate-npm-package-license@npm:3.0.4" + dependencies: + spdx-correct: ^3.0.0 + spdx-expression-parse: ^3.0.0 + checksum: 35703ac889d419cf2aceef63daeadbe4e77227c39ab6287eeb6c1b36a746b364f50ba22e88591f5d017bc54685d8137bc2d328d0a896e4d3fd22093c0f32a9ad + languageName: node + linkType: hard + +"which@npm:^2.0.1, which@npm:^2.0.2": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: ^2.0.0 + bin: + node-which: ./bin/node-which + checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 + languageName: node + linkType: hard + +"wide-align@npm:^1.1.5": + version: 1.1.5 + resolution: "wide-align@npm:1.1.5" + dependencies: + string-width: ^1.0.2 || 2 || 3 || 4 + checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: ^6.1.0 + string-width: ^5.0.1 + strip-ansi: ^7.0.1 + checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 + languageName: node + linkType: hard + +"yargs-parser@npm:^20.2.3": + version: 20.2.9 + resolution: "yargs-parser@npm:20.2.9" + checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3 + languageName: node + linkType: hard + +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c + languageName: node + linkType: hard + +"yargs@npm:^17.0.0": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" + dependencies: + cliui: ^8.0.1 + escalade: ^3.1.1 + get-caller-file: ^2.0.5 + require-directory: ^2.1.1 + string-width: ^4.2.3 + y18n: ^5.0.5 + yargs-parser: ^21.1.1 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a + languageName: node + linkType: hard + +"yn@npm:3.1.1": + version: 3.1.1 + resolution: "yn@npm:3.1.1" + checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 + languageName: node + linkType: hard From abc8835c826162b89882f9c6004d447325132d9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Thu, 29 Jun 2023 14:37:37 +0900 Subject: [PATCH 15/85] chore: update package json --- index.ts | 4 +- package.json | 25 +- yarn.lock | 984 ++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 989 insertions(+), 24 deletions(-) diff --git a/index.ts b/index.ts index 0be3be79..e1cf0b87 100644 --- a/index.ts +++ b/index.ts @@ -1,6 +1,4 @@ import * as dotenv from "dotenv"; - -// load ENV variables (if you have them) +// load environment variables (if you have them) dotenv.config(); - console.log("Welcome to ts-template"); diff --git a/package.json b/package.json index fee09ff4..e6243061 100644 --- a/package.json +++ b/package.json @@ -3,17 +3,23 @@ "version": "1.0.0", "description": "Template repository with TypeScript support.", "main": "index.ts", + "author": "Ubiquity DAO", + "license": "MIT", + "engines": { + "node": ">=v20.3.0" + }, "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "format": "run-s format:prettier format:lint", + "format:lint": "eslint --fix .", + "format:prettier": "prettier --write ." }, "keywords": [ "typescript", - "nodejs", - "dotenv", - "conventional-commits" + "template", + "dao", + "ubiquity", + "open-source" ], - "author": "Ubiquity DAO", - "license": "MIT", "dependencies": { "dotenv": "^16.3.1" }, @@ -21,10 +27,13 @@ "@commitlint/cli": "^17.6.6", "@commitlint/config-conventional": "^17.6.6", "@types/node": "^20.3.2", + "@typescript-eslint/eslint-plugin": "^5.60.1", + "@typescript-eslint/parser": "^5.60.1", "eslint": "^8.43.0", "husky": "^8.0.3", + "npm-run-all": "^4.1.5", "prettier": "^2.8.8", "tsx": "^3.12.7", - "typescript": "^5.1.6" + "typescript": "^5.1.0" } -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 7f27f501..014dbf13 100644 --- a/yarn.lock +++ b/yarn.lock @@ -544,14 +544,14 @@ __metadata: languageName: node linkType: hard -"@nodelib/fs.stat@npm:2.0.5": +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": version: 2.0.5 resolution: "@nodelib/fs.stat@npm:2.0.5" checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 languageName: node linkType: hard -"@nodelib/fs.walk@npm:^1.2.8": +"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": version: 1.2.8 resolution: "@nodelib/fs.walk@npm:1.2.8" dependencies: @@ -612,6 +612,13 @@ __metadata: languageName: node linkType: hard +"@types/json-schema@npm:^7.0.9": + version: 7.0.12 + resolution: "@types/json-schema@npm:7.0.12" + checksum: 00239e97234eeb5ceefb0c1875d98ade6e922bfec39dd365ec6bd360b5c2f825e612ac4f6e5f1d13601b8b30f378f15e6faa805a3a732f4a1bbe61915163d293 + languageName: node + linkType: hard + "@types/minimist@npm:^1.2.0": version: 1.2.2 resolution: "@types/minimist@npm:1.2.2" @@ -633,6 +640,134 @@ __metadata: languageName: node linkType: hard +"@types/semver@npm:^7.3.12": + version: 7.5.0 + resolution: "@types/semver@npm:7.5.0" + checksum: 0a64b9b9c7424d9a467658b18dd70d1d781c2d6f033096a6e05762d20ebbad23c1b69b0083b0484722aabf35640b78ccc3de26368bcae1129c87e9df028a22e2 + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:^5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/eslint-plugin@npm:5.60.1" + dependencies: + "@eslint-community/regexpp": ^4.4.0 + "@typescript-eslint/scope-manager": 5.60.1 + "@typescript-eslint/type-utils": 5.60.1 + "@typescript-eslint/utils": 5.60.1 + debug: ^4.3.4 + grapheme-splitter: ^1.0.4 + ignore: ^5.2.0 + natural-compare-lite: ^1.4.0 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependencies: + "@typescript-eslint/parser": ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 6ea3fdc64b216ee709318bfce1573cd8d90836150f0075aaa8755c347541af9ec026043e538a3264d28d1b32ff49b1fd7c6163826b8513f19f0957fefccf7752 + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:^5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/parser@npm:5.60.1" + dependencies: + "@typescript-eslint/scope-manager": 5.60.1 + "@typescript-eslint/types": 5.60.1 + "@typescript-eslint/typescript-estree": 5.60.1 + debug: ^4.3.4 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 08f1552ab0da178524a8de3654d2fb7c8ecb9efdad8e771c9cbf4af555c42e77d17b2c182d139a531cc76c3cabd091d1d25024c2c215cb809dca8b147c8a493c + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/scope-manager@npm:5.60.1" + dependencies: + "@typescript-eslint/types": 5.60.1 + "@typescript-eslint/visitor-keys": 5.60.1 + checksum: 32c0786123f12fbb861aba3527471134a2e9978c7f712e0d7650080651870903482aed72a55f81deba9493118c1ca3c57edaaaa75d7acd9892818e3e9cc341ef + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/type-utils@npm:5.60.1" + dependencies: + "@typescript-eslint/typescript-estree": 5.60.1 + "@typescript-eslint/utils": 5.60.1 + debug: ^4.3.4 + tsutils: ^3.21.0 + peerDependencies: + eslint: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: f8d5f87b5441d5c671f69631efd103f5f45e0cb7dbe0131a5b4234a5208ac845041219e8baaa3adc341e82a602165dd6fabf4fd06964d0109d0875425c8ac918 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/types@npm:5.60.1" + checksum: 766b6c857493b72a8f515e6a8e409476a317b7a7f0401fbcdf18f417839fca004dcaf06f58eb5ba00777e3ca9c68cd2f56fda79f3a8eb8a418095b5b1f625712 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/typescript-estree@npm:5.60.1" + dependencies: + "@typescript-eslint/types": 5.60.1 + "@typescript-eslint/visitor-keys": 5.60.1 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 5bb9d08c3cbc303fc64647878cae37283c4cfa9e3ed00da02ee25dc2e46798a1ad6964c9f04086f0134716671357e6569a65ea0ae75f0f3ff94ae67666385c6f + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/utils@npm:5.60.1" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@types/json-schema": ^7.0.9 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.60.1 + "@typescript-eslint/types": 5.60.1 + "@typescript-eslint/typescript-estree": 5.60.1 + eslint-scope: ^5.1.1 + semver: ^7.3.7 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 00c1adaa09d5d5be947e98962a78c21ed08c3ac46dd5ddd7b78f6102537d50afd4578a42a3e09a24dd51f5bc493f0b968627b4423647540164b2d2380afa9246 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/visitor-keys@npm:5.60.1" + dependencies: + "@typescript-eslint/types": 5.60.1 + eslint-visitor-keys: ^3.3.0 + checksum: 137f6a6f8efb398969087147b59f99f7d0deed044d89d7efce3631bb90bc32e3a13a5cee6a65e1c9830862c5c4402ac1a9b2c9e31fe46d1716602af2813bffae + languageName: node + linkType: hard + "JSONStream@npm:^1.0.4": version: 1.3.5 resolution: "JSONStream@npm:1.3.5" @@ -801,6 +936,16 @@ __metadata: languageName: node linkType: hard +"array-buffer-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "array-buffer-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + is-array-buffer: ^3.0.1 + checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 + languageName: node + linkType: hard + "array-ify@npm:^1.0.0": version: 1.0.0 resolution: "array-ify@npm:1.0.0" @@ -808,6 +953,13 @@ __metadata: languageName: node linkType: hard +"array-union@npm:^2.1.0": + version: 2.1.0 + resolution: "array-union@npm:2.1.0" + checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d + languageName: node + linkType: hard + "arrify@npm:^1.0.1": version: 1.0.1 resolution: "arrify@npm:1.0.1" @@ -815,6 +967,13 @@ __metadata: languageName: node linkType: hard +"available-typed-arrays@npm:^1.0.5": + version: 1.0.5 + resolution: "available-typed-arrays@npm:1.0.5" + checksum: 20eb47b3cefd7db027b9bbb993c658abd36d4edd3fe1060e83699a03ee275b0c9b216cc076ff3f2db29073225fb70e7613987af14269ac1fe2a19803ccc97f1a + languageName: node + linkType: hard + "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -841,6 +1000,15 @@ __metadata: languageName: node linkType: hard +"braces@npm:^3.0.2": + version: 3.0.2 + resolution: "braces@npm:3.0.2" + dependencies: + fill-range: ^7.0.1 + checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 + languageName: node + linkType: hard + "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -868,6 +1036,16 @@ __metadata: languageName: node linkType: hard +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind@npm:1.0.2" + dependencies: + function-bind: ^1.1.1 + get-intrinsic: ^1.0.2 + checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 + languageName: node + linkType: hard + "callsites@npm:^3.0.0": version: 3.1.0 resolution: "callsites@npm:3.1.0" @@ -893,7 +1071,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0": +"chalk@npm:^2.0.0, chalk@npm:^2.4.1": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -1072,6 +1250,19 @@ __metadata: languageName: node linkType: hard +"cross-spawn@npm:^6.0.5": + version: 6.0.5 + resolution: "cross-spawn@npm:6.0.5" + dependencies: + nice-try: ^1.0.4 + path-key: ^2.0.1 + semver: ^5.5.0 + shebang-command: ^1.2.0 + which: ^1.2.9 + checksum: f893bb0d96cd3d5751d04e67145bdddf25f99449531a72e82dcbbd42796bbc8268c1076c6b3ea51d4d455839902804b94bc45dfb37ecbb32ea8e54a6741c3ab9 + languageName: node + linkType: hard + "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" @@ -1090,7 +1281,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -1126,6 +1317,16 @@ __metadata: languageName: node linkType: hard +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": + version: 1.2.0 + resolution: "define-properties@npm:1.2.0" + dependencies: + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 + languageName: node + linkType: hard + "delegates@npm:^1.0.0": version: 1.0.0 resolution: "delegates@npm:1.0.0" @@ -1147,6 +1348,15 @@ __metadata: languageName: node linkType: hard +"dir-glob@npm:^3.0.1": + version: 3.0.1 + resolution: "dir-glob@npm:3.0.1" + dependencies: + path-type: ^4.0.0 + checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + languageName: node + linkType: hard + "doctrine@npm:^3.0.0": version: 3.0.0 resolution: "doctrine@npm:3.0.0" @@ -1225,6 +1435,70 @@ __metadata: languageName: node linkType: hard +"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": + version: 1.21.2 + resolution: "es-abstract@npm:1.21.2" + dependencies: + array-buffer-byte-length: ^1.0.0 + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + es-set-tostringtag: ^2.0.1 + es-to-primitive: ^1.2.1 + function.prototype.name: ^1.1.5 + get-intrinsic: ^1.2.0 + get-symbol-description: ^1.0.0 + globalthis: ^1.0.3 + gopd: ^1.0.1 + has: ^1.0.3 + has-property-descriptors: ^1.0.0 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + internal-slot: ^1.0.5 + is-array-buffer: ^3.0.2 + is-callable: ^1.2.7 + is-negative-zero: ^2.0.2 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + is-string: ^1.0.7 + is-typed-array: ^1.1.10 + is-weakref: ^1.0.2 + object-inspect: ^1.12.3 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.4.3 + 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-length: ^1.0.4 + unbox-primitive: ^1.0.2 + which-typed-array: ^1.1.9 + checksum: 037f55ee5e1cdf2e5edbab5524095a4f97144d95b94ea29e3611b77d852fd8c8a40e7ae7101fa6a759a9b9b1405f188c3c70928f2d3cd88d543a07fc0d5ad41a + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.0.1": + version: 2.0.1 + resolution: "es-set-tostringtag@npm:2.0.1" + dependencies: + get-intrinsic: ^1.1.3 + has: ^1.0.3 + has-tostringtag: ^1.0.0 + checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884 + languageName: node + linkType: hard + +"es-to-primitive@npm:^1.2.1": + version: 1.2.1 + resolution: "es-to-primitive@npm:1.2.1" + dependencies: + is-callable: ^1.1.4 + is-date-object: ^1.0.1 + is-symbol: ^1.0.2 + checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed + languageName: node + linkType: hard + "esbuild@npm:~0.17.6": version: 0.17.19 resolution: "esbuild@npm:0.17.19" @@ -1323,6 +1597,16 @@ __metadata: languageName: node linkType: hard +"eslint-scope@npm:^5.1.1": + version: 5.1.1 + resolution: "eslint-scope@npm:5.1.1" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^4.1.1 + checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb + languageName: node + linkType: hard + "eslint-scope@npm:^7.2.0": version: 7.2.0 resolution: "eslint-scope@npm:7.2.0" @@ -1418,6 +1702,13 @@ __metadata: languageName: node linkType: hard +"estraverse@npm:^4.1.1": + version: 4.3.0 + resolution: "estraverse@npm:4.3.0" + checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 + languageName: node + linkType: hard + "estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": version: 5.3.0 resolution: "estraverse@npm:5.3.0" @@ -1463,6 +1754,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.2.9": + version: 3.2.12 + resolution: "fast-glob@npm:3.2.12" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 0b1990f6ce831c7e28c4d505edcdaad8e27e88ab9fa65eedadb730438cfc7cde4910d6c975d6b7b8dc8a73da4773702ebcfcd6e3518e73938bb1383badfe01c2 + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.0.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -1495,6 +1799,15 @@ __metadata: languageName: node linkType: hard +"fill-range@npm:^7.0.1": + version: 7.0.1 + resolution: "fill-range@npm:7.0.1" + dependencies: + to-regex-range: ^5.0.1 + checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + languageName: node + linkType: hard + "find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" @@ -1532,6 +1845,15 @@ __metadata: languageName: node linkType: hard +"for-each@npm:^0.3.3": + version: 0.3.3 + resolution: "for-each@npm:0.3.3" + dependencies: + is-callable: ^1.1.3 + checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 + languageName: node + linkType: hard + "foreground-child@npm:^3.1.0": version: 3.1.1 resolution: "foreground-child@npm:3.1.1" @@ -1604,6 +1926,25 @@ __metadata: languageName: node linkType: hard +"function.prototype.name@npm:^1.1.5": + version: 1.1.5 + resolution: "function.prototype.name@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + es-abstract: ^1.19.0 + functions-have-names: ^1.2.2 + checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27 + languageName: node + linkType: hard + +"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": + version: 1.2.3 + resolution: "functions-have-names@npm:1.2.3" + checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 + languageName: node + linkType: hard + "gauge@npm:^4.0.3": version: 4.0.4 resolution: "gauge@npm:4.0.4" @@ -1627,6 +1968,18 @@ __metadata: languageName: node linkType: hard +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0": + version: 1.2.1 + resolution: "get-intrinsic@npm:1.2.1" + dependencies: + function-bind: ^1.1.1 + has: ^1.0.3 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + checksum: 5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f + languageName: node + linkType: hard + "get-stream@npm:^6.0.0": version: 6.0.1 resolution: "get-stream@npm:6.0.1" @@ -1634,6 +1987,16 @@ __metadata: languageName: node linkType: hard +"get-symbol-description@npm:^1.0.0": + version: 1.0.0 + resolution: "get-symbol-description@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.1 + checksum: 9ceff8fe968f9270a37a1f73bf3f1f7bda69ca80f4f80850670e0e7b9444ff99323f7ac52f96567f8b5f5fbe7ac717a0d81d3407c7313e82810c6199446a5247 + languageName: node + linkType: hard + "get-tsconfig@npm:^4.4.0": version: 4.6.2 resolution: "get-tsconfig@npm:4.6.2" @@ -1658,6 +2021,15 @@ __metadata: languageName: node linkType: hard +"glob-parent@npm:^5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: ^4.0.1 + checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e + languageName: node + linkType: hard + "glob-parent@npm:^6.0.2": version: 6.0.2 resolution: "glob-parent@npm:6.0.2" @@ -1714,13 +2086,52 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": +"globalthis@npm:^1.0.3": + version: 1.0.3 + resolution: "globalthis@npm:1.0.3" + dependencies: + define-properties: ^1.1.3 + checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 + languageName: node + linkType: hard + +"globby@npm:^11.1.0": + version: 11.1.0 + resolution: "globby@npm:11.1.0" + dependencies: + array-union: ^2.1.0 + dir-glob: ^3.0.1 + fast-glob: ^3.2.9 + ignore: ^5.2.0 + merge2: ^1.4.1 + slash: ^3.0.0 + checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 + languageName: node + linkType: hard + +"gopd@npm:^1.0.1": + version: 1.0.1 + resolution: "gopd@npm:1.0.1" + dependencies: + get-intrinsic: ^1.1.3 + checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 languageName: node linkType: hard +"grapheme-splitter@npm:^1.0.4": + version: 1.0.4 + resolution: "grapheme-splitter@npm:1.0.4" + checksum: 0c22ec54dee1b05cd480f78cf14f732cb5b108edc073572c4ec205df4cd63f30f8db8025afc5debc8835a8ddeacf648a1c7992fe3dcd6ad38f9a476d84906620 + languageName: node + linkType: hard + "graphemer@npm:^1.4.0": version: 1.4.0 resolution: "graphemer@npm:1.4.0" @@ -1735,6 +2146,13 @@ __metadata: languageName: node linkType: hard +"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": + version: 1.0.2 + resolution: "has-bigints@npm:1.0.2" + checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b + languageName: node + linkType: hard + "has-flag@npm:^3.0.0": version: 3.0.0 resolution: "has-flag@npm:3.0.0" @@ -1749,6 +2167,38 @@ __metadata: languageName: node linkType: hard +"has-property-descriptors@npm:^1.0.0": + version: 1.0.0 + resolution: "has-property-descriptors@npm:1.0.0" + dependencies: + get-intrinsic: ^1.1.1 + checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb + languageName: node + linkType: hard + +"has-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "has-proto@npm:1.0.1" + checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": + version: 1.0.3 + resolution: "has-symbols@npm:1.0.3" + checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.0": + version: 1.0.0 + resolution: "has-tostringtag@npm:1.0.0" + dependencies: + has-symbols: ^1.0.2 + checksum: cc12eb28cb6ae22369ebaad3a8ab0799ed61270991be88f208d508076a1e99abe4198c965935ce85ea90b60c94ddda73693b0920b58e7ead048b4a391b502c1c + languageName: node + linkType: hard + "has-unicode@npm:^2.0.1": version: 2.0.1 resolution: "has-unicode@npm:2.0.1" @@ -1898,6 +2348,17 @@ __metadata: languageName: node linkType: hard +"internal-slot@npm:^1.0.5": + version: 1.0.5 + resolution: "internal-slot@npm:1.0.5" + dependencies: + get-intrinsic: ^1.2.0 + has: ^1.0.3 + side-channel: ^1.0.4 + checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a + languageName: node + linkType: hard + "ip@npm:^2.0.0": version: 2.0.0 resolution: "ip@npm:2.0.0" @@ -1905,6 +2366,17 @@ __metadata: languageName: node linkType: hard +"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": + version: 3.0.2 + resolution: "is-array-buffer@npm:3.0.2" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.0 + is-typed-array: ^1.1.10 + checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -1912,6 +2384,32 @@ __metadata: languageName: node linkType: hard +"is-bigint@npm:^1.0.1": + version: 1.0.4 + resolution: "is-bigint@npm:1.0.4" + dependencies: + has-bigints: ^1.0.1 + checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 + languageName: node + linkType: hard + +"is-boolean-object@npm:^1.1.0": + version: 1.1.2 + resolution: "is-boolean-object@npm:1.1.2" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 + languageName: node + linkType: hard + +"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac + languageName: node + linkType: hard + "is-core-module@npm:^2.12.0, is-core-module@npm:^2.5.0": version: 2.12.1 resolution: "is-core-module@npm:2.12.1" @@ -1921,6 +2419,15 @@ __metadata: languageName: node linkType: hard +"is-date-object@npm:^1.0.1": + version: 1.0.5 + resolution: "is-date-object@npm:1.0.5" + dependencies: + has-tostringtag: ^1.0.0 + checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc + languageName: node + linkType: hard + "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -1935,7 +2442,7 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.3": +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: @@ -1951,6 +2458,29 @@ __metadata: languageName: node linkType: hard +"is-negative-zero@npm:^2.0.2": + version: 2.0.2 + resolution: "is-negative-zero@npm:2.0.2" + checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a + languageName: node + linkType: hard + +"is-number-object@npm:^1.0.4": + version: 1.0.7 + resolution: "is-number-object@npm:1.0.7" + dependencies: + has-tostringtag: ^1.0.0 + checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a + languageName: node + linkType: hard + "is-obj@npm:^2.0.0": version: 2.0.0 resolution: "is-obj@npm:2.0.0" @@ -1972,6 +2502,25 @@ __metadata: languageName: node linkType: hard +"is-regex@npm:^1.1.4": + version: 1.1.4 + resolution: "is-regex@npm:1.1.4" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 + languageName: node + linkType: hard + +"is-shared-array-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "is-shared-array-buffer@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a + languageName: node + linkType: hard + "is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" @@ -1979,6 +2528,24 @@ __metadata: languageName: node linkType: hard +"is-string@npm:^1.0.5, is-string@npm:^1.0.7": + version: 1.0.7 + resolution: "is-string@npm:1.0.7" + dependencies: + has-tostringtag: ^1.0.0 + checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 + languageName: node + linkType: hard + +"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": + version: 1.0.4 + resolution: "is-symbol@npm:1.0.4" + dependencies: + has-symbols: ^1.0.2 + checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 + languageName: node + linkType: hard + "is-text-path@npm:^1.0.1": version: 1.0.1 resolution: "is-text-path@npm:1.0.1" @@ -1988,6 +2555,28 @@ __metadata: languageName: node linkType: hard +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.9": + version: 1.1.10 + resolution: "is-typed-array@npm:1.1.10" + 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 + checksum: aac6ecb59d4c56a1cdeb69b1f129154ef462bbffe434cb8a8235ca89b42f258b7ae94073c41b3cb7bce37f6a1733ad4499f07882d5d5093a7ba84dfc4ebb8017 + languageName: node + linkType: hard + +"is-weakref@npm:^1.0.2": + version: 1.0.2 + resolution: "is-weakref@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de + languageName: node + linkType: hard + "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -2026,6 +2615,13 @@ __metadata: languageName: node linkType: hard +"json-parse-better-errors@npm:^1.0.1": + version: 1.0.2 + resolution: "json-parse-better-errors@npm:1.0.2" + checksum: ff2b5ba2a70e88fd97a3cb28c1840144c5ce8fae9cbeeddba15afa333a5c407cf0e42300cd0a2885dbb055227fe68d405070faad941beeffbfde9cf3b2c78c5d + languageName: node + linkType: hard + "json-parse-even-better-errors@npm:^2.3.0": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" @@ -2098,6 +2694,18 @@ __metadata: languageName: node linkType: hard +"load-json-file@npm:^4.0.0": + version: 4.0.0 + resolution: "load-json-file@npm:4.0.0" + dependencies: + graceful-fs: ^4.1.2 + parse-json: ^4.0.0 + pify: ^3.0.0 + strip-bom: ^3.0.0 + checksum: 8f5d6d93ba64a9620445ee9bde4d98b1eac32cf6c8c2d20d44abfa41a6945e7969456ab5f1ca2fb06ee32e206c9769a20eec7002fe290de462e8c884b6b8b356 + languageName: node + linkType: hard + "locate-path@npm:^5.0.0": version: 5.0.0 resolution: "locate-path@npm:5.0.0" @@ -2260,6 +2868,13 @@ __metadata: languageName: node linkType: hard +"memorystream@npm:^0.3.1": + version: 0.3.1 + resolution: "memorystream@npm:0.3.1" + checksum: f18b42440d24d09516d01466c06adf797df7873f0d40aa7db02e5fb9ed83074e5e65412d0720901d7069363465f82dc4f8bcb44f0cde271567a61426ce6ca2e9 + languageName: node + linkType: hard + "meow@npm:^8.0.0": version: 8.1.2 resolution: "meow@npm:8.1.2" @@ -2286,6 +2901,23 @@ __metadata: languageName: node linkType: hard +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 + languageName: node + linkType: hard + +"micromatch@npm:^4.0.4": + version: 4.0.5 + resolution: "micromatch@npm:4.0.5" + dependencies: + braces: ^3.0.2 + picomatch: ^2.3.1 + checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc + languageName: node + linkType: hard + "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -2300,7 +2932,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -2443,6 +3075,13 @@ __metadata: languageName: node linkType: hard +"natural-compare-lite@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare-lite@npm:1.4.0" + checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -2457,6 +3096,13 @@ __metadata: languageName: node linkType: hard +"nice-try@npm:^1.0.4": + version: 1.0.5 + resolution: "nice-try@npm:1.0.5" + checksum: 0b4af3b5bb5d86c289f7a026303d192a7eb4417231fe47245c460baeabae7277bcd8fd9c728fb6bd62c30b3e15cd6620373e2cf33353b095d8b403d3e8a15aff + languageName: node + linkType: hard + "node-gyp@npm:latest": version: 9.4.0 resolution: "node-gyp@npm:9.4.0" @@ -2489,7 +3135,7 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^2.5.0": +"normalize-package-data@npm:^2.3.2, normalize-package-data@npm:^2.5.0": version: 2.5.0 resolution: "normalize-package-data@npm:2.5.0" dependencies: @@ -2513,6 +3159,27 @@ __metadata: languageName: node linkType: hard +"npm-run-all@npm:^4.1.5": + version: 4.1.5 + resolution: "npm-run-all@npm:4.1.5" + dependencies: + ansi-styles: ^3.2.1 + chalk: ^2.4.1 + cross-spawn: ^6.0.5 + memorystream: ^0.3.1 + minimatch: ^3.0.4 + pidtree: ^0.3.0 + read-pkg: ^3.0.0 + shell-quote: ^1.6.1 + string.prototype.padend: ^3.0.0 + bin: + npm-run-all: bin/npm-run-all/index.js + run-p: bin/run-p/index.js + run-s: bin/run-s/index.js + checksum: 373b72c6a36564da13c1642c1fd9bb4dcc756bce7a3648f883772f02661095319820834ff813762d2fee403e9b40c1cd27c8685807c107440f10eb19c006d4a0 + languageName: node + linkType: hard + "npm-run-path@npm:^4.0.1": version: 4.0.1 resolution: "npm-run-path@npm:4.0.1" @@ -2534,6 +3201,32 @@ __metadata: languageName: node linkType: hard +"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": + version: 1.12.3 + resolution: "object-inspect@npm:1.12.3" + checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a + languageName: node + linkType: hard + +"object.assign@npm:^4.1.4": + version: 4.1.4 + resolution: "object.assign@npm:4.1.4" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + has-symbols: ^1.0.3 + object-keys: ^1.1.1 + checksum: 76cab513a5999acbfe0ff355f15a6a125e71805fcf53de4e9d4e082e1989bdb81d1e329291e1e4e0ae7719f0e4ef80e88fb2d367ae60500d79d25a6224ac8864 + languageName: node + linkType: hard + "once@npm:^1.3.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -2627,6 +3320,16 @@ __metadata: languageName: node linkType: hard +"parse-json@npm:^4.0.0": + version: 4.0.0 + resolution: "parse-json@npm:4.0.0" + dependencies: + error-ex: ^1.3.1 + json-parse-better-errors: ^1.0.1 + checksum: 0fe227d410a61090c247e34fa210552b834613c006c2c64d9a05cfe9e89cf8b4246d1246b1a99524b53b313e9ac024438d0680f67e33eaed7e6f38db64cfe7b5 + languageName: node + linkType: hard + "parse-json@npm:^5.0.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" @@ -2653,6 +3356,13 @@ __metadata: languageName: node linkType: hard +"path-key@npm:^2.0.1": + version: 2.0.1 + resolution: "path-key@npm:2.0.1" + checksum: f7ab0ad42fe3fb8c7f11d0c4f849871e28fbd8e1add65c370e422512fc5887097b9cf34d09c1747d45c942a8c1e26468d6356e2df3f740bf177ab8ca7301ebfd + languageName: node + linkType: hard + "path-key@npm:^3.0.0, path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" @@ -2677,6 +3387,15 @@ __metadata: languageName: node linkType: hard +"path-type@npm:^3.0.0": + version: 3.0.0 + resolution: "path-type@npm:3.0.0" + dependencies: + pify: ^3.0.0 + checksum: 735b35e256bad181f38fa021033b1c33cfbe62ead42bb2222b56c210e42938eecb272ae1949f3b6db4ac39597a61b44edd8384623ec4d79bfdc9a9c0f12537a6 + languageName: node + linkType: hard + "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" @@ -2684,6 +3403,29 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf + languageName: node + linkType: hard + +"pidtree@npm:^0.3.0": + version: 0.3.1 + resolution: "pidtree@npm:0.3.1" + bin: + pidtree: bin/pidtree.js + checksum: eb49025099f1af89a4696f7673351421f13420f3397b963c901fe23a1c9c2ff50f4750321970d4472c0ffbb065e4a6c3c27f75e226cc62284b19e21d32ce7012 + languageName: node + linkType: hard + +"pify@npm:^3.0.0": + version: 3.0.0 + resolution: "pify@npm:3.0.0" + checksum: 6cdcbc3567d5c412450c53261a3f10991665d660961e06605decf4544a61a97a54fefe70a68d5c37080ff9d6f4cf51444c90198d1ba9f9309a6c0d6e9f5c4fde + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -2749,6 +3491,17 @@ __metadata: languageName: node linkType: hard +"read-pkg@npm:^3.0.0": + version: 3.0.0 + resolution: "read-pkg@npm:3.0.0" + dependencies: + load-json-file: ^4.0.0 + normalize-package-data: ^2.3.2 + path-type: ^3.0.0 + checksum: 398903ebae6c7e9965419a1062924436cc0b6f516c42c4679a90290d2f87448ed8f977e7aa2dbba4aa1ac09248628c43e493ac25b2bc76640e946035200e34c6 + languageName: node + linkType: hard + "read-pkg@npm:^5.2.0": version: 5.2.0 resolution: "read-pkg@npm:5.2.0" @@ -2782,6 +3535,17 @@ __metadata: languageName: node linkType: hard +"regexp.prototype.flags@npm:^1.4.3": + version: 1.5.0 + resolution: "regexp.prototype.flags@npm:1.5.0" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + functions-have-names: ^1.2.3 + checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 + languageName: node + linkType: hard + "require-directory@npm:^2.1.1": version: 2.1.1 resolution: "require-directory@npm:2.1.1" @@ -2893,6 +3657,17 @@ __metadata: languageName: node linkType: hard +"safe-regex-test@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-regex-test@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.3 + is-regex: ^1.1.4 + checksum: bc566d8beb8b43c01b94e67de3f070fd2781685e835959bbbaaec91cc53381145ca91f69bd837ce6ec244817afa0a5e974fc4e40a2957f0aca68ac3add1ddd34 + languageName: node + linkType: hard + "safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" @@ -2900,7 +3675,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0": version: 5.7.1 resolution: "semver@npm:5.7.1" bin: @@ -2920,7 +3695,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.4, semver@npm:^7.3.5": +"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7": version: 7.5.3 resolution: "semver@npm:7.5.3" dependencies: @@ -2938,6 +3713,15 @@ __metadata: languageName: node linkType: hard +"shebang-command@npm:^1.2.0": + version: 1.2.0 + resolution: "shebang-command@npm:1.2.0" + dependencies: + shebang-regex: ^1.0.0 + checksum: 9eed1750301e622961ba5d588af2212505e96770ec376a37ab678f965795e995ade7ed44910f5d3d3cb5e10165a1847f52d3348c64e146b8be922f7707958908 + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -2947,6 +3731,13 @@ __metadata: languageName: node linkType: hard +"shebang-regex@npm:^1.0.0": + version: 1.0.0 + resolution: "shebang-regex@npm:1.0.0" + checksum: 404c5a752cd40f94591dfd9346da40a735a05139dac890ffc229afba610854d8799aaa52f87f7e0c94c5007f2c6af55bdcaeb584b56691926c5eaf41dc8f1372 + languageName: node + linkType: hard + "shebang-regex@npm:^3.0.0": version: 3.0.0 resolution: "shebang-regex@npm:3.0.0" @@ -2954,6 +3745,24 @@ __metadata: languageName: node linkType: hard +"shell-quote@npm:^1.6.1": + version: 1.8.1 + resolution: "shell-quote@npm:1.8.1" + checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b + languageName: node + linkType: hard + +"side-channel@npm:^1.0.4": + version: 1.0.4 + resolution: "side-channel@npm:1.0.4" + dependencies: + call-bind: ^1.0.0 + get-intrinsic: ^1.0.2 + object-inspect: ^1.9.0 + checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -2968,6 +3777,13 @@ __metadata: languageName: node linkType: hard +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c + languageName: node + linkType: hard + "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -3087,6 +3903,50 @@ __metadata: languageName: node linkType: hard +"string.prototype.padend@npm:^3.0.0": + version: 3.1.4 + resolution: "string.prototype.padend@npm:3.1.4" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 76e07238fe31dc12177428f0436b7ed6985f6a7ba97470fd53e4f0a6d9860bfee127d81957f3073cc879b434233df143825d140581e1340278053ad993c92f6c + languageName: node + linkType: hard + +"string.prototype.trim@npm:^1.2.7": + version: 1.2.7 + resolution: "string.prototype.trim@npm:1.2.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 + languageName: node + linkType: hard + +"string.prototype.trimend@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimend@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 0fdc34645a639bd35179b5a08227a353b88dc089adf438f46be8a7c197fc3f22f8514c1c9be4629b3cd29c281582730a8cbbad6466c60f76b5f99cf2addb132e + languageName: node + linkType: hard + +"string.prototype.trimstart@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimstart@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 89080feef416621e6ef1279588994305477a7a91648d9436490d56010a1f7adc39167cddac7ce0b9884b8cdbef086987c4dcb2960209f2af8bac0d23ceff4f41 + languageName: node + linkType: hard + "string_decoder@npm:^1.1.1": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" @@ -3114,6 +3974,13 @@ __metadata: languageName: node linkType: hard +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b + languageName: node + linkType: hard + "strip-final-newline@npm:^2.0.0": version: 2.0.0 resolution: "strip-final-newline@npm:2.0.0" @@ -3206,6 +4073,15 @@ __metadata: languageName: node linkType: hard +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: ^7.0.0 + checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed + languageName: node + linkType: hard + "trim-newlines@npm:^3.0.0": version: 3.0.1 resolution: "trim-newlines@npm:3.0.1" @@ -3258,15 +4134,36 @@ __metadata: "@commitlint/cli": ^17.6.6 "@commitlint/config-conventional": ^17.6.6 "@types/node": ^20.3.2 + "@typescript-eslint/eslint-plugin": ^5.60.1 + "@typescript-eslint/parser": ^5.60.1 dotenv: ^16.3.1 eslint: ^8.43.0 husky: ^8.0.3 + npm-run-all: ^4.1.5 prettier: ^2.8.8 tsx: ^3.12.7 - typescript: ^5.1.6 + typescript: ^5.1.0 languageName: unknown linkType: soft +"tslib@npm:^1.8.1": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd + languageName: node + linkType: hard + +"tsutils@npm:^3.21.0": + version: 3.21.0 + resolution: "tsutils@npm:3.21.0" + dependencies: + tslib: ^1.8.1 + peerDependencies: + typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 + languageName: node + linkType: hard + "tsx@npm:^3.12.7": version: 3.12.7 resolution: "tsx@npm:3.12.7" @@ -3321,7 +4218,18 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^4.6.4 || ^5.0.0, typescript@npm:^5.1.6": +"typed-array-length@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-length@npm:1.0.4" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + is-typed-array: ^1.1.9 + checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 + languageName: node + linkType: hard + +"typescript@npm:^4.6.4 || ^5.0.0, typescript@npm:^5.1.0": version: 5.1.6 resolution: "typescript@npm:5.1.6" bin: @@ -3331,7 +4239,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^4.6.4 || ^5.0.0#~builtin, typescript@patch:typescript@^5.1.6#~builtin": +"typescript@patch:typescript@^4.6.4 || ^5.0.0#~builtin, typescript@patch:typescript@^5.1.0#~builtin": version: 5.1.6 resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=1f5320" bin: @@ -3341,6 +4249,18 @@ __metadata: languageName: node linkType: hard +"unbox-primitive@npm:^1.0.2": + version: 1.0.2 + resolution: "unbox-primitive@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + has-bigints: ^1.0.2 + has-symbols: ^1.0.3 + which-boxed-primitive: ^1.0.2 + checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9 + languageName: node + linkType: hard + "unique-filename@npm:^3.0.0": version: 3.0.0 resolution: "unique-filename@npm:3.0.0" @@ -3399,6 +4319,44 @@ __metadata: languageName: node linkType: hard +"which-boxed-primitive@npm:^1.0.2": + version: 1.0.2 + resolution: "which-boxed-primitive@npm:1.0.2" + dependencies: + is-bigint: ^1.0.1 + is-boolean-object: ^1.1.0 + is-number-object: ^1.0.4 + is-string: ^1.0.5 + is-symbol: ^1.0.3 + checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e + languageName: node + linkType: hard + +"which-typed-array@npm:^1.1.9": + version: 1.1.9 + resolution: "which-typed-array@npm:1.1.9" + 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 + is-typed-array: ^1.1.10 + checksum: fe0178ca44c57699ca2c0e657b64eaa8d2db2372a4e2851184f568f98c478ae3dc3fdb5f7e46c384487046b0cf9e23241423242b277e03e8ba3dabc7c84c98ef + languageName: node + linkType: hard + +"which@npm:^1.2.9": + version: 1.3.1 + resolution: "which@npm:1.3.1" + dependencies: + isexe: ^2.0.0 + bin: + which: ./bin/which + checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 + languageName: node + linkType: hard + "which@npm:^2.0.1, which@npm:^2.0.2": version: 2.0.2 resolution: "which@npm:2.0.2" From c97650ee48945b5aa03c6e9537a222f1ee742239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= <4975670+pavlovcik@users.noreply.github.com> Date: Mon, 10 Jul 2023 17:41:57 +0900 Subject: [PATCH 16/85] Update conventional-commits.yml --- .github/workflows/conventional-commits.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conventional-commits.yml b/.github/workflows/conventional-commits.yml index 2547809e..6482cd5e 100644 --- a/.github/workflows/conventional-commits.yml +++ b/.github/workflows/conventional-commits.yml @@ -11,4 +11,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: ubiquity/action-conventional-commits@v1.1.2 + - uses: ubiquity/action-conventional-commits@master From 5d17d4247c5d8513ab2f05fa17cd29457ab7aa01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= <4975670+pavlovcik@users.noreply.github.com> Date: Wed, 9 Aug 2023 01:36:38 +0900 Subject: [PATCH 17/85] Update cloudflare-deploy.yml Had to fix because `.nvmrc` is not compatible ``` error telegram-ubiquibot@1.0.0: The engine "node" is incompatible with this module. Expected version ">=v20.3.0". Got "18.14.1" ``` --- .github/workflows/cloudflare-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cloudflare-deploy.yml b/.github/workflows/cloudflare-deploy.yml index 7b086bc8..978938de 100644 --- a/.github/workflows/cloudflare-deploy.yml +++ b/.github/workflows/cloudflare-deploy.yml @@ -20,7 +20,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v3 with: - node-version: "18.14.1" + node-version: "20.3.0" - name: Yarn Install run: yarn install From 4680536d0df2eeb90a755504e12b8a3679e0e89a Mon Sep 17 00:00:00 2001 From: rndquu <119500907+rndquu@users.noreply.github.com> Date: Thu, 17 Aug 2023 16:15:24 +0300 Subject: [PATCH 18/85] Update cloudflare-deploy.yml --- .github/workflows/cloudflare-deploy.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cloudflare-deploy.yml b/.github/workflows/cloudflare-deploy.yml index 978938de..cacda753 100644 --- a/.github/workflows/cloudflare-deploy.yml +++ b/.github/workflows/cloudflare-deploy.yml @@ -1,10 +1,10 @@ name: Deploy to Cloudflare Pages on: - push: - branches: - - development - pull_request: + workflow_run: + workflows: ["Conventional Commits"] + types: + - completed jobs: deploy-to-cloudflare: From bfcfcdaab8c0aed6fda112e579d9f4f4bb557ee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sat, 25 Nov 2023 09:01:26 +0900 Subject: [PATCH 19/85] feat: format on lint-staged --- package.json | 4 + yarn.lock | 273 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 270 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index e6243061..05fe2ab3 100644 --- a/package.json +++ b/package.json @@ -31,9 +31,13 @@ "@typescript-eslint/parser": "^5.60.1", "eslint": "^8.43.0", "husky": "^8.0.3", + "lint-staged": "^15.1.0", "npm-run-all": "^4.1.5", "prettier": "^2.8.8", "tsx": "^3.12.7", "typescript": "^5.1.0" + }, + "lint-staged": { + "*.ts": "yarn format" } } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 014dbf13..03dc98a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -866,6 +866,15 @@ __metadata: languageName: node linkType: hard +"ansi-escapes@npm:^5.0.0": + version: 5.0.0 + resolution: "ansi-escapes@npm:5.0.0" + dependencies: + type-fest: ^1.0.2 + checksum: d4b5eb8207df38367945f5dd2ef41e08c28edc192dc766ef18af6b53736682f49d8bfcfa4e4d6ecbc2e2f97c258fda084fb29a9e43b69170b71090f771afccac + languageName: node + linkType: hard + "ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" @@ -898,7 +907,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^6.1.0": +"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0": version: 6.2.1 resolution: "ansi-styles@npm:6.2.1" checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 @@ -1071,6 +1080,13 @@ __metadata: languageName: node linkType: hard +"chalk@npm:5.3.0": + version: 5.3.0 + resolution: "chalk@npm:5.3.0" + checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 + languageName: node + linkType: hard + "chalk@npm:^2.0.0, chalk@npm:^2.4.1": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -1106,6 +1122,25 @@ __metadata: languageName: node linkType: hard +"cli-cursor@npm:^4.0.0": + version: 4.0.0 + resolution: "cli-cursor@npm:4.0.0" + dependencies: + restore-cursor: ^4.0.0 + checksum: ab3f3ea2076e2176a1da29f9d64f72ec3efad51c0960898b56c8a17671365c26e67b735920530eaf7328d61f8bd41c27f46b9cf6e4e10fe2fa44b5e8c0e392cc + languageName: node + linkType: hard + +"cli-truncate@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-truncate@npm:3.1.0" + dependencies: + slice-ansi: ^5.0.0 + string-width: ^5.0.0 + checksum: c3243e41974445691c63f8b405df1d5a24049dc33d324fe448dc572e561a7b772ae982692900b1a5960901cc4fc7def25a629b9c69a4208ee89d12ab3332617a + languageName: node + linkType: hard + "cliui@npm:^8.0.1": version: 8.0.1 resolution: "cliui@npm:8.0.1" @@ -1158,6 +1193,20 @@ __metadata: languageName: node linkType: hard +"colorette@npm:^2.0.20": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d + languageName: node + linkType: hard + +"commander@npm:11.1.0": + version: 11.1.0 + resolution: "commander@npm:11.1.0" + checksum: fd1a8557c6b5b622c89ecdfde703242ab7db3b628ea5d1755784c79b8e7cb0d74d65b4a262289b533359cd58e1bfc0bf50245dfbcd2954682a6f367c828b79ef + languageName: node + linkType: hard + "compare-func@npm:^2.0.0": version: 2.0.0 resolution: "compare-func@npm:2.0.0" @@ -1281,7 +1330,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -1723,6 +1772,30 @@ __metadata: languageName: node linkType: hard +"eventemitter3@npm:^5.0.1": + version: 5.0.1 + resolution: "eventemitter3@npm:5.0.1" + checksum: 543d6c858ab699303c3c32e0f0f47fc64d360bf73c3daf0ac0b5079710e340d6fe9f15487f94e66c629f5f82cd1a8678d692f3dbb6f6fcd1190e1b97fcad36f8 + languageName: node + linkType: hard + +"execa@npm:8.0.1": + version: 8.0.1 + resolution: "execa@npm:8.0.1" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^8.0.1 + human-signals: ^5.0.0 + is-stream: ^3.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^5.1.0 + onetime: ^6.0.0 + signal-exit: ^4.1.0 + strip-final-newline: ^3.0.0 + checksum: cac1bf86589d1d9b73bdc5dda65c52012d1a9619c44c526891956745f7b366ca2603d29fe3f7460bacc2b48c6eab5d6a4f7afe0534b31473d3708d1265545e1f + languageName: node + linkType: hard + "execa@npm:^5.0.0": version: 5.1.1 resolution: "execa@npm:5.1.1" @@ -1987,6 +2060,13 @@ __metadata: languageName: node linkType: hard +"get-stream@npm:^8.0.1": + version: 8.0.1 + resolution: "get-stream@npm:8.0.1" + checksum: 01e3d3cf29e1393f05f44d2f00445c5f9ec3d1c49e8179b31795484b9c117f4c695e5e07b88b50785d5c8248a788c85d9913a79266fc77e3ef11f78f10f1b974 + languageName: node + linkType: hard + "get-symbol-description@npm:^1.0.0": version: 1.0.0 resolution: "get-symbol-description@npm:1.0.0" @@ -2266,6 +2346,13 @@ __metadata: languageName: node linkType: hard +"human-signals@npm:^5.0.0": + version: 5.0.0 + resolution: "human-signals@npm:5.0.0" + checksum: 6504560d5ed91444f16bea3bd9dfc66110a339442084e56c3e7fa7bbdf3f406426d6563d662bdce67064b165eac31eeabfc0857ed170aaa612cf14ec9f9a464c + languageName: node + linkType: hard + "humanize-ms@npm:^1.2.1": version: 1.2.1 resolution: "humanize-ms@npm:1.2.1" @@ -2442,6 +2529,13 @@ __metadata: languageName: node linkType: hard +"is-fullwidth-code-point@npm:^4.0.0": + version: 4.0.0 + resolution: "is-fullwidth-code-point@npm:4.0.0" + checksum: 8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d + languageName: node + linkType: hard + "is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": version: 4.0.3 resolution: "is-glob@npm:4.0.3" @@ -2528,6 +2622,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^3.0.0": + version: 3.0.0 + resolution: "is-stream@npm:3.0.0" + checksum: 172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 + languageName: node + linkType: hard + "is-string@npm:^1.0.5, is-string@npm:^1.0.7": version: 1.0.7 resolution: "is-string@npm:1.0.7" @@ -2687,6 +2788,13 @@ __metadata: languageName: node linkType: hard +"lilconfig@npm:2.1.0": + version: 2.1.0 + resolution: "lilconfig@npm:2.1.0" + checksum: 8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117 + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -2694,6 +2802,40 @@ __metadata: languageName: node linkType: hard +"lint-staged@npm:^15.1.0": + version: 15.1.0 + resolution: "lint-staged@npm:15.1.0" + dependencies: + chalk: 5.3.0 + commander: 11.1.0 + debug: 4.3.4 + execa: 8.0.1 + lilconfig: 2.1.0 + listr2: 7.0.2 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.4 + bin: + lint-staged: bin/lint-staged.js + checksum: e99bdedb32d20fa22c0d0798ecf014fd00ac9cce1158373d7caf47855c0b9b4c20d228417677a05ea81f6941f957ae9347dccb3846a48bc1fdd0cdeed2ccf0ef + languageName: node + linkType: hard + +"listr2@npm:7.0.2": + version: 7.0.2 + resolution: "listr2@npm:7.0.2" + dependencies: + cli-truncate: ^3.1.0 + colorette: ^2.0.20 + eventemitter3: ^5.0.1 + log-update: ^5.0.1 + rfdc: ^1.3.0 + wrap-ansi: ^8.1.0 + checksum: 1734c6b9367ceeb09bf372427930a4586b3727097373408f2f840896b9333cc80e53a1a696771a83a7d4d9ada46229843f3052b87f3b0b58c20e9451362c2dd3 + languageName: node + linkType: hard + "load-json-file@npm:^4.0.0": version: 4.0.0 resolution: "load-json-file@npm:4.0.0" @@ -2801,6 +2943,19 @@ __metadata: languageName: node linkType: hard +"log-update@npm:^5.0.1": + version: 5.0.1 + resolution: "log-update@npm:5.0.1" + dependencies: + ansi-escapes: ^5.0.0 + cli-cursor: ^4.0.0 + slice-ansi: ^5.0.0 + strip-ansi: ^7.0.1 + wrap-ansi: ^8.0.1 + checksum: 2c6b47dcce6f9233df6d232a37d9834cb3657a0749ef6398f1706118de74c55f158587d4128c225297ea66803f35c5ac3db4f3f617046d817233c45eedc32ef1 + languageName: node + linkType: hard + "lru-cache@npm:^6.0.0": version: 6.0.0 resolution: "lru-cache@npm:6.0.0" @@ -2908,7 +3063,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.4": +"micromatch@npm:4.0.5, micromatch@npm:^4.0.4": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -2925,6 +3080,13 @@ __metadata: languageName: node linkType: hard +"mimic-fn@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-fn@npm:4.0.0" + checksum: 995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 + languageName: node + linkType: hard + "min-indent@npm:^1.0.0": version: 1.0.1 resolution: "min-indent@npm:1.0.1" @@ -3189,6 +3351,15 @@ __metadata: languageName: node linkType: hard +"npm-run-path@npm:^5.1.0": + version: 5.1.0 + resolution: "npm-run-path@npm:5.1.0" + dependencies: + path-key: ^4.0.0 + checksum: dc184eb5ec239d6a2b990b43236845332ef12f4e0beaa9701de724aa797fe40b6bbd0157fb7639d24d3ab13f5d5cf22d223a19c6300846b8126f335f788bee66 + languageName: node + linkType: hard + "npmlog@npm:^6.0.0": version: 6.0.2 resolution: "npmlog@npm:6.0.2" @@ -3236,7 +3407,7 @@ __metadata: languageName: node linkType: hard -"onetime@npm:^5.1.2": +"onetime@npm:^5.1.0, onetime@npm:^5.1.2": version: 5.1.2 resolution: "onetime@npm:5.1.2" dependencies: @@ -3245,6 +3416,15 @@ __metadata: languageName: node linkType: hard +"onetime@npm:^6.0.0": + version: 6.0.0 + resolution: "onetime@npm:6.0.0" + dependencies: + mimic-fn: ^4.0.0 + checksum: 0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 + languageName: node + linkType: hard + "optionator@npm:^0.9.1": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -3370,6 +3550,13 @@ __metadata: languageName: node linkType: hard +"path-key@npm:^4.0.0": + version: 4.0.0 + resolution: "path-key@npm:4.0.0" + checksum: 8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 + languageName: node + linkType: hard + "path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" @@ -3410,6 +3597,15 @@ __metadata: languageName: node linkType: hard +"pidtree@npm:0.6.0": + version: 0.6.0 + resolution: "pidtree@npm:0.6.0" + bin: + pidtree: bin/pidtree.js + checksum: 8fbc073ede9209dd15e80d616e65eb674986c93be49f42d9ddde8dbbd141bb53d628a7ca4e58ab5c370bb00383f67d75df59a9a226dede8fa801267a7030c27a + languageName: node + linkType: hard + "pidtree@npm:^0.3.0": version: 0.3.1 resolution: "pidtree@npm:0.3.1" @@ -3616,6 +3812,16 @@ __metadata: languageName: node linkType: hard +"restore-cursor@npm:^4.0.0": + version: 4.0.0 + resolution: "restore-cursor@npm:4.0.0" + dependencies: + onetime: ^5.1.0 + signal-exit: ^3.0.2 + checksum: 5b675c5a59763bf26e604289eab35711525f11388d77f409453904e1e69c0d37ae5889295706b2c81d23bd780165084d040f9b68fffc32cc921519031c4fa4af + languageName: node + linkType: hard + "retry@npm:^0.12.0": version: 0.12.0 resolution: "retry@npm:0.12.0" @@ -3630,6 +3836,13 @@ __metadata: languageName: node linkType: hard +"rfdc@npm:^1.3.0": + version: 1.3.0 + resolution: "rfdc@npm:1.3.0" + checksum: fb2ba8512e43519983b4c61bd3fa77c0f410eff6bae68b08614437bc3f35f91362215f7b4a73cbda6f67330b5746ce07db5dd9850ad3edc91271ad6deea0df32 + languageName: node + linkType: hard + "rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -3763,7 +3976,7 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 @@ -3777,6 +3990,13 @@ __metadata: languageName: node linkType: hard +"signal-exit@npm:^4.1.0": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 + languageName: node + linkType: hard + "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" @@ -3784,6 +4004,16 @@ __metadata: languageName: node linkType: hard +"slice-ansi@npm:^5.0.0": + version: 5.0.0 + resolution: "slice-ansi@npm:5.0.0" + dependencies: + ansi-styles: ^6.0.0 + is-fullwidth-code-point: ^4.0.0 + checksum: 7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e + languageName: node + linkType: hard + "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -3881,6 +4111,13 @@ __metadata: languageName: node linkType: hard +"string-argv@npm:0.3.2": + version: 0.3.2 + resolution: "string-argv@npm:0.3.2" + checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f + languageName: node + linkType: hard + "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -3892,7 +4129,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^5.0.1, string-width@npm:^5.1.2": +"string-width@npm:^5.0.0, string-width@npm:^5.0.1, string-width@npm:^5.1.2": version: 5.1.2 resolution: "string-width@npm:5.1.2" dependencies: @@ -3988,6 +4225,13 @@ __metadata: languageName: node linkType: hard +"strip-final-newline@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-final-newline@npm:3.0.0" + checksum: 23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 + languageName: node + linkType: hard + "strip-indent@npm:^3.0.0": version: 3.0.0 resolution: "strip-indent@npm:3.0.0" @@ -4139,6 +4383,7 @@ __metadata: dotenv: ^16.3.1 eslint: ^8.43.0 husky: ^8.0.3 + lint-staged: ^15.1.0 npm-run-all: ^4.1.5 prettier: ^2.8.8 tsx: ^3.12.7 @@ -4218,6 +4463,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^1.0.2": + version: 1.4.0 + resolution: "type-fest@npm:1.4.0" + checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 + languageName: node + linkType: hard + "typed-array-length@npm:^1.0.4": version: 1.0.4 resolution: "typed-array-length@npm:1.0.4" @@ -4388,7 +4640,7 @@ __metadata: languageName: node linkType: hard -"wrap-ansi@npm:^8.1.0": +"wrap-ansi@npm:^8.0.1, wrap-ansi@npm:^8.1.0": version: 8.1.0 resolution: "wrap-ansi@npm:8.1.0" dependencies: @@ -4420,6 +4672,13 @@ __metadata: languageName: node linkType: hard +"yaml@npm:2.3.4": + version: 2.3.4 + resolution: "yaml@npm:2.3.4" + checksum: e6d1dae1c6383bcc8ba11796eef3b8c02d5082911c6723efeeb5ba50fc8e881df18d645e64de68e421b577296000bea9c75d6d9097c2f6699da3ae0406c030d8 + languageName: node + linkType: hard + "yargs-parser@npm:^20.2.3": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9" From 7c2aa64df980c4937812c09d4038b19de7ea8cda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sat, 25 Nov 2023 09:03:22 +0900 Subject: [PATCH 20/85] fix: commit-msg script and add lint-staged command --- .husky/commit-msg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.husky/commit-msg b/.husky/commit-msg index 4c49ae6a..d76dfb8b 100755 --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,4 +1,5 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -yarn commitlint --edit $1 +yarn commitlint --edit "$1" +yarn lint-staged \ No newline at end of file From 31825e82fc48c0e4b8480598f291ce8b1bc88d1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sat, 25 Nov 2023 09:55:29 +0900 Subject: [PATCH 21/85] feat: prefer named functions --- .eslintrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.eslintrc b/.eslintrc index 5ee71efb..15d65e91 100644 --- a/.eslintrc +++ b/.eslintrc @@ -7,6 +7,8 @@ "plugins": ["@typescript-eslint"], "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], "rules": { + "prefer-arrow-callback": ["warn", { "allowNamedFunctions": true }], // Disallow arrow functions as expressions + "func-style": ["warn", "declaration", { "allowArrowFunctions": false }], // Disallow the use of function expressions "@typescript-eslint/no-floating-promises": "error" } } From f3997c9b635dc8d027965b65079423bbba268986 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sat, 25 Nov 2023 10:39:59 +0900 Subject: [PATCH 22/85] feat: add naming conventions rule --- .eslintrc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.eslintrc b/.eslintrc index 15d65e91..3a2e48b7 100644 --- a/.eslintrc +++ b/.eslintrc @@ -9,6 +9,20 @@ "rules": { "prefer-arrow-callback": ["warn", { "allowNamedFunctions": true }], // Disallow arrow functions as expressions "func-style": ["warn", "declaration", { "allowArrowFunctions": false }], // Disallow the use of function expressions - "@typescript-eslint/no-floating-promises": "error" + "@typescript-eslint/no-floating-promises": "error", + "@typescript-eslint/naming-convention": [ + "error", + { "selector": "typeLike", "format": ["PascalCase"] }, + { "selector": "variableLike", "format": ["camelCase"] }, + { "selector": "memberLike", "modifiers": ["private"], "format": ["camelCase"], "leadingUnderscore": "require" }, + { "selector": "variable", "types": ["boolean"], "format": ["PascalCase"], "prefix": ["is", "should", "has", "can", "did", "will"] }, + { "selector": "variable", "format": ["camelCase", "UPPER_CASE"], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, + { "selector": "typeParameter", "format": ["PascalCase"], "prefix": ["T"] }, + { "selector": "interface", "format": ["PascalCase"], "custom": { "regex": "^I[A-Z]", "match": false } }, + { "selector": ["function", "variable"], "format": ["camelCase"] }, + { "selector": "variable", "modifiers": ["destructured"], "format": null }, + { "selector": "variable", "format": ["camelCase"], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, + { "selector": "variable", "types": ["boolean"], "format": ["PascalCase"], "prefix": ["is", "has", "should", "can", "did", "will"] } + ] } } From 805224f0a3c2fb13205e0d0fe184844e99fab02d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Wed, 29 Nov 2023 15:40:09 +0900 Subject: [PATCH 23/85] feat: easy ui support --- .commitlintrc | 3 - .eslintrc | 1 + .github/workflows/cloudflare-deploy.yml | 13 +- .gitignore | 1 + .nvmrc | 2 +- build/esbuild-build.ts | 33 + build/esbuild-server.ts | 18 + index.ts => build/index.ts | 0 package.json | 41 +- static/fonts/ubiquity-nova-standard.eot | Bin 0 -> 56807 bytes static/fonts/ubiquity-nova-standard.ttf | Bin 0 -> 187128 bytes static/fonts/ubiquity-nova-standard.woff | Bin 0 -> 77756 bytes static/index.html | 10 +- static/main.ts | 10 + static/style.css | 14 + tsconfig.json | 26 +- yarn.lock | 3069 ++++++++++++++-------- 17 files changed, 2108 insertions(+), 1133 deletions(-) delete mode 100644 .commitlintrc create mode 100644 build/esbuild-build.ts create mode 100644 build/esbuild-server.ts rename index.ts => build/index.ts (100%) create mode 100644 static/fonts/ubiquity-nova-standard.eot create mode 100644 static/fonts/ubiquity-nova-standard.ttf create mode 100644 static/fonts/ubiquity-nova-standard.woff create mode 100644 static/main.ts create mode 100644 static/style.css diff --git a/.commitlintrc b/.commitlintrc deleted file mode 100644 index a4a994c1..00000000 --- a/.commitlintrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": ["@commitlint/config-conventional"] - } diff --git a/.eslintrc b/.eslintrc index 3a2e48b7..003e714d 100644 --- a/.eslintrc +++ b/.eslintrc @@ -6,6 +6,7 @@ }, "plugins": ["@typescript-eslint"], "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], + "ignorePatterns": ["**/*.js"], "rules": { "prefer-arrow-callback": ["warn", { "allowNamedFunctions": true }], // Disallow arrow functions as expressions "func-style": ["warn", "declaration", { "allowArrowFunctions": false }], // Disallow the use of function expressions diff --git a/.github/workflows/cloudflare-deploy.yml b/.github/workflows/cloudflare-deploy.yml index cacda753..34f01711 100644 --- a/.github/workflows/cloudflare-deploy.yml +++ b/.github/workflows/cloudflare-deploy.yml @@ -20,13 +20,16 @@ jobs: - name: Setup Node uses: actions/setup-node@v3 with: - node-version: "20.3.0" + node-version: "20.10.0" - name: Yarn Install run: yarn install + - name: Build the project + run: yarn build + - name: Wrangler Install - run: npm install -g wrangler + run: yarn add wrangler - name: Publish to Cloudflare env: @@ -38,11 +41,11 @@ jobs: IFS='/' read -ra fields <<< "$REPOSITORY" projectName="${fields[1]}" echo $projectName - wrangler pages project list > project_list.txt + yarn wrangler pages project list > project_list.txt if grep -q $projectName project_list.txt; then echo "Project found" else echo "Project not found" - wrangler pages project create "$projectName" --production-branch "$PRODUCTION_BRANCH" + yarn wrangler pages project create "$projectName" --production-branch "$PRODUCTION_BRANCH" fi - wrangler pages publish "$OUTPUT_DIRECTORY" --project-name "$projectName" + yarn wrangler pages publish "$OUTPUT_DIRECTORY" --project-name "$projectName" diff --git a/.gitignore b/.gitignore index 8f59254b..f617cbfa 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ node_modules .yarn .pnp.cjs .pnp.loader.mjs +static/dist \ No newline at end of file diff --git a/.nvmrc b/.nvmrc index a5e8bba2..790e1105 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v20.3.0 +v20.10.0 diff --git a/build/esbuild-build.ts b/build/esbuild-build.ts new file mode 100644 index 00000000..3004b1d9 --- /dev/null +++ b/build/esbuild-build.ts @@ -0,0 +1,33 @@ +import esbuild from "esbuild"; +const typescriptEntries = ["static/main.ts"]; +// const cssEntries = ["static/style.css"]; +const entries = [ + ...typescriptEntries, + // ...cssEntries +]; + +export const esBuildContext: esbuild.BuildOptions = { + sourcemap: true, + entryPoints: entries, + bundle: true, + minify: false, + loader: { + ".png": "dataurl", + ".woff": "dataurl", + ".woff2": "dataurl", + ".eot": "dataurl", + ".ttf": "dataurl", + ".svg": "dataurl", + }, + outdir: "static/dist", +}; + +esbuild + .build(esBuildContext) + .then(() => { + console.log("\tesbuild complete"); + }) + .catch((err) => { + console.error(err); + process.exit(1); + }); diff --git a/build/esbuild-server.ts b/build/esbuild-server.ts new file mode 100644 index 00000000..bb992aee --- /dev/null +++ b/build/esbuild-server.ts @@ -0,0 +1,18 @@ +import esbuild from "esbuild"; +import { esBuildContext } from "./esbuild-build"; + +(async () => { + await server(); +})().catch((error) => { + console.error("Unhandled error:", error); + process.exit(1); +}); + +export async function server() { + const _context = await esbuild.context(esBuildContext); + const { port } = await _context.serve({ + servedir: "static", + port: 8080, + }); + console.log(`http://localhost:${port}`); +} diff --git a/index.ts b/build/index.ts similarity index 100% rename from index.ts rename to build/index.ts diff --git a/package.json b/package.json index 05fe2ab3..b8ee457d 100644 --- a/package.json +++ b/package.json @@ -2,16 +2,19 @@ "name": "ts-template", "version": "1.0.0", "description": "Template repository with TypeScript support.", - "main": "index.ts", + "main": "build/index.ts", "author": "Ubiquity DAO", "license": "MIT", "engines": { - "node": ">=v20.3.0" + "node": ">=20.10.0" }, "scripts": { + "start": "tsx build/esbuild-server.ts", + "build": "tsx build/esbuild-build.ts", "format": "run-s format:prettier format:lint", "format:lint": "eslint --fix .", - "format:prettier": "prettier --write ." + "format:prettier": "prettier --write .", + "prepare": "husky install" }, "keywords": [ "typescript", @@ -24,20 +27,30 @@ "dotenv": "^16.3.1" }, "devDependencies": { - "@commitlint/cli": "^17.6.6", - "@commitlint/config-conventional": "^17.6.6", - "@types/node": "^20.3.2", - "@typescript-eslint/eslint-plugin": "^5.60.1", - "@typescript-eslint/parser": "^5.60.1", - "eslint": "^8.43.0", + "@commitlint/cli": "^18.4.3", + "@commitlint/config-conventional": "^18.4.3", + "@types/node": "^20.10.0", + "@typescript-eslint/eslint-plugin": "^6.13.1", + "@typescript-eslint/parser": "^6.13.1", + "esbuild": "^0.19.8", + "eslint": "^8.54.0", "husky": "^8.0.3", + "knip": "^3.3.0", "lint-staged": "^15.1.0", "npm-run-all": "^4.1.5", - "prettier": "^2.8.8", - "tsx": "^3.12.7", - "typescript": "^5.1.0" + "prettier": "^3.1.0", + "tsx": "^4.6.0", + "typescript": "^5.3.2" }, "lint-staged": { - "*.ts": "yarn format" + "*.ts": [ + "yarn format:prettier --write", + "yarn format:lint --fix" + ] + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] } -} \ No newline at end of file +} diff --git a/static/fonts/ubiquity-nova-standard.eot b/static/fonts/ubiquity-nova-standard.eot new file mode 100644 index 0000000000000000000000000000000000000000..1e46099c15e2689320d5364ce9efe044a746c4d2 GIT binary patch literal 56807 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

+B!4@fPXK=MbH20b9;y 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 literal 0 HcmV?d00001 diff --git a/static/fonts/ubiquity-nova-standard.ttf b/static/fonts/ubiquity-nova-standard.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d95348697ee4708a002df1f2d5f7651779a32347 GIT binary patch literal 187128 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�o)%n5Ro>)+X{RQp&#yU;IxEBgJqng`uq=ux+O zJU9OXo$K6rzb#f6iC7iBA^jfYyT({F-<=Xc8n|9S-?duHhE^JrNZ|`)+ zF}(X9plb=Bd|KPRNoaK*=1*lCU8$d#s5@?lCZvCP-- z>1PBjN*ZlQ)2G!U(kwjLrCPV);o@Gh;@L+L{VRAh2_;)eiv$|4;8R=}#aQkp5YRcN zwbwFd!OC+vz}c`fNdD=0@(>?7d;9jY^EXKvYWqLZH}YRPUunPNzyTJ*;O&wAN&AV<)84Ikx^BOn7HR)adgb-_T+15sJ?-D7 ze^o&7^b;EAR6ESnvhG*1M2~X^dFy1HFVOypg8Lq#McN-@oK!$~y6%4)EyB~gPHeWG zVeRYfT?_DBvqO(_|5q2~azFhZ1|A2#3_J(?7*O2qRD&pP_jY>T3OH{OuU5LNowF26 zB2~8+7F?8``;~X={^ndT)9~+C7a;rqKll{z1n@NQJn$31@bBdZG5os*{>=#hIl_GI zjFFvC7qbC>#&G4TvkjYex7!k1YuK||`)66Rx`6Oey=F&FJS%HSL2%3ZOhEXqw3j+} z#i#&D``n2+>wd+jJ)F>d8awMdSYtB|H5&h2^&mA5>ctc>K~RYIg+tC zWH_EdF1L zmi+#Qt^ZThU+dC8E@~IqdI)|e>sC0vw7*xZu1nhSXmD<`KIgVu0sWlhrq=ZqkLY@f zan>&bmg{VOXI?LH1v{)Hi^k^lLH1?G0JHCkqnXFi%;TsMafC@6%{-1~9!E2eqnXFi z%q97sE+P_E8IWse(IuAr+KR^O-$$Y%G%J$kek_hw9Hasnd%+-1(G+P!y>3RWYDT?o zM!jxEy>3RmZU!6!-2$J^Y`#lwJX#aFPN+Jjok_6)ekZKqXAQE%so4@qDMyc71?iiMB4xY~MVzr?Y-TUv^58wWrVSsN2vpzE-X!VS861|McjC ziFUgyvaVe+x0i?O<1?uv=Sb%E`r6jDsoT$$OO?ER-8CKgv)b*dwfj5lN2;pH<9>2{ z{#F4#i)_&Ne8l>e!RI;2dG58}VQ*0~K;yZ{4Bh`OyHn}vx?StqFBRzI-}H3yLj2bK ze&XrmG8Q_yHSFo+dOWR@FYR}i{og#DT=&yD`OBV8uE#rK{gbDYXVA$tJ!|@OpZ^Yf z?zmgO{0q+0$hHY5v%rQ!SDabk3^-`@>0RlATpRq1w}msnL|5 zbjL_S`APNvDF2=X>;?7%*8}eY?gk9yC!u^P2djOY2W1S2B^bnpFepnb#=t?0frA(W z2iZXlVhkL_7&wSAa1dkQAjZH!^pQaZTpS0G&5pYJX`LWv5#;<9Ak|uJc#jHX5szI)kQ9tuD%V#E>CVFP%gv93j32{9ELk^{<+Y+p1ZMe|kcu}Q7E*uW=$BpWw#9r9BvwO?s6O)&3>E5+d;g#sMy=p(XLE+UM z*1sxwBJD#O57E*^ui51F*X?)8DWBhtzAH5uMBn{eMsoYB+5={se^LGM#RYHu_B-LY zGS1TW!+tyZapJ^`s$sC*xqbmXAqbI+4Kjx^FK03fsNF#o0-;#-FZOgsGJAGe>s^KG zw8F_?Ut(60OqB^B3v34V09OJBfJ4Ahz%chwnENPO~A#27|m z3>%5z?o~|EZi_d++xi=+VRe6ZUvGdkfs}rEVE;s>NTRPtJDoaLe z8f|xa-SeOXbSkw#gib%H=(LdT#Gb|9V$Tvj0Nusl15#(A%DPq@Xk`FX79w;gJoj7#Ky&h%l*e&tO!6!ggh``_a*(Qk&wQd+bE| zr(3uFG@XA29-^L2@s>MTCE+2P6>o|0j`Ga%jvwQJU$I@@QSm^2uipJTng_C{e52-F zXw5SIS(*o`cG*+%x7t&FVoCqQ#uiZ6U+*cOE*eKv!_S(gk zr~BWA`s1F@NS%%@`)_nz1j$7$nP68T%jAmc9O7TvJ0teJFia*4lL^CQ!pvA0CKI-< z1P%a)fTO_uz{9}fz?XsNfFA?KzPJ1!#=aNEz9%jz#~{`Yvwf80YCRrzGD6&!>P5~u zabZUBg48!YIvIAAlpaZwo*WuKvqB5eQP{?`W@)x-PZ9Uyp%nr#xrH9QvK(o9*oz1huyjRz&J1moCjPD1mEJSnMLSkT!MXs^v%tZA}|2I zkynsn3Yf=1iSAs?F(=UZ#D zRI%CQ*R+ZDnEgi$8sb;d=hWvPmy$M%%iLruN1E;Mn(9bg*=rSFk-dUm*SqYXKDSfr zr~PIWpR;w{bG@$G<^^Z6N*A>cgEwk~CGFsi^n))RvG5`^cq911`I*8PcN|b4@Or~v ze?#FPryKP5+Yj3#MeT}@8XN4Q{=Ao*j<7c>@PE8o?U{%Yrv0F8splz!-_y?X9EQgU zU*~)7tJ^i7{)?h^;nRAYL)LrMIJl=d4f^@5|E>COQ{(vUcUm7VY8M$xKc43f3yqlj z8XpR$)Vh~;UE^Bn_sI$PW0HeRdrA8>uI1ER&gC5KS#er<5yUl8;=iQ!mSmLEbwUa= z^A>q~o3J~dKzx2IbRSSMM$Z4-<7*M;4bQ3|n>sJtyda6e{MnBdRrI?)HYO$gvavg# zogE)PE6@C>dN|IfnK#L`Drag>>3QZH<1yz>(_ZS_zK^d@(*H2B$Zx;R8|PN*Hw)U` z@k^aUmllrm2537FFb(sYMp>9fS(rvyn6|D24giOM zqk!3wOryU{qgcBfwq2xiVRAd4p&I$!Ej_x8{4OX@>+eu}e_T;$9PvlP+ZH)*weyC; zN%a-ZK)ip8YXv^7P&tjdDOdidxM2$IBE?=K1@`yCHByjw3i+Qx z{-==tDdc|&`JZx+4VNFp92=&X#T3F%pWtNNx<(mpp5f*hZjPTRuou`5To1epxEpu? z_!RI2@HFr|@DsqCSuQ__xp{`0b4$@XTniXc;fS39$F+kmu5je3B3`KoRqE)tIob>^ zSMtaxDBtlaAGv3r%T+)!+RFRALP#E6f5)TWck})}T|ey6>5=PP`kj+HT3-JlZD|1O(tmG^#m@B4$+KUf<$=e_;BANbz~vflSR--&GF<_gu7FHeK&C4o(-n{@ zN733Iu>x&l1rK?QjdZ!<(2{q^vNov6=w@8S(_(v;Otb$Tb_2o3pLa!I}2#d9k^v z^n82!j+;KTErKuX*i41N<$xZ~TM&{)eqUD(Zh5bK6_YUHL*{<2O6~&{onKb1D}wMakyIr7ZEo)FCe7ClL@mk!8o52c1sh={jlc zq*Xk!5?o7LFQ4*vAD?|GCFF;pv|%W17)l!k%ZH(~VJK}FN*jjKhM_dEfni#`kBf%@ zU&tqfpb`ZH)g}$6OndITTpBf?$V<~~#gu{nm*|QqdEhJ5A>c8q(_D#v+@p|>VE|n) zfG$?23kJ{y1L%SQbin|+U;te(fG!w7m&*XUU;tf;OG$F~luMo|$P*PnlV=L@OwlU^ zd8Q!G6y%wLJX4To3i3=ro+$=AxjQJrdog)t2=3K23C$VSi;HXp&5glR*0U=#8W0$? zq`ciZi>urDc>Epk{@v{UmeP;NXu*4tSw{@s&q-}Vul)||`$|S@x)K?!``=}KLCI*^ zoht&Am_+&ty$SvPHaJ@<{S+NBo}ypz<&^jv{rfwtf0uDjd>0x0V!`kA_sHn)Y8kEW z8=z>E8Q=Z=U3Rj7PV;hKc5fTZ`0#_bX&J45pVhxdI=jC=f-dnJ9-WJfm*+x8A5b#- zZ6c%fJBy5#??gub4=tnLre(AqyMPV@V~P4JQs zK8af$>IReLMEN@}&`^eVk?@rPuGTBQB7Q^xEsLqsPG^ZW%>tW&J;0T~0pJjD6fhj3 z91c;guv|uv40-MFpmkh#BI^^}aX<+?X-V^~d~W4aV!*d~lDk9L2*Dkmpe_>SG3gO2 z=uvcXu&IoL0#AQ1pu$>Ve=NQZEjwag1toyvPJnyXgyt6#-EYCa3^Um_T zvpnxC&pXTW&hosoJnyVxK%I+O%Zg&=BU!H{%RoT^G*KZsb+MwL-LR;5CK-B`Fr&u3 z>oO<-`J0?bAJx%zMB8I~N6$JxY){)YNPJZzZE@AP(Zww4vh-SAI!)^f@$U8gA9pnZ zm!1PRiB4}D+k#D^bZALp)I;h_Ukw>oP>mpuLY+= zkg)h#9AkH=$9TjVgFJmVlA?qP#unu7+>5AjNQiGp6W_?M#@V8Tm9@E4a9WlA#6{v! zEGve4^g)+>OkE#z*#}+rL6?2dWgm3e2VM3-mspAPexMJ!6z?SMeRlF-vXd0o^p6zd zi;ooR(>upnPhNC0lA8#rGsM3vI76H+>Djn1bCN=wZT%%Z>c9}xHgZYh{9)_&T%7mX zk07sv2DCkMasNA)_9w1V`3u|MRQ|%d_?^!GG={yinQS7r=xibqhamDmdqkopaxJd? z@+m$j5_uqXZOIRAT4Q{QX}6LO1&g9!Q4}nSf<;lVC<+!u!J;Tw z6a|YUg*^)S{aic@$SJoZ%;<2j`Lu#0#U*8l0_i7w_e?$~uMYa*59c;*Iz@%hcc#xd zCw=^d#q8R{uNM`s6?_mp(msvwT4#mfwck;AhXGdO9qpp$h(Q+p=1qKf?XsskY<;k( zzut=-EovA1m2u?0aCCnhZ~Q}|KY8t957zg+Z9na1k0v!vQ`Ut2oLItjHQ)s{_p2aq zkptp?nC42Iz_!9uTVchmu;Nx&aVxC2)w&Wm02~620`~(C1CIk=2A%_c444zxE`>4IZ!@rglRz>@0bM35cV0#?QLLt8>YTCOr33*I@>UHwqfdQ!_?X4nmU&s#F#pD!XTLrNs+1) zDRCbhLG=;c2$r#uiw2+z7z4Hd`+%!}8-T;WJ-}l3!A085$&PAYx#H`H@F>p~7t$XSs#-U_Cq)IuPF~(NSEwnUh+)h4}97wV)^2YiT;T%X-Y)Yprl( z&!*dtSij-X!G&fICF9E;>?XAbQ};RXHKAMc{XKl|(#xT*d3!9ruUB*`Wog{;@3JWe z;68sKtG_=Xdnot*?=X8P-oxzigwEaXpM6Af-@AobKp5On^MZZ6P@%PNn=0)FMu=slv+T8&i@2Jjw z&3#k6_m9lHYn#@&X1%0c_%VMAKmIj7)H+JL@K;?7%*8}eY?gosKGR|_0DCimaE zqVc*m$F^;!I@(O-p4OkSY_4;8|F+tu%2e2n)U0Wa{-2kA<}$kIhxi=W|Ag)vw_euS z6U5V6vL}dw*g!xe^}JCRC6|JDSWCr3Q7ap)RSLBvR#&nig!ydYQ;u%^tO%wQhksyi ze6D<4^MmJ%_G(J8DwBy6W`|z6y*N9cdG>z7fq6vHctw40ReEp}=L`MA_n3;iIll<+rcJrubHX>dMR)DOTD)OVGkI+I58fK~*8|$m<9#R)rSJ;BUHmZk zTk$1{+|xOsk5Z50R5_vjsq?iXlM_0ps^@awG430IPbQp$T$bAJ#a8XmS1YLuMTFZP)J;c9a5L&5cd<;OCiE4>1bdny%)nh#q}mAs=8Aq zY_Y7sdBFD-Fv#pj1M5^>awaLKAHRCB!GVJE%wKR1({sjDKVfP$yJzNtXGQ~b-scu? z29LhP`d5m+X4d}*4TA4od^{@pooWwaS8i1L-CE*?sZ$Ld?4^gu=W(S!twlZ` z8~!HW+o~qC(1)u1%OWbv*0Rgv8-#Qe>CYv{d1+)C3hwk%&q7qR)b6AXu@YR#&Ltj$8nI%4< zt2ev+MDekM@D|}?=c{+vkpBUEfcS3b{Q-FcTJ^i}BBLfQ`@PD}qWcR!oRR*jr^H{2 z_O0WuYiVC??H66Fj3%Lz!uV^yE?rUlwRv~-W+iN*-1uwvYL(Zv+FZf$P2@FfKDg@A z+$ERfF12H$1YJL$oywBouxV8Ab_`of)7z39DtKLNq-HQsycD^piftU0HZd{ih^#g3f)cSQ}qf(qa9J8H6J092IVK>>Oc`rk4WKbd`H9**x{WPHHs`~EYO)_(olFfRH)b} zJDo2a!7+gKb~i;8vmDl2rg3 zoSXxlnWiK!sh*9iT+0XI!68oC&@7mW2`xn~R3fslkL639j?Mv_bUhB_` z?yGztIM7s2!?)_(Qq|0ka0s8WALY~#9XST1!2vf@4JlT&-B(V`66$}6lidvL0j>lN z0Ed91fLb^)5j+IQK?nO!Rq-90>VqK8F+f>`WEa{9bOYnS9B>|RHE<(v1o!|T4l}aB zlY9+=1Z$L%Q^_|{kWR|v!X(rck!z+%-JplRMwjs=iqU2Kh9Zelh|psA?sYd+y=SA$ z?yaxTl1~<1-`|tj9f@*~P~8^+84w+t@plZA{U` ziLVRI6@2f}#@Bt@ScS2T$?v`KZ9K)?=L~4u*gYr2Hs(I>&7N({rBSiXx!@5Tj<7O=Sk?hBluDCeOPNHmhoi-y=M3P9ph0W^!J^XtmZ~!<290iO_ z*^ErttdxNiBk%Hfe344hBRWb?fzndsi|RYD$fG;ViXh%=;elF>i;ng%=`>eT^!`!a z5B;YCMLmn)$ilp{2#zd*Ba7hROVM{e%7yeqK8h1d7BP}VjATihL0H>WT-ZhvnsHHk zh96L3^rD$EzMtVoGyG_VAI(@L5-7Kliw2+z7z4Hd`+!mg68D^(OJ_NxNe;5hp_b)P z%W|k?In=ToYFQ4oEQeY~P`Fmha;RlF?z-58b-+n33AaX> z{wE!smrkZ;hvL+&Pi^dXX{Ucvx^?BsSbAgc=$@(8Ieb&5v~S9e`tHd@Vye5ozI!T> znC!0qYTI;wQ!F~zk!b2k*VU$bnq6Xw_M~fS(mm0|UaKvMjhU8~%*I4wRz7DH{p3z; zaYD+jeu<(JiPaU^Ao}?=hTaYfWszM=+9zq>M0>)ylS|dA`=hsy+W#v1C^iIsyQ)EN z#`#k<&Sk2<+s-(bN`G3Hv>*1{(evXcW>hWvjn3~ZKx<{913`l`qBpCnF+-Q&)Gs=t zvXFY4_Kp!r(}co@z!TvitfCR<2F8Io;5^`J;6~sG@Bu({rd~ch51T=l#2`#!5CRy4 z0}P^g4#Fe`VG@Hdi9wizBp=~z@8jYjKorj@^Bmg4X4YdDCbrd=LPi7h&u5D~Y$k=F zOll9CwP=~Y0*RX^A>Ia;cu%X6kjyfAl+q58jCQ7(p2Gfy$|P=#c(ESq0!QY+gh_-U- zkm+yEB$%l{g#1sm%i&W4-O6MBTQ`_*n0{+`8WSSRz)x zrn!AhLw9UVu4(YBzP9!0Xnk9vtzLcqu4uNap}Z~{8gA|$jzwGRs#`LBO&Mj4^tM^7`O)zH;s%sMH-ewlfvbsFobNnSm zKdZ0{wmSR4$Ztq}>@rkJc~6O&2tK7hC0Rv1f6H!PKC8X=FLJ9ng~ym!9m&<8Mi=KT z%9rxu;`0^)#NSP9u#(PJ5@bkjT{$?T+=+HoZUko=!P%dwto^sx%*>LdShWDheGZsa344Jc8 zZ8Nk!qHKnjE8Sofyi4X1-qj(zi`G-O%iJqpFzG2gZC?4^!qbfH(X~~+UX7#M#a6}N zVyn7BkMH+CY`sUmk?%!EQsZb_)g49cVyn{Q9J*%FIHo=5ycgdBe;n}z)BSG~6Q|<6 zo1Hq&54!D}7T712p&+c#bvTOplPK^H(15Xr?a4RRJ zR_b&K7c?S4UbhO|r~)^tz>O+!qYB)p0ynC_jVf@X3fvGWz?9t2#lwK8+ja0;8O?Qd zU5pV+(r(mAb`JY}i;<$P+2L4TnMqoQ`igKO9qO&uMv<1@`EdRQcg=-=iM>#8L2MhJ zR`x=@<|+YS;Zzb%Dp;mQ zqJKG#0spA?cs83q_~Vsoe82rLIW3m9Yrgq>QM>R>e$RUy!skk8BET8X^J3#cE=&7C z3ulC)_EP8YTlm^*m)s1}ztp+)y25sM9Bf6BI)nb33ngh}&~1ds}fyvxVHuW4TvtrcKwmI5PvPoP+A!TX-}aYzaud-a;cN z-vw)ym_DyMuqIK{9UYInp?Xi(>|nDPL9_eTwZ$fPrBn0q=G{Z@xp%4YvuU`zp?vL{ zL~Xh|(Y}4pr6XgP%qBZGoIf&r{)W!(^w8Oz>++kUL+d-*X9lAZ&D^nmD5}<9+iE_9 z3tgvu0a3WDz2tLAu>LDp{}q_KOIR7vEYr^ zBk=ABygLH#mTY%=g*7Hn7Qr~sh|bu?J;c2x>6sOZ(ry*`)tI&Q?F|0W(=kzntx~n3 zE6tUzq|EaMS=ca;1V(|gfW5$e;CkR)z}#pqm-#O5occF zX4yoQ2J7nU?eU>=qPbjTPbR%%ytQ?F$HtC{uDZIeiH`mqwY59S`?~Wd0%xBfV7h(g z;>pR2H?(hT9>UnYX{fnB_DpO*(|Hi09&!Fn&UH9H8UoX=RrIghAA|n+TlCO34HdLY z|HIaYiu!++_FI{hu_fdDn>Ws(w-=7{5#+&bSDU*k{0b5u{ziJ6T8okZU+w3`qE?L_ zz+POR;=H=O_(%D{qrj8ESAiFRmjQE%v-}{U2MEIXwH6K5_+>6l`XFCFHGZvrLt)sr z;wonE1S*OHS1Fq@*@($j3DrnfSbTNa=wGW!WXGV$N_A94>aH3u8;WtiaLX>%geh9L z{d-Gv%bHC7xuJdEOTC>4-{a3LQ7vz{!Ab1Szu@DHIwO3y^_P;te$pF1W8Mo5>Fw7G#l1P1c%YR8i}sAR0YT{HF6~9RZ)#Zp9p+jiV|Ot@kj~IH4HDlSEBuwBFP2W zrRsZ7*#%_pU%{1VuI<64H4=aOE8EVqFR?$I|AO6<|FS)p|IJT+Qjlu)zS&RC+FumZ zlK0ckulSe!7U4&BUbW}YcaA#?yxAM*DEiBH)LO|ocUtp1yIJus6f?&0+wZjg(QW79 zQ{?GQQx|+vva%<62OS5CBRKz?)8$`$c3#TNA+wZ`^EBgNB}ayg@rX6f0#AG5)WpFS zEwC>=i>&k+*~w?Ll|G9Q{S~m%zZP+@8PM|=76+^S|Gk=u=PWVHk6*T>tAEF}YjfAN zuWQ^r*groWkB`sy51tcV-+uX~lbPfPa#u{Pzj|BGx}o-t-q^&>bZX~Bysy1IJ!MSs zi*Ww1kMmx;(2i_cpdEZQgwL&m&-E$Vxs%L(BDLT6B25s2R4ey-=I564Dxy}h}y_$NkOe&mcPe)LAek6u=DDtzimqksK_np1*5nQPrH zd|QG+;rHijy~*!?Cr5Cy28I2#j5}P^F8lFYkv2>F%Noo0!XLj>_&nZy552DNz8~@0 zZ#$cIW;BPsCi0`je!I4z>yuF8Ie0X~AAiv`vL#JNrDtd~`vD&Ppv#dsM8VT77$U(Mb>RgHHiZ08azY13v+jS{mdc3?zY3;4EM- zupcnNpG~a2_%jvexht%k=qYlJ(=h&Ny>MuM%7py=*^c8U|-iJSn(e@V)!{ zLr-eGOO0#vF8RH8U%S%B)qvKk4zWn?_ebDcqF3qn@M*&R{tm0~eGuzl|CbeQyxG$Q zvQ#8YSYphPdeZl+`-zT_b!0E2+Ygh^PWWPq{M=cp1-R|+C*IrDDYA;@b$^$S$~c#* z@qcac_>6NYx`y~2GXnF(_cFffuixYUQ_or0E;OviQR5qae2`Wt@%B}Tx&qGuiLG+I zO9P6B$_8ioI*7t$Uv(WspS+Bxr{8c&6|t7L)O=ZdJ|&C#tFDAdaS1o7s<0BG{r&u> z=5x7udv1Q~*7^LWUV6#?Q2GM?OXsh!r!N-wLctAWmevCgbLJ|1@vQ~zGN=5lWM8RT z<8g4c2|i5>)VTD18{aa{iNB@2O|7N0z^DIqNVR{Szy3_&if%vjdENd4+Fw@V9R5M! zIP5{}Rmwhk>-P)VC6S=@2MUMuICo6wasHbAJ&xKx|FzejnT!z|^^ZI~8P4@-xSZ06 znWNS?BnGh1=!|M|9#ikJNyGC_v23R}e)**pmqk>2yslu=irwS`OLnWP=9lbHWz)*! zvW8z_E~_2kUwV#@d_~Q%^3(XVBm7Rc-_`t}!jW0xjQ&XRM`;(?Ii>j{bh?h-N$c&} z7gv42TS zkvQh}Qy-B%B703U4*m5w2h}*HU5z8VLNyNYF+aeLspDe=!%clccgI&4A5&DH(8miu z#8To!+$w~H^$AOtsZTgcluVtePe^3PzWGZou~+9G*!QE1ZT)|vTSgzB{YJ*TztgYg z>!2M_^L3*;FQ)xYq^DrLX=fh$&HF#0-oLQFtSf&rk4LQE=T|CTL-lX4ULu4O&M5T; z8;62McpAUK_qsKDM^SvA z;gsyPbck6McQ$Fb#2oqROhd*T=@%;G2t*}k7e^L-wJ1T)$f8PxZ|=`UJJ*bKWT*2B z^SkYt9ns9}WAXO!aC~j1(*CpjIZh&fp?&Z1$NM+*)fw5eU*YOaYK{-uYdl%GU-3oV zemj}Nm8^tD3i}_%p5eF4xrpw6tMynxyU1MKeuyl2et*CHz1BY$w2Pjq``?C>n%`e= zLAM{lw`d5qD6(}wGPemT8MJ?0SBjGQg;FU>XX_EK=+)x3;U<-0{}O;ylemS>;L*Va zxgYp_aVn~yc8>GYPrY`P45f0WU&%1z;b9Tl8LOm!OxZ8{_5OmBcVm_GF||ly`v;kz zE`-pG@~bT5XISe{UO`vU)F^rCiiH6kPNCu{>|9?iR=csccc3eG)lARUSk1=X{&aWl zs`Uf8Y_z56MCv`+6XB6)DmM}>udQjCOulKu^wrz@YS%<2l5bX*v+>Ctsr1fh{=VjC zE}62=uc(Yq>=gc^aRS_OHZQ^HIl&bVhwiXz72ntW|ITZ_%X;y|$IUpuqw3oV&WUyM z32+X6ZhzFef$z%%_lmyf%&zPP#qZR(fh}fS|Mz#1+s(u2z*Pm`e-08CKKJKJ{}q37 zpVs8}&>G+0Vb@~=)Mt6OIG2IB6ZYpNc0&Bf#9G(JRdLP1pCxGF7&^u;wcOy(p~T?H z=wkupAq{h<)XnH~RW$#bUh6RPBjsrpIOgqsNc)TID(Ggsxhgp}rfEm2*kOL0it zL`P&ztxHwWY;Hj4DLRrX@7sR$w9wP|U}bWRTMDpqrY@H2k!D3(Vse6{QmGx2s$PfS z^DQDPoE=N(YH@oZkH5u%u1xm0OHLQVWn`CP;b7$|k0wD4()5Q8GZhN|)#MA`)B~Vceo!&hPql7O~nQ zcD;zzib36H#tUfmrI^M9*`!7+dnX=L(2gtvvRUKmOtb%qOUjvAJ&SU#xitXeb+(R3 z@Tvd?WBb=r<|Uat>x#AO_s5itLd^Z?{BM;fhsIh`+XUUVrPf~2aQS%FMY`<*(BNc)Rgr?kES7c8~j>FSiG{Z8v(VLN_)FTz3$B*Jh8J*T8?T7t#wNIO2oFQx0IlO@Jd^NsM!g)8M zP-_d?1Z|QTTX{hJ;!hYltO+?`kXV8!Mq5e9r;hNKuS9esosIw>0Kk4B6-l<4LA+#; zEg2#RGDHw$tSf;7z#-r$U`QoH1Oc@haA{i0WXRpg@&*B(<*7D(qPX-GC@v<$TM=VE z#bL#?j4`bbE7t#N99B$2a%UD&@Q5V|=+dH;iF0w9BX9EC$r`NWq5U|E~zY%!$I{`hUtW zjIcOq{XgTCjKxZMBtQ1Hw>@b8@t+{-NR(`q{+BbmvvVLvArVB*Ht& zGvjm2M)p;-t9O)lml5RMA5!|F_~vyO-j!Fp>o+tHRPAE#3bKn@+%9`EJ829IU$uiKA^=aOol6Fl?U@31Y;Z~1-By;j2BEcGW{{OjOK zux>%JBcOZ<-{^o}gz#6cX6Gc~r%GDa;-^&W`YF}2L#V~)trnlRT72GW@p-Go=dBi_ zR4oFt7J*p{)2@YS*W#yCi=R?0eoD3YDb>1uO3M!-eo8SOqRW$##v$$$cvzH1%~vtc zJk5*Pn4(H}OS-js4EnOQr@)Fhs#7*4%Y}F)m$tVT}(nK3RxIf-gxp?Fr>wqsNhR@gFMN*l(%+2klJ??@T-W53|U^Klz^L*X?2h z)BSISLkXTP9p{ksMb$2TPtE4No>Ai*RO9&V5-TF(7q)A@eS1;6@NN3>wui3K_U|Ne zy>JM>rzzo zQddPUWm-$&IHhnL$@VF!z{H(g%;lwUoKiSWDH`9SvPjI1oC`|q#TrhA%H4|hr&%FG z&XgMEEhNay4>PM`_%gn#!?%L;4j$zP3$E>!=9-#jfiE=G)HXF?v~w=hpYGpHJn_#m zf5}YvqaU6BUFMGo{2AuG_;+?0>s4x{WSV&~C_TOp;Snd1p>9c|KR2bR-jG z5{qUg{N=NEW-i%snbUX8HS#3-S$gboM>LYZ)hj6!AS>b8oL8EvN8*kw^^cfU_WEKF zFp;15s!ML}73P-W#8OTQ%9%Ll1m%odjy0kj2ZC}O2+DCFD93@IoRgq(w7YVAbj!)S zR?ay}IabMXBxN~X2<3Pol)GLC%MW6_5Ok#!@j|G9!Q+-(*Dj%nDjI1dQ(O9#rdUJ$ zn%d_6!E{qB99CCOPqZ!C-9MQ#A9^mP>}#DjFnbluqHSI&Jy^{NFJDZh)9#$T+I|uH z5^_aXs_|B-brE{9l_|`GrH+Q}OIj|-W-n;%Y}nl2cUHL5`L*s;syh}>CfZ_Zjmn%} z>q@x%YKxhc=p{jDwIvQfZvmIy0?G#1O~W`a2b>374crJE0X_hTACr(kg|lQ|{rkD60a*{D*WIjGF;T1PYMQWE~F>W@<5@v`pms-}+G+K#5G@$SZWys@FJ z&1oI)rXdvKi|+AcdqZPeTVq4J!UgNZjP*akgoxdfNt=KZOeM6<^XjLcFVws%fgj`bo%1iCO{;FFlJ-~{u7^sd)C-Z z3xeKYwAp7?fKwG9b_IxC0b*Bx*cBjl1&Cb%Vpo9J6(Dv6h+P3TgU&O$tK2!0=e--qD$A^3d=ejkG0hv4@i_ubYi zqsH{g{IZUoER{8LS8;_}yA>>ulBNFI$(ofYS(*utW`dVpmJw;niXlw(nCr+J`oIbC z=DclzmQ`Sfv6}|ri7M~8PbGo z3cLWk448yD%X*y<$CKLM@Yvk6#|>iN?cm3AS9*5UH(;-PV0peWYrz-nJW2 zcnqI$b|CU@VVIN3!X2(GlzgFo5RgoocZxV!MR)Vg6}+=x(2Tru1@BzJJ6G_|6})o= z?_9w@>TslVs>d!70_LkC-`$TGG1|PJr(v-+|0s_qThUB4 zhY{8D_CxuPI3L=2{NoJi-j^Pw`1}|;JH>d~PmQtcjBN+vWp?>~yCVOYC+$0(4;{b4 znazt%_VXH-c{20BJn6irs7FqNnkRxu&G$E{zbAN(fR$mN`=oO}S7EEy-XUC*X6zVA z@VbmS6wlotW_zREoW8;Tw9dvvm3YMJ_e7dGBlB0%KN1t|P-{-`1hkF@)>Qc+oK_|t z_r#1b#B6?A^|C;AwA6rCK~{T=CtY`Olb-G|yrZ|?v^SmJd(&3;bL{-}?d|K&9~--1 zeOuf53+(jPt@+1>FS>c_)|)RHc0adv&s{z-@%k;@-CJHiF>(1^w^?8757qikdh5MK z{XNaXsvP`6M_}`M7n{u#`g2-H9cou$@&RMomM~W+OG)r}AkYq$J3Zh0<|PWvo!R3H zg5@rreNEk$$N+ z;Ou$>UTgsm$_>#T3>Pqaty9dKk;lxN4kQ3Uc~G3OiQbG?JIVY_XA?BB>-fjjtaHR9fPxvVqXM)JwXtVlkYRqAH&pt|@-O_E88+rRZa`%U@&=by9x zG5@>v-u#c4mGYl%-74!7<315}U;JA5TlnqO>TfJEOaffi`4P|2NYA8QBRLC*)KdJR z(QsSMDI#itM5&UzG2%H_aYoU;GD1{W=8U6d#nH0jU{4$^D~^^GN6U(%WyR4y;%HfM z_sB5L!A6{I7>mUS9XyM0l5TJHO#Z=>t=^-=A<8UvJmt=(WFd^wCRQH#MqW)E0K{+< z<+BqVBt9|_kPXG?NTyClX9w$QhKbb8W;<)^!_}pw_SIY7y0f=;=Uca&z2&XDdV6=h zb;~!ezvi0jkAMH|*IxVfnH4>oFCHJec(!-N#*Hg_XD=Qbzj$-ciWz(R&a2AuHSKZD4_tsWl#FV-h)eMmCx5KpJpCS0&KtCa-S^C1UOQb(hlPnnk@ z3xYo{#x>DzFhO2^gU>G{m`{vWLZjjeDJg?0ASjuudNoH0or8k;knm+?_$6Z5zT)=Z zIs5Y0oqg$L=iGMtJ6FB$t#&B?AA7D`MJ!)`+5U6w%KQ)C{+`wEWMsiZkyrh8y(CNP zQ?d$W11CN4WwvOM#J*C)SYJt1XrbbuF!Iw*epk!*x`2b&V(OkfhH_P_b~1XG=~vM! zqRyho-(ERp?v-O^mx+mmtp*UXje%fFe@%vf|z22(Z%e-wEX>sy{^0oca6pm{UAP_j>gtrFg10-+E_HbHvWUH zU578*a^t?i!F@Mw89aMawsz~*l|38Cp?cX|Z|~e?U zrrxH+@bkiAtxC8K5(&sovZN~q32MFbM;9;#YytKGR{=Kwhk<(lRU}W_59MFZvy6w` zh(6XDU9q@$urs-`c6BOK+PF8H+A$s@Jwtl%oanZ2c-5->w-!|iUga^VAwFo>&*P6VUR8!5iu1S{EguXo@G4T4%aQ*ji6AcM5;(w0!x}A`LAC zHNnQEVO%@vaO@(|j`tg98QG?3rC;_l0X8uKtR4ZZ9s#T#0jwSYtR4ZZ9s#T#Vt9qs z%I4=`KybE`F_gcJDE&H3ltG0C{%imh8bE~xP@w@-XaE%&K!pZSp#fCD_NU%!wN

eJmE~9t?-G1Ff;qZGGc=n|?diw|O#_YN^^-8SQIn?rRCvP&4}YZ#uV3oRf_- z^l$9x$R@%iPJPeX-tJ9WairP3Z^0vOUX=2AdG~{5KSAbdn!IT-@h+Dm5#57 z47AtgBB>2skGyOCp4+bPk6(QCb%UK3UipU18k$YR%hK?&G`uVgFH6JA((tl0yi8o4z>E91cnA=;Gx2^- ztM^~cIZv$_QTv0^^+9eW+5ZgkugRWuFH4M6j zLDw+o8U|f)no;WUnbul2hxlX!LAx`o&t#yiZNUUs>5R%ci#1Trf7Uv7eC+&n@f~YB z20+W+b$iJoyEQ#D-ZHp$X6;~0YWZwczj$5CRJx@l#pYM?GrVX&XaAcuVmB_J4Qk9#SkMO+ z^nnF^U_l>P&<7UufdzeFK_6Jq2Nsyp)%S7n5Fl7k#k%(?EU1G2wL%&0o~$U4!e6-s zcv&g;5>#Bpr!WMpVyv8a=7KyQ z@$OBz3@^oUrXYh93@-)4OTq9`FuW8DF9pL(!SGTVvG3>NVZcFMbREJ+_2xw<4|O%g z49cTY8pSt5%(-^?@b2-J=AOa2x`9Mvd~(;|hRfQL(^s?%cT&${xaAFRh>dnPY@f+q z)YjQ?U3pz%xTU2xTImF;qdiTn>3DTd`@q`OwbAOjmfBU*D{ETo69e&Bx}z72mi4;a z{w#Z#4jXRX2_Lfb3AP1oLF-z+SkRUQZCTKk1#MZ-mIZBD(3S;lSf*J(u;YPCXb=4@T635%pk1Js43BM%055^?Lg5tJ!wV9u=i2rDR=owd#}8fTkdNoFu1GuOsyzqP4l z>axwr-uX9e%74ecdCP%w2AYTG`ZrF6>vmN~({)v?6T63}uDfhc=Z5i~^Dnz*Ldqa? zrz2CHktwE9V&b-_8b*Kj!F(ku^PzwAY&*^Qu11Eaf4MO3jfe7Vmx-S&)k`kOW47 zvw*$8e&BlGUBKOdQFCgcdVJ3y4GCgA^DJbpqU+l=N8>Gl8aPHUJ`k{5rp}*=M)}A6 zq&`56lm8p1HaXGVJ&~++>~&6UVxl~I@y%Pdyz}C0_TqPL*>dy6*^LRZ&5c~Jq0{N_ z+;HCT@Oc|hRTLh+Xng}+rP6wnoNI_V(6{j$L!pmb{_IKRL^EGy%vTxnRmOakF<)iO zR~hqF#(b4AUuDb}wf?kPSjK#nF<`uX9kueo)leBBVdY0|c#rq9b7zWSr3G9|HY3 zZ`0@>0{ugve+cvsf&L-TKLq-RK>rZv9|HY}>jwSBmM^2}bC~-2a7{Z_+?r$p9#R@i zua1?cx77c~?mzg$U7wFtv^ADBtaN_Aq{QwUIlf@uo`0MD{9J2YNr~nOP6uldx4y;B z5!^2aWCv-3*ET#s*Eka&1Tmgb6CR$>gdQnztLQx*)*IWhzi!J_gYq5si&CeV4T7?$ zNd72A8mAc%D}EKatX~|`mQ!PvUy|*KgCf>Fb0uhis}f3${ChN)o6OYpbhfN^@nUs4 zy)v>h)tg%Vi1VTRXQzhC>zb-aqH8c^psPL8T>Jm#ap<+0N1-#>$5dLo#UG~(xh#7^ z@u~@VxMofld|WHa+v_t8eG+D?_0I${HSP}O@1NXtZ!FVMn`=sM?51?()qR&=&5q=j zn{U80>FY3AdzYM{X&$veNNpMERP}BoVD&Sq(nC+{OiXkbwzi6nD%g$4xw4F?C5+Ut zHg}MH$uPRpu;vr;1dRX{#?hUI(Vd3Torck!hS8md(Vd3Tord8PoVYP>W8S=(Ks29Y z`O_p0&;LJrZvrRTRTg~Lt?GU6uBxuCuC=??uCCsyySjRt-e&8bo|!C@WR@(Gkad!v zKqSc!*`kmHjl60IiGqeDkwhVYB$;FsMHWF&f)x|G=h>gz8hoT9?@I$}qOs?((evQEMXJ5_S3E%p%2W6j-u zS7?Z%XY%Rb;^|R}M z=!>U)p-iZKr87D{u(;XCLjiv$^Z`1r_&;Z*HK;SmRNVyk0{GYJx>eIc@gub{i**cM z`;kOOl4)qw(o$u14f%Jl(wSYu52}U7MxLM#4G<}#0g$M`7BQ}4N|2%_Qu@St$B#D7 zbr;UH-cdeC+5gq@LEA=zO%Q>>Di9V<52ZersQ~!dj1VR@X?d&gwdgsb$XE z(?aE3i*7`gZbX)DM3!zumTp9rZbTOH)#cQ!CK`P}7VsE@#aSy&RaRPMs?e?xM{5%D zv9RgN?dinQ{^`{{;X>c0bY@dN5SiLOyt*9l?e305+Y+mn%}-ylB{QBJ9f*btTe4%@ z#sbxpLffYj&;{9Z19~<6TC4T50#XwgM$k+n2n+$Uz&fxWI0PI9?gH)ybX>O35y1xg z81WwTFF8<9uZ-d=QIxPK+H4eUHi|YIMVpPH%|_8?qiC~HwArX8un*FB46r?=&T1MR z)>%#C@K$oF=&-VyN0bj#&bk*B=WGu%u#bmPRwRgeZ*L=W+IV~rR751&9H^(lXTe&0<9bX!dgZiSAE9|d+ z>_ShmCSKQ@_1Oc}dPI#avl@pR7^9B*7sG-OULokB%PWzy9lq8MUu%c2wZqri;cM;i zwRZSgJAADjzDC@j)-H4`pcoOlU@6)lDjd#G@XEm?*4T9M5$l29tvZy%T7aT|!5m1! zj~SEXt9YOpA=j666mSNurCXfx)h`-l_Ca8$as2k@yk@#}*U#5G}<35tu ze&hPa`ipzzdBU+-uKlFZMkeVzhhyv zdoFtMVs^{aV4d|uYRjdi)apdkQ@*=yU}9O}V;eT3uPS-yVjEk`0Gu(OPWpDnY?MPT z=)fZh1g$<(zFw49kHmg@yw)A}+_UG&M=!YRt_vQ0>WI}{{+6|uQ`XDnKPW#;m((6v zbH821NSHIw?HGw>{;VV2n!$F_8zg4r^f3}OArUo0dl3hS**iuTag=`N{7Z?K5Tlwb zsYXhWzj&I+iQTuqe&h0e8~d)Mq1Cf}~Pt?9j5 zu6W-4eQ_vwy(^$t9NLDawQ*=I zp-4ap*beLkt_5xZ?f~8j7+M=ghlnc{H)1x0m`p22V=CLW?VKnQzhnFqhQ_$R-(T1^ zoGcB68=FEyrDT3vp}#ObJsj(bjYJ|N(XNfIs5D|-(R^uq;@{=m*#6v9C^VJp7e;j6 zFJ?!xH!KJPl9OX^yUlJb+`u1n{v9YtT;4JAxW7IEH;^b-(KC)e&vl=^PDC?NosvUo zuK!Zi^*QId>w{I-=k;}0K*f2g=l{MuXQk@-@2a|gL&8GQZvwpc&-Hb=-~Fg0Q1ITr z1CcsBtM0U%v`HS{8;*b5b%gt+|A*9di5KI#>jUb#=t=WDC*%G)j#hcn`_=Q6Z^m4I zox1)ZbzRw-&Glbb*B>|6vHj`({6L-pUa9^(3oq{^?=9_q!*{B$e~jxR>N$UX{A%?a zej)Zb;gjb1;wWfvf4u6tJ~M@hKIyv5+h5n4tLlDj|JCDqyWB5&pwSDzub*#u)pI_@ zzn1GNchU7xu9Md%$p@0`D0IfnP9d{TsGFpYVU{C|{VMOyId}1spA zkL&ZAw@Xbr;q5wFV@34*7M?-9JuOYPz|~ve>Md~f7Pxu~T)hRZ-U3%|fvdN`)yYzU ztBWDHj@YQD=o4u%YDdc%v|Vd~CO8+xBScws5KoSd0EG1nEx}MUyuEe%TE~z9PiVv?xS?5hIX)kjqZXG3&_wu7& z=8#h8z&fxWI0PI9?gH)yWDaG%u+l>JLKXgQght0=Vgi>Pa&I_9mm+{XK?iP%cU^+f zbp%ciEmG6`15QfmK)07KDsbL9UVi736T7Fw;o|N>`T0GMF08LF5V-zF@zVOx(0VD3 z;qkrYZL_o6m>ZdkO1!-JPP{yMxA%dHZfb+R!Tkht)ybd^Np?%C!ca+=YDIaG1(Z*H zHkJ1Ih+o6;?HGB*8L@M~vs7)BA<3!>%MmHsuZC7y^pv~6XjQ}B`A((WCUly ztNED_Q*C5cS}B6JC@y(J!V~I zZ7P4lnp5!6@;j~kXt_LE{({h%2=uLob1O^M#kzJ-8*8U1L>t)MW@C37*xd$pw}IVl zV0RnX-3E5If!%FjcN^H<26jKC?wM3{VTk<_wBsn*QG79bB}g;Kok5-!% zY;>H#7#E@lE>Yy7D3*vQmWU{ph$xnbD3*vQmI%?6pW-y$ZdLG8t0K-3rYFYqNM?_n z0dB&1tiJrNm5Hv2=#7i#><^AEr|-OTU_Rd;%+C$HeCKHTwsR-;uB5}cNfpkMT)m{N zJDLp?Glk7_v5|1cj`q+{B%F(Mo;Q`BuZrWzE@X4tCL^E{>n{6%_}v0iuKp7L!( zxPQ;xOa_ea*uUEQ^k&a2ng8G5_fl8pgX-){8Ao-#0=2W;5}%KKNYf(8Ns&ld$Vp`c zHMGZ3jhFy&BO7WAKl6sQfZhL-^BXF8HPEFK@(c`}Qhz6Q+5UYc&fnaBr~4u7$y4g@aps{CkI(u_ zJxJp5k;~p>>r*wkFlLaaS~p!YR-)3x(`dHR8G6XXTp>?VZc)7pn81=X>Ge(`8~$o; zTTh~AB_v9Utsb&*~^z*@JRo zt}s5Y@`*~XWDmksRZFx?;jCW6Sp}~H6}&c{0cSyt!Ns}Ygvgpf8l>nIL>ECq*`>}X z7*e`Lwu4$|ueL@p{segpD%_+vdG|RxbLYnQ>=`(Be17k2c#rkXUAx*^t%+k-Tk+%5h^VbYWI$|1au%TBO{2oWbkpI+jH~6o*zB0Mg#JRe01V? zknOAsn!%gmUq;s3RVIF=1fyXTPPE;KoXy$KgnGE z9^ve%Sfxb`j?SbeITX}Y1N0c>O)%fA+7q5R((jTKBQG2 z(y9b}iHxcYoV{TVyAKpXA=-U=Ao zVhGz}h|xg!>0ruUwG=vraj-Vg=mWCA46p|51Fi#Z1?~jy1N5q4mlQufqK30pCpelh zPP(ty{>r_RbvN(Xb4%m&MX%Vh<5l~{$M?Nz2l>K@#PY><-f-La1+Uy%CM~f1w<|9_ zH-GxXVf-O1q!+r_%_{yCREzbKoFJiI5@XOH-x(e}5L*%P2PPY?gTG7mnn=?D(G8`v z>*)(7-pt?L2;2)8n^6FpkwmR)gOF3aq=qv(>t^<2%@GNPBq-TOScY_zvkMh_Zl!}> zuAygpO{lY$_^qN8Cqlj%`_SOhcqBHnYZQI^jgMI4@1NhXW8UiWgvYmyjP59gk!zaE z-?Pp?j!9*^$TgyyNY3Se>uov)&ciGXG9!{z*@nEQ&n1)j(Wy$hE`OU#pZ@N|z?qIa zSX^T~7!Wowpfg@10ZL42x`dc4@7jQoybaaqu=}>g^MNUdK{z%7sRdd3RVTVd^6UU=QMB!Z8+Gkt&j;Q=P zvAvK6WmIjO2PN2pqH|leELTy!tE3g9hPw|a(avb&RdS2b%B>5un5X0xHIKdcw4Rl+ z5VkE-GR4H#FND9*Aex8Sl^rT6%04}>XBhh=p57==lBlnN3WutZWK6`9v)LWngduFz zN6ewafz7hnrK3WMh06q(O_^6D1+kzT)zp@ZRe=H7^=$ft9}CPI_k4V8eX_s5uw$(J zPf~Q?AE!5Oo<1sk!HSjtHafL6li4~IwF>3G*s(k{x$;lW{$4Zt`+Lfks%uEZK~|xA zLD#QotGdLxiB<4HrVA!N30+gR7G;~l`=)GDZ({V=*p9zm*`iuq zw^U=5Sjcsy6dS*UAJVt~0uDF^HG>0A-oukn1{tcyS?L4{U_!0yzwY^_(e|!>Ed`xT z9UKp0l4~#P!MX@f603p}mn{@T_z}IO)m-UijeVq=~0SJq@o2yC1~vwN-r|=kFg=ah1E&ckvTG zufAg$WG2M#)&}l*$#Z2Dh${yTWk=7@5>XC@@dynm`ek&rdhV!)GEy1{SO@k4hk(Pt zUBLZ-5=Y+11Mda+CBaQJdI2d2J`HRGE&{FrZU&lkl3*tSjQrv$EZOz08HM6Wm_G@K zp#3N>*CFpSEP|8dnh=JbsM7l;<-%l@L)@twAhgwZy!~7hZ1{ zlBo;HRI;C#1@X4xJEdnwT$8Mx#1klP+Japgqya&Otf`^3 zt*t4V>FcO#isp(je=6LKk9~6L(yc?H-@{6+e)_dr7DCJ2QkrAXH*|aX9NvEFU2XEtn5f*%yNPxoE>=-_9c?Gj=K)H z`W4;@xz$m55Ov-y2W+=hs#zqnmJ*n9mvyW)?uS5azipV}WOkta3&NN4UG3xY@} z5?gbkKT>)l{>TzGrW5>;J>8)|Ph-qFcV?sf>l?q*oanb=A6@kHWVcNJTlwH0;*Pv_ z>$!gGpiQsb^@?7d?|dgdLHv<#kukft&fIk{$R`<}@khcxSjr#ck95XT6K{07P%1}$ zt5GS8(!m|tIZ)$|^it{;LXUgio5(1CWMjvdo;mpR#?uGC^ySOnH@GqQKC9`gU;N@1 zzVOxZ_rEgu#1n&GVQ7pE+llpgm3P~IlxzfXGnic$fG(R9W%1($fgxZPSO@k4hk(Pt zUBLZ-NURg=ic)1)3<{+jtfG|FyP`*tZCj&1yJR3ODy#F%L<4X_eTW9-SgH#FoWg1N!um^-sliL9S9bLcmEt$vC^Z0j zQ&Z8aH)RH2vO00z{6H{0>i19N!qM6D+lG_l@qy8FZ_L}Ysl^xdcSn4!i=&BL_rQ28 zl#6tG+#QkOXml#=*J~tu_piXeX4jjKoW@^hM={nxm+FuroG8Z{-=TwIsg9m|l3PT0kjfox zim-Q7u-}Nt&Wyik(7kegR#RSe!HKogVL7@=ssttIme5+A`G$KT;bC~<+v~Qz`S$Q{ zZCrWJuU%!`R(^wmXUo4~T~jtbXd9_K5r;B zuAC?_*KocXidTbIj_x21LRoGpH>v8eQ-=kC*}t*zBmQqa`>9WrBVYcq#u*jIRh7qM zkKsk?!P#rns8-97pMQK8tMhnd1|*Ni&f6L2wtnqL8`iIB9$1bDo)e?orTSLkEf#qp z$jax^c?;s`vTg&PsCp~j3(X;IJBxXjgD2G!rX4N910_6Ms@^K+3W-DS`eo~?yG_QB z>^0Bv1(BzC=XJc(vQ&mn)O5Q(>2-#ALGpJohGB7w`4Ywfy&)`H?^vZ@lLCdz9c zR;eKOitkw23D2;ukUVQrYw8Q|lLbwZ<&8mL2$%)df&IWC;4p9(a6cdbv#!K9}9nx8dKCOD~W1_Y(n=-4fXFZ?(V9hx4(nu2?>t z*wop%$*Q-%4yv!;$`4uAak8MK4w58I<%i10E%ROKB5e*Awvtg*2#>`7cYL(`ODBBQ z`!D0D8*n<3^$;oP-wK`lOZK+kb*GLckeD8cC9o}lgoMx|F_Y?iLS1f83LN-U z&YW0Ds$&Uikhz9$I0CZlI$(?iO4WY1#<1kB_w~A4cHD>0--dAIxah9%z zeAe*Y6C(|TmfDG!I?_O`Znyhm$L`qp%*JO}+lals);mB!je{OH^J3x*be%4Vy=-O} zLQ$n$>#5@mWCV^3Q?s@;oi)){diTR8#@f1gpm2X(HR`7kV<4k!P6`<{FEXflDr%-9>;uV&mjp5UVr zPas9HW%Yz3+wla=s0*T${J#`W;H;~OCvYw}yP8#yP`GN7syOmGRmXG)fy{}-7wd{1 zSmy)wj7YuCdnwsHLLh6B3>!hD01$KO5*S3qAzWeXZ7jE4>J|5n) zI(=X%kytv=HlEC{?q6Toe&K39IiA^a$@KK4TQai#*lM3oOsfi14 z=H572oC}V+VD`nyt5Y2pU{>d>;sVU-oK;)^0y^Z%v8|pQ7hwI()YSlUe2OgR zR1_W(d)H8vtDr{COlW6wsHZy0<-PuHl?`Oa+IO2W z#yXH;Qh2xjzV_tERA}Rz9otePf&TV^z~D$%c&M*8mx{G+Y}vB$c6Z=aosqtdjdRLB zzqYHVXSTg(Xw-UXJlEeMHF?Uv?GB7zaKX5-EBzMd$VfcHA24SP9?9U6dJNBt-VJU4 z^P`|}GeU*%awoFa*12m$Y6mwZpP>PSmLH1H4q|F*eMW_x^lSy?8KU2b>KKG;1mPM% zxJD4J5rk_5;Tl1>Mi8zMw7G^pT*+Nk`;U1hv_axS&_<+CsVemspWZLzeZN#c7$4uY zb#L=`pKsc`edh$Ezb&)n(rI1!AisLy_LcShLi&YXU~}{2pcnl(w>~DjK*xd!hKrY7 z&XEf%`MdtCW5L8m2Kt<=zdIzpU$#YmRb4H|)2=lfsTnSw>uS56mr2!5b}{_g7CuKN zGN!(iEf^V_--oClgSa@CI&O@A)~At>azkPRbR;Bg3jFtq{HSCkHD4xHL9k1Et3-O# z`N^UWgew>)x>FsqDb5Q?r3>hJ3}Xo~#%Z}b2n+$Uz&fxWI0PI9?gH)yWCM!z(TP^m_TH{DU7^ z+dq_|Hkp|0J{8DJMyUQ7`0|&(d~Ys3Fw8ueJ^Q@bvwtRgR_d;CooN)>OdYmYsqe~; zB{pMa$HHdJF$c1@H;&(~Y{V)yo$5DS64~9h12|{AYA?E@F&d+)gKafb+1dPTSCPC= z$Vy>GbR~&;vA(HzKSXRi``>yulkhIv7!Xm1#T#Fn`wBMuY5n@L8?;|vT8>?^rl-{% z(|&!$42@s^-VLj9qx=Kw+1LCr^SHGbqFH!fs{rH0U-9B#cxRS_%SCf}k;H-~5*8e){T0&-!y3I#jTbOMLaXAW8Xm;(S zrL2QXklH1rg(akgC8UKVq=hA!l%1&~YS;1AdSD}U z0{K4&R#87fz7Si4sV%CEY+Fbl^B@K1-b_(V(C&o(G?!|_T~M#^TXlnfn03UU?CNWPIvbeBmJvWQft=w zQvX7vJsi&jQ|XTWq#&xt6*~SOoQG6k`c_=$xZQ$>l0ziew_1gVO&qIn)_AxI9q8CnNAK7u}GEoL!8FFLFd#6OBF~3(Np(z&_wQ;8x&H;6C6zz!Bh+ zz?Xr40=^HZJ~h$k1G2yjumgC%a`R-Jpe`c`!$Ak0zfo!KQ)s>i7>F{<1hGISGNOGhj z(iuTXO8EN;XdVGoQ$a1_dyA}&hMe~thV5mDV?DG|K zqYKvU{;|H6-u}2R8XFaSm!y7|dlnrfL@ear+my+u9N&^>*kN(>=EgavVwQ*IUBB{^}v%HO4Yp!ksFz5svetNcZ5 zxKesbB=Inx5)3(6N^q_&=Qk>tY@8&1VX`ryz{|(CHvR0v;->4nZ&t_}g7k*}8 z)216bU%L5cyI#Jq=Vw-b=CQ{fEB@)!x^t;sqUh$M$yYEAovid%r(^VAQ(!?y=wIzp=Z=-o}4pci*k%EOGoP z_rJJb1IfC?`mLjg5>m!RDD45(IjUMxmAy~3FhY^~Dw?_+x*=88AqTJG(whKtV&P9# zzw%*z@Fegl;48p4fFA(nl*ZFP1QIpCL@%;w7U{(zWP1^^y$IP}glsQDwih8^i;(R_ z!s`~{#fu!~xyWIji>~K@7XbB^1{%FU8kh#Q0T%(+0Ol~yMGo^^lz~ac!~yO;z}*M9 z`v7+z;O+z5eSlXU;FSk>-N{H?%u$3a@#f21<4J&T zNDGDnibyL#>q1%@QGB3)T?W2l`o+7aYunld{VB0zj`KV*_|JsFizTW=WloU*$fmF^ z-|}-8j<3G-f9>A>b9+Xjg~eEI%x(2wFurY1cJ;zM6t8{DtYw9KovDGq(2nbt*M8w8 zbHh8YU!1;psAufZa{mambR%`$!9;I*c|0_|ZT!NUR?mC$jf;hgZd#q+Hy@pdH>3&& z)~BexHyU3of2Y2+zQ4aGw{2?EbvtwOSKhvD;kuo}(f+kItC~i%T zFUfwccg2uL{{VT^3&R>_g4R8qN8wp=R)oyZR$6lAq113~LPn65L@-a#QY-f2p`mZ& z=6jW06(oL;h8-d*Cr3!-Rw*>1TioynuX+kF@v0H{eFT0Vp<59)PXvA+f!{~qjuE(H z1b#2(6V;Cr4=RBUp~jn=Xm)X zFQ4P(bG&?xm(TI?IbJ@;%jbCc950{a<#W7zj+f8z@;UqEr+|bT91^<7g|?WF3-#5`SR;} z(;TxsGC~1?yG(PYvp;2B5*%JgBsPr%gCm;~iG|@{`Q4J1+II3~>o8QZ1v5a(c)4PE zQCJ?;N%SGTQ8uQWFc4*9M%kEAHfEHK8D(Qe*_cr_W)!_omo)hlpI-sK0sH_kEbsIW z5o8}?ygo&fIK)e})W{2ryuio{jJ&|e3yi$L$P0|Tz{m@Xyuio{u)zXsu)xR*jJ&|e z3--uQ{}40s0wXWjBcEa9Gxo@582JpHn_=WLjC_WX&oJ^CMn1#HXBhbmBcFlU&%o?w z82Jn%pJC)P_Q+5F5ILS$%u`z{v@9odDCcs7HzV^p7qW6kw#uMrysb*aO@M9l3YChq zw24>_fLK8)V?qhiVgs*$hAW`q3LAKZ4ZOkzUSR{Tuz^?Dz$l4gy0aHNp*`;&!8q>%FaQ-$&qCtdgrcly;7?#X0| z#qxhDeYUq>0@kl*2_!(~v$|LOFz*G(p3qbs4SQ zsu@ojD|}udiswlLLC%x*o^oe%IiyMeIreo# zk{_LP(b_t>Wy@rN3eA6J8ikYYNSNzFUyx5c7gWn9LSO3Mc4`^LmQ1Rp6%5&6xu!HN z?3Di&xkU>RnlOnFA+7%zLWCOSPeuwKf&xAcd;)j|cn)|0_%B-w#4fTMQ3)EVg~XqX zhCa*>o&-Jxd7#7|Pi|RX-!jsd z33YUYGJSt~>E9nd{Oo0e<0>sE{aC+&DHv zo+}pr<*_i>#pZK zjqV1|n(F}HyZQbZ^?e-!q~*#UUv>SR`ysg4W(l;FY*^ zG4+exnoMm1Er>8x;ceNcUiZ2Wd#)-SYbmL*t-3y~-mzUGYMZbRiQQ5n9~=+231&Xk zyCk|<-XrNY@xH+X>~dI$(N$&mac(2!k1b`Pm)<<0Uy&&%`tIoXh4H)6EJ z1+Ig_WM-1O$C6(y-qoV2?F?(v3B$ePgh6=|h1j2~5&uODMN!2k)U&?dRqJ_f zWqpsU@8_xY9kkwH70~m#T?Zs;kP}tZ95nK&qXxyAk#uwBho=HP-|#Z?N8Q6N&LtnZ=uK zTFgvMWtVPJYZS1yyS`2TT3zU#Vztuyz)f$&cP71SuJp=uf?ny+KjK2vJ>p-hV>2`$ zdwT&NT%y8}-@T{rBx{(6tZ*RXd2t`DjAQe8*(c#B{Kiz#?- z@l2^KA($bb;*yf8ZHTqErF!U}%#JnWylp=#~y>j4}#hTXgK}8O5X=aTR%ooV2>Y z=K}q2puMZI^M+-k4Oc~mnh95GDYXh!V1sn9%Qb8|s9PL6O6M>FXp>L@ZCM%Ngs>H` z<`l5z6j1pKSaS-s9ZfU}0G(9`Gb856s?9Fyet_n&t*5o>MR*619nm82eoui|Kp9el^NfpuJ7>0v;LK_zU*WuJ8aG8R()MF z6NysF*Y1yWPJ~8Aa2NhTsvl|J-TrG1#tQ*R{K7QT%-6P`%K9q z&B!9n@T_KJk!EC(W@M3OWRYfMk!EC(W@Higjh024kwxUVQ=7Iq;Y)(~ri|7ZB`84N z<>)?Yj>+kKHwEJH0MMfTr6qAWjKO`g8biR9ur3lB*T`E%ua#O&Pylj-PFw^SBOWn>1deqnB>Os~ z?aUItPy7;LugxT_BGOg5-iAxgba` z2$Bnei#dv43GvRiZmQZRe`^{)4`AG%!+YYVf~E>Jkw2o5&dHqb_Jun`<= z1P2?z!A5Yf5gcp;2OGh`MsTo^{@HuFChNtdQ-FJtG-Nh;C!_9U)SZmFlTmjv>P|-8 z$*4OSbtj{iq#^qA5RJzH88zr7IYXrej>Ofw{rzK!RA1Ut*WwRF1Hp9P=()jI*Hq9Q z4)n%lE!>Rr7hLaGcoVfQ|7qZjR6g{$bR}@FK55U(jCt)D^D<*zX3Wcsd6_XUGv;N+ zyv&%F8S^q@Qa(^>Ff>7{CEHwLjHHf1yux{Fu&^fayZSh%p9WgWDI;Nffx;|Mm<0;6 zKw%ar%mRg3pfC#*W`V*ikOX+E1q!o35*mIYT6*opa#qX6&a_@NcT=5SHtXl@ZD0Pa zv2**PUB#f~jz9@y3DKR*8lpR0s@7D|0%FcQ;04&*4hAahl}ML%I8r+tsU42g4o7N- zBelbk+Tlp;aHMuPk~t#pK^l(%4o9ldDNV}0!d@xnul8&UlheZFv@kg>Oil}v)57Gm zFgYzuP79MGC9Txtv@kgc(}KO8Nl&AVxUi`Ux-RRAnSFZH`kQk6}w#$Kl<|3Mm$0nXUXP#xvTAy;PHLX*$vlttDz!70vFOz&6cJNCBP<9^6`UAa-Q zws>5PvFG>;)}!bS3D=l)wP?k5ZHu5iTG1oU=+q@8gT$GqIP(-|p5n|?oOy~fPjTic z&OF7Lr?@>&apoz`JUs290R*Zy=BGIeDm#`9%`MFC2p5ts zT^n7S3`K?u!;y~mY(O*CC%cCN1kA<;GNE*7BsD!&>dVc>)6==ZfmB~xsO7Khg%^B| zk;iwGy*x<$>fh8ns1JM=owb>8&$E%G6~~Uje+YopKGqogCkFqC!GB`#pBVfn2LFk{ ze`4^T82l&3!b=<^KT>9rG;5ug>dJz1d7eg?lzv*Cr{#HCo~Pw`TArund0L*Q<#}43 zr{&et26>)DRcdY9$&@v@gATnhoD6y+EYPfJ8#J{IJZpodwn0e|4OpUG59fU9XuharmcgO$LgtV z2o!YYOB$F4wgDFb*8n#IZv^fI%+nfqnuv*VES!Ft!k#lab=a03V?sb;RS_~7xd2w^ zGa56lnCf(lwU%rzUidH#`C_ps@HkG1Y&t@~K(K1LueV6^ZU^agFVs?3?@3l6qus#^e4~F_9JzRpBvFcl5<$NceJ zIyN>m=1Yv0uQ22Xe1LdNTW_-l!5bg=`;jBA9M*v_kb_E#&90HPMK;oFdq#4RTG2Di z{F9Q+gQ^PjaD`*k1aF!JhlLthddM`7&|8#~TWHJ^pycH#S>)Mdr_v`E&iMnm_8dRisFvfoG)yIioz)plXJ2 zsvg_x`%!Br{p)e1ti#y+SX(cUW_`s*=sFASL%Rg}+4;ISqf_4V?5KgglZ_3+kqv5s zVvOkJ$YPEmo1ux>!lc(acbF&{=YkQ>dn$*#ntEC4g3f|Avg{dVK_|pKEY33W(hA1B z1P>_HUYZ^iP1J1}ohJ2wd{24gdpH&drre#Q=LFGg`Yd$QSSEGCH}>+Z^(WT3YORx& z7i$jd+^E<0jBrsb6QW(Fz?FV*r5`(T9qAhS9CuEG(p13<#rHz-y-<8F6yFQQ_d@Z# zP<$^G-wVYTWfejoA!?5Sk{2L$^mJucJ63qJaDzg%2esK)jPXiy5?Xymm4PL%M4NP# z?(e9RjkbnaF$Y-Zjt$DJyPG`BdT%iOz=`$&_kLv{U=d^$;;e$$3yOWpUXW2VVa)od z>p`^+pVj_A@zW@Y`i!{aY4^jANB?T%K6_j~B_5BRG+ielsiu*C;`%)`AHOF#?c%R8 z^U(nAG=MvD0%ila(*W)?fIAJ~P6N2p0PZx{xYGdcNGTaPB9gRT*m&*C7(1jON;6Dd zOvOs|lnkC`n0hlzy&0z73{!80sW-#an_=qBFm*99%d@p*Mh#XQgTW2Tn##!v)2Uz} z7WR9Z+#YZwG3wr*${>J+Evv8C6$?tqL$Qllf8u&SyX_ zwi>)Y$qZIO^D4al|K_;FzV~|TTxG|s&`qf!BXrM}frJvO9ehSHu}TIy!_!D5JiABn z*k15R9~9%zO~*89=%!Q4@d!rgv$dB}U09psPqLX}jMrBjN_rChJa7_OIMJ+{G)7iU zL$m*bY{^mAl6AlJZrs$Zcu(X=Yl*1Q?63hQD{kf{<~)@lCp3^y|602rcwpm!2fnKQ zUHZ@mKJXy{p*3!tHzz(%QtGOoCt(rIvWAHgrLxJLCs8Q<7^*O7<5|esF`lTm8`c?lmm#(BH42P#vizoW+ z&#kVi{`?nzBmJv+6?&nSaKPSIa-}T&l zj;Lbk|0$m1sjq$x_sMf!tKPrh`Y`t0VKC`D#}|3#REjZ(0Z|;Y%vF`@`G~DtKCjFT z@i=o~-c4U#ug17w#pw$*IQae&=6B6?hZVOjL)hE@6tjT%HoOvoeg96tVd5dFDs}(FF85NO?ibzI9B%>mdQ4z_gh-6em zGAbe&6>Z6=h-6gcb-HhJ^ktB~ELEgyQvk=&q-s(k9Y4C^BaYQX9x4VNsm>(@B{d5g z=Ot1xXP)Z>1W;y!n7u$zA6q6HO$$sJzntiRChkvoC9sc*Sr%u*1t`sGb?$madLnZ1 zLV9C987u7?*|c;;su11CWp*y40+Z*?Z93{39PLkzN7~Du_73Fxr?<4$&kipQOgBE? z(m%8~npqi-crLlLVJy8Vo^JR`YdF6;F}OONs@re*`;z_Mrf2H{@sxGGKi1pR_?fyH z`i^1x_~X_W+&_n*W|Z^C*N!qI`)tir)mpbAD@qKJXerfeEi!?uwS1bj&a&27d#$sq zwU`OBtaX;P&a&27);h~tXIbkkYn@eVEl(KMYdywVkFnNcto0acJ;qv(vDRa(^%!eC z##)crYdywVlNx2#dWyctT07^Jo3(ZnT(j2B1ycaPv8L86z6p-g&VIG{4J^JyTj|Bm z^VU4tAjd$P6O9N6eK7=}ymF$11(Y-0?B)O4<(I^AeY+{mO z)v5UY%NE|XFkBihmpl3szFe`jek3v9Khp5=Cja1MIzBzr@7cViJ{vEEV)gH9?oE}3 zRxWN@`kQpR?XkvbYoII8-QMs(J=G=TES|SnpK}*o5zLlf(K@k2z{u>^GYYBxE^FLE zThKhDG~PD8NqGWUX$i`V+7VJwRw~L$MOmpRD-~s>qO4Sum5Q=bQC3RADU_}oWu+t# zL%(655*=VFTR8J?tQO9N>evcp#;9H)yDpw|Q6e&>E>fUo-*sz)gFhj4Z>WI%qp^+Y zNMw3rY<^~~zu=#WEe#d=*JkElyLn+@b92M+>P3YKYGXF6Z?7MXk47SO<+~eZMh8af z_gfcjyRyT&vEwByw#?^`n9sMW`TXGj9rNjkyhmj^SVN)LQjS6w`jVB@wl3J(*-g~m zhP*vdJJwE^sL{Fu*51lQ$vnN=J?_2%1Q?Q&w#BY0cqew%Q{i2>f_GBz!p6H8r(dne zkYeCn47`hhcQNoT2HwTMyBK&E1Mgzsoj7C^-o?N>aph>dOIGl%#yDmW(V-00Xr}Pa znOco$c+rq0>rXL>4!S|zyE{BqarW|UnasA!XXlnLk1zGE4h?PbEe{@Co_jnru{k3J zXj+9siGMmf5R_03t=LRg*XLq`%)ZZj@47-BT*OsB{%QjtKhORHOl*`cdW$5}c zbbT4Rz6@PohORF|*OwJtUuIJdLNCOfw(O#!4l$Q0o+~ZeUSTTNIQ)1)tX&J*>!~Jw zN-j)QU5LsB$WO&gxmhl3))fh|JYVW(9C2;t?QB!5c5?ol6p&^t57Uq@#un0pEu;r7 z)PpUg2VtlOTSyPKkREIyJ=j8eu!Tsxkj5WfvqnZUrE0dzXy9#(=7?*GcPIyl7`{*K z0BI1Mw7nm6puXY~QC}Qa$Ws*b*U!Z|F{v?37k$Ln+CjYz@Jf|_l!$VDG-#EJ&A4O5 z%a-t7-x2EVNNzfBbnBt;=JqY4k;!bJt1sMs@2fm@BeB*{M_+Pa&_6KQn)I)Z4-O~O z;r@kqba`u2N;^N=&Lm+HE;UK=-O!OdA4 zH)p}kS#Wb!{coLr_XCH3!@ym@{eZ0JEbAqdM$WjHRVTd4y6TpVo5rHx5QU;3TCoZh zN94kYT#zh-2I6If-UblL#Urg_fnDSoSlpyzoWu~(We4(h(Ivj<;#pn%rVCu`0vEf$ z#V&BM3ta317rVg4E^x7nK;AC8*F_+27lFK81oCzf$lGP-cAx$slG`1lgOcuW#5F=U zur&%v6&Gay$N*BBWIM1IxE8ntxC3}Aph&7@R6Gud>2atsC<&NcfEs!!L~R$K!9=JN zJgZPuas*C;sU6$BBztd8m-YwdJ4yqin+LsjTwmW93pBTLdTY2lkZ&36UPy-q!|^^} zA=p1X)!uTQ)z!Z#omj{R$A;svf!RWGJ~G}G?1)Zw)-|^__q3O~dt2IDdfKJ~bMfwY z7t27MN%tXQoqApGmfEnbPzYPLtz(_!yPU$SYgBbt_=Uj)hf0|!M(2XVFQl-huAU{; zDBa+K{RYq1^cyrLNDRJ|hN|aN%0h{jE;^J{3bklUou7ds#k~cHh4JzaM*$01T|fNc z51)DViqC%bif6w>^Hs$grmS7%KeMLGzdvfa*o|SpW5lU;N^SK6dd3-gogw9)0@hr(Zt4ea!0o z;SbB-8QVVoay3q=4fJ;MVP;*&DBejl`N}h+O0O_B7B)I8K4Ag2lfKj0=EEn0B;4%OtnI}TA^I1vCO|DMoD^x z1dEE=6X&zQ=OCY1-Z5qi3}dXlXqk}87pt9dD>vN<+y|(*y#^nXt=M!G$y4hyRh*i# z*GKtMgk?|q-|qJO=-Ywow@zFTSWexzF?q>)vAs0vc8^ZC7uPSD+IVSVDR}BkcYyyL;C~1B-vR!2Fb5sXL5ISB zvA7CJv&mV&3s#myVv%9XsHKFpCwR%0^G7=`TZxSLQa$nHbW84+e&dpNSiimHGuzJV z@@)!?=l^g^`3kkydyn5`9Y(h3b=@vC2RUjNl#seG&PkGHd|;GAiDm2k9~(~Z#^hqG zdwnsG_YQP~6UpZA^|x%?V(p&2W8<8To`s&N^s8sfA7nUmKjd1b-s7djC6!!%b;LD; zq%;J~Fe1scYSupMA!HmAfYnSR2+03L(pd-g1BZaaz+J%ofRG<4B_Bf8((aE*Tk4u* z_9o%slW0(rXi$@AP?Km-lW0)7-sio18Vza^4Qf(t8qpmc+e(eXWMT!>v?swLZ7P)W z9Y?_@ER=W-NvG4)kcFi|?6Daz^bY&Z^D%{kerpgS|UPcExt&avRZeM$hTxK5oa5mfMK!9NFmY z+Y%mM92{623x~%R2L>0%3DI_yuzCJ6HqQ~}W5M;2qjb0t!>aMijxt-L%+@G>9c8vg znXOS~Yn0gpG9+dw^{)}gq_Ac$jFtHoj*#(8D?Qc1CgSbzc=&!G0o#9vnHPPZZw^v0BQB1m2Y4)-d56`ZQ zoO8osefw}nB;p(HABit@2HwzV_yAPBW4Nm`+z}XVO~ziA+g^-Z-4X75Q%9sLoj$yK z`OwZ>YN)P#ZdZ6D(c4}AImHs-=7qYJhHchbVNb-m&6Akj^^K;sI_qr>O>U75NtkuF zBL{c8UN1t=iE^+OTqJu|1emsp6nwh8ZKeLy!J)Mvh=YR%Izq2D9E#Ok3%UBlD$Nxn zVN?lz-H0XXe`ke z3zJnB3~}hH*fF-r9ot-7kSawDuvZa%Voa<^Oh;VX=n+Nom`1Hd8jD6H7)vT%zK8;N z=}O}Xs-y=NA(BrY3oXg;A$ljOi41c_mA%v_k>^DU5Ir#u>gVZM9%hwC+R7ts<&n1X zNLzWNtvu3}L@#66c!O}Nq-X^7iS9#-R^TtzXj$-EM)#8)9fJk`XxE@` zbZE|Z3S&pzsBfTKY8J{~`V01w)EZ8}DTb^&w3V|9+!QOPjhk!>)=q>X*<11{)^!Q# z@~Xc`)nqSMCBjU!!7x)qRa2MPI^;gd3Y0K@`-WDOdmAlX6+xstG3ZA46i1PyU+5TEbL#p*=Q@+f znd_dbxGuX&s)3GD&UeaMu=#q;?A2iKk9X}lqSR4#%IQ&hh$%W1N(*8NDhtXAD$9K# zJ_Qvc=KHBpTJ99nfc!EI(mH4?S8`m*pMco5xj;}|JD(k-ALs6g%H7hZ0#_!@744gp zyVZthOo$GufDKVnAX=CLi!$u>Qj(n;yfmdKd&a$U^_{B+w%&A2Xk*jnOBUa^vUT~r zOP6d}+8Mg`m0QZ$EBf!T-h6rRo)6vGf5CHu+sf}vZvV(!#Mv-aTjt=w^0#ik{q{e) zp0260bll&-KGn{?`K6<1HO-)=a6GXQ*y=+wv{9~c8W$)bTu{(8Qt{{42y-36L_4aI z9%|^AQw3D`pQQbZ6xTsZBs(Ta&UvN02_Hm$c*s+$a`@-s8e{}cy`t>(|;^rIH zckF(2-TH;{AMM=0`1ZbQU+PZ3^xF47vU6t{s~h+}cKj9Y8NqALU%B-dQJvOBGAyw9 znDuFNa;b4!axGimJ1UM+{wL#?p z4{_h)z$X9#RT?Rp7Ii%bya0GEUE#n(8ofXomH`m$0?_bG0Gt}0}g zv`}fO;s2kmIXeutEmSDB6L)G<2ZKw>c9K9o6$7Z0`?G}cf~-=?RpLUPgnC(EnQZ&% zrvdbZlM8W4(G1(aGf8pgM#a5U+%1Jz0~tXlk-rNeV~6TmaTbHEFL zdFAOJVqUqzZjj=@Hp`n4+BPFc1{m}+4k^ca`XUHweq!VUrL#%C@36vCkp>Vfb>-s( zgiu(n7^M=(`3dCw1af`?IX{7%pFqw}Q297P<>LgEj}ufrPEh$cLFMCw9$X`h0FVJn zz;<9Sa4nz)cQcJQ0#Y}<$jdo@Ui`E6(eK75wt%T|0aN1wqh7$&xPYl~0aN1wip&D0 z#sy4`3;4uDC|JNJwt!D;0iW0cKCuPelO`H{Ko*z*)_{G$b$~8zb7Ga_nqBA|nSPQF zRup^p*QYOg_1gB=TsA#@*=x41z5250*u+JzSXp_+MHBYtgQ4{?Ib3OAX6NwOdVkQj zni$jusKMll&)Qx6V|iHhZ+XV~@j*80=;-d*cp}!tosXJkRa_*M< zg6bWLA=>Ov;;dK(Ax;0o_Ns8q5*(9b6g0<_6BkPm=Mo&V1jj7FF-vgF5~x>#W0v5U zB{*gYj#+|Zmf)BrIA#fsS<)EQOd|*k0kgn5upc-CNFmHIX#D(7!ZJ>=BR8?8Bmez7 zvXddqeN7CCbqGX1j!|W#G8CE?Qj;$1tJsumjn{0qv0FZ4g$r+5w$Xd}rV9(dK~!V# zWvRCWM-skNA^ozKr3=n}uzx8xR{ikaP%hH-KI<)A(cy49|4xa-Lze8e{>XY4vQ`^n z%?FQ)`$1W7bq%xzh56(=bE{O!Yvyll2ozd1?XAd?MwfDQVkh;`ELBbPs8K?klsS{V zWm4w&8OH;;VfY>-atbLZK}M^|5~(BpUonAMMZ|KX%t;Ki9IvQ!R=;(}M$<-kczJoa z{K@d*ebyhzDMw#>;DN9G$)Eg5Kf7PX-Dy2xJ>h-_<1Sba$ax$ssGzdXDIQ^@X)#dL z&cJ}00maLHvRu}Oc;w^2CxB;w=YSUg!^=+p5W~yb;boM+kX_h7KYIZ(++m-2*k>O0 znTLJmVV`;ULLQEtuNaX&LHiltIp77ryz=x9F|W+?N=#5}NzsX>D(h^F@D3aO@e4mB zoOj6OtaDl}q~(Iddsx`r^r^)@SECYI>p(=^YBsHtRym`h$|X`%bPZKZ4ZoOnixJ^d zXZ@zV`u~|9jtqD7v?lzKeqS^h^^GJ-p`Jk2A5z~OyqJ$AeO>-`Z*O;JS4&ezALsVP zy&+#$duMZVr^s{ajBo2HbdQKDXWfcD2n*E!AX2W_DcXn}BR5_+@gpG8Q-E@OHq!_K zL%=Ms4(taG0f&LRfcpXQIt?gAN}|5%K}(4tV;AuJA$CBnaz(1-4;(!2SFYc*>H1$ePd?w=GIDt9_S;5U z>aBmMv$oWKxTATzv}t;2y>#$(>+7#OSd!1?FL$(z7E5C-9e>auj!C-XI{vR#*8M0L zLjDdO5#>jgF_9-DP5?>D8K3YIbMwvlZ~ELHJ+|q;^1E(o_RN2C-u);)!)Iabvfd7F zk|12eM@%v*oCd1k@lgEOYaP7fj>U&(-^0y;@;9vA;vu$5tBbk*4Sy@3gUZ+Sog7?434y@0|W2B2r1fj2xTSEow6+%E8e(71EMXAue^IEtjmX)^)`S zsaU4Jt0&;?347b?X6m|Q6RB7>*xhZexbGRcaC0`CE9AoA$!)pDk&9Nd;o*s4`8Ld2 z?LPjmt~V&W@QWQvXS^tk5ELQ09HY?gl8q4Vs{0#VDd!iO;)&f~Z1fFJ^8|@sv7g{k zPbrmr)BX)Mq$@$e@x8OpiD zmX;hyIhpiZy|aJ($FqNImA?4Jsn33PN}g|(tY@qnYH-O5E=8;-tu^wGhT{TTTUX6hC3AmpPwF22{}%bz8hT6WE%&6~@|HB; z>4l8<@7xQ#rxOd{E35Lhg!?owXOiL!tNQ z$){`Sgj1$mP;A=(*TA{@EFJlRK-Hm#()*E0_!!B@Upqao^GP#hyv{+9Le z57}Sb9a0O!*WdpyQ&YbqO+e>;=^Qkj2d38Z0PDGhj!6|4H=iDaPl>RRGC|B!G3BqX zm#Ht`VI8)nieFuN;&C~^x#qVzCr}frI`!L9F_kLHZ*MK%X+3#h@$n~?zDn8?bNYGK z_*0CzksWEMjiJgu+0Yd4rVBPLmSWq|kpaI9UV5?}M7XC|{D{GYi0e|uu*eLaXFtst z5O|t-ype&`<0bS_ihoL+7AVU?h-HDoHV`5y87xAEIKD*aElCU%Fd#>MDg*RD>fv=#K$Hk8g3PkA*GoC_t#hNp7j`M%&h&HU6*Xd!Uwt5!#MS5I$GNBewtcTb?Fz2kd) z52)|@I`hM#bd#gCK`c_hHE@)Tr0dp0#n`C)U8WYc3t9^8qB6dCDMWr``yerPiyp3u zu2WNfagmzxd|pKbdG|%8l>D)WRfTnn^BZ06$B-8!qS36R2|RMNU&nExxtElgz&qlB zyc3LUSuel+H+%l#wf{0-e!<$lsc=sDqwZbDu2yvY5%*2j^DILNA^p2LPD3;eiPI1V zalMXe8-^+l+Z28nLOl$Hm%}}Wq42{{_+cpgFcf|m#2ALc;~Rm(ODXK2irkmv*Py~E zIUPh=n%r<2sEz^Iiki6<`FtyC=2q0qt*Dt>Q8TxqW^P5z+=`mHRVxe+(s&Gz@KCAC zw=Vh8GnHAFP(z7h)4_%<3_^q`@mfo$UY5@+101EjDwNHx2Q3~{9fhkZ;&VCE;o&%T zRW%QJKkBI$(M8T-l|$5?7@AA<^rYs7f+NXrOG`AF@6XQ5mHBLcJ{fIk2`5Lax{2xO z34byiXlx9GljX8M5$SDe>Ww7)P}D~vWAoAI!f2#Nr~me-@AG4o@5QBwiDjv-?a#)1 zmTts-%M;@(;FsiTJx^TFd!SvTRzIdJ1{DXyq*b+YaaJyFuUwqfh_iBWRxZxU#aX#H zD;H6OcIV~&-}v2r<9F2~B{Sh*Z4 zmt*B}tehkYLpUC!@faX0*GoU0T6qovi~q2pN(aHKr9)am?6eS=8Uj~CU~34KGK5MQ zLZu9$QilGY=FS7Yj^cRyTO>U_S-m~!$tq91+A5Z0NtSWL*v1B9gRv;4nPP)&urUM@ z2sMBqjSxyg2q{2-6o*g~YCt8M%oj^K`=-Xqx_4`txS+K7qJ-)`;}#8z9hfSutl`5JO$4U+mwyc$GPI)n4Z6t$UcO=gr%?2RO(H5L&+b z%e;MHomjx5MyF1!bZ|12sP=pxR%Mn+mCdm>=eL(!l6T1^$De-M>3SDF)c&sj8t#?- z&-6bn?P=Hn`?q?W`yN|rntXiE6$zr!f=q z78{t?2U~>=%KJmVGs)q3EdB7Acp@Vn8PjLtvJ5H_CY}f-O@xUj!o(9{;)yWvM3{IY zOgs@Lo(LW%!o(9{;)yWvM3{JDoQaQ}iOdY;11syT{K6v?9*Gwoq3{TWM<_f(;Smat zPWb|)GqP6gMywu}z$~g_UF_y!EeNM$K z&uMNfEvc_BDQz?jQ9n3Z*d&je3QHOrOG+C8U3Q(Gs(a0usM99sSw0Px5hyfRMp0Ns zBz~C>iydHNoZF494;`vh4QOT~G!xw@>ahX_jla{VjA)LO00kxgD)NtUAEc*&fz2Qm z1k*sL?kS?j{4F)p5hCU5w{J{|xC2{GAnWq@_r@I-JmxK7+oxIJ-);)3ss@pGA>d~C5Wc#tVuGsO3-_0O!SK?T+B^iA}fPRMSr z6yBIyTANqdo;|TFIw`Mk(yq~o6?xx^Hl?RGMPm&OdUi!_Bt2SF$X{9{r?a#?zo4ok zHQG?}Xi0ANdxeAqKT+5Q|dRcY-5gV41;PP9rEFRQN1gPP?uc9M!?v zde?n9bf0`B@R!nyl__LL=xPKf#z~@R+6lKO?oiyZxHE7U;I6>kfV&6x1a32K3ohuY zu`>y}%0EHXonjrxM(mQ1pC96gDc|ao6#^oM=RG>1qk}c9X=!c8cjtD-O51DlcH5zR za<)EVM*E~0McLoWiB{`tE{~3nH1t;QvS&$zokdkGZN4vUo=uw<`fV=bNm@>9xNRMGJA6Q4!h-7x0jZ6=60X& zI-z(%d%K?96e-zrm+Ibz$oS~x{kv30bH0~dG-Fb`Ofg*B9|A3lB78lG>YVm1!d27u zzC7vU8#6zarxsR6 z3#tm!wVqng&|6hLr70S1+MzPNehSAVM+$DvtQ?<{U0i{ku~t*`Y`w_g@k|VA1ygZi z)$4Nw(Je?T`X@8RcS=izy89nLa%Dy%QzlXWNPqiO&>i9?qbx5^7u1v$x1@Jsx4nl55UDZ@_I zK(3mcOncm+w(|#F3qw{e#>@JK^ig ztEH{Vg0_-@=@VHY8BzDSHr{qa8&M{D`Tn{l+VZYwX~BfluA;I?Q)+j2V($3z?8=7Z z^zQ1$33~R!#g#Oz4|R7_C?|7Vd0~E4OWSh;{d^{)n10R;`dQYvjo#0)`>5ztu#|N5 z&-;{q#+*?XR7*#9ceA2;N|T;_Z+)5cbazv3tfv_Q?vLA5v}F!7a|fShMyQE2fIn`L zk3Z+RTu57t)xi<}-%?hg6N8j>5JzOrX9CLl{||LQMFU;+(FSqj{;DbUkx2cNs%rmU z-P+O7+5%Ob8f}_V?vn%m-aNClWyXw_)|pP%EIf_=VJtp4Fm9eVXJGhHD%KBiJWr=> zjA+5pIm6A}i1e8%3L^+p-jwd#j8;;oU%87%5w*~Z4mBZUC!b%8307}A>kE_OY;AZ2N;10nZgZl>V zd|V*Q4(={gMHzLY@(lEn!Yvs4f(tZ-&t*dp`4B`t1d$Ix@3Qu$jTp|mz6ax zCAXrqu1oqZtf#7b&EtrXclr1rTiJ;`=*v8U7lY>y4jnVJjAIbQBaTc%h4_iuUfL}y z&SA4?w=CK%i+0PR-Lh!6EZQxLcFUsOvS_y~+AWKA%c9+~XtyldEsJ)`inrU?nFQ^Y zMNhLL-*MRL_I6p6AfL7>{23Oe6Y$uxQO~w_PoJKdF)k}HAvqzXSWm63zOP})l7>67 z@7naWbH@2NHI93qWqA$~XxOjYb3Bu}0yQd4| zJ6;f0L%jW6T0SZVVU5IF>cT<;Vbz2!b7>itLA)4gXS#T3EP}8);_dC?VI~xW4W?y@ zUJw@5%hd(;7|wWk6H?vj-XlWTc`od&fw1xVQe9;y67N4l!j`HP`gOwI9tbPYD|DY- zOV~RDVcBL6_H90uuy+T-V)`d)l}r2HV3>E9K1e6}ZR)M@+m!onIHA`CaVUY_0c>OMdQOr;014Lrrb3B6`}x3u#1hPyIh+G^y}$H1eo*ky z4HG9eRAfZ5l9RI{8IQJ~J$KI89hoJQr%bP|o<5~3(Dg;A*Lm@J$#)x(WE}4eGhYn$ zbPnT@)f08NF5FyPA8rNiINVvdi*SSIiUsozS1)%A*x+Hq=QTH!$7@yI(A+V1Lq}$D zSG-o49cR;CoDu7-&{Zf(3Yc{MWcZv)K1f@UTA&+A0o}-Vimhb+6Af*AW-3~IN9_w~ z<3gx?A=JJQYF`MoFNE3`LhTEo0fkWe!Z@`rWKLD+=2TL`c;RkNiA=+YuqUTj38|BU z6a^|w27;!Cc(}#S?7io^?WiuAdAc*U0D@;NCtj_4$ePgnV@`=PtG;axe7v z|EvN}t3URYBy zVXB?nl~|HrQI&jRQf9Qaq-}@9jw{9&C7+a7`9xts@-a3><7+y(1hv9^dI~vDKJxqX z8R6@}4!>e&B1jG`<1leOotC+V^tpZPj{c*!i*W<^fRHjt?*qxtdV$2U6}A)KdhRtWiGAoT|X>F+LUqYdKunIv9U zXll&+5MC-LMAYa`U*dM(A+CbDxXn&{-Qd{EwT>g=S-6XEaw4Ma)b7jO@y`kWt$Z!x zd{Dj~x|DaX(Z%uamJ~gGFx@dfLK??WrMcnVLn%7fR)ibZEYF>9$RrkEA zlCH*Rw6UwC)V~WZFvU{pH~Kp=Q<2G)Ki`UDK_E|Kyvk>&EIyaFWv!c0aYVbGv18Th z{v#zl%QcaQWDaw**bgWB(cqDi#{CGGPXA84wZ(bZOvGd?@HG_Sg>G`+Z~q@<^N zN|`J?)$AMnA+j8M^XlooeTkSTOqcgb19vf_@o_f|97%)hr$P49Ap2>M{WQpa8e~5W z+)V>_<=8`6;GGuO%FAhLac-0eG-@(L2%fV&6x1a32K3ogLiu`>xU*FRrU z);l&(2{D!y9Cpg?xMet>l*&Wx`K@lw$UlCE$=PaRKcM&AZFa}}+_K!>ipG{HjpVohsWdXDb=tzLXlX`zd2!CFw&~SH)rG~?W!0s+RTo#3##$<)m0hj*Wsx+i z(+Vnt2G!7+`-9ghH2<=p_ElniD7?{d7Y(EQpD{r9f|EYoqB2o6_}hO-oMcv!kTG;f zkO3ZKfCm}iK?Zn`0UpTtw{eOnVuhTsoEKo0 zFD6tByvsV3vemT#ozXO=b7TfA~L?Y@lhT&3D|NS3RL?%s{SYFfTJ z-tr={v*87<3pW?nhg*R=4kz~Y7vTn5zJr#J^CEwrU*Ra7qqe+olzi9nFB=k4swrc| zQd+2>q#|d0YgPV~j_Tq`S&X~NXnuKq>Ip^7m3gr)cCKQnU^KTrJFl>=y(lXsKYLtO zjGbBQN}@S6rJQ#s6GP-Vz)Z(~CX1P@n5+9{>tdwkTfZg`wCYf9AoibFfFicFRj?ad zEbm7%FaNtP*ZZ~9i~L_lzwb@Imtq&TgZ|MUR5!fIUzskmPmz~}oFgbvj*}m|>7;Ht zxtqCLH*>dc=5F20-MX2(b<=j;%-y;{0g&f1JlEmmt8*rKbi2A{`gqk0UNy(@su{d$ zrq5*`+-C5q8N6x+ubRQDX7H*RylN&>84h5q%SX=S;=`N!?;)ft!N*?ku@`*o z1s{9C$KE(Tj-5$>kG-^M?+ASCh;KcGy_w8N^7Cb}xL6`M`?H7~H;~R;MOItry$kCn zmy~wa7fz|Go*b>86pc=*k4~OYl;W3KQL8syh*TsB0VSjD0Y>BD^bFrPlmrw{Y#!~A$3 zj-5%+hxzm&MT%Z?$m$>Y!tH4JRMQ?YB>b&aC^2Qx%0+PZ?eLmN5NNPrJ z_4wB6fS{Pv2nTaPP;|CWQDpDC$+5ybp(wTO#hH1vnXwk1o>Z6l^hD-kbkr8+B{fbD z%9ff53Hqn>UMNB70_nye&a=bfB9)ttP>rL(03K9F)b}%;x!Vw3ss2B>3}3i8E2+K$Df)%|v-?ImHdsmib^H zabhtehX1kvWT+8;RivtlU0HQnYX4?kn5xqrJ>@TdKKXpfYY8h_-!u*6RV%w#`t$t3 zwDJ6d`6lcCL8VYmPEA(D-&`KLBvlvoZ%*w;r7QVOq;7MD*DauELEYp8BjF_2g+onY zc1RAfnnXP@wf|k6N@lyAa{kGGc6sed-QJ4V4HR+T3#4wmA!*}v3-Wh$)1B6`bVjd^ zS1x#AmtTkXnpt2LlfgK6fV88(PKL>LBw|+fKOkYmi44R+fA8WXqRfhHni9(tIOu~x?kBUcSk^?-W2S7qlPs9i_p4&|gO-&Oe%Z3vrMabse95r`>bdn* zKc2VQtkC@f@#5vjbX)%e=I}xjarvoM>}O9ia`NLq`GcH;kM3fjJ;YeRoHlXcs@|zb zESxxT;Sp1NS1p{Vi--QlQ$Jrt`CH6QXkFxV>QKP&rsmuHJ(&ZoZ|Ldx&bk5Z}xBm^^qKS4o%(YWUfv3sP;{=?@=W&`WCR+wdOb9;a zxcEf+4-Zh*!IqV?x26Aup8B!fER)u@v8-5=>FMh4(DzHTn^3>lmeAWt&$ z)q(;s)+Sl@AkD#R_D|k=mwtcu3CBEofBl8m^zRqcbIK2kpX&eW`!zS~ovE?lmQoe^ zJySq61XtoX$QfS|w&4D_;-im04*E*%ZE|=wIoB*c?9s;&Pe<;j3|%o{Z}K%oPRE~w z>2kd}${dC0l84w+2@W4?8fDa{z<`8TO%bWa`PSm|Wn!csWFO|(VjP+vfl!?UWUvHe zumtEw0y0VG-?NvgVl`%c_<=Pp%U#$BH8&%K%Z;lcg5 z0c;A^L=LWT+C`SR?4kw(j+B5SB|tRe398-oPai(aAL+9N_BU&tcxYxK9!e%WLPI;{^sas700t z#us|lN*SPxWGz4D(;p;zOlp$7tXlYYbq&hrt1?vrjIlcVeGse6dylC`3|OhkfmN!)dzV2futrq^YgHAHDY*9zZ(0Lv zP_@8D=5lXCXX}9zR0D7#+LZq=U1|chs0qMU2isWn@fN$YHv`*|yxxKUw0dtM0k;7s zt4Y8v)edBi=lz@gtU7`0rUUHd#L$1S-&Hqo2M4FA9@fxKS5ts9R4;I*nhKnycJN+j zfz34FY&9LYlbYfE6T|G8z`1G`aGu)Hdrj@^;CwY3{{poWa2GYldsXeK<^mV0dBEM& z&faFVNX-W>Rttc;vljOiwTIdjxI`@k?x}VIE(N{}$yfy3ODzWOt#^#Ko1djStrdwVZ%F5W)C#fJZsFmT!m8sdZ|l_pCZv9S&Tt zjsPCRx0+{|ajXV@MXdoIr;hZVhP)mH{Hj_D{F+(^JOTKWI#C@B{JL5XJV_nnJ*iGs z#{y4LUjd$~j$;M+Y3g|3>FTS%Z>X;U&rm0LPhbdtBJeErb>Ifz#GVq(~ z6z{L^Rj(3^<(ut;HBz3;7`=|fj?E}dk?CgIrwvR z0shO>h2ADO*+sxB)DM8aP(Sqk!l%=Vfmf*?0k2k<0Dq}|?EP8&N?i*4wfYJ0H^2wf zM)gzRZ`IF$*QlR+_p9Hj%YfIa%YoOaD}dLlUwHR1!@ClAqq+)sle*fw7jFJb;2+el zfHwp0QMagH18-Ho0p6xI0&iEp_3l=8sB3_KRKElMNnPvRrS4SM0q;`R1MgNhcy}^; zyb*Y>gOq^(e)W6rPwD~n2jHL8&A`8?Tf9H2P3l(QgX%WmL+WFRMqrKOi|g2HdRv3Vc;P?)@H~{RHrz>Tkf; z)sx;$>J9Z2@L%d_;J+PwQ$6F|sNPb~0{^3)1HP^P?%kl?QO^V4RsR6Kr(W=`M=E&{ zxJA7L{6M`7{7}8(U8g>B@MEo)F;fV*(%Z?*nb-;LTk{YEvb zSfp;d-!hg4>Bh3M9aqfSsQ2d|(?~#l44-W*o4wIi&0e&$qOWX2*@n5xHUo~*=dyU|#%Vf%gdhzfs*jB0#H=0n>s2T7o=ii5+j$ zCoLp1ZWXa238;uw#HeTAEXocy?!0*Ej?^^P*Cdm)2F8^}iZu;PtwV^-cy7ZZ2aGkr z1M}#+ zBx@N+W7H2)^Bd;R4<5CNj~uwkuWf!$k34e!xk&it zcg`X=T|R#nzaBly#q>eR5dToGpBo_*IPy0%{qSe;C+<8M_h@+Xfn5D$!ygW0H6m6J zK6)rkLW@Y0f#)&#Z`9xXiK7M&4UFe9tWSs#|3ChGXqv&IhlTb8X+}#TVe!TqmMHiq zUfj0N267unKHzbYN4%mm@j#Nn+-A*pKLW%jF$U6&4`R70fO6x<&z}!U^~{%Y@V4pB z9$t-9ZKGr?Q6xKgG>a5NUSw8J=lssj`MR@{N)fAE_XG&gGt0%3{DRs@>vZ-AF85F} zb)#4w4!r8b9x`)6i_CWqWg4D z4?lRVg!%DM+&P_uAw`+eWs6)~ndKOCy7>u7$V#SchJ=3;7I%zPB`>98L$--k#1*FVX7=#QGb@4X{+82u;DM}M-tp-9Uken^k( zKjpt6vzssB$1HZ6AA3plGq)S@BlIIb2;V5FMnwOFf9XGR8k&c99WA?s83@0j;lnc- z`^oTlqy6W-74IEpnC|Dj?67nM_6(*a#S37$qF-MgyVnQf5B2$Fc+U&YGLIbidB5TR zO~{`7M$3~{c$15s_FiXp@rC@D&;QSU%viST=iTc)={+MggVreTqyGlCne)2er@g25 zi1(Ub4y`OL{F!k$j{k$NC?kQ|%L>*pfAMnS_c0@m`oR0w$aKu0`T1`<^4X|aeCEJy zbA`HZ1(*N+nX}rC1kmey{Ak_--rq)IJ>y^#JmyYHf0Czna$V2Nao{&dr>Nm3V!i1- zhc4$+e{ouit_lk4MH@yJwP?El{PhUT{|ZpEK^m%`=U8+$*67rX*}kovxXhVo1MNl*BhqkZ|z zKfxVpID(D{pFvV^{B!8DIR6=53|Q;lkM|VmCg8Bc;|%^cm>*PUNV$GGzXT~6EEc*n zEVnVr|J<#MMn?^fzQHKM22?(0kqWYvCjO_kBjw zE$Bs+_cPo*;P{>1ZQf73Z!*R%gFf8lJuaz6|Bc3x$>k;7kg`Xn^=^QIIVyl&PI-^T zF=}MI?fD=5{C542vKb)~b@V!KS0*DO`LgDSz+wM_)lS0wG)_A#QSgu7KYmMs>-5gh zA0fh#ABQu4Lmz;P-$AdwCiGb-H@fFBesQ`!{IOuiC;jNp z7XtZ>oIh*(4vo)SJvFi<8SUgRP-KTUe9VFxZ}Ra5jjI1v@LKrY-+0e|NnG66Gmjw> z=3sfB`kqfxy5oFO@@J*8z6|S^MlHWh4gnVp!X6~#a>u!aXJ6_4Si-$?n6usCeA1sX zUe1B9pW&TMt6$9Ml(*)|=)cih;8Wl8$JEcK4#*9R)dxn;{nJBzdjCoByt`$7`sMt_ z#`7<#JUH$!jzMdkM|<7so%=h@(`opGKu>owkEhY`15{9S=amj ze|cpF`8%m=uu%_DMk3 zwsY3~dCKOE2HrD}cYg>DJ+M7AVI&THp7K9yn$KNk7hiwkznNHM)N<{>H8~zQ=Dn7= zWUX-XQDfBdklMy^B-dYh6(`go1`!7Xup$FMAh{WA&{*TRRd!G7d_`MY#`3-c~SCcj~% zRKLBcKP}!+$r4=s`KQH?KS!T%q4znK z&qC?9#UE*iPn!!4Z>*6cZTQnK{=fe*^>#1t$$b5@yd(Ta_~#9uC5^=W?D+Iq zOW3aXtG6rGmlLVt%gOeWa@`&t^-1YJ=d*mu#cDc1P9a#vSNJ6IN$1j7LuV4!irugr z%GHI{))cIPQ?UPCi0$+u?C*-P!0p2zY9B0CE3s7l0XD!tQa{JG_6AI`R$|+@2{WpP zuxLCQOU6gBef=xfu~;eo2Lr8lbc*`6PSw-Y6&#GTyLyJz;D@W1^lH6YeW2Ituc{CA z27L~dyFlNnt-f8~jiuAQdJ{|BAJQ+dsrgH~U(aWCN=P5duIXXD#$fBGk2JNWNuOg{ zOp89(w3$izd#1y5=4Z z|1g)BOE|ygQu7o2B5PSL(=VGV%oX|-bEWx}-fT9Sjrt99jk!ku%Uo-&)BiR%m|Ivk zb(^_OZ!ve6`}GHAlX=h>^N4xOB$y|;LgpFstVuS{n-@)r*=$}l>E?B=O!FpJmido) z-(;JQxe8eM=9xmPZL%3}Q*4TXliYdZ8pue)pnTKcCzg@JKJ76&Fo_5 z*g0mAoyQuz#df}(Z+5r4*j>yXcA;Hpme@shk=fJkZg)3JZJ*uO^x5V1V6)5~Y7aO2 z+g0{RbFe+m9%okAui6vLO8a$tvRP$MwWpgS?V0vWv(9d?8_dymi``<@+pTu1IYxGq zGsh~Ua~$4Gb9gh|;mtITC~pIMCUMCEigsdja)p_lbzy}+g{u%tzFyKy<;n!BrW0od zS2pvynfPaM<$_T=ViP!O$g83_nb2yjAR{RLY&nm7&Y{geI ziq>!?V=I0nW9cZh7Au~0jE^+z!`HKl;25q9#>la(L--1|;b~ZgA5W^Ua^*12zJ~uq zu6%65zs?GTlenVTgrCf+gHyOlun9kvS@3CGW!QwD&iMQhm%$SIr}V|o7@tXu&l~8A z8yThJ+$b$%ls-gXJj|8p#%iV;tC?=BCSk|>4*l{j*1NKg?*GvvTUlihVJTgTDr5}j z0CRPObEpb*kt)^Wb%~1UQq75UI;PuMUDcsG*;RHjqrIEaz6<_cHNB%3GV<#g`G*m* zLa!iXrC!PI=!ZiKDjY3ng%+$QFe-cui1ovgO6@ilc6BDlg}OcF4YAsxtp3mO@I&SCxCy`PqPp1Gy3nU zS3j>`Ah(zFD}-;>n^lv3RdWE1eob%1#I&E)g2}QfPFbT3`{SD=6H+0eL4=PpY<^~< zhV4mAktxRpxdIF1G@(jBsFI38mD*H>nPeuZETK)n$!0RJ%S<88RI@v|?P2yHpCx9A z%7I$#r}EAIX1OXb2b)#ou*Mt%Jk}hqO3YWyiK@(e-JGn-%_-(o(q3pTR1u+NDkii{ zB|*zBRp~;@@I%W~Hni+Y;#_5}Ql;iJ}QOdZ2OFvX1RK zbDc_n(%nGJ8x2da%uR-4WXuaHtMn02lJ5M_->wDk| zlgX{ib`gh*IK8%4O}10*R5j7=V0TcJcAA~0s)T2#nZh%G@C+b40|?Im!ZU#I3{?%! z*h{t9z3twr!R}-C!N0HF7yoj*TurhE+k;iR@DkMlFIf#-V~->b97VOjQNF60?bqzr z@Sk8$!2fmob^IsUlklHxPsV?$Jr)0H_B2&%Pq(M5I^jCJ7hDGj*HN>C>!=-t>%a{d zc+jyV)-%Z_(CyI4H2fmDOoEcPLi>aRwKxtG=6NT6;XPp}a}R#uKq*k{Y50ZrgdOi` zal9w&cu$MtJ*kfOq&wb|=6Fx0<2@OU_f$IGljV3%x#K-`j`!5Va~8pMgx};iepBx_ zO`GE}&G49IJl&70*>ReB$7z}!r)hMYCf{+IJjZDY9H)smPSfBxO`+p7d5+UGJ5E#T zIL!pdX)Ju^Ncfy^7wfpo1jk)uhuz}{7mi{bN15O_ie;_Q34{w@sdaoMTa@zA3tjcL|+$F4TXT3}d>ty}}l+`gU ztctlG_#jsbJm*pTe`O6z3!LU9@_Cyp>^P0=M;JAWyTw#La3KLALX@!or!3idalnR_`c7nSI53ulnK0<^C)H)szay%g0 z@qlc{1CkvN$aOqmB0S&};v?0<6)rMA01784cbp*1Zg@W-L^wg%@ql#41F{?s2s<87 z>3Bez;{o-K2NXCS(CDat80vqMYIbzL)Y1JsNB0XH-LHq@{|S06v_1r_zf0wryP^2? zj^YDm*hi!sQP-Qk`Ljm0vS({C8 z9K}y{6u-`9*(_*~(EVmd@k<@WuXhx`!BPB1NAa5-#czh(oL0n;rEJLH(QXPp}i#wG?h4$^?gm_J7XyXjkF$H& zJ>V!yEK9{5^{;T$zsXVm3P=5$?0$AXX!k+(AeCqjv4^Pfjt3+;9+2dCK!xK0HI4@q zIUZ2sctDZk0X2>X6geJH<9I-k;{nBv2SkVQfFIi*!>xa6f2!D35gyP<*I6|=At^zQ z4%N(CQ`8}h;~`Ok;i4r-4rC?RCq@^QgsP5;k63fi5$a9{?Mh>LXyQR=_r$1e~N(fgL&<*r^NFtv_&`E?Kw!$aT8%X!6nZ#~-|Qjc#^t zmF8fPgBB>KLCC=`A>LEoI^RLR1@ICgZ6>WDkaq>9Iv90OR$^&dM_{^x84hMTnB`!$ zgEQeZ`M)f?a4BukDuXM7`gr=A2 zTHP!(T+e}eFJ;HN!^n?3c}xF3A-J=0!i7%_?hAQW4mj5bLftp8-}W`o>!+BTo8WoB zd#+8U|38%2r8fn^eR6PL>f+^@ub2(c&5cm9r_5VOiTSo3X==V*X4l$p*z@f#?C_veddh^~P$>z9 zQIwF7$S4Z2!+JO&C1D&-9vLHz;FS&E8{QPg(#n-r%vh4JYs0?}v-V+F*zd!ahsAPU z>KTuBPWasL|XO_7%I?zG`2y|Fo~$H|)RczwMj$E&HB*+rDexVTX2;{Lk%*M}3m_!o50B z9|@U*6N`Ciof2BxBtMkgLD-$c!fsA3Crm722IHkC^G3-EKs`b~ z51mgK<05%h5a(R{;CFKCV65c&(20bU3`==TXdl9arucauLcPS|X)y2IL)|V+hose{ z-ZOBo;{0*q*YT+kR3r4qAt|-IN$5K`>PEO9?@W1@khFjwWs83qYmll% zrWSq8dUXss8qv@kk0kvy* zO*|}N{bIe>b&+KgGn+0YUv#VKXb~B62 zVzWCk=@PT2S!()_NcT4Tn0?JMv!B`D9AFMK2btx_riYkA*@0+>>!m^87usLy#Q(C#w&^+6B0ho?u?s7? zSHQo!bT?$T^RZtEIM5r0N*e@2$uW%L|e%6sANdk@xx6n7&ft%%o%|L;U&D)r$# z21^({$H9E!>Ekt_ES>O2sE8b#6(z@dbQ0Za8rp>UXa<%t|6i_;f?h3Fduo}bFIG$S zI(OeoAMNgYqYX7`SG1uM%NBV=7W-OjSJkz~%aXWMVuZ`<$M^T=U$a;Ra?nR?dlH?l^50{ZM`X6NGxFI8n| z*vrw8SF&48wVh#iv^&`|(9xV@zh%E;&$Zttheb%5Bjsqn7UPiuw#kJQ&7|<<)Dd;0 zCbgr~#UyY57+R~H(N^th7cpx&01ebSd$c{)enq}tFstCpg*}TtNTLsPf*iz`iFV~H z=qlJD0V#j5PiCljJh%1=6;8--_ml)SB;)^a30dx*A%MQ@mp z8KmYev5?DB{E`yVgZxBuc!kQ4|6O|iACf*Nc*=c9C=h)K02x#r@^C-^vz~p>gQ|A*f)W85XoOK6Y0=iL7wto*uilQrZ|}4V5)=Zq^B0t zgO`#NlqctABVi(0d5&Ldo^s0hsJJ$Vd1oIp$KwRwT#gGITqe-=IsZWpE^#4`I{$&r z|A_PN=HR|AL?mR5#!S*a>}uhEw;bo*&Cu7aGT&3*&}HaxMc;Y7o2lMlWv0sZ9@KFG zBTk{2Tgg5lG3FS>d}X*m9gH66R&^#?pI6agu|=NK=_$1rmv)*rL+m=C{Z0K{ zbW`%pAjjznBE*tIX%`?T+=%4xd-Vt6m+J~$sjGCgu3>glCu!l^|N^dtbUHVXvV12VJ~X@DfJ-zxAeF5cl3AT zspI9lnrT`|GiFB_{i9KdQ7M9?ABFymMyE!nNxW+kJ*z0Oh50BrN7`!s=gbT=*mIea zEwBsGVC;`J`Y2{+>+LaM+Skx9oQyU>@GXHHvUrOc{PB5zDzjQ26BdxyZd|fA=Muv9 Qg*sdCOSBq--N{P*KZNstwg3PC literal 0 HcmV?d00001 diff --git a/static/fonts/ubiquity-nova-standard.woff b/static/fonts/ubiquity-nova-standard.woff new file mode 100644 index 0000000000000000000000000000000000000000..0c2691e4352e99afb2390b0cee6734d71d5aa035 GIT binary patch literal 77756 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 EMtAR8XaE2J literal 0 HcmV?d00001 diff --git a/static/index.html b/static/index.html index 53e2f079..0454a982 100644 --- a/static/index.html +++ b/static/index.html @@ -1,9 +1,13 @@ - + - Hello, world! + + + Ubiquity TypeScript Template + -

Hello, world!

+

Ubiquity TypeScript Template

+ diff --git a/static/main.ts b/static/main.ts new file mode 100644 index 00000000..b19bfa7c --- /dev/null +++ b/static/main.ts @@ -0,0 +1,10 @@ +export async function mainModule() { + console.log(`Hello from mainModule`); +} +mainModule() + .then(() => { + console.log("mainModule loaded"); + }) + .catch((error) => { + console.error(error); + }); diff --git a/static/style.css b/static/style.css new file mode 100644 index 00000000..b370696e --- /dev/null +++ b/static/style.css @@ -0,0 +1,14 @@ +body{ + font-family: "Proxima Nova", "Ubiquity Nova", sans-serif; + background-color: #06061aff; + color: #fff; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABYWlDQ1BrQ0dDb2xvclNwYWNlRGlzcGxheVAzAAAokWNgYFJJLCjIYWFgYMjNKykKcndSiIiMUmB/yMAOhLwMYgwKicnFBY4BAT5AJQwwGhV8u8bACKIv64LMOiU1tUm1XsDXYqbw1YuvRJsw1aMArpTU4mQg/QeIU5MLikoYGBhTgGzl8pICELsDyBYpAjoKyJ4DYqdD2BtA7CQI+whYTUiQM5B9A8hWSM5IBJrB+API1klCEk9HYkPtBQFul8zigpzESoUAYwKuJQOUpFaUgGjn/ILKosz0jBIFR2AopSp45iXr6SgYGRiaMzCAwhyi+nMgOCwZxc4gxJrvMzDY7v////9uhJjXfgaGjUCdXDsRYhoWDAyC3AwMJ3YWJBYlgoWYgZgpLY2B4dNyBgbeSAYG4QtAPdHFacZGYHlGHicGBtZ7//9/VmNgYJ/MwPB3wv//vxf9//93MVDzHQaGA3kAFSFl7jXH0fsAAAA4ZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAKgAgAEAAAAAQAAABigAwAEAAAAAQAAABgAAAAAwf1XlwAAACNJREFUSA3t0IEAAAAMBKFHm7/UTaQQWnXDgAEDBgwYMGDgAXaJAz4RVVHYAAAAAElFTkSuQmCC"); +} +@font-face { + font-family: "Ubiquity Nova"; + font-style: normal; + font-weight: 400; + src: url(./fonts/ubiquity-nova-standard.eot); + src: url(./fonts/ubiquity-nova-standard.eot#iefix) format("embedded-opentype"), url(./fonts/ubiquity-nova-standard.woff) format("woff"), + url(./fonts/ubiquity-nova-standard.ttf) format("truetype"); +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index cf712cb8..e075f973 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,10 +11,10 @@ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ /* Language and Environment */ - "target": "ESNext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ @@ -25,9 +25,9 @@ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ - "module": "commonjs" /* Specify what module code is generated. */, + "module": "commonjs", /* Specify what module code is generated. */ // "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ @@ -35,7 +35,12 @@ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - "resolveJsonModule": true /* Enable importing .json files. */, + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ @@ -48,6 +53,7 @@ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ @@ -57,7 +63,6 @@ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ @@ -70,13 +75,14 @@ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ - "strict": true /* Enable all strict type-checking options. */, + "strict": true, /* Enable all strict type-checking options. */ // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ @@ -98,6 +104,6 @@ /* Completeness */ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ } } diff --git a/yarn.lock b/yarn.lock index 03dc98a6..8662eba1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13,41 +13,42 @@ __metadata: linkType: hard "@babel/code-frame@npm:^7.0.0": - version: 7.22.5 - resolution: "@babel/code-frame@npm:7.22.5" + version: 7.23.4 + resolution: "@babel/code-frame@npm:7.23.4" dependencies: - "@babel/highlight": ^7.22.5 - checksum: cfe804f518f53faaf9a1d3e0f9f74127ab9a004912c3a16fda07fb6a633393ecb9918a053cb71804204c1b7ec3d49e1699604715e2cfb0c9f7bc4933d324ebb6 + "@babel/highlight": ^7.23.4 + chalk: ^2.4.2 + checksum: 29999d08c3dbd803f3c296dae7f4f40af1f9e381d6bbc76e5a75327c4b8b023bcb2e209843d292f5d71c3b5c845df1da959d415ed862d6a68e0ad6c5c9622d37 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-validator-identifier@npm:7.22.5" - checksum: 7f0f30113474a28298c12161763b49de5018732290ca4de13cdaefd4fd0d635a6fe3f6686c37a02905fb1e64f21a5ee2b55140cf7b070e729f1bd66866506aea +"@babel/helper-validator-identifier@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc languageName: node linkType: hard -"@babel/highlight@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/highlight@npm:7.22.5" +"@babel/highlight@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/highlight@npm:7.23.4" dependencies: - "@babel/helper-validator-identifier": ^7.22.5 - chalk: ^2.0.0 + "@babel/helper-validator-identifier": ^7.22.20 + chalk: ^2.4.2 js-tokens: ^4.0.0 - checksum: f61ae6de6ee0ea8d9b5bcf2a532faec5ab0a1dc0f7c640e5047fc61630a0edb88b18d8c92eb06566d30da7a27db841aca11820ecd3ebe9ce514c9350fbed39c4 + checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89 languageName: node linkType: hard -"@commitlint/cli@npm:^17.6.6": - version: 17.6.6 - resolution: "@commitlint/cli@npm:17.6.6" +"@commitlint/cli@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/cli@npm:18.4.3" dependencies: - "@commitlint/format": ^17.4.4 - "@commitlint/lint": ^17.6.6 - "@commitlint/load": ^17.5.0 - "@commitlint/read": ^17.5.1 - "@commitlint/types": ^17.4.4 + "@commitlint/format": ^18.4.3 + "@commitlint/lint": ^18.4.3 + "@commitlint/load": ^18.4.3 + "@commitlint/read": ^18.4.3 + "@commitlint/types": ^18.4.3 execa: ^5.0.0 lodash.isfunction: ^3.0.9 resolve-from: 5.0.0 @@ -55,381 +56,521 @@ __metadata: yargs: ^17.0.0 bin: commitlint: cli.js - checksum: 91c2d06bc181cb286634d963e28c71739642a94252dcf2bcd800dd3ac1d8708d8ccd195aa513a65df00fcde281a128ed763ac51f640771a11140930c5f259df8 + checksum: 903b0db897ae9836aa9190da4bacb26d3f8b9621602f5810ee7cca1cac3c339a16671bec1a4e3a414dc226b57687096f84cae2ed50faac6d1814a4b582d663e2 languageName: node linkType: hard -"@commitlint/config-conventional@npm:^17.6.6": - version: 17.6.6 - resolution: "@commitlint/config-conventional@npm:17.6.6" +"@commitlint/config-conventional@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/config-conventional@npm:18.4.3" dependencies: - conventional-changelog-conventionalcommits: ^5.0.0 - checksum: 0f649a2cbe684aa18555cb0027c21f58d74216dbe0a850be041af50f1db04e447b7d90995bee54c61059d735b398de61ac7ecbfd312d14480aac3a3f8c62dd66 + conventional-changelog-conventionalcommits: ^7.0.2 + checksum: bb6c1559979002e79c5e7c575f57fd713638523cdadfa61754eaabb8aad042d688c859e82ccf58589bb9aa2a4497e820702744095c9b82f6018fbb3b5d75d08d languageName: node linkType: hard -"@commitlint/config-validator@npm:^17.4.4": - version: 17.4.4 - resolution: "@commitlint/config-validator@npm:17.4.4" +"@commitlint/config-validator@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/config-validator@npm:18.4.3" dependencies: - "@commitlint/types": ^17.4.4 + "@commitlint/types": ^18.4.3 ajv: ^8.11.0 - checksum: 71ee818608ed5c74832cdd63531c0f61b21758fba9f8b876205485ece4f047c9582bc3f323a20a5de700e3451296614d15448437270a82194eff7d71317b47ff + checksum: e56aa321aa4f680ed78822f974e724e27c005c6c6b910ff59c3a2b0220c97ff4291e316674637ec28da6f8234952e2d20673d9851e049913474e8f24b4e2d376 languageName: node linkType: hard -"@commitlint/ensure@npm:^17.4.4": - version: 17.4.4 - resolution: "@commitlint/ensure@npm:17.4.4" +"@commitlint/ensure@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/ensure@npm:18.4.3" dependencies: - "@commitlint/types": ^17.4.4 + "@commitlint/types": ^18.4.3 lodash.camelcase: ^4.3.0 lodash.kebabcase: ^4.1.1 lodash.snakecase: ^4.1.1 lodash.startcase: ^4.4.0 lodash.upperfirst: ^4.3.1 - checksum: c21c189f22d8d3265e93256d101b72ef7cbdf8660438081799b9a4a8bd47d33133f250bbed858ab9bcc0d249d1c95ac58eddd9e5b46314d64ff049d0479d0d71 + checksum: 5c8c437ffef5b0d241a02d1c8967324765429d27e2ae882feb4fc96f53472e4c8d6ea6d86a64da7c97dd7efac07bc1f1c2a8babc1bbb56db48152a4f26f2ba69 languageName: node linkType: hard -"@commitlint/execute-rule@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/execute-rule@npm:17.4.0" - checksum: 17d8e56ab00bd45fdecb0ed33186d2020ce261250d6a516204b6509610b75af8c930e7226b1111af3de298db32a7e4d0ba2c9cc7ed67db5ba5159eeed634f067 +"@commitlint/execute-rule@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/execute-rule@npm:18.4.3" + checksum: 0f0e99e2f079872efe39915313f7d353a36dfac4432bb74ac60a526ca3c9b7bb55365a2e4627f99f4be3fb8ac4c6e745adcacfbdcbf940418f101ffaa10d5ae3 languageName: node linkType: hard -"@commitlint/format@npm:^17.4.4": - version: 17.4.4 - resolution: "@commitlint/format@npm:17.4.4" +"@commitlint/format@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/format@npm:18.4.3" dependencies: - "@commitlint/types": ^17.4.4 + "@commitlint/types": ^18.4.3 chalk: ^4.1.0 - checksum: 832d9641129f2da8d32389b4a47db59d41eb1adfab742723972cad64b833c4af9e253f96757b27664fedae61644dd4c01d21f775773b45b604bd7f93b23a27d2 + checksum: 244515c99e60ce1e2c4106ee076554a082ab3655225c59c2bb4fab412f47e1d5e44c5e72a9b8907996eb947243f913347d20640a8da9c01b52e4cf247f1a9f94 languageName: node linkType: hard -"@commitlint/is-ignored@npm:^17.6.6": - version: 17.6.6 - resolution: "@commitlint/is-ignored@npm:17.6.6" +"@commitlint/is-ignored@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/is-ignored@npm:18.4.3" dependencies: - "@commitlint/types": ^17.4.4 - semver: 7.5.2 - checksum: ff5f8816765b3f2e9f16de32b1166dd099ab23793212bf4092203441fe3d9f282c80ed96cca5cd42b0ea96d899f8989bdaa6604a3f02bf4bd36b8c7c123968df + "@commitlint/types": ^18.4.3 + semver: 7.5.4 + checksum: 01fd386bea9634dc7cee2a3f8f9916f4dabf9d3043d838b8ea3328ec622a777c4c637f4a80b639289e38429496535561cc7398b36e880b73fcc819d4f1427fb9 languageName: node linkType: hard -"@commitlint/lint@npm:^17.6.6": - version: 17.6.6 - resolution: "@commitlint/lint@npm:17.6.6" +"@commitlint/lint@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/lint@npm:18.4.3" dependencies: - "@commitlint/is-ignored": ^17.6.6 - "@commitlint/parse": ^17.6.5 - "@commitlint/rules": ^17.6.5 - "@commitlint/types": ^17.4.4 - checksum: 8601cbfe037edd4aff38cf3929444e748499558dfb01a12f1e6067fb4496926711936cbd389cf792f5e3ea6b6900c6967ca5b56dc0555d75c71340ceddc6d076 + "@commitlint/is-ignored": ^18.4.3 + "@commitlint/parse": ^18.4.3 + "@commitlint/rules": ^18.4.3 + "@commitlint/types": ^18.4.3 + checksum: dd1e0ad437ab62b5f5b562aef7862f6f1c7cc278c0ae2575923a3b1b2b4594a04bcf9573d279c5a1ae1a92378778bb34f485adb9f927eb718dafb40457b0bc19 languageName: node linkType: hard -"@commitlint/load@npm:^17.5.0": - version: 17.5.0 - resolution: "@commitlint/load@npm:17.5.0" +"@commitlint/load@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/load@npm:18.4.3" dependencies: - "@commitlint/config-validator": ^17.4.4 - "@commitlint/execute-rule": ^17.4.0 - "@commitlint/resolve-extends": ^17.4.4 - "@commitlint/types": ^17.4.4 - "@types/node": "*" + "@commitlint/config-validator": ^18.4.3 + "@commitlint/execute-rule": ^18.4.3 + "@commitlint/resolve-extends": ^18.4.3 + "@commitlint/types": ^18.4.3 + "@types/node": ^18.11.9 chalk: ^4.1.0 - cosmiconfig: ^8.0.0 - cosmiconfig-typescript-loader: ^4.0.0 + cosmiconfig: ^8.3.6 + cosmiconfig-typescript-loader: ^5.0.0 lodash.isplainobject: ^4.0.6 lodash.merge: ^4.6.2 lodash.uniq: ^4.5.0 resolve-from: ^5.0.0 - ts-node: ^10.8.1 - typescript: ^4.6.4 || ^5.0.0 - checksum: c039114b0ad67bb9d8b05ec635d847bd5ab760528f0fb203411f433585bdab5472f4f5c7856dfc417cf64c05576f54c1afc4997a813f529304e0156bfc1d6cc8 + checksum: 8fb8652f00f739c75493d3c805d5cc09e5bef8398eff26b9fbfd8d2be2b6a47758bab72650a3ab5202427c9e1936ea36270c40aca39f87fade38c7293194ee21 languageName: node linkType: hard -"@commitlint/message@npm:^17.4.2": - version: 17.4.2 - resolution: "@commitlint/message@npm:17.4.2" - checksum: 55b6cfeb57f7c9f913e18821aa4d972a6b6faa78c62741390996151f99554396f6df68ccfee86c163d24d8c27a4dbbcb50ef03c2972ab0a7a21d89daa2f9a519 +"@commitlint/message@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/message@npm:18.4.3" + checksum: b81d59f5a295d0cffbab0edd212b1fa4cdd4fd05cc242bc95d6919c038be9d7022db2d6c0d8132c2910ee409cdce5ce6e472e12ac9bb2d3f6acb7a3db7bbeb99 languageName: node linkType: hard -"@commitlint/parse@npm:^17.6.5": - version: 17.6.5 - resolution: "@commitlint/parse@npm:17.6.5" +"@commitlint/parse@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/parse@npm:18.4.3" dependencies: - "@commitlint/types": ^17.4.4 - conventional-changelog-angular: ^5.0.11 - conventional-commits-parser: ^3.2.2 - checksum: 579dd7b25d2b5a73817318259f4ce1191657fad8736047bcd84e2709bbe9bcb7458cbe66b6dc785e372c1c73a4563050027b94746ad0df16a89d90960a685517 + "@commitlint/types": ^18.4.3 + conventional-changelog-angular: ^7.0.0 + conventional-commits-parser: ^5.0.0 + checksum: 696c60ecee20f9bfb5e19715ae777aca8e86b133ef709a66171c228b4f618ef15ba515e11274c46ff13df964ba69ab1ddec4055ddce1bc0a69f70b6d2301ccd5 languageName: node linkType: hard -"@commitlint/read@npm:^17.5.1": - version: 17.5.1 - resolution: "@commitlint/read@npm:17.5.1" +"@commitlint/read@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/read@npm:18.4.3" dependencies: - "@commitlint/top-level": ^17.4.0 - "@commitlint/types": ^17.4.4 + "@commitlint/top-level": ^18.4.3 + "@commitlint/types": ^18.4.3 fs-extra: ^11.0.0 git-raw-commits: ^2.0.11 minimist: ^1.2.6 - checksum: 62ee4f7a47b22a8571ae313bca36b418805a248f4986557f38f06317c44b6d18072889f95e7bc22bbb33a2f2b08236f74596ff28e3dbd0894249477a9df367c3 + checksum: ebc815effe4920c769f879947608c367b452f334d9a8e8c3140b7685920bb4ba092d36c5416781522c2e50178a4b91092c5661044c13a0d62dace60091f39706 languageName: node linkType: hard -"@commitlint/resolve-extends@npm:^17.4.4": - version: 17.4.4 - resolution: "@commitlint/resolve-extends@npm:17.4.4" +"@commitlint/resolve-extends@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/resolve-extends@npm:18.4.3" dependencies: - "@commitlint/config-validator": ^17.4.4 - "@commitlint/types": ^17.4.4 + "@commitlint/config-validator": ^18.4.3 + "@commitlint/types": ^18.4.3 import-fresh: ^3.0.0 lodash.mergewith: ^4.6.2 resolve-from: ^5.0.0 resolve-global: ^1.0.0 - checksum: d7bf1ff1ad3db8750421b252d79cf7b96cf07d72cad8cc3f73c1363a8e68c0afde611d38ae6f213bbb54e3248160c6b9425578f3d0f8f790e84aea811d748b3e + checksum: ef321ae425385e720763019a1dcf39b5daf65a661f6af43d69b7aad04eda21ce43487c7552b65f5611c96b45bfefabe63c9eaef20352f223812b5c9d489a600a languageName: node linkType: hard -"@commitlint/rules@npm:^17.6.5": - version: 17.6.5 - resolution: "@commitlint/rules@npm:17.6.5" +"@commitlint/rules@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/rules@npm:18.4.3" dependencies: - "@commitlint/ensure": ^17.4.4 - "@commitlint/message": ^17.4.2 - "@commitlint/to-lines": ^17.4.0 - "@commitlint/types": ^17.4.4 + "@commitlint/ensure": ^18.4.3 + "@commitlint/message": ^18.4.3 + "@commitlint/to-lines": ^18.4.3 + "@commitlint/types": ^18.4.3 execa: ^5.0.0 - checksum: 7f62c594153df5daf15bf66254f8abd72f14f3f0e7bac91d0fc8229c357616a9d852b2dd050a15b3de83366a732a3363ec405d453d48b81cbaeccdd7013cb59f + checksum: 857c66c1e4d2d24bb3f07a16576626ac27d103ff589afe59ea36d84276c62bd49005ed2e81f43cb430bbd29eb86eb23ebbfec9c58796654249f0064802b9eb62 languageName: node linkType: hard -"@commitlint/to-lines@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/to-lines@npm:17.4.0" - checksum: 841f90f606238e145ab4ba02940662d511fc04fe553619900152a8542170fe664031b95d820ffaeb8864d4851344278e662ef29637d763fc19fd828e0f8d139b +"@commitlint/to-lines@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/to-lines@npm:18.4.3" + checksum: c9d47868284168fbe94764a2abe3526010bd2d43fa9a7ac3946648408998efc1279827299346042d019120eb8f5692cc5a5c12159f8da49585e4c885c2e628a6 languageName: node linkType: hard -"@commitlint/top-level@npm:^17.4.0": - version: 17.4.0 - resolution: "@commitlint/top-level@npm:17.4.0" +"@commitlint/top-level@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/top-level@npm:18.4.3" dependencies: find-up: ^5.0.0 - checksum: 14cd77e982d2dd7989718dafdbf7a2168a5fb387005e0686c2dfa9ffc36bb9a749e5d80a151884459e4d8c88564339688dca26e9c711abe043beeb3f30c3dfd6 + checksum: b71581c9c485c2ca518b20021ed8d106ea6cd504453c9bed1436df2a620caec78a38bed1e3e8086c51e8b747a7ba6515569275ef29a6707349db6614cda70940 languageName: node linkType: hard -"@commitlint/types@npm:^17.4.4": - version: 17.4.4 - resolution: "@commitlint/types@npm:17.4.4" +"@commitlint/types@npm:^18.4.3": + version: 18.4.3 + resolution: "@commitlint/types@npm:18.4.3" dependencies: chalk: ^4.1.0 - checksum: 03c52429052d161710896d198000196bd2e60be0fd71459b22133dd83dee43e8d05ea8ee703c8369823bc40f77a54881b80d8aa4368ac52aea7f30fb234b73d2 + checksum: 52dfc0ee835f3030fff25e45b4568e83eef818126a30f60860637c74de4919c5f9f1eab157622bb70facf9483f07898cfcb47efa484caf6443dd866942e460ec + languageName: node + linkType: hard + +"@ericcornelissen/bash-parser@npm:0.5.2": + version: 0.5.2 + resolution: "@ericcornelissen/bash-parser@npm:0.5.2" + dependencies: + array-last: ^1.1.1 + babylon: ^6.9.1 + compose-function: ^3.0.3 + deep-freeze: 0.0.1 + filter-iterator: 0.0.1 + filter-obj: ^1.1.0 + has-own-property: ^0.1.0 + identity-function: ^1.0.0 + is-iterable: ^1.1.0 + iterable-lookahead: ^1.0.0 + lodash.curry: ^4.1.1 + magic-string: ^0.16.0 + map-obj: ^2.0.0 + object-pairs: ^0.1.0 + object-values: ^1.0.0 + reverse-arguments: ^1.0.0 + shell-quote-word: ^1.0.1 + to-pascal-case: ^1.0.0 + unescape-js: ^1.0.5 + checksum: ed6feb775a45e529e36b8ab01cfe2ba39446d8403f30022d4c00f009a45ae47e9c2fd43d5607b7120366c29c42aaf4c5b0bc202066e71d543f3cde235240a87b + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-arm64@npm:0.18.20" + conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@cspotcode/source-map-support@npm:^0.8.0": - version: 0.8.1 - resolution: "@cspotcode/source-map-support@npm:0.8.1" - dependencies: - "@jridgewell/trace-mapping": 0.3.9 - checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa +"@esbuild/android-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/android-arm64@npm:0.19.8" + conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild-kit/cjs-loader@npm:^2.4.2": - version: 2.4.2 - resolution: "@esbuild-kit/cjs-loader@npm:2.4.2" - dependencies: - "@esbuild-kit/core-utils": ^3.0.0 - get-tsconfig: ^4.4.0 - checksum: e346e339bfc7eff5c52c270fd0ec06a7f2341b624adfb69f84b7d83f119c35070420906f2761a0b4604e0a0ec90e35eaf12544585476c428ed6d6ee3b250c0fe +"@esbuild/android-arm@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-arm@npm:0.18.20" + conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild-kit/core-utils@npm:^3.0.0": - version: 3.1.0 - resolution: "@esbuild-kit/core-utils@npm:3.1.0" - dependencies: - esbuild: ~0.17.6 - source-map-support: ^0.5.21 - checksum: d54fd5adb3ce6784d84bb025ad54ddcfbab99267071a7f65298e547f56696f0b9d0dba96c535f9678a30d4887ec71cd445fdd277d65fbec1f3b504f6808f693e +"@esbuild/android-arm@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/android-arm@npm:0.19.8" + conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild-kit/esm-loader@npm:^2.5.5": - version: 2.5.5 - resolution: "@esbuild-kit/esm-loader@npm:2.5.5" - dependencies: - "@esbuild-kit/core-utils": ^3.0.0 - get-tsconfig: ^4.4.0 - checksum: 9d4a03ffc937fbec75a8456c3d45d7cdb1a65768416791a5720081753502bc9f485ba27942a46f564b12483b140a8a46c12433a4496430d93e4513e430484ec7 +"@esbuild/android-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-x64@npm:0.18.20" + conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/android-arm64@npm:0.17.19" - conditions: os=android & cpu=arm64 +"@esbuild/android-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/android-x64@npm:0.19.8" + conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/android-arm@npm:0.17.19" - conditions: os=android & cpu=arm +"@esbuild/darwin-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/darwin-arm64@npm:0.18.20" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/android-x64@npm:0.17.19" - conditions: os=android & cpu=x64 +"@esbuild/darwin-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/darwin-arm64@npm:0.19.8" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/darwin-arm64@npm:0.17.19" - conditions: os=darwin & cpu=arm64 +"@esbuild/darwin-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/darwin-x64@npm:0.18.20" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/darwin-x64@npm:0.17.19" +"@esbuild/darwin-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/darwin-x64@npm:0.19.8" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/freebsd-arm64@npm:0.17.19" +"@esbuild/freebsd-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/freebsd-arm64@npm:0.18.20" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/freebsd-arm64@npm:0.19.8" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/freebsd-x64@npm:0.17.19" +"@esbuild/freebsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/freebsd-x64@npm:0.18.20" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-arm64@npm:0.17.19" +"@esbuild/freebsd-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/freebsd-x64@npm:0.19.8" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-arm64@npm:0.18.20" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-arm@npm:0.17.19" +"@esbuild/linux-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-arm64@npm:0.19.8" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-arm@npm:0.18.20" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-arm@npm:0.19.8" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-ia32@npm:0.17.19" +"@esbuild/linux-ia32@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-ia32@npm:0.18.20" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-loong64@npm:0.17.19" +"@esbuild/linux-ia32@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-ia32@npm:0.19.8" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-loong64@npm:0.18.20" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-loong64@npm:0.19.8" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-mips64el@npm:0.17.19" +"@esbuild/linux-mips64el@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-mips64el@npm:0.18.20" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-mips64el@npm:0.19.8" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-ppc64@npm:0.17.19" +"@esbuild/linux-ppc64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-ppc64@npm:0.18.20" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-ppc64@npm:0.19.8" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-riscv64@npm:0.17.19" +"@esbuild/linux-riscv64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-riscv64@npm:0.18.20" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-riscv64@npm:0.19.8" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-s390x@npm:0.17.19" +"@esbuild/linux-s390x@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-s390x@npm:0.18.20" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-x64@npm:0.17.19" +"@esbuild/linux-s390x@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-s390x@npm:0.19.8" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-x64@npm:0.18.20" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/netbsd-x64@npm:0.17.19" +"@esbuild/linux-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-x64@npm:0.19.8" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/netbsd-x64@npm:0.18.20" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/netbsd-x64@npm:0.19.8" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/openbsd-x64@npm:0.17.19" +"@esbuild/openbsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/openbsd-x64@npm:0.18.20" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/sunos-x64@npm:0.17.19" +"@esbuild/openbsd-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/openbsd-x64@npm:0.19.8" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/sunos-x64@npm:0.18.20" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/sunos-x64@npm:0.19.8" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/win32-arm64@npm:0.17.19" +"@esbuild/win32-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-arm64@npm:0.18.20" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/win32-ia32@npm:0.17.19" +"@esbuild/win32-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/win32-arm64@npm:0.19.8" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-ia32@npm:0.18.20" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/win32-x64@npm:0.17.19" +"@esbuild/win32-ia32@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/win32-ia32@npm:0.19.8" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-x64@npm:0.18.20" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0": +"@esbuild/win32-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/win32-x64@npm:0.19.8" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: @@ -440,45 +581,45 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0": - version: 4.5.1 - resolution: "@eslint-community/regexpp@npm:4.5.1" - checksum: 6d901166d64998d591fab4db1c2f872981ccd5f6fe066a1ad0a93d4e11855ecae6bfb76660869a469563e8882d4307228cebd41142adb409d182f2966771e57e +"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": + version: 4.10.0 + resolution: "@eslint-community/regexpp@npm:4.10.0" + checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.0.3": - version: 2.0.3 - resolution: "@eslint/eslintrc@npm:2.0.3" +"@eslint/eslintrc@npm:^2.1.3": + version: 2.1.3 + resolution: "@eslint/eslintrc@npm:2.1.3" dependencies: ajv: ^6.12.4 debug: ^4.3.2 - espree: ^9.5.2 + espree: ^9.6.0 globals: ^13.19.0 ignore: ^5.2.0 import-fresh: ^3.2.1 js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: ddc51f25f8524d8231db9c9bf03177e503d941a332e8d5ce3b10b09241be4d5584a378a529a27a527586bfbccf3031ae539eb891352033c340b012b4d0c81d92 + checksum: 5c6c3878192fe0ddffa9aff08b4e2f3bcc8f1c10d6449b7295a5f58b662019896deabfc19890455ffd7e60a5bd28d25d0eaefb2f78b2d230aae3879af92b89e5 languageName: node linkType: hard -"@eslint/js@npm:8.43.0": - version: 8.43.0 - resolution: "@eslint/js@npm:8.43.0" - checksum: 580487a09c82ac169744d36e4af77bc4f582c9a37749d1e9481eb93626c8f3991b2390c6e4e69e5642e3b6e870912b839229a0e23594fae348156ea5a8ed7e2e +"@eslint/js@npm:8.54.0": + version: 8.54.0 + resolution: "@eslint/js@npm:8.54.0" + checksum: 6d88a6f711ef0133566b5340e3178a178fbb297585766460f195d0a9db85688f1e5cf8559fd5748aeb3131e2096c66595b323d8edab22df015acda68f1ebde92 languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.10": - version: 0.11.10 - resolution: "@humanwhocodes/config-array@npm:0.11.10" +"@humanwhocodes/config-array@npm:^0.11.13": + version: 0.11.13 + resolution: "@humanwhocodes/config-array@npm:0.11.13" dependencies: - "@humanwhocodes/object-schema": ^1.2.1 + "@humanwhocodes/object-schema": ^2.0.1 debug: ^4.1.1 minimatch: ^3.0.5 - checksum: 1b1302e2403d0e35bc43e66d67a2b36b0ad1119efc704b5faff68c41f791a052355b010fb2d27ef022670f550de24cd6d08d5ecf0821c16326b7dcd0ee5d5d8a + checksum: f8ea57b0d7ed7f2d64cd3944654976829d9da91c04d9c860e18804729a33f7681f78166ef4c761850b8c324d362f7d53f14c5c44907a6b38b32c703ff85e4805 languageName: node linkType: hard @@ -489,10 +630,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^1.2.1": - version: 1.2.1 - resolution: "@humanwhocodes/object-schema@npm:1.2.1" - checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1 +"@humanwhocodes/object-schema@npm:^2.0.1": + version: 2.0.1 + resolution: "@humanwhocodes/object-schema@npm:2.0.1" + checksum: 24929487b1ed48795d2f08346a0116cc5ee4634848bce64161fb947109352c562310fd159fc64dda0e8b853307f5794605191a9547f7341158559ca3c8262a45 languageName: node linkType: hard @@ -510,30 +651,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:^3.0.3": - version: 3.1.1 - resolution: "@jridgewell/resolve-uri@npm:3.1.1" - checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.10": - version: 1.4.15 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:0.3.9": - version: 0.3.9 - resolution: "@jridgewell/trace-mapping@npm:0.3.9" - dependencies: - "@jridgewell/resolve-uri": ^3.0.3 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef - languageName: node - linkType: hard - "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -561,6 +678,19 @@ __metadata: languageName: node linkType: hard +"@npmcli/agent@npm:^2.0.0": + version: 2.2.0 + resolution: "@npmcli/agent@npm:2.2.0" + dependencies: + agent-base: ^7.1.0 + http-proxy-agent: ^7.0.0 + https-proxy-agent: ^7.0.1 + lru-cache: ^10.0.1 + socks-proxy-agent: ^8.0.1 + checksum: 3b25312edbdfaa4089af28e2d423b6f19838b945e47765b0c8174c1395c79d43c3ad6d23cb364b43f59fd3acb02c93e3b493f72ddbe3dfea04c86843a7311fc4 + languageName: node + linkType: hard + "@npmcli/fs@npm:^3.1.0": version: 3.1.0 resolution: "@npmcli/fs@npm:3.1.0" @@ -570,205 +700,379 @@ __metadata: languageName: node linkType: hard -"@pkgjs/parseargs@npm:^0.11.0": +"@npmcli/map-workspaces@npm:3.0.4": + version: 3.0.4 + resolution: "@npmcli/map-workspaces@npm:3.0.4" + dependencies: + "@npmcli/name-from-folder": ^2.0.0 + glob: ^10.2.2 + minimatch: ^9.0.0 + read-package-json-fast: ^3.0.0 + checksum: 99607dbc502b16d0ce7a47a81ccc496b3f5ed10df4e61e61a505929de12c356092996044174ae0cfd6d8cc177ef3b597eef4987b674fc0c5a306d3a8cc1fe91a + languageName: node + linkType: hard + +"@npmcli/name-from-folder@npm:^2.0.0": + version: 2.0.0 + resolution: "@npmcli/name-from-folder@npm:2.0.0" + checksum: fb3ef891aa57315fb6171866847f298577c8bda98a028e93e458048477133e142b4eb45ce9f3b80454f7c257612cb01754ee782d608507698dd712164436f5bd + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:0.11.0, @pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f languageName: node linkType: hard -"@tootallnate/once@npm:2": - version: 2.0.0 - resolution: "@tootallnate/once@npm:2.0.0" - checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 +"@pnpm/constants@npm:7.1.1": + version: 7.1.1 + resolution: "@pnpm/constants@npm:7.1.1" + checksum: a8b6a8c633ba2099ee844a3dd7934352a2135872e86f8fe497d599837b8be7eac374839598b70030e63cb3a32f945e881d6c0e1542f0be2b74ec52d78f891649 languageName: node linkType: hard -"@tsconfig/node10@npm:^1.0.7": - version: 1.0.9 - resolution: "@tsconfig/node10@npm:1.0.9" - checksum: a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df +"@pnpm/core-loggers@npm:9.0.4": + version: 9.0.4 + resolution: "@pnpm/core-loggers@npm:9.0.4" + dependencies: + "@pnpm/types": 9.4.0 + peerDependencies: + "@pnpm/logger": ^5.0.0 + checksum: 0271da88cba0e8c8f17a01f63b12d617b58e780f2d16f8989a44fbe0eef6cfb4e1b6b8dd2d2ed84f9dc5c7434eba9fb4c44eaf1e34a155e9d2843d7a950d6db9 languageName: node linkType: hard -"@tsconfig/node12@npm:^1.0.7": - version: 1.0.11 - resolution: "@tsconfig/node12@npm:1.0.11" - checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a +"@pnpm/error@npm:5.0.2": + version: 5.0.2 + resolution: "@pnpm/error@npm:5.0.2" + dependencies: + "@pnpm/constants": 7.1.1 + checksum: 490e90b3a6fa6527a5a2b07dfd46982e005d8834036871a30cf03fcb389497b9828ed01c0d39e88b6352a340556de316eae9dbefcb3246f368815a03241576e6 languageName: node linkType: hard -"@tsconfig/node14@npm:^1.0.0": - version: 1.0.3 - resolution: "@tsconfig/node14@npm:1.0.3" - checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d +"@pnpm/fetching-types@npm:5.0.0": + version: 5.0.0 + resolution: "@pnpm/fetching-types@npm:5.0.0" + dependencies: + "@zkochan/retry": ^0.2.0 + node-fetch: 3.0.0-beta.9 + checksum: 845c1597be6246f484477c3badce5573a1ab35c741f59e297813faf195d07e4c03ca871beb10d614a987a4dff78bd72265c0bd56c40cbf941e416b1f3ea6231c languageName: node linkType: hard -"@tsconfig/node16@npm:^1.0.2": - version: 1.0.4 - resolution: "@tsconfig/node16@npm:1.0.4" - checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff +"@pnpm/graceful-fs@npm:3.2.0": + version: 3.2.0 + resolution: "@pnpm/graceful-fs@npm:3.2.0" + dependencies: + graceful-fs: ^4.2.11 + checksum: b31bad77530101d27044d2d712ecf09684398cc72311fbb079675f393219fff002a9ab8e3ea91014e79f1586a861a100ac9b4881d72156383aca6e85cf9855be + languageName: node + linkType: hard + +"@pnpm/logger@npm:5.0.0": + version: 5.0.0 + resolution: "@pnpm/logger@npm:5.0.0" + dependencies: + bole: ^5.0.0 + ndjson: ^2.0.0 + checksum: 6ea91cb3a539351371147b6f051489a01630538327bb3773105e91b9b35ec689b6fc1d112d484726deffe6953b738318e1a86205362baf9fb49fad27084b8f74 + languageName: node + linkType: hard + +"@pnpm/npm-package-arg@npm:^1.0.0": + version: 1.0.0 + resolution: "@pnpm/npm-package-arg@npm:1.0.0" + dependencies: + hosted-git-info: ^4.0.1 + semver: ^7.3.5 + validate-npm-package-name: ^4.0.0 + checksum: e3dbcb605b6c86e0d29854aab00af086fd922211c9c2ed4f4923a70947c10d563b5e9adc8441d7ec0a23d074edb9cd1f0c334b506c4ecc549b07b60700f3639a + languageName: node + linkType: hard + +"@pnpm/npm-resolver@npm:18.0.0": + version: 18.0.0 + resolution: "@pnpm/npm-resolver@npm:18.0.0" + dependencies: + "@pnpm/core-loggers": 9.0.4 + "@pnpm/error": 5.0.2 + "@pnpm/fetching-types": 5.0.0 + "@pnpm/graceful-fs": 3.2.0 + "@pnpm/resolve-workspace-range": 5.0.1 + "@pnpm/resolver-base": 11.0.0 + "@pnpm/types": 9.4.0 + "@zkochan/retry": ^0.2.0 + encode-registry: ^3.0.1 + load-json-file: ^6.2.0 + lru-cache: ^10.0.1 + normalize-path: ^3.0.0 + p-limit: ^3.1.0 + p-memoize: 4.0.1 + parse-npm-tarball-url: ^3.0.0 + path-temp: ^2.1.0 + ramda: "npm:@pnpm/ramda@0.28.1" + rename-overwrite: ^4.0.4 + semver: ^7.5.4 + ssri: 10.0.5 + version-selector-type: ^3.0.0 + peerDependencies: + "@pnpm/logger": ^5.0.0 + checksum: a35fbc34f924a00b00d0987c1f0be876b511cff1840c9cc6d925cd4f7d52db796b14b9acc88f2d367aca3eec858dd345befffb7b711f75c6a478b33a0d1b447f + languageName: node + linkType: hard + +"@pnpm/resolve-workspace-range@npm:5.0.1": + version: 5.0.1 + resolution: "@pnpm/resolve-workspace-range@npm:5.0.1" + dependencies: + semver: ^7.4.0 + checksum: 4c6a853b1f6d8030e5458d1d88891932e209ed35daa3032919802e6005a4beca5fa31ffd2769be1353a9f0367971afebd51493ab187ac675a73a35640a82aaa1 + languageName: node + linkType: hard + +"@pnpm/resolver-base@npm:11.0.0": + version: 11.0.0 + resolution: "@pnpm/resolver-base@npm:11.0.0" + dependencies: + "@pnpm/types": 9.4.0 + checksum: 1dd99524bba0aa502d77469cb0f51d6ed15069a5887335aebf0531e75eca65fcd62a8d9d8d449066307bb3e4b1ed6b45c64ca74626dc75cdc2230a33fa33a6b4 languageName: node linkType: hard -"@types/json-schema@npm:^7.0.9": - version: 7.0.12 - resolution: "@types/json-schema@npm:7.0.12" - checksum: 00239e97234eeb5ceefb0c1875d98ade6e922bfec39dd365ec6bd360b5c2f825e612ac4f6e5f1d13601b8b30f378f15e6faa805a3a732f4a1bbe61915163d293 +"@pnpm/types@npm:9.4.0": + version: 9.4.0 + resolution: "@pnpm/types@npm:9.4.0" + checksum: 3381181f9bd26bf1c6b766fdf035abd2ecb36b0366d143f7fe91dff8f296f587b7ba58ad573716a109089bf1f59418e870d8cd8c0119398a6c39cfa038e0dc9b + languageName: node + linkType: hard + +"@pnpm/workspace.pkgs-graph@npm:^2.0.10": + version: 2.0.11 + resolution: "@pnpm/workspace.pkgs-graph@npm:2.0.11" + dependencies: + "@pnpm/npm-package-arg": ^1.0.0 + "@pnpm/npm-resolver": 18.0.0 + "@pnpm/resolve-workspace-range": 5.0.1 + ramda: "npm:@pnpm/ramda@0.28.1" + checksum: c2f5448adc467f552fc1ba55d6dff742148be597d47dd48bfa88943adc16d0908d2583e10a271f8b04b1a1a4e0d4b69717a089d3db27ba2f2d278386da1903a5 + languageName: node + linkType: hard + +"@sindresorhus/merge-streams@npm:^1.0.0": + version: 1.0.0 + resolution: "@sindresorhus/merge-streams@npm:1.0.0" + checksum: 453c2a28164113a5ec4fd23ba636e291a4112f6ee9e91cd5476b9a96e0fc9ee5ff40d405fe81bbf284c9773b7ed718a3a0f31df7895a0efd413b1f9775d154fe + languageName: node + linkType: hard + +"@snyk/github-codeowners@npm:1.1.0": + version: 1.1.0 + resolution: "@snyk/github-codeowners@npm:1.1.0" + dependencies: + commander: ^4.1.1 + ignore: ^5.1.8 + p-map: ^4.0.0 + bin: + github-codeowners: dist/cli.js + checksum: 133f867fa968f96229ebce724d8aedaa124218e20add96a3a7d39ea45e52007fee50cc90c39e406c9e662483d003da9326e00dc4d612afa5c2ca069d1cdab9d7 + languageName: node + linkType: hard + +"@types/json-schema@npm:^7.0.12": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 languageName: node linkType: hard "@types/minimist@npm:^1.2.0": - version: 1.2.2 - resolution: "@types/minimist@npm:1.2.2" - checksum: b8da83c66eb4aac0440e64674b19564d9d86c80ae273144db9681e5eeff66f238ade9515f5006ffbfa955ceff8b89ad2bd8ec577d7caee74ba101431fb07045d + version: 1.2.5 + resolution: "@types/minimist@npm:1.2.5" + checksum: 477047b606005058ab0263c4f58097136268007f320003c348794f74adedc3166ffc47c80ec3e94687787f2ab7f4e72c468223946e79892cf0fd9e25e9970a90 + languageName: node + linkType: hard + +"@types/node@npm:^18.11.9": + version: 18.18.13 + resolution: "@types/node@npm:18.18.13" + dependencies: + undici-types: ~5.26.4 + checksum: e36d7a0ea6ce8fb771fd84dc2412935408448c1fed098205d3103be661852fc40d22a987e6c6c926a20719a15266e3071c8d4fd2548a96ad6c3c74eb474b5e63 languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^20.3.2": - version: 20.3.2 - resolution: "@types/node@npm:20.3.2" - checksum: 5929ce2b9b12b1e2a2304a0921a953c72a81f5753ad39ac43b99ce6312fbb2b4fb5bc6b60d64a2550704e3223cd5de1299467d36085ac69888899db978f2653a +"@types/node@npm:^20.10.0": + version: 20.10.0 + resolution: "@types/node@npm:20.10.0" + dependencies: + undici-types: ~5.26.4 + checksum: face395140d6f2f1755b91fdd3b697cf56aeb9e2514529ce88d56e56f261ad65be7269d863520a9406d73c338699ea68b418e8677584de0c1efeed09539b6f97 languageName: node linkType: hard "@types/normalize-package-data@npm:^2.4.0": - version: 2.4.1 - resolution: "@types/normalize-package-data@npm:2.4.1" - checksum: e87bccbf11f95035c89a132b52b79ce69a1e3652fe55962363063c9c0dae0fe2477ebc585e03a9652adc6f381d24ba5589cc5e51849df4ced3d3e004a7d40ed5 + version: 2.4.4 + resolution: "@types/normalize-package-data@npm:2.4.4" + checksum: 65dff72b543997b7be8b0265eca7ace0e34b75c3e5fee31de11179d08fa7124a7a5587265d53d0409532ecb7f7fba662c2012807963e1f9b059653ec2c83ee05 languageName: node linkType: hard -"@types/semver@npm:^7.3.12": - version: 7.5.0 - resolution: "@types/semver@npm:7.5.0" - checksum: 0a64b9b9c7424d9a467658b18dd70d1d781c2d6f033096a6e05762d20ebbad23c1b69b0083b0484722aabf35640b78ccc3de26368bcae1129c87e9df028a22e2 +"@types/semver@npm:^7.5.0": + version: 7.5.6 + resolution: "@types/semver@npm:7.5.6" + checksum: 563a0120ec0efcc326567db2ed920d5d98346f3638b6324ea6b50222b96f02a8add3c51a916b6897b51523aad8ac227d21d3dcf8913559f1bfc6c15b14d23037 languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.60.1": - version: 5.60.1 - resolution: "@typescript-eslint/eslint-plugin@npm:5.60.1" +"@typescript-eslint/eslint-plugin@npm:^6.13.1": + version: 6.13.1 + resolution: "@typescript-eslint/eslint-plugin@npm:6.13.1" dependencies: - "@eslint-community/regexpp": ^4.4.0 - "@typescript-eslint/scope-manager": 5.60.1 - "@typescript-eslint/type-utils": 5.60.1 - "@typescript-eslint/utils": 5.60.1 + "@eslint-community/regexpp": ^4.5.1 + "@typescript-eslint/scope-manager": 6.13.1 + "@typescript-eslint/type-utils": 6.13.1 + "@typescript-eslint/utils": 6.13.1 + "@typescript-eslint/visitor-keys": 6.13.1 debug: ^4.3.4 - grapheme-splitter: ^1.0.4 - ignore: ^5.2.0 - natural-compare-lite: ^1.4.0 - semver: ^7.3.7 - tsutils: ^3.21.0 + graphemer: ^1.4.0 + ignore: ^5.2.4 + natural-compare: ^1.4.0 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 peerDependencies: - "@typescript-eslint/parser": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 6ea3fdc64b216ee709318bfce1573cd8d90836150f0075aaa8755c347541af9ec026043e538a3264d28d1b32ff49b1fd7c6163826b8513f19f0957fefccf7752 + checksum: 568093d76c200a8502047d74f29300110a59b9f2a5cbf995a6cbe419c803a7ec22220e9592a884401d2dde72c79346b4cc0ee393e7b422924ad4a8a2040af3b0 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.60.1": - version: 5.60.1 - resolution: "@typescript-eslint/parser@npm:5.60.1" +"@typescript-eslint/parser@npm:^6.13.1": + version: 6.13.1 + resolution: "@typescript-eslint/parser@npm:6.13.1" dependencies: - "@typescript-eslint/scope-manager": 5.60.1 - "@typescript-eslint/types": 5.60.1 - "@typescript-eslint/typescript-estree": 5.60.1 + "@typescript-eslint/scope-manager": 6.13.1 + "@typescript-eslint/types": 6.13.1 + "@typescript-eslint/typescript-estree": 6.13.1 + "@typescript-eslint/visitor-keys": 6.13.1 debug: ^4.3.4 peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 08f1552ab0da178524a8de3654d2fb7c8ecb9efdad8e771c9cbf4af555c42e77d17b2c182d139a531cc76c3cabd091d1d25024c2c215cb809dca8b147c8a493c + checksum: 58b7fef6f2d02c8f4737f9908a8d335a20bee20dba648233a69f28e7b39237791d2b9fbb818e628dcc053ddf16507b161ace7f1139e093d72365f1270c426de3 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.60.1": - version: 5.60.1 - resolution: "@typescript-eslint/scope-manager@npm:5.60.1" +"@typescript-eslint/scope-manager@npm:6.13.1": + version: 6.13.1 + resolution: "@typescript-eslint/scope-manager@npm:6.13.1" dependencies: - "@typescript-eslint/types": 5.60.1 - "@typescript-eslint/visitor-keys": 5.60.1 - checksum: 32c0786123f12fbb861aba3527471134a2e9978c7f712e0d7650080651870903482aed72a55f81deba9493118c1ca3c57edaaaa75d7acd9892818e3e9cc341ef + "@typescript-eslint/types": 6.13.1 + "@typescript-eslint/visitor-keys": 6.13.1 + checksum: 109a213f82719e10f8c6a0168f2e105dc1369c7e0c075c1f30af137030fc866a3a585a77ff78a9a3538afc213061c8aedbb4462a91f26cbd90eefbab8b89ea10 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.60.1": - version: 5.60.1 - resolution: "@typescript-eslint/type-utils@npm:5.60.1" +"@typescript-eslint/type-utils@npm:6.13.1": + version: 6.13.1 + resolution: "@typescript-eslint/type-utils@npm:6.13.1" dependencies: - "@typescript-eslint/typescript-estree": 5.60.1 - "@typescript-eslint/utils": 5.60.1 + "@typescript-eslint/typescript-estree": 6.13.1 + "@typescript-eslint/utils": 6.13.1 debug: ^4.3.4 - tsutils: ^3.21.0 + ts-api-utils: ^1.0.1 peerDependencies: - eslint: "*" + eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: f8d5f87b5441d5c671f69631efd103f5f45e0cb7dbe0131a5b4234a5208ac845041219e8baaa3adc341e82a602165dd6fabf4fd06964d0109d0875425c8ac918 + checksum: e39d28dd2f3b47a26b4f6aa2c7a301bdd769ce9148d734be93441a813c3d1111eba1d655677355bba5519f3d4dbe93e4ff4e46830216b0302df0070bf7a80057 languageName: node linkType: hard -"@typescript-eslint/types@npm:5.60.1": - version: 5.60.1 - resolution: "@typescript-eslint/types@npm:5.60.1" - checksum: 766b6c857493b72a8f515e6a8e409476a317b7a7f0401fbcdf18f417839fca004dcaf06f58eb5ba00777e3ca9c68cd2f56fda79f3a8eb8a418095b5b1f625712 +"@typescript-eslint/types@npm:6.13.1": + version: 6.13.1 + resolution: "@typescript-eslint/types@npm:6.13.1" + checksum: bb1d52f1646bab9acd3ec874567ffbaaaf7fe4a5f79845bdacbfea46d15698e58d45797da05b08c23f9496a17229b7f2c1363d000fd89ce4e79874fd57ba1d4a languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.60.1": - version: 5.60.1 - resolution: "@typescript-eslint/typescript-estree@npm:5.60.1" +"@typescript-eslint/typescript-estree@npm:6.13.1": + version: 6.13.1 + resolution: "@typescript-eslint/typescript-estree@npm:6.13.1" dependencies: - "@typescript-eslint/types": 5.60.1 - "@typescript-eslint/visitor-keys": 5.60.1 + "@typescript-eslint/types": 6.13.1 + "@typescript-eslint/visitor-keys": 6.13.1 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 - semver: ^7.3.7 - tsutils: ^3.21.0 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 peerDependenciesMeta: typescript: optional: true - checksum: 5bb9d08c3cbc303fc64647878cae37283c4cfa9e3ed00da02ee25dc2e46798a1ad6964c9f04086f0134716671357e6569a65ea0ae75f0f3ff94ae67666385c6f + checksum: 09aa0f5cbd60e84df4f58f3d479be352549600b24dbefe75c686ea89252526c52c1c06ce1ae56c0405dd7337002e741c2ba02b71fb1caa3b94a740a70fcc8699 languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.60.1": - version: 5.60.1 - resolution: "@typescript-eslint/utils@npm:5.60.1" +"@typescript-eslint/utils@npm:6.13.1": + version: 6.13.1 + resolution: "@typescript-eslint/utils@npm:6.13.1" dependencies: - "@eslint-community/eslint-utils": ^4.2.0 - "@types/json-schema": ^7.0.9 - "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.60.1 - "@typescript-eslint/types": 5.60.1 - "@typescript-eslint/typescript-estree": 5.60.1 - eslint-scope: ^5.1.1 - semver: ^7.3.7 + "@eslint-community/eslint-utils": ^4.4.0 + "@types/json-schema": ^7.0.12 + "@types/semver": ^7.5.0 + "@typescript-eslint/scope-manager": 6.13.1 + "@typescript-eslint/types": 6.13.1 + "@typescript-eslint/typescript-estree": 6.13.1 + semver: ^7.5.4 peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 00c1adaa09d5d5be947e98962a78c21ed08c3ac46dd5ddd7b78f6102537d50afd4578a42a3e09a24dd51f5bc493f0b968627b4423647540164b2d2380afa9246 + eslint: ^7.0.0 || ^8.0.0 + checksum: 14f64840869c8755af4d287cfc74abc424dc139559e87ca1a8b0e850f4fa56311d99dfb61a43dd4433eae5914be12b4b3390e55de1f236dce6701830d17e31c9 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.60.1": - version: 5.60.1 - resolution: "@typescript-eslint/visitor-keys@npm:5.60.1" +"@typescript-eslint/visitor-keys@npm:6.13.1": + version: 6.13.1 + resolution: "@typescript-eslint/visitor-keys@npm:6.13.1" dependencies: - "@typescript-eslint/types": 5.60.1 - eslint-visitor-keys: ^3.3.0 - checksum: 137f6a6f8efb398969087147b59f99f7d0deed044d89d7efce3631bb90bc32e3a13a5cee6a65e1c9830862c5c4402ac1a9b2c9e31fe46d1716602af2813bffae + "@typescript-eslint/types": 6.13.1 + eslint-visitor-keys: ^3.4.1 + checksum: d15d362203a2fe995ea62a59d5b44c15c8fb1fb30ff59dd1542a980f75b3b62035303dfb781d83709921613f6ac8cc5bf57b70f6e20d820aec8b7911f07152e9 + languageName: node + linkType: hard + +"@ungap/structured-clone@npm:^1.2.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 languageName: node linkType: hard -"JSONStream@npm:^1.0.4": +"@zkochan/retry@npm:^0.2.0": + version: 0.2.0 + resolution: "@zkochan/retry@npm:0.2.0" + checksum: 268e77e4f2254e608fdb79396ab6947e7c302ebe3df90696ad6cda4f09417845ca13ad4e6bfe813fab1839f1e66b14294ceb5591fb4dacd0999927aa6fe55826 + languageName: node + linkType: hard + +"@zkochan/rimraf@npm:^2.1.2": + version: 2.1.3 + resolution: "@zkochan/rimraf@npm:2.1.3" + dependencies: + rimraf: ^3.0.2 + checksum: 81cf488065b3b3fcb49980d35dc49a59f8961887c7ed589250ea233f7b91a30c3b9d3ec0b7700829062e7c514c5f07afdcf5f811a4f1a06227daa69c0638f32a + languageName: node + linkType: hard + +"JSONStream@npm:^1.3.5": version: 1.3.5 resolution: "JSONStream@npm:1.3.5" dependencies: @@ -780,10 +1084,10 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:^1.0.0": - version: 1.1.1 - resolution: "abbrev@npm:1.1.1" - checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 languageName: node linkType: hard @@ -796,39 +1100,21 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.1.1": - version: 8.2.0 - resolution: "acorn-walk@npm:8.2.0" - checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 - languageName: node - linkType: hard - -"acorn@npm:^8.4.1, acorn@npm:^8.8.0": - version: 8.9.0 - resolution: "acorn@npm:8.9.0" +"acorn@npm:^8.9.0": + version: 8.11.2 + resolution: "acorn@npm:8.11.2" bin: acorn: bin/acorn - checksum: 25dfb94952386ecfb847e61934de04a4e7c2dc21c2e700fc4e2ef27ce78cb717700c4c4f279cd630bb4774948633c3859fc16063ec8573bda4568e0a312e6744 + checksum: 818450408684da89423e3daae24e4dc9b68692db8ab49ea4569c7c5abb7a3f23669438bf129cc81dfdada95e1c9b944ee1bfca2c57a05a4dc73834a612fbf6a7 languageName: node linkType: hard -"agent-base@npm:6, agent-base@npm:^6.0.2": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: 4 - checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d - languageName: node - linkType: hard - -"agentkeepalive@npm:^4.2.1": - version: 4.3.0 - resolution: "agentkeepalive@npm:4.3.0" +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": + version: 7.1.0 + resolution: "agent-base@npm:7.1.0" dependencies: - debug: ^4.1.0 - depd: ^2.0.0 - humanize-ms: ^1.2.1 - checksum: 982453aa44c11a06826c836025e5162c846e1200adb56f2d075400da7d32d87021b3b0a58768d949d824811f5654223d5a8a3dad120921a2439625eb847c6260 + debug: ^4.3.4 + checksum: f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f languageName: node linkType: hard @@ -842,7 +1128,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.4": +"ajv@npm:^6.12.4": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -914,30 +1200,6 @@ __metadata: languageName: node linkType: hard -"aproba@npm:^1.0.3 || ^2.0.0": - version: 2.0.0 - resolution: "aproba@npm:2.0.0" - checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 - languageName: node - linkType: hard - -"are-we-there-yet@npm:^3.0.0": - version: 3.0.1 - resolution: "are-we-there-yet@npm:3.0.1" - dependencies: - delegates: ^1.0.0 - readable-stream: ^3.6.0 - checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 - languageName: node - linkType: hard - -"arg@npm:^4.1.0": - version: 4.1.3 - resolution: "arg@npm:4.1.3" - checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 - languageName: node - linkType: hard - "argparse@npm:^2.0.1": version: 2.0.1 resolution: "argparse@npm:2.0.1" @@ -945,6 +1207,13 @@ __metadata: languageName: node linkType: hard +"arity-n@npm:^1.0.4": + version: 1.0.4 + resolution: "arity-n@npm:1.0.4" + checksum: 3d76e16907f7b8a9452690c1efc301d0fbecea457365797eccfbade9b8d1653175b2c38343201bf26fdcbf0bcbb31eab6d912e7c008c6d19042301dc0be80a73 + languageName: node + linkType: hard + "array-buffer-byte-length@npm:^1.0.0": version: 1.0.0 resolution: "array-buffer-byte-length@npm:1.0.0" @@ -962,6 +1231,15 @@ __metadata: languageName: node linkType: hard +"array-last@npm:^1.1.1": + version: 1.3.0 + resolution: "array-last@npm:1.3.0" + dependencies: + is-number: ^4.0.0 + checksum: 7631c7df9b44ea26f49e2f6eeb7a7d4d95b3798586b917e1efae4a321b6362e449e00b011e88eb0260959fbfc940fbdfce1d2a35765ea080de6d71e3fc3cf1dd + languageName: node + linkType: hard + "array-union@npm:^2.1.0": version: 2.1.0 resolution: "array-union@npm:2.1.0" @@ -969,6 +1247,21 @@ __metadata: languageName: node linkType: hard +"arraybuffer.prototype.slice@npm:^1.0.2": + version: 1.0.2 + resolution: "arraybuffer.prototype.slice@npm:1.0.2" + dependencies: + array-buffer-byte-length: ^1.0.0 + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + get-intrinsic: ^1.2.1 + is-array-buffer: ^3.0.2 + is-shared-array-buffer: ^1.0.2 + checksum: c200faf437786f5b2c80d4564ff5481c886a16dee642ef02abdc7306c7edd523d1f01d1dd12b769c7eb42ac9bc53874510db19a92a2c035c0f6696172aafa5d3 + languageName: node + linkType: hard + "arrify@npm:^1.0.1": version: 1.0.1 resolution: "arrify@npm:1.0.1" @@ -983,6 +1276,15 @@ __metadata: languageName: node linkType: hard +"babylon@npm:^6.9.1": + version: 6.18.0 + resolution: "babylon@npm:6.18.0" + bin: + babylon: ./bin/babylon.js + checksum: 0777ae0c735ce1cbfc856d627589ed9aae212b84fb0c03c368b55e6c5d3507841780052808d0ad46e18a2ba516e93d55eeed8cd967f3b2938822dfeccfb2a16d + languageName: node + linkType: hard + "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -990,6 +1292,16 @@ __metadata: languageName: node linkType: hard +"bole@npm:^5.0.0": + version: 5.0.9 + resolution: "bole@npm:5.0.9" + dependencies: + fast-safe-stringify: ^2.0.7 + individual: ^3.0.0 + checksum: eaa426a2d14a2d5a741ed1d4a19b8a23b452cde11ec9c02b9632603ce32169b919513f04beef92ec44f1d892fe808b91cadbe5dae1b0b573eba66ac784d0c09b + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -1018,40 +1330,43 @@ __metadata: languageName: node linkType: hard -"buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb +"builtins@npm:^5.0.0": + version: 5.0.1 + resolution: "builtins@npm:5.0.1" + dependencies: + semver: ^7.0.0 + checksum: 66d204657fe36522822a95b288943ad11b58f5eaede235b11d8c4edaa28ce4800087d44a2681524c340494aadb120a0068011acabe99d30e8f11a7d826d83515 languageName: node linkType: hard -"cacache@npm:^17.0.0": - version: 17.1.3 - resolution: "cacache@npm:17.1.3" +"cacache@npm:^18.0.0": + version: 18.0.1 + resolution: "cacache@npm:18.0.1" dependencies: "@npmcli/fs": ^3.1.0 fs-minipass: ^3.0.0 glob: ^10.2.2 - lru-cache: ^7.7.1 - minipass: ^5.0.0 - minipass-collect: ^1.0.2 + lru-cache: ^10.0.1 + minipass: ^7.0.3 + minipass-collect: ^2.0.1 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 p-map: ^4.0.0 ssri: ^10.0.0 tar: ^6.1.11 unique-filename: ^3.0.0 - checksum: 385756781e1e21af089160d89d7462b7ed9883c978e848c7075b90b73cb823680e66092d61513050164588387d2ca87dd6d910e28d64bc13a9ac82cd8580c796 + checksum: 5a0b3b2ea451a0379814dc1d3c81af48c7c6db15cd8f7d72e028501ae0036a599a99bbac9687bfec307afb2760808d1c7708e9477c8c70d2b166e7d80b162a23 languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": - version: 1.0.2 - resolution: "call-bind@npm:1.0.2" +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.4, call-bind@npm:^1.0.5": + version: 1.0.5 + resolution: "call-bind@npm:1.0.5" dependencies: - function-bind: ^1.1.1 - get-intrinsic: ^1.0.2 - checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.1 + set-function-length: ^1.1.1 + checksum: 449e83ecbd4ba48e7eaac5af26fea3b50f8f6072202c2dd7c5a6e7a6308f2421abe5e13a3bbd55221087f76320c5e09f25a8fdad1bab2b77c68ae74d92234ea5 languageName: node linkType: hard @@ -1080,14 +1395,14 @@ __metadata: languageName: node linkType: hard -"chalk@npm:5.3.0": +"chalk@npm:5.3.0, chalk@npm:^5.2.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 languageName: node linkType: hard -"chalk@npm:^2.0.0, chalk@npm:^2.4.1": +"chalk@npm:^2.4.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -1152,6 +1467,13 @@ __metadata: languageName: node linkType: hard +"clone@npm:^1.0.2": + version: 1.0.4 + resolution: "clone@npm:1.0.4" + checksum: d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd + languageName: node + linkType: hard + "color-convert@npm:^1.9.0": version: 1.9.3 resolution: "color-convert@npm:1.9.3" @@ -1184,15 +1506,6 @@ __metadata: languageName: node linkType: hard -"color-support@npm:^1.1.3": - version: 1.1.3 - resolution: "color-support@npm:1.1.3" - bin: - color-support: bin.js - checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b - languageName: node - linkType: hard - "colorette@npm:^2.0.20": version: 2.0.20 resolution: "colorette@npm:2.0.20" @@ -1207,6 +1520,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^4.1.1": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: d7b9913ff92cae20cb577a4ac6fcc121bd6223319e54a40f51a14740a681ad5c574fd29a57da478a5f234a6fa6c52cbf0b7c641353e03c648b1ae85ba670b977 + languageName: node + linkType: hard + "compare-func@npm:^2.0.0": version: 2.0.0 resolution: "compare-func@npm:2.0.0" @@ -1217,6 +1537,15 @@ __metadata: languageName: node linkType: hard +"compose-function@npm:^3.0.3": + version: 3.0.3 + resolution: "compose-function@npm:3.0.3" + dependencies: + arity-n: ^1.0.4 + checksum: 9f17d431e3ee4797c844f2870e13494079882ac3dbc54c143b7d99967b371908e0ce7ceb71c6aed61e2ecddbcd7bb437d91428a3d0e6569aee17a87fcbc7918f + languageName: node + linkType: hard + "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -1224,78 +1553,65 @@ __metadata: languageName: node linkType: hard -"console-control-strings@npm:^1.1.0": - version: 1.1.0 - resolution: "console-control-strings@npm:1.1.0" - checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed - languageName: node - linkType: hard - -"conventional-changelog-angular@npm:^5.0.11": - version: 5.0.13 - resolution: "conventional-changelog-angular@npm:5.0.13" +"conventional-changelog-angular@npm:^7.0.0": + version: 7.0.0 + resolution: "conventional-changelog-angular@npm:7.0.0" dependencies: compare-func: ^2.0.0 - q: ^1.5.1 - checksum: 6ed4972fce25a50f9f038c749cc9db501363131b0fb2efc1fccecba14e4b1c80651d0d758d4c350a609f32010c66fa343eefd49c02e79e911884be28f53f3f90 + checksum: 2478962ad7ce42878449ba3568347d704f22c5c9af1cd36916b5600734bd7f82c09712a338c649195c44e907f1b0372ce52d6cb51df643f495c89af05ad4bc48 languageName: node linkType: hard -"conventional-changelog-conventionalcommits@npm:^5.0.0": - version: 5.0.0 - resolution: "conventional-changelog-conventionalcommits@npm:5.0.0" +"conventional-changelog-conventionalcommits@npm:^7.0.2": + version: 7.0.2 + resolution: "conventional-changelog-conventionalcommits@npm:7.0.2" dependencies: compare-func: ^2.0.0 - lodash: ^4.17.15 - q: ^1.5.1 - checksum: b67d12e4e0fdde5baa32c3d77af472de38646a18657b26f5543eecce041a318103092fbfcef247e2319a16957c9ac78c6ea78acc11a5db6acf74be79a28c561f + checksum: e17ac5970ae09d6e9b0c3a7edaed075b836c0c09c34c514589cbe06554f46ed525067fa8150a8467cc03b1cf9af2073e7ecf48790d4f5ea399921b1cbe313711 languageName: node linkType: hard -"conventional-commits-parser@npm:^3.2.2": - version: 3.2.4 - resolution: "conventional-commits-parser@npm:3.2.4" +"conventional-commits-parser@npm:^5.0.0": + version: 5.0.0 + resolution: "conventional-commits-parser@npm:5.0.0" dependencies: - JSONStream: ^1.0.4 - is-text-path: ^1.0.1 - lodash: ^4.17.15 - meow: ^8.0.0 - split2: ^3.0.0 - through2: ^4.0.0 + JSONStream: ^1.3.5 + is-text-path: ^2.0.0 + meow: ^12.0.1 + split2: ^4.0.0 bin: - conventional-commits-parser: cli.js - checksum: 1627ff203bc9586d89e47a7fe63acecf339aba74903b9114e23d28094f79d4e2d6389bf146ae561461dcba8fc42e7bc228165d2b173f15756c43f1d32bc50bfd + conventional-commits-parser: cli.mjs + checksum: bb92a0bfe41802330d2d14ddb0f912fd65dd355f1aa294e708f4891aac95c580919a70580b9f26563c24c3335baaed2ce003104394a8fa5ba61eeb3889e45df0 languageName: node linkType: hard -"cosmiconfig-typescript-loader@npm:^4.0.0": - version: 4.3.0 - resolution: "cosmiconfig-typescript-loader@npm:4.3.0" +"cosmiconfig-typescript-loader@npm:^5.0.0": + version: 5.0.0 + resolution: "cosmiconfig-typescript-loader@npm:5.0.0" + dependencies: + jiti: ^1.19.1 peerDependencies: "@types/node": "*" - cosmiconfig: ">=7" - ts-node: ">=10" - typescript: ">=3" - checksum: ea61dfd8e112cf2bb18df0ef89280bd3ae3dd5b997b4a9fc22bbabdc02513aadfbc6d4e15e922b6a9a5d987e9dad42286fa38caf77a9b8dcdbe7d4ce1c9db4fb + cosmiconfig: ">=8.2" + typescript: ">=4" + checksum: 7b614313f2cc2ecbe17270de570a511aa7c974bf14a749d7ed4f4d0f4a9ed02ee7ae87d710e294204abb00bb6bb0cca53795208bb1435815d143b43c6626ec74 languageName: node linkType: hard -"cosmiconfig@npm:^8.0.0": - version: 8.2.0 - resolution: "cosmiconfig@npm:8.2.0" +"cosmiconfig@npm:^8.3.6": + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" dependencies: - import-fresh: ^3.2.1 + import-fresh: ^3.3.0 js-yaml: ^4.1.0 - parse-json: ^5.0.0 + parse-json: ^5.2.0 path-type: ^4.0.0 - checksum: 836d5d8efa750f3fb17b03d6ca74cd3154ed025dffd045304b3ef59637f662bde1e5dc88f8830080d180ec60841719cf4ea2ce73fb21ec694b16865c478ff297 - languageName: node - linkType: hard - -"create-require@npm:^1.1.0": - version: 1.1.1 - resolution: "create-require@npm:1.1.1" - checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: dc339ebea427898c9e03bf01b56ba7afbac07fc7d2a2d5a15d6e9c14de98275a9565da949375aee1809591c152c0a3877bb86dbeaf74d5bd5aaa79955ad9e7a0 languageName: node linkType: hard @@ -1323,6 +1639,13 @@ __metadata: languageName: node linkType: hard +"crypto-random-string@npm:^2.0.0": + version: 2.0.0 + resolution: "crypto-random-string@npm:2.0.0" + checksum: 0283879f55e7c16fdceacc181f87a0a65c53bc16ffe1d58b9d19a6277adcd71900d02bb2c4843dd55e78c51e30e89b0fec618a7f170ebcc95b33182c28f05fd6 + languageName: node + linkType: hard + "dargs@npm:^7.0.0": version: 7.0.0 resolution: "dargs@npm:7.0.0" @@ -1330,7 +1653,14 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"data-uri-to-buffer@npm:^3.0.1": + version: 3.0.1 + resolution: "data-uri-to-buffer@npm:3.0.1" + checksum: c59c3009686a78c071806b72f4810856ec28222f0f4e252aa495ec027ed9732298ceea99c50328cf59b151dd34cbc3ad6150bbb43e41fc56fa19f48c99e9fc30 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -1359,6 +1689,13 @@ __metadata: languageName: node linkType: hard +"deep-freeze@npm:0.0.1": + version: 0.0.1 + resolution: "deep-freeze@npm:0.0.1" + checksum: 1e43c98e44c7849382d9f896e679d48a1b5bf40993f7cc858e3730ef4e2ba387b9b7b7fe722cac34febe7f6a564cd242c27bbc319e8df793c2a287f21e5ba038 + languageName: node + linkType: hard + "deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" @@ -1366,34 +1703,34 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": - version: 1.2.0 - resolution: "define-properties@npm:1.2.0" +"defaults@npm:^1.0.3": + version: 1.0.4 + resolution: "defaults@npm:1.0.4" dependencies: - has-property-descriptors: ^1.0.0 - object-keys: ^1.1.1 - checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 + clone: ^1.0.2 + checksum: 3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a languageName: node linkType: hard -"delegates@npm:^1.0.0": - version: 1.0.0 - resolution: "delegates@npm:1.0.0" - checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd - languageName: node - linkType: hard - -"depd@npm:^2.0.0": - version: 2.0.0 - resolution: "depd@npm:2.0.0" - checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.1": + version: 1.1.1 + resolution: "define-data-property@npm:1.1.1" + dependencies: + get-intrinsic: ^1.2.1 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + checksum: a29855ad3f0630ea82e3c5012c812efa6ca3078d5c2aa8df06b5f597c1cde6f7254692df41945851d903e05a1668607b6d34e778f402b9ff9ffb38111f1a3f0d languageName: node linkType: hard -"diff@npm:^4.0.1": - version: 4.0.2 - resolution: "diff@npm:4.0.2" - checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: ^1.0.1 + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 languageName: node linkType: hard @@ -1438,6 +1775,19 @@ __metadata: languageName: node linkType: hard +"easy-table@npm:1.2.0": + version: 1.2.0 + resolution: "easy-table@npm:1.2.0" + dependencies: + ansi-regex: ^5.0.1 + wcwidth: ^1.0.1 + dependenciesMeta: + wcwidth: + optional: true + checksum: 66961b19751a68d2d30ce9b74ef750c374cc3112bbcac3d1ed5a939e43c035ecf6b1954098df2d5b05f1e853ab2b67de893794390dcbf0abe1f157fddeb52174 + languageName: node + linkType: hard + "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -1452,6 +1802,15 @@ __metadata: languageName: node linkType: hard +"encode-registry@npm:^3.0.1": + version: 3.0.1 + resolution: "encode-registry@npm:3.0.1" + dependencies: + mem: ^8.0.0 + checksum: 4e7cb234704782ef3e9e0c1941cb90de9b2421da8b87a21c968609e59b931c0316b15ea0e9b5280338a831dcb8e91362f8a54f712b10c70e28598f2dfb97da4a + languageName: node + linkType: hard + "encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" @@ -1484,24 +1843,25 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": - version: 1.21.2 - resolution: "es-abstract@npm:1.21.2" +"es-abstract@npm:^1.22.1": + version: 1.22.3 + resolution: "es-abstract@npm:1.22.3" dependencies: array-buffer-byte-length: ^1.0.0 + arraybuffer.prototype.slice: ^1.0.2 available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 + call-bind: ^1.0.5 es-set-tostringtag: ^2.0.1 es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.5 - get-intrinsic: ^1.2.0 + function.prototype.name: ^1.1.6 + get-intrinsic: ^1.2.2 get-symbol-description: ^1.0.0 globalthis: ^1.0.3 gopd: ^1.0.1 - has: ^1.0.3 has-property-descriptors: ^1.0.0 has-proto: ^1.0.1 has-symbols: ^1.0.3 + hasown: ^2.0.0 internal-slot: ^1.0.5 is-array-buffer: ^3.0.2 is-callable: ^1.2.7 @@ -1509,31 +1869,35 @@ __metadata: 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-inspect: ^1.13.1 object-keys: ^1.1.1 object.assign: ^4.1.4 - regexp.prototype.flags: ^1.4.3 + regexp.prototype.flags: ^1.5.1 + safe-array-concat: ^1.0.1 safe-regex-test: ^1.0.0 - string.prototype.trim: ^1.2.7 - string.prototype.trimend: ^1.0.6 - string.prototype.trimstart: ^1.0.6 + string.prototype.trim: ^1.2.8 + string.prototype.trimend: ^1.0.7 + string.prototype.trimstart: ^1.0.7 + 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 - checksum: 037f55ee5e1cdf2e5edbab5524095a4f97144d95b94ea29e3611b77d852fd8c8a40e7ae7101fa6a759a9b9b1405f188c3c70928f2d3cd88d543a07fc0d5ad41a + which-typed-array: ^1.1.13 + checksum: b1bdc962856836f6e72be10b58dc128282bdf33771c7a38ae90419d920fc3b36cc5d2b70a222ad8016e3fc322c367bf4e9e89fc2bc79b7e933c05b218e83d79a languageName: node linkType: hard "es-set-tostringtag@npm:^2.0.1": - version: 2.0.1 - resolution: "es-set-tostringtag@npm:2.0.1" + version: 2.0.2 + resolution: "es-set-tostringtag@npm:2.0.2" dependencies: - get-intrinsic: ^1.1.3 - has: ^1.0.3 + get-intrinsic: ^1.2.2 has-tostringtag: ^1.0.0 - checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884 + hasown: ^2.0.0 + checksum: afcec3a4c9890ae14d7ec606204858441c801ff84f312538e1d1ccf1e5493c8b17bd672235df785f803756472cb4f2d49b87bde5237aef33411e74c22f194e07 languageName: node linkType: hard @@ -1548,32 +1912,109 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:~0.17.6": - version: 0.17.19 - resolution: "esbuild@npm:0.17.19" - dependencies: - "@esbuild/android-arm": 0.17.19 - "@esbuild/android-arm64": 0.17.19 - "@esbuild/android-x64": 0.17.19 - "@esbuild/darwin-arm64": 0.17.19 - "@esbuild/darwin-x64": 0.17.19 - "@esbuild/freebsd-arm64": 0.17.19 - "@esbuild/freebsd-x64": 0.17.19 - "@esbuild/linux-arm": 0.17.19 - "@esbuild/linux-arm64": 0.17.19 - "@esbuild/linux-ia32": 0.17.19 - "@esbuild/linux-loong64": 0.17.19 - "@esbuild/linux-mips64el": 0.17.19 - "@esbuild/linux-ppc64": 0.17.19 - "@esbuild/linux-riscv64": 0.17.19 - "@esbuild/linux-s390x": 0.17.19 - "@esbuild/linux-x64": 0.17.19 - "@esbuild/netbsd-x64": 0.17.19 - "@esbuild/openbsd-x64": 0.17.19 - "@esbuild/sunos-x64": 0.17.19 - "@esbuild/win32-arm64": 0.17.19 - "@esbuild/win32-ia32": 0.17.19 - "@esbuild/win32-x64": 0.17.19 +"esbuild@npm:^0.19.8": + version: 0.19.8 + resolution: "esbuild@npm:0.19.8" + dependencies: + "@esbuild/android-arm": 0.19.8 + "@esbuild/android-arm64": 0.19.8 + "@esbuild/android-x64": 0.19.8 + "@esbuild/darwin-arm64": 0.19.8 + "@esbuild/darwin-x64": 0.19.8 + "@esbuild/freebsd-arm64": 0.19.8 + "@esbuild/freebsd-x64": 0.19.8 + "@esbuild/linux-arm": 0.19.8 + "@esbuild/linux-arm64": 0.19.8 + "@esbuild/linux-ia32": 0.19.8 + "@esbuild/linux-loong64": 0.19.8 + "@esbuild/linux-mips64el": 0.19.8 + "@esbuild/linux-ppc64": 0.19.8 + "@esbuild/linux-riscv64": 0.19.8 + "@esbuild/linux-s390x": 0.19.8 + "@esbuild/linux-x64": 0.19.8 + "@esbuild/netbsd-x64": 0.19.8 + "@esbuild/openbsd-x64": 0.19.8 + "@esbuild/sunos-x64": 0.19.8 + "@esbuild/win32-arm64": 0.19.8 + "@esbuild/win32-ia32": 0.19.8 + "@esbuild/win32-x64": 0.19.8 + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 1dff99482ecbfcc642ec66c71e4dc5c73ce6aef68e8158a4937890b570e86a95959ac47e0f14785ba70df5a673ae4289df88a162e9759b02367ed28074cee8ba + languageName: node + linkType: hard + +"esbuild@npm:~0.18.20": + version: 0.18.20 + resolution: "esbuild@npm:0.18.20" + dependencies: + "@esbuild/android-arm": 0.18.20 + "@esbuild/android-arm64": 0.18.20 + "@esbuild/android-x64": 0.18.20 + "@esbuild/darwin-arm64": 0.18.20 + "@esbuild/darwin-x64": 0.18.20 + "@esbuild/freebsd-arm64": 0.18.20 + "@esbuild/freebsd-x64": 0.18.20 + "@esbuild/linux-arm": 0.18.20 + "@esbuild/linux-arm64": 0.18.20 + "@esbuild/linux-ia32": 0.18.20 + "@esbuild/linux-loong64": 0.18.20 + "@esbuild/linux-mips64el": 0.18.20 + "@esbuild/linux-ppc64": 0.18.20 + "@esbuild/linux-riscv64": 0.18.20 + "@esbuild/linux-s390x": 0.18.20 + "@esbuild/linux-x64": 0.18.20 + "@esbuild/netbsd-x64": 0.18.20 + "@esbuild/openbsd-x64": 0.18.20 + "@esbuild/sunos-x64": 0.18.20 + "@esbuild/win32-arm64": 0.18.20 + "@esbuild/win32-ia32": 0.18.20 + "@esbuild/win32-x64": 0.18.20 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -1621,7 +2062,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: ac11b1a5a6008e4e37ccffbd6c2c054746fc58d0ed4a2f9ee643bd030cfcea9a33a235087bc777def8420f2eaafb3486e76adb7bdb7241a9143b43a69a10afd8 + checksum: 5d253614e50cdb6ec22095afd0c414f15688e7278a7eb4f3720a6dd1306b0909cf431e7b9437a90d065a31b1c57be60130f63fe3e8d0083b588571f31ee6ec7b languageName: node linkType: hard @@ -1646,53 +2087,44 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^5.1.1": - version: 5.1.1 - resolution: "eslint-scope@npm:5.1.1" - dependencies: - esrecurse: ^4.3.0 - estraverse: ^4.1.1 - checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb - languageName: node - linkType: hard - -"eslint-scope@npm:^7.2.0": - version: 7.2.0 - resolution: "eslint-scope@npm:7.2.0" +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" dependencies: esrecurse: ^4.3.0 estraverse: ^5.2.0 - checksum: 64591a2d8b244ade9c690b59ef238a11d5c721a98bcee9e9f445454f442d03d3e04eda88e95a4daec558220a99fa384309d9faae3d459bd40e7a81b4063980ae + checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1": - version: 3.4.1 - resolution: "eslint-visitor-keys@npm:3.4.1" - checksum: f05121d868202736b97de7d750847a328fcfa8593b031c95ea89425333db59676ac087fa905eba438d0a3c5769632f828187e0c1a0d271832a2153c1d3661c2c +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 languageName: node linkType: hard -"eslint@npm:^8.43.0": - version: 8.43.0 - resolution: "eslint@npm:8.43.0" +"eslint@npm:^8.54.0": + version: 8.54.0 + resolution: "eslint@npm:8.54.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.4.0 - "@eslint/eslintrc": ^2.0.3 - "@eslint/js": 8.43.0 - "@humanwhocodes/config-array": ^0.11.10 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.3 + "@eslint/js": 8.54.0 + "@humanwhocodes/config-array": ^0.11.13 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 - ajv: ^6.10.0 + "@ungap/structured-clone": ^1.2.0 + ajv: ^6.12.4 chalk: ^4.0.0 cross-spawn: ^7.0.2 debug: ^4.3.2 doctrine: ^3.0.0 escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.0 - eslint-visitor-keys: ^3.4.1 - espree: ^9.5.2 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.3 + espree: ^9.6.1 esquery: ^1.4.2 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 @@ -1702,7 +2134,6 @@ __metadata: globals: ^13.19.0 graphemer: ^1.4.0 ignore: ^5.2.0 - import-fresh: ^3.0.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 is-path-inside: ^3.0.3 @@ -1712,24 +2143,23 @@ __metadata: lodash.merge: ^4.6.2 minimatch: ^3.1.2 natural-compare: ^1.4.0 - optionator: ^0.9.1 + optionator: ^0.9.3 strip-ansi: ^6.0.1 - strip-json-comments: ^3.1.0 text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 55654ce00b0d128822b57526e40473d0497c7c6be3886afdc0b41b6b0dfbd34d0eae8159911b18451b4db51a939a0e6d2e117e847ae419086884fc3d4fe23c7c + checksum: 7e876e9da2a18a017271cf3733d05a3dfbbe469272d75753408c6ea5b1646c71c6bb18cb91e10ca930144c32c1ce3701e222f1ae6784a3975a69f8f8aa68e49f languageName: node linkType: hard -"espree@npm:^9.5.2": - version: 9.5.2 - resolution: "espree@npm:9.5.2" +"espree@npm:^9.6.0, espree@npm:^9.6.1": + version: 9.6.1 + resolution: "espree@npm:9.6.1" dependencies: - acorn: ^8.8.0 + acorn: ^8.9.0 acorn-jsx: ^5.3.2 eslint-visitor-keys: ^3.4.1 - checksum: 6506289d6eb26471c0b383ee24fee5c8ae9d61ad540be956b3127be5ce3bf687d2ba6538ee5a86769812c7c552a9d8239e8c4d150f9ea056c6d5cbe8399c03c1 + checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 languageName: node linkType: hard @@ -1751,13 +2181,6 @@ __metadata: languageName: node linkType: hard -"estraverse@npm:^4.1.1": - version: 4.3.0 - resolution: "estraverse@npm:4.3.0" - checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 - languageName: node - linkType: hard - "estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": version: 5.3.0 resolution: "estraverse@npm:5.3.0" @@ -1827,16 +2250,16 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9": - version: 3.2.12 - resolution: "fast-glob@npm:3.2.12" +"fast-glob@npm:3.3.2, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" dependencies: "@nodelib/fs.stat": ^2.0.2 "@nodelib/fs.walk": ^1.2.3 glob-parent: ^5.1.2 merge2: ^1.3.0 micromatch: ^4.0.4 - checksum: 0b1990f6ce831c7e28c4d505edcdaad8e27e88ab9fa65eedadb730438cfc7cde4910d6c975d6b7b8dc8a73da4773702ebcfcd6e3518e73938bb1383badfe01c2 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 languageName: node linkType: hard @@ -1854,6 +2277,13 @@ __metadata: languageName: node linkType: hard +"fast-safe-stringify@npm:^2.0.7": + version: 2.1.1 + resolution: "fast-safe-stringify@npm:2.1.1" + checksum: a851cbddc451745662f8f00ddb622d6766f9bd97642dabfd9a405fb0d646d69fc0b9a1243cbf67f5f18a39f40f6fa821737651ff1bceeba06c9992ca2dc5bd3d + languageName: node + linkType: hard + "fastq@npm:^1.6.0": version: 1.15.0 resolution: "fastq@npm:1.15.0" @@ -1863,6 +2293,16 @@ __metadata: languageName: node linkType: hard +"fetch-blob@npm:^2.1.1": + version: 2.1.2 + resolution: "fetch-blob@npm:2.1.2" + peerDependenciesMeta: + domexception: + optional: true + checksum: 22d4487ce78ea4e52b432b0057d8d42922d5d93c0374b0bc2692cebdcb11bf8fac4f6d141b31f1633db1e9212effd38385adbd765a2c7412a621307058499214 + languageName: node + linkType: hard + "file-entry-cache@npm:^6.0.1": version: 6.0.1 resolution: "file-entry-cache@npm:6.0.1" @@ -1881,6 +2321,20 @@ __metadata: languageName: node linkType: hard +"filter-iterator@npm:0.0.1": + version: 0.0.1 + resolution: "filter-iterator@npm:0.0.1" + checksum: 1dd34e0728183b3cc69d45c57ec58cbdd21c5160d53e70592e2db049ed4da81ba551b7bfaccb11731011ce5b07ee09961b09fa4573fe906145ce63d9a1813db0 + languageName: node + linkType: hard + +"filter-obj@npm:^1.1.0": + version: 1.1.0 + resolution: "filter-obj@npm:1.1.0" + checksum: cf2104a7c45ff48e7f505b78a3991c8f7f30f28bd8106ef582721f321f1c6277f7751aacd5d83026cb079d9d5091082f588d14a72e7c5d720ece79118fa61e10 + languageName: node + linkType: hard + "find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" @@ -1902,19 +2356,20 @@ __metadata: linkType: hard "flat-cache@npm:^3.0.4": - version: 3.0.4 - resolution: "flat-cache@npm:3.0.4" + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" dependencies: - flatted: ^3.1.0 + flatted: ^3.2.9 + keyv: ^4.5.3 rimraf: ^3.0.2 - checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365 + checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec languageName: node linkType: hard -"flatted@npm:^3.1.0": - version: 3.2.7 - resolution: "flatted@npm:3.2.7" - checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35 +"flatted@npm:^3.2.9": + version: 3.2.9 + resolution: "flatted@npm:3.2.9" + checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 languageName: node linkType: hard @@ -1937,14 +2392,25 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:10.1.0": + version: 10.1.0 + resolution: "fs-extra@npm:10.1.0" + dependencies: + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 + languageName: node + linkType: hard + "fs-extra@npm:^11.0.0": - version: 11.1.1 - resolution: "fs-extra@npm:11.1.1" + version: 11.2.0 + resolution: "fs-extra@npm:11.2.0" dependencies: graceful-fs: ^4.2.0 jsonfile: ^6.0.1 universalify: ^2.0.0 - checksum: fb883c68245b2d777fbc1f2082c9efb084eaa2bbf9fddaa366130d196c03608eebef7fb490541276429ee1ca99f317e2d73e96f5ca0999eefedf5a624ae1edfd + checksum: b12e42fa40ba47104202f57b8480dd098aa931c2724565e5e70779ab87605665594e76ee5fb00545f772ab9ace167fe06d2ab009c416dc8c842c5ae6df7aa7e8 languageName: node linkType: hard @@ -1958,11 +2424,11 @@ __metadata: linkType: hard "fs-minipass@npm:^3.0.0": - version: 3.0.2 - resolution: "fs-minipass@npm:3.0.2" + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" dependencies: - minipass: ^5.0.0 - checksum: e9cc0e1f2d01c6f6f62f567aee59530aba65c6c7b2ae88c5027bc34c711ebcfcfaefd0caf254afa6adfe7d1fba16bc2537508a6235196bac7276747d078aef0a + minipass: ^7.0.3 + checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 languageName: node linkType: hard @@ -1973,67 +2439,51 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:~2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" +"fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" dependencies: node-gyp: latest - checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 conditions: os=darwin languageName: node linkType: hard -"fsevents@patch:fsevents@~2.3.2#~builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" +"fsevents@patch:fsevents@~2.3.3#~builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" dependencies: node-gyp: latest conditions: os=darwin languageName: node linkType: hard -"function-bind@npm:^1.1.1": - version: 1.1.1 - resolution: "function-bind@npm:1.1.1" - checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 languageName: node linkType: hard -"function.prototype.name@npm:^1.1.5": - version: 1.1.5 - resolution: "function.prototype.name@npm:1.1.5" +"function.prototype.name@npm:^1.1.6": + version: 1.1.6 + resolution: "function.prototype.name@npm:1.1.6" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.0 - functions-have-names: ^1.2.2 - checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + functions-have-names: ^1.2.3 + checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 languageName: node linkType: hard -"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": +"functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 languageName: node linkType: hard -"gauge@npm:^4.0.3": - version: 4.0.4 - resolution: "gauge@npm:4.0.4" - dependencies: - aproba: ^1.0.3 || ^2.0.0 - color-support: ^1.1.3 - console-control-strings: ^1.1.0 - has-unicode: ^2.0.1 - signal-exit: ^3.0.7 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wide-align: ^1.1.5 - checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d - languageName: node - linkType: hard - "get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" @@ -2041,15 +2491,15 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0": - version: 1.2.1 - resolution: "get-intrinsic@npm:1.2.1" +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2": + version: 1.2.2 + resolution: "get-intrinsic@npm:1.2.2" dependencies: - function-bind: ^1.1.1 - has: ^1.0.3 + function-bind: ^1.1.2 has-proto: ^1.0.1 has-symbols: ^1.0.3 - checksum: 5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f + hasown: ^2.0.0 + checksum: 447ff0724df26829908dc033b62732359596fcf66027bc131ab37984afb33842d9cd458fd6cecadfe7eac22fd8a54b349799ed334cf2726025c921c7250e7417 languageName: node linkType: hard @@ -2077,12 +2527,12 @@ __metadata: languageName: node linkType: hard -"get-tsconfig@npm:^4.4.0": - version: 4.6.2 - resolution: "get-tsconfig@npm:4.6.2" +"get-tsconfig@npm:^4.7.2": + version: 4.7.2 + resolution: "get-tsconfig@npm:4.7.2" dependencies: resolve-pkg-maps: ^1.0.0 - checksum: e791e671a9b55e91efea3ca819ecd7a25beae679e31c83234bf3dd62ddd93df070c1b95ae7e29d206358ebb6408f6f79ac6d83a32a3bbd6a6d217babe23de077 + checksum: 172358903250eff0103943f816e8a4e51d29b8e5449058bdf7266714a908a48239f6884308bd3a6ff28b09f692b9533dbebfd183ab63e4e14f073cda91f1bca9 languageName: node linkType: hard @@ -2119,22 +2569,22 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.2.2": - version: 10.3.1 - resolution: "glob@npm:10.3.1" +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.3.10 + resolution: "glob@npm:10.3.10" dependencies: foreground-child: ^3.1.0 - jackspeak: ^2.0.3 + jackspeak: ^2.3.5 minimatch: ^9.0.1 - minipass: ^5.0.0 || ^6.0.2 - path-scurry: ^1.10.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + path-scurry: ^1.10.1 bin: - glob: dist/cjs/src/bin.js - checksum: 19c8c2805658b1002fecf0722cd609a33153d756a0d5260676bd0e9c5e6ef889ec9cce6d3dac0411aa90bce8de3d14f25b6f5589a3292582cccbfeddd0e98cc4 + glob: dist/esm/bin.mjs + checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 languageName: node linkType: hard -"glob@npm:^7.1.3, glob@npm:^7.1.4": +"glob@npm:^7.1.3": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -2158,11 +2608,11 @@ __metadata: linkType: hard "globals@npm:^13.19.0": - version: 13.20.0 - resolution: "globals@npm:13.20.0" + version: 13.23.0 + resolution: "globals@npm:13.23.0" dependencies: type-fest: ^0.20.2 - checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a + checksum: 194c97cf8d1ef6ba59417234c2386549c4103b6e5f24b1ff1952de61a4753e5d2069435ba629de711a6480b1b1d114a98e2ab27f85e966d5a10c319c3bbd3dc3 languageName: node linkType: hard @@ -2189,6 +2639,20 @@ __metadata: languageName: node linkType: hard +"globby@npm:^14.0.0": + version: 14.0.0 + resolution: "globby@npm:14.0.0" + dependencies: + "@sindresorhus/merge-streams": ^1.0.0 + fast-glob: ^3.3.2 + ignore: ^5.2.4 + path-type: ^5.0.0 + slash: ^5.1.0 + unicorn-magic: ^0.1.0 + checksum: f331b42993e420c8f2b61a6ca062276977ea6d95f181640ff018f00200f4fe5b50f1fae7540903483e6570ca626fe16234ab88e848d43381a2529220548a9d39 + languageName: node + linkType: hard + "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -2198,20 +2662,13 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": +"graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 languageName: node linkType: hard -"grapheme-splitter@npm:^1.0.4": - version: 1.0.4 - resolution: "grapheme-splitter@npm:1.0.4" - checksum: 0c22ec54dee1b05cd480f78cf14f732cb5b108edc073572c4ec205df4cd63f30f8db8025afc5debc8835a8ddeacf648a1c7992fe3dcd6ad38f9a476d84906620 - languageName: node - linkType: hard - "graphemer@npm:^1.4.0": version: 1.4.0 resolution: "graphemer@npm:1.4.0" @@ -2247,12 +2704,19 @@ __metadata: languageName: node linkType: hard +"has-own-property@npm:^0.1.0": + version: 0.1.0 + resolution: "has-own-property@npm:0.1.0" + checksum: 4754f42e8a54860ea1a397c231843937ba890f3aa556698c9a2160df5f9b1a02ddb321ef0528294aec3aaa3139d17744da048027aa7129a631cb6554b6faed6f + languageName: node + linkType: hard + "has-property-descriptors@npm:^1.0.0": - version: 1.0.0 - resolution: "has-property-descriptors@npm:1.0.0" + version: 1.0.1 + resolution: "has-property-descriptors@npm:1.0.1" dependencies: - get-intrinsic: ^1.1.1 - checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb + get-intrinsic: ^1.2.2 + checksum: 2bcc6bf6ec6af375add4e4b4ef586e43674850a91ad4d46666d0b28ba8e1fd69e424c7677d24d60f69470ad0afaa2f3197f508b20b0bb7dd99a8ab77ffc4b7c4 languageName: node linkType: hard @@ -2279,19 +2743,12 @@ __metadata: languageName: node linkType: hard -"has-unicode@npm:^2.0.1": - version: 2.0.1 - resolution: "has-unicode@npm:2.0.1" - checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 - languageName: node - linkType: hard - -"has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" +"hasown@npm:^2.0.0": + version: 2.0.0 + resolution: "hasown@npm:2.0.0" dependencies: - function-bind: ^1.1.1 - checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 + function-bind: ^1.1.2 + checksum: 6151c75ca12554565098641c98a40f4cc86b85b0fd5b6fe92360967e4605a4f9610f7757260b4e8098dd1c2ce7f4b095f2006fe72a570e3b6d2d28de0298c176 languageName: node linkType: hard @@ -2318,24 +2775,23 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "http-proxy-agent@npm:5.0.0" +"http-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "http-proxy-agent@npm:7.0.0" dependencies: - "@tootallnate/once": 2 - agent-base: 6 - debug: 4 - checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 + agent-base: ^7.1.0 + debug: ^4.3.4 + checksum: 48d4fac997917e15f45094852b63b62a46d0c8a4f0b9c6c23ca26d27b8df8d178bed88389e604745e748bd9a01f5023e25093722777f0593c3f052009ff438b6 languageName: node linkType: hard -"https-proxy-agent@npm:^5.0.0": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" +"https-proxy-agent@npm:^7.0.1": + version: 7.0.2 + resolution: "https-proxy-agent@npm:7.0.2" dependencies: - agent-base: 6 + agent-base: ^7.0.2 debug: 4 - checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 + checksum: 088969a0dd476ea7a0ed0a2cf1283013682b08f874c3bc6696c83fa061d2c157d29ef0ad3eb70a2046010bb7665573b2388d10fdcb3e410a66995e5248444292 languageName: node linkType: hard @@ -2353,15 +2809,6 @@ __metadata: languageName: node linkType: hard -"humanize-ms@npm:^1.2.1": - version: 1.2.1 - resolution: "humanize-ms@npm:1.2.1" - dependencies: - ms: ^2.0.0 - checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 - languageName: node - linkType: hard - "husky@npm:^8.0.3": version: 8.0.3 resolution: "husky@npm:8.0.3" @@ -2380,14 +2827,21 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0": - version: 5.2.4 - resolution: "ignore@npm:5.2.4" - checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef +"identity-function@npm:^1.0.0": + version: 1.0.0 + resolution: "identity-function@npm:1.0.0" + checksum: 0ec311050c69679334b12479f53226f67ca41bc3ba7283ede3dacfb80802ec07643868d16b274ab823ceb2e81291697f01b07e32c7796f92255bd81452b7ea15 + languageName: node + linkType: hard + +"ignore@npm:^5.1.8, ignore@npm:^5.2.0, ignore@npm:^5.2.4": + version: 5.3.0 + resolution: "ignore@npm:5.3.0" + checksum: 2736da6621f14ced652785cb05d86301a66d70248597537176612bd0c8630893564bd5f6421f8806b09e8472e75c591ef01672ab8059c07c6eb2c09cefe04bf9 languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -2411,6 +2865,13 @@ __metadata: languageName: node linkType: hard +"individual@npm:^3.0.0": + version: 3.0.0 + resolution: "individual@npm:3.0.0" + checksum: 49f69cff2791f09d1364b39723cc03d8d48ae425b15b23c8f618ac81f8d76160dae9c2abde5fb885a6bfbce939017ba2a5c84cf3d8051d0804fca0ee79138aa2 + languageName: node + linkType: hard + "inflight@npm:^1.0.4": version: 1.0.6 resolution: "inflight@npm:1.0.6" @@ -2436,13 +2897,13 @@ __metadata: linkType: hard "internal-slot@npm:^1.0.5": - version: 1.0.5 - resolution: "internal-slot@npm:1.0.5" + version: 1.0.6 + resolution: "internal-slot@npm:1.0.6" dependencies: - get-intrinsic: ^1.2.0 - has: ^1.0.3 + get-intrinsic: ^1.2.2 + hasown: ^2.0.0 side-channel: ^1.0.4 - checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a + checksum: 7872454888047553ce97a3fa1da7cc054a28ec5400a9c2e9f4dbe4fe7c1d041cb8e8301467614b80d4246d50377aad2fb58860b294ed74d6700cc346b6f89549 languageName: node linkType: hard @@ -2497,12 +2958,12 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.12.0, is-core-module@npm:^2.5.0": - version: 2.12.1 - resolution: "is-core-module@npm:2.12.1" +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0": + version: 2.13.1 + resolution: "is-core-module@npm:2.13.1" dependencies: - has: ^1.0.3 - checksum: f04ea30533b5e62764e7b2e049d3157dc0abd95ef44275b32489ea2081176ac9746ffb1cdb107445cf1ff0e0dfcad522726ca27c27ece64dadf3795428b8e468 + hasown: ^2.0.0 + checksum: 256559ee8a9488af90e4bad16f5583c6d59e92f0742e9e8bb4331e758521ee86b810b93bae44f390766ffbc518a0488b18d9dab7da9a5ff997d499efc9403f7c languageName: node linkType: hard @@ -2545,6 +3006,13 @@ __metadata: languageName: node linkType: hard +"is-iterable@npm:^1.1.0": + version: 1.1.1 + resolution: "is-iterable@npm:1.1.1" + checksum: d059aaf00899cf351cdf4d71ea6b4e8912107c47b31b554d28205199b306420f3b5d30a419efa6b807f466f675fd945822f1651fd6d1fd45469a578573da671e + languageName: node + linkType: hard + "is-lambda@npm:^1.0.1": version: 1.0.1 resolution: "is-lambda@npm:1.0.1" @@ -2568,6 +3036,13 @@ __metadata: languageName: node linkType: hard +"is-number@npm:^4.0.0": + version: 4.0.0 + resolution: "is-number@npm:4.0.0" + checksum: e71962a5ae97400211e6be5946eff2b81d3fa85154dad498bfe2704999e63ac6b3f8591fdb7971a121122cc6e25915c2cfe882ff7b77e243d51b92ca6961267e + languageName: node + linkType: hard + "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" @@ -2647,25 +3122,21 @@ __metadata: languageName: node linkType: hard -"is-text-path@npm:^1.0.1": - version: 1.0.1 - resolution: "is-text-path@npm:1.0.1" +"is-text-path@npm:^2.0.0": + version: 2.0.0 + resolution: "is-text-path@npm:2.0.0" dependencies: - text-extensions: ^1.0.0 - checksum: fb5d78752c22b3f73a7c9540768f765ffcfa38c9e421e2b9af869565307fa1ae5e3d3a2ba016a43549742856846566d327da406e94a5846ec838a288b1704fd2 + text-extensions: ^2.0.0 + checksum: 3a8725fc7c0d4c7741a97993bc2fecc09a0963660394d3ee76145274366c98ad57c6791d20d4ef829835f573b1137265051c05ecd65fbe72f69bb9ab9e3babbd languageName: node linkType: hard -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.9": - version: 1.1.10 - resolution: "is-typed-array@npm:1.1.10" +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.12, is-typed-array@npm:^1.1.9": + version: 1.1.12 + resolution: "is-typed-array@npm:1.1.12" 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 - checksum: aac6ecb59d4c56a1cdeb69b1f129154ef462bbffe434cb8a8235ca89b42f258b7ae94073c41b3cb7bce37f6a1733ad4499f07882d5d5093a7ba84dfc4ebb8017 + which-typed-array: ^1.1.11 + checksum: 4c89c4a3be07186caddadf92197b17fda663a9d259ea0d44a85f171558270d36059d1c386d34a12cba22dfade5aba497ce22778e866adc9406098c8fc4771796 languageName: node linkType: hard @@ -2678,6 +3149,13 @@ __metadata: languageName: node linkType: hard +"isarray@npm:^2.0.5": + version: 2.0.5 + resolution: "isarray@npm:2.0.5" + checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a + languageName: node + linkType: hard + "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -2685,16 +3163,39 @@ __metadata: languageName: node linkType: hard -"jackspeak@npm:^2.0.3": - version: 2.2.1 - resolution: "jackspeak@npm:2.2.1" +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e + languageName: node + linkType: hard + +"iterable-lookahead@npm:^1.0.0": + version: 1.0.0 + resolution: "iterable-lookahead@npm:1.0.0" + checksum: 9d849bfbfafcaf83c6eec2835192088b1f7d1aadf9f33ec4e1d117664af2d47acb742e130179c35a6eec01d0e3ec2750ea8347ba6796e47e329b015455076e67 + languageName: node + linkType: hard + +"jackspeak@npm:^2.3.5": + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" dependencies: "@isaacs/cliui": ^8.0.2 "@pkgjs/parseargs": ^0.11.0 dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: e29291c0d0f280a063fa18fbd1e891ab8c2d7519fd34052c0ebde38538a15c603140d60c2c7f432375ff7ee4c5f1c10daa8b2ae19a97c3d4affe308c8360c1df + checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 + languageName: node + linkType: hard + +"jiti@npm:1.21.0, jiti@npm:^1.19.1": + version: 1.21.0 + resolution: "jiti@npm:1.21.0" + bin: + jiti: bin/jiti.js + checksum: a7bd5d63921c170eaec91eecd686388181c7828e1fa0657ab374b9372bfc1f383cf4b039e6b272383d5cb25607509880af814a39abdff967322459cca41f2961 languageName: node linkType: hard @@ -2705,7 +3206,7 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:^4.1.0": +"js-yaml@npm:4.1.0, js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0" dependencies: @@ -2716,6 +3217,13 @@ __metadata: languageName: node linkType: hard +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 + languageName: node + linkType: hard + "json-parse-better-errors@npm:^1.0.1": version: 1.0.2 resolution: "json-parse-better-errors@npm:1.0.2" @@ -2730,6 +3238,13 @@ __metadata: languageName: node linkType: hard +"json-parse-even-better-errors@npm:^3.0.0": + version: 3.0.1 + resolution: "json-parse-even-better-errors@npm:3.0.1" + checksum: bf74fa3f715e56699ccd68b80a7d20908de432a3fae2d5aa2ed530a148e9d9ccdf8e6983b93d9966a553aa70dcf003ce3a7ffec2c0ce74d2a6173e3691a426f0 + languageName: node + linkType: hard + "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -2751,6 +3266,13 @@ __metadata: languageName: node linkType: hard +"json-stringify-safe@npm:^5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 48ec0adad5280b8a96bb93f4563aa1667fd7a36334f79149abd42446d0989f2ddc58274b479f4819f1f00617957e6344c886c55d05a4e15ebb4ab931e4a6a8ee + languageName: node + linkType: hard + "jsonfile@npm:^6.0.1": version: 6.1.0 resolution: "jsonfile@npm:6.1.0" @@ -2771,6 +3293,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: 3.0.1 + checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 + languageName: node + linkType: hard + "kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -2778,6 +3309,37 @@ __metadata: languageName: node linkType: hard +"knip@npm:^3.3.0": + version: 3.3.0 + resolution: "knip@npm:3.3.0" + dependencies: + "@ericcornelissen/bash-parser": 0.5.2 + "@npmcli/map-workspaces": 3.0.4 + "@pkgjs/parseargs": 0.11.0 + "@pnpm/logger": 5.0.0 + "@pnpm/workspace.pkgs-graph": ^2.0.10 + "@snyk/github-codeowners": 1.1.0 + chalk: ^5.2.0 + easy-table: 1.2.0 + fast-glob: 3.3.2 + globby: ^14.0.0 + jiti: 1.21.0 + js-yaml: 4.1.0 + micromatch: 4.0.5 + minimist: 1.2.8 + pretty-ms: 8.0.0 + strip-json-comments: 5.0.1 + summary: 2.1.0 + zod: 3.22.4 + zod-validation-error: 2.1.0 + peerDependencies: + typescript: ">=5.0.4" + bin: + knip: bin/knip.js + checksum: 7852a2b3f8899f0e9d778c9c614ed658288dd30d7b37b5892f863550539ef4dc02853d07fccca420b69db4d07c23bf382e7f5dc8f821a8dd15b26057834c1659 + languageName: node + linkType: hard + "levn@npm:^0.4.1": version: 0.4.1 resolution: "levn@npm:0.4.1" @@ -2848,6 +3410,18 @@ __metadata: languageName: node linkType: hard +"load-json-file@npm:^6.2.0": + version: 6.2.0 + resolution: "load-json-file@npm:6.2.0" + dependencies: + graceful-fs: ^4.1.15 + parse-json: ^5.0.0 + strip-bom: ^4.0.0 + type-fest: ^0.6.0 + checksum: 4429e430ebb99375fc7cd936348e4f7ba729486080ced4272091c1e386a7f5f738ea3337d8ffd4b01c2f5bc3ddde92f2c780045b66838fe98bdb79f901884643 + languageName: node + linkType: hard + "locate-path@npm:^5.0.0": version: 5.0.0 resolution: "locate-path@npm:5.0.0" @@ -2873,6 +3447,13 @@ __metadata: languageName: node linkType: hard +"lodash.curry@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.curry@npm:4.1.1" + checksum: 9192b70fe7df4d1ff780c0260bee271afa9168c93fe4fa24bc861900240531b59781b5fdaadf4644fea8f4fbcd96f0700539ab294b579ffc1022c6c15dcc462a + languageName: node + linkType: hard + "lodash.isfunction@npm:^3.0.9": version: 3.0.9 resolution: "lodash.isfunction@npm:3.0.9" @@ -2956,6 +3537,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.1.0 + resolution: "lru-cache@npm:10.1.0" + checksum: 58056d33e2500fbedce92f8c542e7c11b50d7d086578f14b7074d8c241422004af0718e08a6eaae8705cee09c77e39a61c1c79e9370ba689b7010c152e6a76ab + languageName: node + linkType: hard + "lru-cache@npm:^6.0.0": version: 6.0.0 resolution: "lru-cache@npm:6.0.0" @@ -2965,47 +3553,40 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.7.1": - version: 7.18.3 - resolution: "lru-cache@npm:7.18.3" - checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 - languageName: node - linkType: hard - -"lru-cache@npm:^9.1.1 || ^10.0.0": - version: 10.0.0 - resolution: "lru-cache@npm:10.0.0" - checksum: 18f101675fe283bc09cda0ef1e3cc83781aeb8373b439f086f758d1d91b28730950db785999cd060d3c825a8571c03073e8c14512b6655af2188d623031baf50 - languageName: node - linkType: hard - -"make-error@npm:^1.1.1": - version: 1.3.6 - resolution: "make-error@npm:1.3.6" - checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 +"magic-string@npm:^0.16.0": + version: 0.16.0 + resolution: "magic-string@npm:0.16.0" + dependencies: + vlq: ^0.2.1 + checksum: f97e225062b600212e95fc8ed1948410bee3cb5248e03ed14fc45f12bb61a43960fdc0525f4aaaf62d6e79165526c9f8274ec225a92d421980cfcfcb8063be98 languageName: node linkType: hard -"make-fetch-happen@npm:^11.0.3": - version: 11.1.1 - resolution: "make-fetch-happen@npm:11.1.1" +"make-fetch-happen@npm:^13.0.0": + version: 13.0.0 + resolution: "make-fetch-happen@npm:13.0.0" dependencies: - agentkeepalive: ^4.2.1 - cacache: ^17.0.0 + "@npmcli/agent": ^2.0.0 + cacache: ^18.0.0 http-cache-semantics: ^4.1.1 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.0 is-lambda: ^1.0.1 - lru-cache: ^7.7.1 - minipass: ^5.0.0 + minipass: ^7.0.2 minipass-fetch: ^3.0.0 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 negotiator: ^0.6.3 promise-retry: ^2.0.1 - socks-proxy-agent: ^7.0.0 ssri: ^10.0.0 - checksum: 7268bf274a0f6dcf0343829489a4506603ff34bd0649c12058753900b0eb29191dce5dba12680719a5d0a983d3e57810f594a12f3c18494e93a1fbc6348a4540 + checksum: 7c7a6d381ce919dd83af398b66459a10e2fe8f4504f340d1d090d3fa3d1b0c93750220e1d898114c64467223504bd258612ba83efbc16f31b075cd56de24b4af + languageName: node + linkType: hard + +"map-age-cleaner@npm:^0.1.3": + version: 0.1.3 + resolution: "map-age-cleaner@npm:0.1.3" + dependencies: + p-defer: ^1.0.0 + checksum: cb2804a5bcb3cbdfe4b59066ea6d19f5e7c8c196cd55795ea4c28f792b192e4c442426ae52524e5e1acbccf393d3bddacefc3d41f803e66453f6c4eda3650bc1 languageName: node linkType: hard @@ -3016,6 +3597,13 @@ __metadata: languageName: node linkType: hard +"map-obj@npm:^2.0.0": + version: 2.0.0 + resolution: "map-obj@npm:2.0.0" + checksum: 77d2b7b03398a71c84bd7df8ab7be2139e5459fc1e18dbb5f15055fe7284bec0fc37fe410185b5f8ca2e3c3e01fd0fd1f946c579607878adb26cad1cd75314aa + languageName: node + linkType: hard + "map-obj@npm:^4.0.0": version: 4.3.0 resolution: "map-obj@npm:4.3.0" @@ -3023,6 +3611,26 @@ __metadata: languageName: node linkType: hard +"mem@npm:^6.0.1": + version: 6.1.1 + resolution: "mem@npm:6.1.1" + dependencies: + map-age-cleaner: ^0.1.3 + mimic-fn: ^3.0.0 + checksum: 59a54b66838f074354fd2ae32cca5064996761ded870e74fa1e098bb3e5d48fc033ebeacf6809d4b2ad3036f7a6fb7538858821bbd4f1cfb7ef8966c0ab9b753 + languageName: node + linkType: hard + +"mem@npm:^8.0.0": + version: 8.1.1 + resolution: "mem@npm:8.1.1" + dependencies: + map-age-cleaner: ^0.1.3 + mimic-fn: ^3.1.0 + checksum: c41bc97f6f82b91899206058989e34bcb1543af40413c2ab59e5a8e97e4f8f2188d62e7bd95b2d575d5b0d823d5034a0f274a0676f6d11a0e0b973898b06c8b1 + languageName: node + linkType: hard + "memorystream@npm:^0.3.1": version: 0.3.1 resolution: "memorystream@npm:0.3.1" @@ -3030,6 +3638,13 @@ __metadata: languageName: node linkType: hard +"meow@npm:^12.0.1": + version: 12.1.1 + resolution: "meow@npm:12.1.1" + checksum: a6f3be85fbe53430ef53ab933dd790c39216eb4dbaabdbef593aa59efb40ecaa417897000175476bc33eed09e4cbce01df7ba53ba91e9a4bd84ec07024cb8914 + languageName: node + linkType: hard + "meow@npm:^8.0.0": version: 8.1.2 resolution: "meow@npm:8.1.2" @@ -3080,6 +3695,13 @@ __metadata: languageName: node linkType: hard +"mimic-fn@npm:^3.0.0, mimic-fn@npm:^3.1.0": + version: 3.1.0 + resolution: "mimic-fn@npm:3.1.0" + checksum: f7b167f9115b8bbdf2c3ee55dce9149d14be9e54b237259c4bc1d8d0512ea60f25a1b323f814eb1fe8f5a541662804bcfcfff3202ca58df143edb986849d58db + languageName: node + linkType: hard + "mimic-fn@npm:^4.0.0": version: 4.0.0 resolution: "mimic-fn@npm:4.0.0" @@ -3103,12 +3725,12 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.1": - version: 9.0.2 - resolution: "minimatch@npm:9.0.2" +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.1": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" dependencies: brace-expansion: ^2.0.1 - checksum: 2eb12e2047a062fdb973fb51b9803f2455e3a00977858c038d66646d303a5a15bbcbc6ed5a2fc403bc869b1309f829ed3acd881d3246faf044ea7a494974b924 + checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 languageName: node linkType: hard @@ -3123,34 +3745,34 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.6": +"minimist@npm:1.2.8, minimist@npm:^1.2.5, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 languageName: node linkType: hard -"minipass-collect@npm:^1.0.2": - version: 1.0.2 - resolution: "minipass-collect@npm:1.0.2" +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" dependencies: - minipass: ^3.0.0 - checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 + minipass: ^7.0.3 + checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 languageName: node linkType: hard "minipass-fetch@npm:^3.0.0": - version: 3.0.3 - resolution: "minipass-fetch@npm:3.0.3" + version: 3.0.4 + resolution: "minipass-fetch@npm:3.0.4" dependencies: encoding: ^0.1.13 - minipass: ^5.0.0 + minipass: ^7.0.3 minipass-sized: ^1.0.3 minizlib: ^2.1.2 dependenciesMeta: encoding: optional: true - checksum: af5ab2552a16fcf505d35fd7ffb84b57f4a0eeb269e6e1d9a2a75824dda48b36e527083250b7cca4a4def21d9544e2ade441e4730e233c0bc2133f6abda31e18 + checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a languageName: node linkType: hard @@ -3197,10 +3819,10 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2": - version: 6.0.2 - resolution: "minipass@npm:6.0.2" - checksum: d140b91f4ab2e5ce5a9b6c468c0e82223504acc89114c1a120d4495188b81fedf8cade72a9f4793642b4e66672f990f1e0d902dd858485216a07cd3c8a62fac9 +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": + version: 7.0.4 + resolution: "minipass@npm:7.0.4" + checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 languageName: node linkType: hard @@ -3230,20 +3852,6 @@ __metadata: languageName: node linkType: hard -"ms@npm:^2.0.0": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d - languageName: node - linkType: hard - -"natural-compare-lite@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare-lite@npm:1.4.0" - checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 - languageName: node - linkType: hard - "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -3251,6 +3859,21 @@ __metadata: languageName: node linkType: hard +"ndjson@npm:^2.0.0": + version: 2.0.0 + resolution: "ndjson@npm:2.0.0" + dependencies: + json-stringify-safe: ^5.0.1 + minimist: ^1.2.5 + readable-stream: ^3.6.0 + split2: ^3.0.0 + through2: ^4.0.0 + bin: + ndjson: cli.js + checksum: f847a51a2275b8a6a1bfdb24095183836b71c3085670161678c9922bc59644f04e53ced385e549a5565fdc44c28e206bd3f2199d12525028f843a86b680c4446 + languageName: node + linkType: hard + "negotiator@npm:^0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" @@ -3265,35 +3888,44 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:3.0.0-beta.9": + version: 3.0.0-beta.9 + resolution: "node-fetch@npm:3.0.0-beta.9" + dependencies: + data-uri-to-buffer: ^3.0.1 + fetch-blob: ^2.1.1 + checksum: 586af0910649cb62f1c044ddac41e71c0b0f48133fba406ad5e0fab51baff18f22cd187ea65ef690ceed7386a71910e904348105dc8eae55f907fa94df7e76ca + languageName: node + linkType: hard + "node-gyp@npm:latest": - version: 9.4.0 - resolution: "node-gyp@npm:9.4.0" + version: 10.0.1 + resolution: "node-gyp@npm:10.0.1" dependencies: env-paths: ^2.2.0 exponential-backoff: ^3.1.1 - glob: ^7.1.4 + glob: ^10.3.10 graceful-fs: ^4.2.6 - make-fetch-happen: ^11.0.3 - nopt: ^6.0.0 - npmlog: ^6.0.0 - rimraf: ^3.0.2 + make-fetch-happen: ^13.0.0 + nopt: ^7.0.0 + proc-log: ^3.0.0 semver: ^7.3.5 tar: ^6.1.2 - which: ^2.0.2 + which: ^4.0.0 bin: node-gyp: bin/node-gyp.js - checksum: 78b404e2e0639d64e145845f7f5a3cb20c0520cdaf6dda2f6e025e9b644077202ea7de1232396ba5bde3fee84cdc79604feebe6ba3ec84d464c85d407bb5da99 + checksum: 60a74e66d364903ce02049966303a57f898521d139860ac82744a5fdd9f7b7b3b61f75f284f3bfe6e6add3b8f1871ce305a1d41f775c7482de837b50c792223f languageName: node linkType: hard -"nopt@npm:^6.0.0": - version: 6.0.0 - resolution: "nopt@npm:6.0.0" +"nopt@npm:^7.0.0": + version: 7.2.0 + resolution: "nopt@npm:7.2.0" dependencies: - abbrev: ^1.0.0 + abbrev: ^2.0.0 bin: nopt: bin/nopt.js - checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac + checksum: a9c0f57fb8cb9cc82ae47192ca2b7ef00e199b9480eed202482c962d61b59a7fbe7541920b2a5839a97b42ee39e288c0aed770e38057a608d7f579389dfde410 languageName: node linkType: hard @@ -3321,6 +3953,20 @@ __metadata: languageName: node linkType: hard +"normalize-path@npm:^3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 + languageName: node + linkType: hard + +"npm-normalize-package-bin@npm:^3.0.0": + version: 3.0.1 + resolution: "npm-normalize-package-bin@npm:3.0.1" + checksum: de416d720ab22137a36292ff8a333af499ea0933ef2320a8c6f56a73b0f0448227fec4db5c890d702e26d21d04f271415eab6580b5546456861cc0c19498a4bf + languageName: node + linkType: hard + "npm-run-all@npm:^4.1.5": version: 4.1.5 resolution: "npm-run-all@npm:4.1.5" @@ -3360,22 +4006,10 @@ __metadata: languageName: node linkType: hard -"npmlog@npm:^6.0.0": - version: 6.0.2 - resolution: "npmlog@npm:6.0.2" - dependencies: - are-we-there-yet: ^3.0.0 - console-control-strings: ^1.1.0 - gauge: ^4.0.3 - set-blocking: ^2.0.0 - checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a - languageName: node - linkType: hard - -"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": - version: 1.12.3 - resolution: "object-inspect@npm:1.12.3" - checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db +"object-inspect@npm:^1.13.1, object-inspect@npm:^1.9.0": + version: 1.13.1 + resolution: "object-inspect@npm:1.13.1" + checksum: 7d9fa9221de3311dcb5c7c307ee5dc011cdd31dc43624b7c184b3840514e118e05ef0002be5388304c416c0eb592feb46e983db12577fc47e47d5752fbbfb61f languageName: node linkType: hard @@ -3386,6 +4020,20 @@ __metadata: languageName: node linkType: hard +"object-pairs@npm:^0.1.0": + version: 0.1.0 + resolution: "object-pairs@npm:0.1.0" + checksum: 8bde82dda701c84a27ba5bcf5e014283c6defbdab6df189af0b6582541711ed86ba2f0cce0a300a2220ba27b54ee11128c508982a191fa04f81770a7695b23d9 + languageName: node + linkType: hard + +"object-values@npm:^1.0.0": + version: 1.0.0 + resolution: "object-values@npm:1.0.0" + checksum: b86e7ef56349de1444e45b00f4aac7dcb76f2973f3e2cd5836cf86815b1ea4b2b3827bb2320cd5d1a50c78dd3068ce23cbcb5a1f024abe12296af8cf50d17a22 + languageName: node + linkType: hard + "object.assign@npm:^4.1.4": version: 4.1.4 resolution: "object.assign@npm:4.1.4" @@ -3425,7 +4073,7 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.9.1": +"optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" dependencies: @@ -3439,6 +4087,13 @@ __metadata: languageName: node linkType: hard +"p-defer@npm:^1.0.0": + version: 1.0.0 + resolution: "p-defer@npm:1.0.0" + checksum: 4271b935c27987e7b6f229e5de4cdd335d808465604644cb7b4c4c95bef266735859a93b16415af8a41fd663ee9e3b97a1a2023ca9def613dba1bad2a0da0c7b + languageName: node + linkType: hard + "p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" @@ -3448,7 +4103,7 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^3.0.2": +"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": version: 3.1.0 resolution: "p-limit@npm:3.1.0" dependencies: @@ -3484,6 +4139,16 @@ __metadata: languageName: node linkType: hard +"p-memoize@npm:4.0.1": + version: 4.0.1 + resolution: "p-memoize@npm:4.0.1" + dependencies: + mem: ^6.0.1 + mimic-fn: ^3.0.0 + checksum: 322294f7d8c6112cc961cf48f3e08eadc5fa0da7bc457db1a3f6f6c72d9745ae098255584d67a62367707551c514825917c86773e60c27cc341eabc9636d0a0d + languageName: node + linkType: hard + "p-try@npm:^2.0.0": version: 2.2.0 resolution: "p-try@npm:2.2.0" @@ -3510,7 +4175,7 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^5.0.0": +"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" dependencies: @@ -3522,6 +4187,22 @@ __metadata: languageName: node linkType: hard +"parse-ms@npm:^3.0.0": + version: 3.0.0 + resolution: "parse-ms@npm:3.0.0" + checksum: fc602bba093835562321a67a9d6c8c9687ca4f26a09459a77e07ebd7efddd1a5766725ec60eb0c83a2abe67f7a23808f7deb1c1226727776eaf7f9607ae09db2 + languageName: node + linkType: hard + +"parse-npm-tarball-url@npm:^3.0.0": + version: 3.0.0 + resolution: "parse-npm-tarball-url@npm:3.0.0" + dependencies: + semver: ^6.1.0 + checksum: 4a6c1048a86465570fe128d69aa4d5a4a9916cbdf86ac39e43fca3fea16554905cafa4b351bf6274ce131e698412fd89157b372abed29dfd8e6aea9e67b3a717 + languageName: node + linkType: hard + "path-exists@npm:^4.0.0": version: 4.0.0 resolution: "path-exists@npm:4.0.0" @@ -3564,13 +4245,22 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^1.10.0": - version: 1.10.0 - resolution: "path-scurry@npm:1.10.0" +"path-scurry@npm:^1.10.1": + version: 1.10.1 + resolution: "path-scurry@npm:1.10.1" dependencies: lru-cache: ^9.1.1 || ^10.0.0 - minipass: ^5.0.0 || ^6.0.2 - checksum: 3b66a4a6ab66e45755b577c966ecf0da92d3e068b3c992d8f69aa2cc908ef4eda9358253e9b4f86cad43d3ad810ec445be164105975f5cb3fdab68459c59dc6e + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 + languageName: node + linkType: hard + +"path-temp@npm:^2.1.0": + version: 2.1.0 + resolution: "path-temp@npm:2.1.0" + dependencies: + unique-string: ^2.0.0 + checksum: ad28022a9c807d17d729c3ee265cd51a36f2d0283c9b1daee02dfd84fa2e4944b93e0a8d07bd5c2ed678c3c6c048d011c1817a181f6a3f03cd3a9648faef1b7d languageName: node linkType: hard @@ -3590,6 +4280,13 @@ __metadata: languageName: node linkType: hard +"path-type@npm:^5.0.0": + version: 5.0.0 + resolution: "path-type@npm:5.0.0" + checksum: 15ec24050e8932c2c98d085b72cfa0d6b4eeb4cbde151a0a05726d8afae85784fc5544f733d8dfc68536587d5143d29c0bd793623fad03d7e61cc00067291cd5 + languageName: node + linkType: hard + "picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" @@ -3629,12 +4326,28 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^2.8.8": - version: 2.8.8 - resolution: "prettier@npm:2.8.8" +"prettier@npm:^3.1.0": + version: 3.1.0 + resolution: "prettier@npm:3.1.0" bin: - prettier: bin-prettier.js - checksum: b49e409431bf129dd89238d64299ba80717b57ff5a6d1c1a8b1a28b590d998a34e083fa13573bc732bb8d2305becb4c9a4407f8486c81fa7d55100eb08263cf8 + prettier: bin/prettier.cjs + checksum: 44b556bd56f74d7410974fbb2418bb4e53a894d3e7b42f6f87779f69f27a6c272fa7fc27cec0118cd11730ef3246478052e002cbd87e9a253f9cd04a56aa7d9b + languageName: node + linkType: hard + +"pretty-ms@npm:8.0.0": + version: 8.0.0 + resolution: "pretty-ms@npm:8.0.0" + dependencies: + parse-ms: ^3.0.0 + checksum: b7d2a8182887af0e5ab93f9df331f10db9b8eda86855e2de115eb01a6c501bde5631a8813b1b0abdd7d045e79b08ae875369a8fd279a3dacd6d9e572bdd3bfa6 + languageName: node + linkType: hard + +"proc-log@npm:^3.0.0": + version: 3.0.0 + resolution: "proc-log@npm:3.0.0" + checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02 languageName: node linkType: hard @@ -3649,16 +4362,9 @@ __metadata: linkType: hard "punycode@npm:^2.1.0": - version: 2.3.0 - resolution: "punycode@npm:2.3.0" - checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 - languageName: node - linkType: hard - -"q@npm:^1.5.1": - version: 1.5.1 - resolution: "q@npm:1.5.1" - checksum: 147baa93c805bc1200ed698bdf9c72e9e42c05f96d007e33a558b5fdfd63e5ea130e99313f28efc1783e90e6bdb4e48b67a36fcc026b7b09202437ae88a1fb12 + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 languageName: node linkType: hard @@ -3676,6 +4382,23 @@ __metadata: languageName: node linkType: hard +"ramda@npm:@pnpm/ramda@0.28.1": + version: 0.28.1 + resolution: "@pnpm/ramda@npm:0.28.1" + checksum: e45e41ceab4f9a0a08fec9c7809a7b79cf3b3220998588f76567addb7533167b591112e0ea1a34b9d99f97ab7511a5bedb1cbb3d49c424c7dc0cdc060ffc2aae + languageName: node + linkType: hard + +"read-package-json-fast@npm:^3.0.0": + version: 3.0.2 + resolution: "read-package-json-fast@npm:3.0.2" + dependencies: + json-parse-even-better-errors: ^3.0.0 + npm-normalize-package-bin: ^3.0.0 + checksum: 8d406869f045f1d76e2a99865a8fd1c1af9c1dc06200b94d2b07eef87ed734b22703a8d72e1cd36ea36cc48e22020bdd187f88243c7dd0563f72114d38c17072 + languageName: node + linkType: hard + "read-pkg-up@npm:^7.0.1": version: 7.0.1 resolution: "read-pkg-up@npm:7.0.1" @@ -3731,14 +4454,24 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.4.3": - version: 1.5.0 - resolution: "regexp.prototype.flags@npm:1.5.0" +"regexp.prototype.flags@npm:^1.5.1": + version: 1.5.1 + resolution: "regexp.prototype.flags@npm:1.5.1" dependencies: call-bind: ^1.0.2 define-properties: ^1.2.0 - functions-have-names: ^1.2.3 - checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 + set-function-name: ^2.0.0 + checksum: 869edff00288442f8d7fa4c9327f91d85f3b3acf8cbbef9ea7a220345cf23e9241b6def9263d2c1ebcf3a316b0aa52ad26a43a84aa02baca3381717b3e307f47 + languageName: node + linkType: hard + +"rename-overwrite@npm:^4.0.4": + version: 4.0.4 + resolution: "rename-overwrite@npm:4.0.4" + dependencies: + "@zkochan/rimraf": ^2.1.2 + fs-extra: 10.1.0 + checksum: 80e694b8d47f0abe08d47f0ed90007305d50087d00b84e3430e8eb92cc101591c584148f20f83b6a5b1223ea1507f37b8b3fa619abac15c423739c5e0aa28011 languageName: node linkType: hard @@ -3787,28 +4520,28 @@ __metadata: linkType: hard "resolve@npm:^1.10.0": - version: 1.22.3 - resolution: "resolve@npm:1.22.3" + version: 1.22.8 + resolution: "resolve@npm:1.22.8" dependencies: - is-core-module: ^2.12.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: fb834b81348428cb545ff1b828a72ea28feb5a97c026a1cf40aa1008352c72811ff4d4e71f2035273dc536dcfcae20c13604ba6283c612d70fa0b6e44519c374 + checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c languageName: node linkType: hard "resolve@patch:resolve@^1.10.0#~builtin": - version: 1.22.3 - resolution: "resolve@patch:resolve@npm%3A1.22.3#~builtin::version=1.22.3&hash=c3c19d" + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" dependencies: - is-core-module: ^2.12.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: ad59734723b596d0891321c951592ed9015a77ce84907f89c9d9307dd0c06e11a67906a3e628c4cae143d3e44898603478af0ddeb2bba3f229a9373efe342665 + checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 languageName: node linkType: hard @@ -3836,6 +4569,13 @@ __metadata: languageName: node linkType: hard +"reverse-arguments@npm:^1.0.0": + version: 1.0.0 + resolution: "reverse-arguments@npm:1.0.0" + checksum: 4dc725066adb35bccdee90545bab7e3ddd07e61c3622afa22a6a17cc84cf22166f9355f8f206c89d344f0afc78a53ae6a8d43a710ca9774a676e3632a5a3d9a1 + languageName: node + linkType: hard + "rfdc@npm:^1.3.0": version: 1.3.0 resolution: "rfdc@npm:1.3.0" @@ -3863,6 +4603,18 @@ __metadata: languageName: node linkType: hard +"safe-array-concat@npm:^1.0.1": + version: 1.0.1 + resolution: "safe-array-concat@npm:1.0.1" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.1 + has-symbols: ^1.0.3 + isarray: ^2.0.5 + checksum: 001ecf1d8af398251cbfabaf30ed66e3855127fbceee178179524b24160b49d15442f94ed6c0db0b2e796da76bb05b73bf3cc241490ec9c2b741b41d33058581 + languageName: node + linkType: hard + "safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" @@ -3889,40 +4641,54 @@ __metadata: linkType: hard "semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0": - version: 5.7.1 - resolution: "semver@npm:5.7.1" + version: 5.7.2 + resolution: "semver@npm:5.7.2" bin: - semver: ./bin/semver - checksum: 57fd0acfd0bac382ee87cd52cd0aaa5af086a7dc8d60379dfe65fea491fb2489b6016400813930ecd61fd0952dae75c115287a1b16c234b1550887117744dfaf + semver: bin/semver + checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 languageName: node linkType: hard -"semver@npm:7.5.2": - version: 7.5.2 - resolution: "semver@npm:7.5.2" +"semver@npm:7.5.4, semver@npm:^7.0.0, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.4.0, semver@npm:^7.5.4": + version: 7.5.4 + resolution: "semver@npm:7.5.4" dependencies: lru-cache: ^6.0.0 bin: semver: bin/semver.js - checksum: 3fdf5d1e6f170fe8bcc41669e31787649af91af7f54f05c71d0865bb7aa27e8b92f68b3e6b582483e2c1c648008bc84249d2cd86301771fe5cbf7621d1fe5375 + checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 languageName: node linkType: hard -"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7": - version: 7.5.3 - resolution: "semver@npm:7.5.3" - dependencies: - lru-cache: ^6.0.0 +"semver@npm:^6.1.0": + version: 6.3.1 + resolution: "semver@npm:6.3.1" bin: semver: bin/semver.js - checksum: 9d58db16525e9f749ad0a696a1f27deabaa51f66e91d2fa2b0db3de3e9644e8677de3b7d7a03f4c15bc81521e0c3916d7369e0572dbde250d9bedf5194e2a8a7 + checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 languageName: node linkType: hard -"set-blocking@npm:^2.0.0": - version: 2.0.0 - resolution: "set-blocking@npm:2.0.0" - checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 +"set-function-length@npm:^1.1.1": + version: 1.1.1 + resolution: "set-function-length@npm:1.1.1" + dependencies: + define-data-property: ^1.1.1 + get-intrinsic: ^1.2.1 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + checksum: c131d7569cd7e110cafdfbfbb0557249b538477624dfac4fc18c376d879672fa52563b74029ca01f8f4583a8acb35bb1e873d573a24edb80d978a7ee607c6e06 + languageName: node + linkType: hard + +"set-function-name@npm:^2.0.0": + version: 2.0.1 + resolution: "set-function-name@npm:2.0.1" + dependencies: + define-data-property: ^1.0.1 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.0 + checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126 languageName: node linkType: hard @@ -3958,6 +4724,13 @@ __metadata: languageName: node linkType: hard +"shell-quote-word@npm:^1.0.1": + version: 1.0.1 + resolution: "shell-quote-word@npm:1.0.1" + checksum: 05c5df92acba3e7920dbd987b235276871d38cf360d339074cbfabea49bbca8406a6f06a822cd1e84912c3150277d73de5194ca21c37ef95e108dfe45372526f + languageName: node + linkType: hard + "shell-quote@npm:^1.6.1": version: 1.8.1 resolution: "shell-quote@npm:1.8.1" @@ -3976,21 +4749,14 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 languageName: node linkType: hard -"signal-exit@npm:^4.0.1": - version: 4.0.2 - resolution: "signal-exit@npm:4.0.2" - checksum: 41f5928431cc6e91087bf0343db786a6313dd7c6fd7e551dbc141c95bb5fb26663444fd9df8ea47c5d7fc202f60aa7468c3162a9365cbb0615fc5e1b1328fe31 - languageName: node - linkType: hard - -"signal-exit@npm:^4.1.0": +"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": version: 4.1.0 resolution: "signal-exit@npm:4.1.0" checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 @@ -4004,6 +4770,13 @@ __metadata: languageName: node linkType: hard +"slash@npm:^5.1.0": + version: 5.1.0 + resolution: "slash@npm:5.1.0" + checksum: 70434b34c50eb21b741d37d455110258c42d2cf18c01e6518aeb7299f3c6e626330c889c0c552b5ca2ef54a8f5a74213ab48895f0640717cacefeef6830a1ba4 + languageName: node + linkType: hard + "slice-ansi@npm:^5.0.0": version: 5.0.0 resolution: "slice-ansi@npm:5.0.0" @@ -4021,18 +4794,18 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^7.0.0": - version: 7.0.0 - resolution: "socks-proxy-agent@npm:7.0.0" +"socks-proxy-agent@npm:^8.0.1": + version: 8.0.2 + resolution: "socks-proxy-agent@npm:8.0.2" dependencies: - agent-base: ^6.0.2 - debug: ^4.3.3 - socks: ^2.6.2 - checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 + agent-base: ^7.0.2 + debug: ^4.3.4 + socks: ^2.7.1 + checksum: 4fb165df08f1f380881dcd887b3cdfdc1aba3797c76c1e9f51d29048be6e494c5b06d68e7aea2e23df4572428f27a3ec22b3d7c75c570c5346507433899a4b6d languageName: node linkType: hard -"socks@npm:^2.6.2": +"socks@npm:^2.7.1": version: 2.7.1 resolution: "socks@npm:2.7.1" dependencies: @@ -4042,23 +4815,6 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.21": - version: 0.5.21 - resolution: "source-map-support@npm:0.5.21" - dependencies: - buffer-from: ^1.0.0 - source-map: ^0.6.0 - checksum: 43e98d700d79af1d36f859bdb7318e601dfc918c7ba2e98456118ebc4c4872b327773e5a1df09b0524e9e5063bb18f0934538eace60cca2710d1fa687645d137 - languageName: node - linkType: hard - -"source-map@npm:^0.6.0": - version: 0.6.1 - resolution: "source-map@npm:0.6.1" - checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 - languageName: node - linkType: hard - "spdx-correct@npm:^3.0.0": version: 3.2.0 resolution: "spdx-correct@npm:3.2.0" @@ -4087,9 +4843,9 @@ __metadata: linkType: hard "spdx-license-ids@npm:^3.0.0": - version: 3.0.13 - resolution: "spdx-license-ids@npm:3.0.13" - checksum: 3469d85c65f3245a279fa11afc250c3dca96e9e847f2f79d57f466940c5bb8495da08a542646086d499b7f24a74b8d0b42f3fc0f95d50ff99af1f599f6360ad7 + version: 3.0.16 + resolution: "spdx-license-ids@npm:3.0.16" + checksum: 5cdaa85aaa24bd02f9353a2e357b4df0a4f205cb35655f3fd0a5674a4fb77081f28ffd425379214bc3be2c2b7593ce1215df6bcc75884aeee0a9811207feabe2 languageName: node linkType: hard @@ -4102,12 +4858,19 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^10.0.0": - version: 10.0.4 - resolution: "ssri@npm:10.0.4" +"split2@npm:^4.0.0": + version: 4.2.0 + resolution: "split2@npm:4.2.0" + checksum: 05d54102546549fe4d2455900699056580cca006c0275c334611420f854da30ac999230857a85fdd9914dc2109ae50f80fda43d2a445f2aa86eccdc1dfce779d + languageName: node + linkType: hard + +"ssri@npm:10.0.5, ssri@npm:^10.0.0": + version: 10.0.5 + resolution: "ssri@npm:10.0.5" dependencies: - minipass: ^5.0.0 - checksum: fb14da9f8a72b04eab163eb13a9dda11d5962cd2317f85457c4e0b575e9a6e0e3a6a87b5bf122c75cb36565830cd5f263fb457571bf6f1587eb5f95d095d6165 + minipass: ^7.0.3 + checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 languageName: node linkType: hard @@ -4118,7 +4881,7 @@ __metadata: languageName: node linkType: hard -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -4140,47 +4903,54 @@ __metadata: languageName: node linkType: hard +"string.fromcodepoint@npm:^0.2.1": + version: 0.2.1 + resolution: "string.fromcodepoint@npm:0.2.1" + checksum: 6ba80f70c3e2a36dab87f5d68168936403295a73838564e701f5c861d397d77d9e97b0e2aa0f3c163a25a96c785dcc2145452b220753fb7b3e6c6fe431c9c411 + languageName: node + linkType: hard + "string.prototype.padend@npm:^3.0.0": - version: 3.1.4 - resolution: "string.prototype.padend@npm:3.1.4" + version: 3.1.5 + resolution: "string.prototype.padend@npm:3.1.5" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 76e07238fe31dc12177428f0436b7ed6985f6a7ba97470fd53e4f0a6d9860bfee127d81957f3073cc879b434233df143825d140581e1340278053ad993c92f6c + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: fc915e0b6ae1dce07a9f5088429d84fda2c1c0ac9a05bc14a602f173cc2fdef32e4893dfba5656f8f955450c9c16deebdb8d303d27613a367bc6d8508a94cd5e languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.7": - version: 1.2.7 - resolution: "string.prototype.trim@npm:1.2.7" +"string.prototype.trim@npm:^1.2.8": + version: 1.2.8 + resolution: "string.prototype.trim@npm:1.2.8" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07 languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.6": - version: 1.0.6 - resolution: "string.prototype.trimend@npm:1.0.6" +"string.prototype.trimend@npm:^1.0.7": + version: 1.0.7 + resolution: "string.prototype.trimend@npm:1.0.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 0fdc34645a639bd35179b5a08227a353b88dc089adf438f46be8a7c197fc3f22f8514c1c9be4629b3cd29c281582730a8cbbad6466c60f76b5f99cf2addb132e + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 2375516272fd1ba75992f4c4aa88a7b5f3c7a9ca308d963bcd5645adf689eba6f8a04ebab80c33e30ec0aefc6554181a3a8416015c38da0aa118e60ec896310c languageName: node linkType: hard -"string.prototype.trimstart@npm:^1.0.6": - version: 1.0.6 - resolution: "string.prototype.trimstart@npm:1.0.6" +"string.prototype.trimstart@npm:^1.0.7": + version: 1.0.7 + resolution: "string.prototype.trimstart@npm:1.0.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 89080feef416621e6ef1279588994305477a7a91648d9436490d56010a1f7adc39167cddac7ce0b9884b8cdbef086987c4dcb2960209f2af8bac0d23ceff4f41 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 13d0c2cb0d5ff9e926fa0bec559158b062eed2b68cd5be777ffba782c96b2b492944e47057274e064549b94dd27cf81f48b27a31fee8af5b574cff253e7eb613 languageName: node linkType: hard @@ -4218,6 +4988,13 @@ __metadata: languageName: node linkType: hard +"strip-bom@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-bom@npm:4.0.0" + checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 + languageName: node + linkType: hard + "strip-final-newline@npm:^2.0.0": version: 2.0.0 resolution: "strip-final-newline@npm:2.0.0" @@ -4241,13 +5018,27 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:5.0.1": + version: 5.0.1 + resolution: "strip-json-comments@npm:5.0.1" + checksum: b314af70c6666a71133e309a571bdb87687fc878d9fd8b38ebed393a77b89835b92f191aa6b0bc10dfd028ba99eed6b6365985001d64c5aef32a4a82456a156b + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 languageName: node linkType: hard +"summary@npm:2.1.0": + version: 2.1.0 + resolution: "summary@npm:2.1.0" + checksum: 10ac12ce12c013b56ad44c37cfac206961f0993d98867b33b1b03a27b38a1cf8dd2db0b788883356c5335bbbb37d953772ef4a381d6fc8f408faf99f2bc54af5 + languageName: node + linkType: hard + "supports-color@npm:^5.3.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" @@ -4274,8 +5065,8 @@ __metadata: linkType: hard "tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.1.15 - resolution: "tar@npm:6.1.15" + version: 6.2.0 + resolution: "tar@npm:6.2.0" dependencies: chownr: ^2.0.0 fs-minipass: ^2.0.0 @@ -4283,14 +5074,14 @@ __metadata: minizlib: ^2.1.1 mkdirp: ^1.0.3 yallist: ^4.0.0 - checksum: f23832fceeba7578bf31907aac744ae21e74a66f4a17a9e94507acf460e48f6db598c7023882db33bab75b80e027c21f276d405e4a0322d58f51c7088d428268 + checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c languageName: node linkType: hard -"text-extensions@npm:^1.0.0": - version: 1.9.0 - resolution: "text-extensions@npm:1.9.0" - checksum: 56a9962c1b62d39b2bcb369b7558ca85c1b55e554b38dfd725edcc0a1babe5815782a60c17ff6b839093b163dfebb92b804208aaaea616ec7571c8059ae0cf44 +"text-extensions@npm:^2.0.0": + version: 2.4.0 + resolution: "text-extensions@npm:2.4.0" + checksum: 9bdbc9959e004ccc86a6ec076d6c5bb6765978263e9d0d5febb640d7675c09919ea912f3fe9d50b68c3c7c43cc865610a7cb24954343abb31f74c205fbae4e45 languageName: node linkType: hard @@ -4317,6 +5108,22 @@ __metadata: languageName: node linkType: hard +"to-no-case@npm:^1.0.0": + version: 1.0.2 + resolution: "to-no-case@npm:1.0.2" + checksum: 1d85326eeb89f9f3a805bf5b395bcabb8556e882350164c1faa10846076732f4cec02ac95b016e7d6bb2f55e448ce5dd227c7699ec43e387c705a5b2b1ee2963 + languageName: node + linkType: hard + +"to-pascal-case@npm:^1.0.0": + version: 1.0.0 + resolution: "to-pascal-case@npm:1.0.0" + dependencies: + to-space-case: ^1.0.0 + checksum: 3956e209defc6df9de98c5db24a16fb2a1a11f711350ea3bdd9466240a04ab889fa09f1bd005e26fc31343c1cca341981daf2d80d4ec3f2d0706a557978f8b91 + languageName: node + linkType: hard + "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -4326,6 +5133,15 @@ __metadata: languageName: node linkType: hard +"to-space-case@npm:^1.0.0": + version: 1.0.0 + resolution: "to-space-case@npm:1.0.0" + dependencies: + to-no-case: ^1.0.0 + checksum: 157cebe3e98e7cb465fe1978cf26450cc8ea8e637a01039854fac7ed60ad074e5e18b32333cc5f30df81b81ca374d63df768cd4c1fa0fe672605f965376227f4 + languageName: node + linkType: hard + "trim-newlines@npm:^3.0.0": version: 3.0.1 resolution: "trim-newlines@npm:3.0.1" @@ -4333,41 +5149,12 @@ __metadata: languageName: node linkType: hard -"ts-node@npm:^10.8.1": - version: 10.9.1 - resolution: "ts-node@npm:10.9.1" - dependencies: - "@cspotcode/source-map-support": ^0.8.0 - "@tsconfig/node10": ^1.0.7 - "@tsconfig/node12": ^1.0.7 - "@tsconfig/node14": ^1.0.0 - "@tsconfig/node16": ^1.0.2 - acorn: ^8.4.1 - acorn-walk: ^8.1.1 - arg: ^4.1.0 - create-require: ^1.1.0 - diff: ^4.0.1 - make-error: ^1.1.1 - v8-compile-cache-lib: ^3.0.1 - yn: 3.1.1 +"ts-api-utils@npm:^1.0.1": + version: 1.0.3 + resolution: "ts-api-utils@npm:1.0.3" peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - bin: - ts-node: dist/bin.js - ts-node-cwd: dist/bin-cwd.js - ts-node-esm: dist/bin-esm.js - ts-node-script: dist/bin-script.js - ts-node-transpile-only: dist/bin-transpile.js - ts-script: dist/bin-script-deprecated.js - checksum: 090adff1302ab20bd3486e6b4799e90f97726ed39e02b39e566f8ab674fd5bd5f727f43615debbfc580d33c6d9d1c6b1b3ce7d8e3cca3e20530a145ffa232c35 + typescript: ">=4.2.0" + checksum: 441cc4489d65fd515ae6b0f4eb8690057add6f3b6a63a36073753547fb6ce0c9ea0e0530220a0b282b0eec535f52c4dfc315d35f8a4c9a91c0def0707a714ca6 languageName: node linkType: hard @@ -4375,54 +5162,37 @@ __metadata: version: 0.0.0-use.local resolution: "ts-template@workspace:." dependencies: - "@commitlint/cli": ^17.6.6 - "@commitlint/config-conventional": ^17.6.6 - "@types/node": ^20.3.2 - "@typescript-eslint/eslint-plugin": ^5.60.1 - "@typescript-eslint/parser": ^5.60.1 + "@commitlint/cli": ^18.4.3 + "@commitlint/config-conventional": ^18.4.3 + "@types/node": ^20.10.0 + "@typescript-eslint/eslint-plugin": ^6.13.1 + "@typescript-eslint/parser": ^6.13.1 dotenv: ^16.3.1 - eslint: ^8.43.0 + esbuild: ^0.19.8 + eslint: ^8.54.0 husky: ^8.0.3 + knip: ^3.3.0 lint-staged: ^15.1.0 npm-run-all: ^4.1.5 - prettier: ^2.8.8 - tsx: ^3.12.7 - typescript: ^5.1.0 + prettier: ^3.1.0 + tsx: ^4.6.0 + typescript: ^5.3.2 languageName: unknown linkType: soft -"tslib@npm:^1.8.1": - version: 1.14.1 - resolution: "tslib@npm:1.14.1" - checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd - languageName: node - linkType: hard - -"tsutils@npm:^3.21.0": - version: 3.21.0 - resolution: "tsutils@npm:3.21.0" - dependencies: - tslib: ^1.8.1 - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 - languageName: node - linkType: hard - -"tsx@npm:^3.12.7": - version: 3.12.7 - resolution: "tsx@npm:3.12.7" +"tsx@npm:^4.6.0": + version: 4.6.0 + resolution: "tsx@npm:4.6.0" dependencies: - "@esbuild-kit/cjs-loader": ^2.4.2 - "@esbuild-kit/core-utils": ^3.0.0 - "@esbuild-kit/esm-loader": ^2.5.5 - fsevents: ~2.3.2 + esbuild: ~0.18.20 + fsevents: ~2.3.3 + get-tsconfig: ^4.7.2 dependenciesMeta: fsevents: optional: true bin: - tsx: dist/cli.js - checksum: ddec149ad263e5c75fc8fde5c6ba7ec2ee390934c0a2e2c23897bacab83bc8c665955a23b608a19c42f49c14a7362cf74ad793b52cc94eda684be5c2c13fdb4d + tsx: dist/cli.mjs + checksum: fee53c89cc8f507c64b6f36460597e6a4e91ac3d37609d999ec1d8e1a5a3b545fa83b3a34762ad54536141ad536359f2590e1eb46a71cf8b2f4a5390bf91f04e languageName: node linkType: hard @@ -4470,6 +5240,42 @@ __metadata: languageName: node linkType: hard +"typed-array-buffer@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-buffer@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.1 + is-typed-array: ^1.1.10 + checksum: 3e0281c79b2a40cd97fe715db803884301993f4e8c18e8d79d75fd18f796e8cd203310fec8c7fdb5e6c09bedf0af4f6ab8b75eb3d3a85da69328f28a80456bd3 + languageName: node + linkType: hard + +"typed-array-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + has-proto: ^1.0.1 + is-typed-array: ^1.1.10 + checksum: b03db16458322b263d87a702ff25388293f1356326c8a678d7515767ef563ef80e1e67ce648b821ec13178dd628eb2afdc19f97001ceae7a31acf674c849af94 + languageName: node + linkType: hard + +"typed-array-byte-offset@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-byte-offset@npm:1.0.0" + 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.10 + checksum: 04f6f02d0e9a948a95fbfe0d5a70b002191fae0b8fe0fe3130a9b2336f043daf7a3dda56a31333c35a067a97e13f539949ab261ca0f3692c41603a46a94e960b + languageName: node + linkType: hard + "typed-array-length@npm:^1.0.4": version: 1.0.4 resolution: "typed-array-length@npm:1.0.4" @@ -4481,23 +5287,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^4.6.4 || ^5.0.0, typescript@npm:^5.1.0": - version: 5.1.6 - resolution: "typescript@npm:5.1.6" +"typescript@npm:^5.3.2": + version: 5.3.2 + resolution: "typescript@npm:5.3.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: b2f2c35096035fe1f5facd1e38922ccb8558996331405eb00a5111cc948b2e733163cc22fab5db46992aba7dd520fff637f2c1df4996ff0e134e77d3249a7350 + checksum: d92534dda639eb825db013203404c1fabca8ac630564283c9e7dc9e64fd9c9346c2de95ecebdf3e6e8c1c32941bca1cfe0da37877611feb9daf8feeaea58d230 languageName: node linkType: hard -"typescript@patch:typescript@^4.6.4 || ^5.0.0#~builtin, typescript@patch:typescript@^5.1.0#~builtin": - version: 5.1.6 - resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=1f5320" +"typescript@patch:typescript@^5.3.2#~builtin": + version: 5.3.2 + resolution: "typescript@patch:typescript@npm%3A5.3.2#~builtin::version=5.3.2&hash=1f5320" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 21e88b0a0c0226f9cb9fd25b9626fb05b4c0f3fddac521844a13e1f30beb8f14e90bd409a9ac43c812c5946d714d6e0dee12d5d02dfc1c562c5aacfa1f49b606 + checksum: c034461079fbfde3cb584ddee52afccb15b6e32a0ce186d0b2719968786f7ca73e1b07f71fac4163088790b16811c6ccf79680de190664ef66ff0ba9c1fe4a23 languageName: node linkType: hard @@ -4513,6 +5319,29 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487 + languageName: node + linkType: hard + +"unescape-js@npm:^1.0.5": + version: 1.1.4 + resolution: "unescape-js@npm:1.1.4" + dependencies: + string.fromcodepoint: ^0.2.1 + checksum: 97acf60a8f6c170f8a66b48b71f5c56bda728c2ff6b08c3443c5f21635bf5fa38a4265bcfcf46d17cb6ac9bbb8b913a34b1abc5cfe8db5d7cc5c8eecb1817472 + languageName: node + linkType: hard + +"unicorn-magic@npm:^0.1.0": + version: 0.1.0 + resolution: "unicorn-magic@npm:0.1.0" + checksum: 48c5882ca3378f380318c0b4eb1d73b7e3c5b728859b060276e0a490051d4180966beeb48962d850fd0c6816543bcdfc28629dcd030bb62a286a2ae2acb5acb6 + languageName: node + linkType: hard + "unique-filename@npm:^3.0.0": version: 3.0.0 resolution: "unique-filename@npm:3.0.0" @@ -4531,10 +5360,19 @@ __metadata: languageName: node linkType: hard -"universalify@npm:^2.0.0": +"unique-string@npm:^2.0.0": version: 2.0.0 - resolution: "universalify@npm:2.0.0" - checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 + resolution: "unique-string@npm:2.0.0" + dependencies: + crypto-random-string: ^2.0.0 + checksum: ef68f639136bcfe040cf7e3cd7a8dff076a665288122855148a6f7134092e6ed33bf83a7f3a9185e46c98dddc445a0da6ac25612afa1a7c38b8b654d6c02498e + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 languageName: node linkType: hard @@ -4554,13 +5392,6 @@ __metadata: languageName: node linkType: hard -"v8-compile-cache-lib@npm:^3.0.1": - version: 3.0.1 - resolution: "v8-compile-cache-lib@npm:3.0.1" - checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 - languageName: node - linkType: hard - "validate-npm-package-license@npm:^3.0.1": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" @@ -4571,6 +5402,40 @@ __metadata: languageName: node linkType: hard +"validate-npm-package-name@npm:^4.0.0": + version: 4.0.0 + resolution: "validate-npm-package-name@npm:4.0.0" + dependencies: + builtins: ^5.0.0 + checksum: a32fd537bad17fcb59cfd58ae95a414d443866020d448ec3b22e8d40550cb585026582a57efbe1f132b882eea4da8ac38ee35f7be0dd72988a3cb55d305a20c1 + languageName: node + linkType: hard + +"version-selector-type@npm:^3.0.0": + version: 3.0.0 + resolution: "version-selector-type@npm:3.0.0" + dependencies: + semver: ^7.3.2 + checksum: e97968054ad3bd2ff25a1c8e55273d34db5601e573f1ebca144b145d6a984925390358959859e77aca526082a64483e776e3f15178b0d8e2b3f1deb64932a7aa + languageName: node + linkType: hard + +"vlq@npm:^0.2.1": + version: 0.2.3 + resolution: "vlq@npm:0.2.3" + checksum: 2231d8caeb5b2c1a438677ab029e9a94aa6fb61ab05819c72691b792aea0456dab29576aff5ae29309ee45bad0a309e832dc45173119bca1393f3b87709d8f8d + languageName: node + linkType: hard + +"wcwidth@npm:^1.0.1": + version: 1.0.1 + resolution: "wcwidth@npm:1.0.1" + dependencies: + defaults: ^1.0.3 + checksum: 814e9d1ddcc9798f7377ffa448a5a3892232b9275ebb30a41b529607691c0491de47cba426e917a4d08ded3ee7e9ba2f3fe32e62ee3cd9c7d3bafb7754bd553c + languageName: node + linkType: hard + "which-boxed-primitive@npm:^1.0.2": version: 1.0.2 resolution: "which-boxed-primitive@npm:1.0.2" @@ -4584,17 +5449,16 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.9": - version: 1.1.9 - resolution: "which-typed-array@npm:1.1.9" +"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.13": + version: 1.1.13 + resolution: "which-typed-array@npm:1.1.13" dependencies: available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 + call-bind: ^1.0.4 for-each: ^0.3.3 gopd: ^1.0.1 has-tostringtag: ^1.0.0 - is-typed-array: ^1.1.10 - checksum: fe0178ca44c57699ca2c0e657b64eaa8d2db2372a4e2851184f568f98c478ae3dc3fdb5f7e46c384487046b0cf9e23241423242b277e03e8ba3dabc7c84c98ef + checksum: 3828a0d5d72c800e369d447e54c7620742a4cc0c9baf1b5e8c17e9b6ff90d8d861a3a6dd4800f1953dbf80e5e5cec954a289e5b4a223e3bee4aeb1f8c5f33309 languageName: node linkType: hard @@ -4609,7 +5473,7 @@ __metadata: languageName: node linkType: hard -"which@npm:^2.0.1, which@npm:^2.0.2": +"which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" dependencies: @@ -4620,12 +5484,14 @@ __metadata: languageName: node linkType: hard -"wide-align@npm:^1.1.5": - version: 1.1.5 - resolution: "wide-align@npm:1.1.5" +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" dependencies: - string-width: ^1.0.2 || 2 || 3 || 4 - checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 + isexe: ^3.1.1 + bin: + node-which: bin/which.js + checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 languageName: node linkType: hard @@ -4708,16 +5574,25 @@ __metadata: languageName: node linkType: hard -"yn@npm:3.1.1": - version: 3.1.1 - resolution: "yn@npm:3.1.1" - checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 - languageName: node - linkType: hard - "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0" checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 languageName: node linkType: hard + +"zod-validation-error@npm:2.1.0": + version: 2.1.0 + resolution: "zod-validation-error@npm:2.1.0" + peerDependencies: + zod: ^3.18.0 + checksum: 2331cc8d876c2df0b720b648249447b65d6b85ad0b6e60dd6515170570e6ffbe7a9adb844d44035c07d59c871048d9c45a8c429849bedeb8cbcdfa5f90101402 + languageName: node + linkType: hard + +"zod@npm:3.22.4": + version: 3.22.4 + resolution: "zod@npm:3.22.4" + checksum: 80bfd7f8039b24fddeb0718a2ec7c02aa9856e4838d6aa4864335a047b6b37a3273b191ef335bf0b2002e5c514ef261ffcda5a589fb084a48c336ffc4cdbab7f + languageName: node + linkType: hard From 7ffbda1732fbb579cb0f9db0e8e59a8521b02725 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Wed, 29 Nov 2023 15:40:30 +0900 Subject: [PATCH 24/85] feat: easy ui support --- static/index.html | 2 +- static/style.css | 8 +++++--- tsconfig.json | 12 ++++++------ 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/static/index.html b/static/index.html index 0454a982..dbae5f49 100644 --- a/static/index.html +++ b/static/index.html @@ -1,4 +1,4 @@ - + diff --git a/static/style.css b/static/style.css index b370696e..3bbb3f0f 100644 --- a/static/style.css +++ b/static/style.css @@ -1,4 +1,4 @@ -body{ +body { font-family: "Proxima Nova", "Ubiquity Nova", sans-serif; background-color: #06061aff; color: #fff; @@ -9,6 +9,8 @@ body{ font-style: normal; font-weight: 400; src: url(./fonts/ubiquity-nova-standard.eot); - src: url(./fonts/ubiquity-nova-standard.eot#iefix) format("embedded-opentype"), url(./fonts/ubiquity-nova-standard.woff) format("woff"), + src: + url(./fonts/ubiquity-nova-standard.eot#iefix) format("embedded-opentype"), + url(./fonts/ubiquity-nova-standard.woff) format("woff"), url(./fonts/ubiquity-nova-standard.ttf) format("truetype"); -} \ No newline at end of file +} diff --git a/tsconfig.json b/tsconfig.json index e075f973..bb2f7f66 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,7 +11,7 @@ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ /* Language and Environment */ - "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ @@ -25,7 +25,7 @@ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ - "module": "commonjs", /* Specify what module code is generated. */ + "module": "commonjs" /* Specify what module code is generated. */, // "rootDir": "./", /* Specify the root folder within your source files. */ // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ @@ -77,12 +77,12 @@ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ + "strict": true /* Enable all strict type-checking options. */, // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ @@ -104,6 +104,6 @@ /* Completeness */ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ } } From 4880237fb5d524e8315638f10bae984f3942999c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Wed, 29 Nov 2023 18:09:05 +0900 Subject: [PATCH 25/85] fix: prettier for css --- package.json | 2 + yarn.lock | 243 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 242 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index b8ee457d..3c683923 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,8 @@ "@typescript-eslint/parser": "^6.13.1", "esbuild": "^0.19.8", "eslint": "^8.54.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.1", "husky": "^8.0.3", "knip": "^3.3.0", "lint-staged": "^15.1.0", diff --git a/yarn.lock b/yarn.lock index 8662eba1..8d62a3f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -726,6 +726,20 @@ __metadata: languageName: node linkType: hard +"@pkgr/utils@npm:^2.3.1": + version: 2.4.2 + resolution: "@pkgr/utils@npm:2.4.2" + dependencies: + cross-spawn: ^7.0.3 + fast-glob: ^3.3.0 + is-glob: ^4.0.3 + open: ^9.1.0 + picocolors: ^1.0.0 + tslib: ^2.6.0 + checksum: 24e04c121269317d259614cd32beea3af38277151c4002df5883c4be920b8e3490bb897748e844f9d46bf68230f86dabd4e8f093773130e7e60529a769a132fc + languageName: node + linkType: hard + "@pnpm/constants@npm:7.1.1": version: 7.1.1 resolution: "@pnpm/constants@npm:7.1.1" @@ -1292,6 +1306,13 @@ __metadata: languageName: node linkType: hard +"big-integer@npm:^1.6.44": + version: 1.6.52 + resolution: "big-integer@npm:1.6.52" + checksum: 6e86885787a20fed96521958ae9086960e4e4b5e74d04f3ef7513d4d0ad631a9f3bde2730fc8aaa4b00419fc865f6ec573e5320234531ef37505da7da192c40b + languageName: node + linkType: hard + "bole@npm:^5.0.0": version: 5.0.9 resolution: "bole@npm:5.0.9" @@ -1302,6 +1323,15 @@ __metadata: languageName: node linkType: hard +"bplist-parser@npm:^0.2.0": + version: 0.2.0 + resolution: "bplist-parser@npm:0.2.0" + dependencies: + big-integer: ^1.6.44 + checksum: d5339dd16afc51de6c88f88f58a45b72ed6a06aa31f5557d09877575f220b7c1d3fbe375da0b62e6a10d4b8ed80523567e351f24014f5bc886ad523758142cdd + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -1339,6 +1369,15 @@ __metadata: languageName: node linkType: hard +"bundle-name@npm:^3.0.0": + version: 3.0.0 + resolution: "bundle-name@npm:3.0.0" + dependencies: + run-applescript: ^5.0.0 + checksum: edf2b1fbe6096ed32e7566947ace2ea937ee427391744d7510a2880c4b9a5b3543d3f6c551236a29e5c87d3195f8e2912516290e638c15bcbede7b37cc375615 + languageName: node + linkType: hard + "cacache@npm:^18.0.0": version: 18.0.1 resolution: "cacache@npm:18.0.1" @@ -1703,6 +1742,28 @@ __metadata: languageName: node linkType: hard +"default-browser-id@npm:^3.0.0": + version: 3.0.0 + resolution: "default-browser-id@npm:3.0.0" + dependencies: + bplist-parser: ^0.2.0 + untildify: ^4.0.0 + checksum: 279c7ad492542e5556336b6c254a4eaf31b2c63a5433265655ae6e47301197b6cfb15c595a6fdc6463b2ff8e1a1a1ed3cba56038a60e1527ba4ab1628c6b9941 + languageName: node + linkType: hard + +"default-browser@npm:^4.0.0": + version: 4.0.0 + resolution: "default-browser@npm:4.0.0" + dependencies: + bundle-name: ^3.0.0 + default-browser-id: ^3.0.0 + execa: ^7.1.1 + titleize: ^3.0.0 + checksum: 40c5af984799042b140300be5639c9742599bda76dc9eba5ac9ad5943c83dd36cebc4471eafcfddf8e0ec817166d5ba89d56f08e66a126c7c7908a179cead1a7 + languageName: node + linkType: hard + "defaults@npm:^1.0.3": version: 1.0.4 resolution: "defaults@npm:1.0.4" @@ -1723,6 +1784,13 @@ __metadata: languageName: node linkType: hard +"define-lazy-prop@npm:^3.0.0": + version: 3.0.0 + resolution: "define-lazy-prop@npm:3.0.0" + checksum: 54884f94caac0791bf6395a3ec530ce901cf71c47b0196b8754f3fd17edb6c0e80149c1214429d851873bb0d689dbe08dcedbb2306dc45c8534a5934723851b6 + languageName: node + linkType: hard + "define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": version: 1.2.1 resolution: "define-properties@npm:1.2.1" @@ -2087,6 +2155,36 @@ __metadata: languageName: node linkType: hard +"eslint-config-prettier@npm:^9.0.0": + version: 9.0.0 + resolution: "eslint-config-prettier@npm:9.0.0" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 362e991b6cb343f79362bada2d97c202e5303e6865888918a7445c555fb75e4c078b01278e90be98aa98ae22f8597d8e93d48314bec6824f540f7efcab3ce451 + languageName: node + linkType: hard + +"eslint-plugin-prettier@npm:^5.0.1": + version: 5.0.1 + resolution: "eslint-plugin-prettier@npm:5.0.1" + dependencies: + prettier-linter-helpers: ^1.0.0 + synckit: ^0.8.5 + peerDependencies: + "@types/eslint": ">=8.0.0" + eslint: ">=8.0.0" + prettier: ">=3.0.0" + peerDependenciesMeta: + "@types/eslint": + optional: true + eslint-config-prettier: + optional: true + checksum: c2261033b97bafe99ccb7cc47c2fac6fa85b8bbc8b128042e52631f906b69e12afed2cdd9d7e3021cc892ee8dd4204a3574e1f32a0b718b4bb3b440944b6983b + languageName: node + linkType: hard + "eslint-scope@npm:^7.2.2": version: 7.2.2 resolution: "eslint-scope@npm:7.2.2" @@ -2236,6 +2334,23 @@ __metadata: languageName: node linkType: hard +"execa@npm:^7.1.1": + version: 7.2.0 + resolution: "execa@npm:7.2.0" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^6.0.1 + human-signals: ^4.3.0 + is-stream: ^3.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^5.1.0 + onetime: ^6.0.0 + signal-exit: ^3.0.7 + strip-final-newline: ^3.0.0 + checksum: 14fd17ba0ca8c87b277584d93b1d9fc24f2a65e5152b31d5eb159a3b814854283eaae5f51efa9525e304447e2f757c691877f7adff8fde5746aae67eb1edd1cc + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -2250,7 +2365,14 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:3.3.2, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": +"fast-diff@npm:^1.1.2": + version: 1.3.0 + resolution: "fast-diff@npm:1.3.0" + checksum: d22d371b994fdc8cce9ff510d7b8dc4da70ac327bcba20df607dd5b9cae9f908f4d1028f5fe467650f058d1e7270235ae0b8230809a262b4df587a3b3aa216c3 + languageName: node + linkType: hard + +"fast-glob@npm:3.3.2, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -2503,7 +2625,7 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^6.0.0": +"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": version: 6.0.1 resolution: "get-stream@npm:6.0.1" checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad @@ -2802,6 +2924,13 @@ __metadata: languageName: node linkType: hard +"human-signals@npm:^4.3.0": + version: 4.3.1 + resolution: "human-signals@npm:4.3.1" + checksum: 6f12958df3f21b6fdaf02d90896c271df00636a31e2bbea05bddf817a35c66b38a6fdac5863e2df85bd52f34958997f1f50350ff97249e1dff8452865d5235d1 + languageName: node + linkType: hard + "human-signals@npm:^5.0.0": version: 5.0.0 resolution: "human-signals@npm:5.0.0" @@ -2976,6 +3105,24 @@ __metadata: languageName: node linkType: hard +"is-docker@npm:^2.0.0": + version: 2.2.1 + resolution: "is-docker@npm:2.2.1" + bin: + is-docker: cli.js + checksum: 3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56 + languageName: node + linkType: hard + +"is-docker@npm:^3.0.0": + version: 3.0.0 + resolution: "is-docker@npm:3.0.0" + bin: + is-docker: cli.js + checksum: b698118f04feb7eaf3338922bd79cba064ea54a1c3db6ec8c0c8d8ee7613e7e5854d802d3ef646812a8a3ace81182a085dfa0a71cc68b06f3fa794b9783b3c90 + languageName: node + linkType: hard + "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -3006,6 +3153,17 @@ __metadata: languageName: node linkType: hard +"is-inside-container@npm:^1.0.0": + version: 1.0.0 + resolution: "is-inside-container@npm:1.0.0" + dependencies: + is-docker: ^3.0.0 + bin: + is-inside-container: cli.js + checksum: c50b75a2ab66ab3e8b92b3bc534e1ea72ca25766832c0623ac22d134116a98bcf012197d1caabe1d1c4bd5f84363d4aa5c36bb4b585fbcaf57be172cd10a1a03 + languageName: node + linkType: hard + "is-iterable@npm:^1.1.0": version: 1.1.1 resolution: "is-iterable@npm:1.1.1" @@ -3149,6 +3307,15 @@ __metadata: languageName: node linkType: hard +"is-wsl@npm:^2.2.0": + version: 2.2.0 + resolution: "is-wsl@npm:2.2.0" + dependencies: + is-docker: ^2.0.0 + checksum: 20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8 + languageName: node + linkType: hard + "isarray@npm:^2.0.5": version: 2.0.5 resolution: "isarray@npm:2.0.5" @@ -4073,6 +4240,18 @@ __metadata: languageName: node linkType: hard +"open@npm:^9.1.0": + version: 9.1.0 + resolution: "open@npm:9.1.0" + dependencies: + default-browser: ^4.0.0 + define-lazy-prop: ^3.0.0 + is-inside-container: ^1.0.0 + is-wsl: ^2.2.0 + checksum: 3993c0f61d51fed8ac290e99c9c3cf45d3b6cfb3e2aa2b74cafd312c3486c22fd81df16ac8f3ab91dd8a4e3e729a16fc2480cfc406c4833416cf908acf1ae7c9 + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -4287,6 +4466,13 @@ __metadata: languageName: node linkType: hard +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 + languageName: node + linkType: hard + "picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" @@ -4326,6 +4512,15 @@ __metadata: languageName: node linkType: hard +"prettier-linter-helpers@npm:^1.0.0": + version: 1.0.0 + resolution: "prettier-linter-helpers@npm:1.0.0" + dependencies: + fast-diff: ^1.1.2 + checksum: 00ce8011cf6430158d27f9c92cfea0a7699405633f7f1d4a45f07e21bf78e99895911cbcdc3853db3a824201a7c745bd49bfea8abd5fb9883e765a90f74f8392 + languageName: node + linkType: hard + "prettier@npm:^3.1.0": version: 3.1.0 resolution: "prettier@npm:3.1.0" @@ -4594,6 +4789,15 @@ __metadata: languageName: node linkType: hard +"run-applescript@npm:^5.0.0": + version: 5.0.0 + resolution: "run-applescript@npm:5.0.0" + dependencies: + execa: ^5.0.0 + checksum: d00c2dbfa5b2d774de7451194b8b125f40f65fc183de7d9dcae97f57f59433586d3c39b9001e111c38bfa24c3436c99df1bb4066a2a0c90d39a8c4cd6889af77 + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -4749,7 +4953,7 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3": +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 @@ -5064,6 +5268,16 @@ __metadata: languageName: node linkType: hard +"synckit@npm:^0.8.5": + version: 0.8.5 + resolution: "synckit@npm:0.8.5" + dependencies: + "@pkgr/utils": ^2.3.1 + tslib: ^2.5.0 + checksum: 8a9560e5d8f3d94dc3cf5f7b9c83490ffa30d320093560a37b88f59483040771fd1750e76b9939abfbb1b5a23fd6dfbae77f6b338abffe7cae7329cd9b9bb86b + languageName: node + linkType: hard + "tar@npm:^6.1.11, tar@npm:^6.1.2": version: 6.2.0 resolution: "tar@npm:6.2.0" @@ -5108,6 +5322,13 @@ __metadata: languageName: node linkType: hard +"titleize@npm:^3.0.0": + version: 3.0.0 + resolution: "titleize@npm:3.0.0" + checksum: 71fbbeabbfb36ccd840559f67f21e356e1d03da2915b32d2ae1a60ddcc13a124be2739f696d2feb884983441d159a18649e8d956648d591bdad35c430a6b6d28 + languageName: node + linkType: hard + "to-no-case@npm:^1.0.0": version: 1.0.2 resolution: "to-no-case@npm:1.0.2" @@ -5170,6 +5391,8 @@ __metadata: dotenv: ^16.3.1 esbuild: ^0.19.8 eslint: ^8.54.0 + eslint-config-prettier: ^9.0.0 + eslint-plugin-prettier: ^5.0.1 husky: ^8.0.3 knip: ^3.3.0 lint-staged: ^15.1.0 @@ -5180,6 +5403,13 @@ __metadata: languageName: unknown linkType: soft +"tslib@npm:^2.5.0, tslib@npm:^2.6.0": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad + languageName: node + linkType: hard + "tsx@npm:^4.6.0": version: 4.6.0 resolution: "tsx@npm:4.6.0" @@ -5376,6 +5606,13 @@ __metadata: languageName: node linkType: hard +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9 + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" From 885d820e0f7c1c73cbb83c15ca899dc1575d349e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Thu, 30 Nov 2023 00:46:13 +0900 Subject: [PATCH 26/85] chore: add .env file to .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f617cbfa..64d4f8be 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ node_modules .yarn .pnp.cjs .pnp.loader.mjs -static/dist \ No newline at end of file +static/dist +.env \ No newline at end of file From 937630eb4abf93b7f3055b660e9bebc809d53399 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Fri, 8 Dec 2023 02:56:58 +0900 Subject: [PATCH 27/85] fix: lint staged --- .husky/commit-msg | 3 +-- .husky/pre-commit | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100755 .husky/pre-commit diff --git a/.husky/commit-msg b/.husky/commit-msg index d76dfb8b..b78bacbd 100755 --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,5 +1,4 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -yarn commitlint --edit "$1" -yarn lint-staged \ No newline at end of file +yarn commitlint --edit "$1" \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000..5a182ef1 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +yarn lint-staged From 9cad989afff96c8786db86cb92df64e808b5f405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Fri, 8 Dec 2023 02:57:59 +0900 Subject: [PATCH 28/85] fix: lint staged --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 3c683923..cddcd7fd 100644 --- a/package.json +++ b/package.json @@ -46,8 +46,8 @@ }, "lint-staged": { "*.ts": [ - "yarn format:prettier --write", - "yarn format:lint --fix" + "yarn prettier --write", + "eslint --fix" ] }, "commitlint": { From 7ff54df48c5d08eff19f0bd06e98cab8fdcb9c72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Tue, 23 Jan 2024 17:51:47 +0900 Subject: [PATCH 29/85] chore: remove tabs https://github.com/ubiquity/ubiquibot-kernel/pull/2#discussion_r1452108957 --- .prettierrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.prettierrc b/.prettierrc index 55071e6d..816d7f8c 100644 --- a/.prettierrc +++ b/.prettierrc @@ -5,5 +5,6 @@ "singleQuote": false, "printWidth": 160, "htmlWhitespaceSensitivity": "strict", - "plugins": [] + "plugins": [], + "useTabs": false } From 4e8bf2b14aa38ad0e3bcdd82a4e080be86d77179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Tue, 23 Jan 2024 17:52:16 +0900 Subject: [PATCH 30/85] feat: reusable deploy script --- .github/workflows/cloudflare-deploy.yml | 49 ++++++------------------- 1 file changed, 11 insertions(+), 38 deletions(-) diff --git a/.github/workflows/cloudflare-deploy.yml b/.github/workflows/cloudflare-deploy.yml index 34f01711..1559949f 100644 --- a/.github/workflows/cloudflare-deploy.yml +++ b/.github/workflows/cloudflare-deploy.yml @@ -1,10 +1,7 @@ name: Deploy to Cloudflare Pages on: - workflow_run: - workflows: ["Conventional Commits"] - types: - - completed + push: jobs: deploy-to-cloudflare: @@ -14,38 +11,14 @@ jobs: contents: read steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Setup Node - uses: actions/setup-node@v3 + - name: Deploy to Cloudflare + uses: ubiquity/cloudflare-deploy-action@main with: - node-version: "20.10.0" - - - name: Yarn Install - run: yarn install - - - name: Build the project - run: yarn build - - - name: Wrangler Install - run: yarn add wrangler - - - name: Publish to Cloudflare - env: - CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - REPOSITORY: ${{ github.repository }} - PRODUCTION_BRANCH: "development" - OUTPUT_DIRECTORY: "static" - run: | - IFS='/' read -ra fields <<< "$REPOSITORY" - projectName="${fields[1]}" - echo $projectName - yarn wrangler pages project list > project_list.txt - if grep -q $projectName project_list.txt; then - echo "Project found" - else - echo "Project not found" - yarn wrangler pages project create "$projectName" --production-branch "$PRODUCTION_BRANCH" - fi - yarn wrangler pages publish "$OUTPUT_DIRECTORY" --project-name "$projectName" + cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }} + repository: ${{ github.repository }} + production_branch: ${{ github.event.repository.default_branch }} + output_directory: "static" + # env: + # Add any environment variables you need to pass along here + # SUPABASE_URL: ${{ secrets.SUPABASE_URL }} + # SUPABASE_KEY: ${{ secrets.SUPABASE_KEY }} From e6743454269235a4d1b632742fd723287e16a190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Tue, 23 Jan 2024 18:05:00 +0900 Subject: [PATCH 31/85] feat: ban non null assertions resolves https://github.com/ubiquity/ts-template/issues/7 --- .eslintrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc b/.eslintrc index 003e714d..7cb07a28 100644 --- a/.eslintrc +++ b/.eslintrc @@ -11,6 +11,7 @@ "prefer-arrow-callback": ["warn", { "allowNamedFunctions": true }], // Disallow arrow functions as expressions "func-style": ["warn", "declaration", { "allowArrowFunctions": false }], // Disallow the use of function expressions "@typescript-eslint/no-floating-promises": "error", + "@typescript-eslint/no-non-null-assertion": "error", "@typescript-eslint/naming-convention": [ "error", { "selector": "typeLike", "format": ["PascalCase"] }, From db2e0e0093629138a21b6fb722fcd40775752136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= <4975670+pavlovcik@users.noreply.github.com> Date: Tue, 23 Jan 2024 19:39:45 +0900 Subject: [PATCH 32/85] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 39f0be20..f5bdeee8 100644 --- a/README.md +++ b/README.md @@ -5,4 +5,4 @@ This template repository includes support for the following: - TypeScript - Environment Variables - Conventional Commits -- Automatic publishing of pull requests to Cloudflare Pages +- Automatic deployment to Cloudflare Pages From 53bfa0258251b2e775699bfc6a5120f174ccaf58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Tue, 30 Jan 2024 02:19:17 +0900 Subject: [PATCH 33/85] feat: spell check on commit --- .cspell.json | 8 ++++++++ .github/workflows/conventional-commits.yml | 2 -- .github/workflows/cspell.yml | 24 ++++++++++++++++++++++ package.json | 3 +++ 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 .cspell.json create mode 100644 .github/workflows/cspell.yml diff --git a/.cspell.json b/.cspell.json new file mode 100644 index 00000000..21ce90c0 --- /dev/null +++ b/.cspell.json @@ -0,0 +1,8 @@ +{ + "useGitignore": true, + "version": "0.2", + "language": "en", + "words": [ + + ] + } \ No newline at end of file diff --git a/.github/workflows/conventional-commits.yml b/.github/workflows/conventional-commits.yml index 6482cd5e..6b3066e5 100644 --- a/.github/workflows/conventional-commits.yml +++ b/.github/workflows/conventional-commits.yml @@ -1,9 +1,7 @@ name: Conventional Commits on: - pull_request: push: - branches: [development] jobs: conventional-commits: diff --git a/.github/workflows/cspell.yml b/.github/workflows/cspell.yml new file mode 100644 index 00000000..71f46240 --- /dev/null +++ b/.github/workflows/cspell.yml @@ -0,0 +1,24 @@ +name: Spell Check + +on: + push: + +jobs: + spellcheck: + name: Check for spelling errors + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '20.10.0' + + - name: Install cspell + run: yarn add cspell + + - name: Run cspell + run: cspell "src/**/*.{ts,json}" diff --git a/package.json b/package.json index cddcd7fd..4475c3c6 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,9 @@ "*.ts": [ "yarn prettier --write", "eslint --fix" + ], + "src/**.{ts,json}": [ + "cspell" ] }, "commitlint": { From 86cb56883e02419c919c7646d62fea530a5ff99f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Wed, 31 Jan 2024 14:29:16 +0900 Subject: [PATCH 34/85] feat: copy typescript rules https://github.com/krzkaczor/TypeStrict.git thanks @krzkaczor --- .cspell.json | 12 +++++------- .eslintrc | 33 +++++++++++++++++++++++++++++---- .github/workflows/cspell.yml | 20 ++++++++++---------- package.json | 1 + yarn.lock | 10 ++++++++++ 5 files changed, 55 insertions(+), 21 deletions(-) diff --git a/.cspell.json b/.cspell.json index 21ce90c0..b72a2dfa 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,8 +1,6 @@ { - "useGitignore": true, - "version": "0.2", - "language": "en", - "words": [ - - ] - } \ No newline at end of file + "useGitignore": true, + "version": "0.2", + "language": "en", + "words": [] +} diff --git a/.eslintrc b/.eslintrc index 7cb07a28..55345d7e 100644 --- a/.eslintrc +++ b/.eslintrc @@ -4,14 +4,39 @@ "parserOptions": { "project": ["./tsconfig.json"] }, - "plugins": ["@typescript-eslint"], - "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], + "plugins": ["@typescript-eslint", "sonarjs"], + "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:sonarjs/recommended"], "ignorePatterns": ["**/*.js"], "rules": { - "prefer-arrow-callback": ["warn", { "allowNamedFunctions": true }], // Disallow arrow functions as expressions - "func-style": ["warn", "declaration", { "allowArrowFunctions": false }], // Disallow the use of function expressions + "prefer-arrow-callback": ["warn", { "allowNamedFunctions": true }], + "func-style": ["warn", "declaration", { "allowArrowFunctions": false }], "@typescript-eslint/no-floating-promises": "error", "@typescript-eslint/no-non-null-assertion": "error", + "constructor-super": "error", + "no-invalid-this": "off", + "@typescript-eslint/no-invalid-this": ["error"], + "no-restricted-syntax": ["error", "ForInStatement"], + "use-isnan": "error", + "@typescript-eslint/no-unused-vars": [ + "error", + { + "args": "after-used", + "ignoreRestSiblings": true, + "vars": "all", + "varsIgnorePattern": "^_", + "argsIgnorePattern": "^_" + } + ], + "@typescript-eslint/await-thenable": "error", + "@typescript-eslint/no-misused-new": "error", + "@typescript-eslint/restrict-plus-operands": "error", + "@typescript-eslint/no-unnecessary-condition": ["error", { "allowConstantLoopConditions": true }], + "sonarjs/no-all-duplicated-branches": "error", + "sonarjs/no-collection-size-mischeck": "error", + "sonarjs/no-duplicated-branches": "error", + "sonarjs/no-element-overwrite": "error", + "sonarjs/no-identical-conditions": "error", + "sonarjs/no-identical-expressions": "error", "@typescript-eslint/naming-convention": [ "error", { "selector": "typeLike", "format": ["PascalCase"] }, diff --git a/.github/workflows/cspell.yml b/.github/workflows/cspell.yml index 71f46240..d15c4a57 100644 --- a/.github/workflows/cspell.yml +++ b/.github/workflows/cspell.yml @@ -9,16 +9,16 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 + - name: Checkout code + uses: actions/checkout@v4 - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: '20.10.0' + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "20.10.0" - - name: Install cspell - run: yarn add cspell + - name: Install cspell + run: yarn add cspell - - name: Run cspell - run: cspell "src/**/*.{ts,json}" + - name: Run cspell + run: cspell "src/**/*.{ts,json}" diff --git a/package.json b/package.json index 4475c3c6..c435c978 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "eslint": "^8.54.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-prettier": "^5.0.1", + "eslint-plugin-sonarjs": "^0.23.0", "husky": "^8.0.3", "knip": "^3.3.0", "lint-staged": "^15.1.0", diff --git a/yarn.lock b/yarn.lock index 8d62a3f4..e6723320 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2185,6 +2185,15 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-sonarjs@npm:^0.23.0": + version: 0.23.0 + resolution: "eslint-plugin-sonarjs@npm:0.23.0" + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 4f56557740ab438eee8d98e4d93363a8dadcf8d6d795a5d95e6a0b0d6335273a06c5633fe753271c6a56c14a3b0086014b8278984b5594fad5db274ec7fd7edf + languageName: node + linkType: hard + "eslint-scope@npm:^7.2.2": version: 7.2.2 resolution: "eslint-scope@npm:7.2.2" @@ -5393,6 +5402,7 @@ __metadata: eslint: ^8.54.0 eslint-config-prettier: ^9.0.0 eslint-plugin-prettier: ^5.0.1 + eslint-plugin-sonarjs: ^0.23.0 husky: ^8.0.3 knip: ^3.3.0 lint-staged: ^15.1.0 From b6de893b9ce65a565bd9432aa4e9a3f20a8ffccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Wed, 31 Jan 2024 19:08:29 +0900 Subject: [PATCH 35/85] chore: remove no unnecessary condition for false positives --- .eslintrc | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/.eslintrc b/.eslintrc index 55345d7e..5996f048 100644 --- a/.eslintrc +++ b/.eslintrc @@ -30,7 +30,6 @@ "@typescript-eslint/await-thenable": "error", "@typescript-eslint/no-misused-new": "error", "@typescript-eslint/restrict-plus-operands": "error", - "@typescript-eslint/no-unnecessary-condition": ["error", { "allowConstantLoopConditions": true }], "sonarjs/no-all-duplicated-branches": "error", "sonarjs/no-collection-size-mischeck": "error", "sonarjs/no-duplicated-branches": "error", @@ -39,17 +38,16 @@ "sonarjs/no-identical-expressions": "error", "@typescript-eslint/naming-convention": [ "error", - { "selector": "typeLike", "format": ["PascalCase"] }, - { "selector": "variableLike", "format": ["camelCase"] }, + { "selector": "interface", "format": ["PascalCase"], "custom": { "regex": "^I[A-Z]", "match": false } }, { "selector": "memberLike", "modifiers": ["private"], "format": ["camelCase"], "leadingUnderscore": "require" }, - { "selector": "variable", "types": ["boolean"], "format": ["PascalCase"], "prefix": ["is", "should", "has", "can", "did", "will"] }, - { "selector": "variable", "format": ["camelCase", "UPPER_CASE"], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, + { "selector": "typeLike", "format": ["PascalCase"] }, { "selector": "typeParameter", "format": ["PascalCase"], "prefix": ["T"] }, - { "selector": "interface", "format": ["PascalCase"], "custom": { "regex": "^I[A-Z]", "match": false } }, - { "selector": ["function", "variable"], "format": ["camelCase"] }, - { "selector": "variable", "modifiers": ["destructured"], "format": null }, + { "selector": "variable", "format": ["camelCase", "UPPER_CASE"], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, { "selector": "variable", "format": ["camelCase"], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, - { "selector": "variable", "types": ["boolean"], "format": ["PascalCase"], "prefix": ["is", "has", "should", "can", "did", "will"] } + { "selector": "variable", "modifiers": ["destructured"], "format": null }, + { "selector": "variable", "types": ["boolean"], "format": ["PascalCase"], "prefix": ["is", "should", "has", "can", "did", "will", "does"] }, + { "selector": "variableLike", "format": ["camelCase"] }, + { "selector": ["function", "variable"], "format": ["camelCase"] } ] } } From 4026845606011433d71c78a921ebf1f93d5d83e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Fri, 2 Feb 2024 23:53:25 +0900 Subject: [PATCH 36/85] fix: forgot to include cspell --- package.json | 1 + yarn.lock | 862 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 853 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index c435c978..852ea419 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "@types/node": "^20.10.0", "@typescript-eslint/eslint-plugin": "^6.13.1", "@typescript-eslint/parser": "^6.13.1", + "cspell": "^8.3.2", "esbuild": "^0.19.8", "eslint": "^8.54.0", "eslint-config-prettier": "^9.0.0", diff --git a/yarn.lock b/yarn.lock index e6723320..330d4276 100644 --- a/yarn.lock +++ b/yarn.lock @@ -235,6 +235,462 @@ __metadata: languageName: node linkType: hard +"@cspell/cspell-bundled-dicts@npm:8.3.2": + version: 8.3.2 + resolution: "@cspell/cspell-bundled-dicts@npm:8.3.2" + dependencies: + "@cspell/dict-ada": ^4.0.2 + "@cspell/dict-aws": ^4.0.1 + "@cspell/dict-bash": ^4.1.3 + "@cspell/dict-companies": ^3.0.29 + "@cspell/dict-cpp": ^5.0.10 + "@cspell/dict-cryptocurrencies": ^5.0.0 + "@cspell/dict-csharp": ^4.0.2 + "@cspell/dict-css": ^4.0.12 + "@cspell/dict-dart": ^2.0.3 + "@cspell/dict-django": ^4.1.0 + "@cspell/dict-docker": ^1.1.7 + "@cspell/dict-dotnet": ^5.0.0 + "@cspell/dict-elixir": ^4.0.3 + "@cspell/dict-en-common-misspellings": ^2.0.0 + "@cspell/dict-en-gb": 1.1.33 + "@cspell/dict-en_us": ^4.3.13 + "@cspell/dict-filetypes": ^3.0.3 + "@cspell/dict-fonts": ^4.0.0 + "@cspell/dict-fsharp": ^1.0.1 + "@cspell/dict-fullstack": ^3.1.5 + "@cspell/dict-gaming-terms": ^1.0.4 + "@cspell/dict-git": ^3.0.0 + "@cspell/dict-golang": ^6.0.5 + "@cspell/dict-haskell": ^4.0.1 + "@cspell/dict-html": ^4.0.5 + "@cspell/dict-html-symbol-entities": ^4.0.0 + "@cspell/dict-java": ^5.0.6 + "@cspell/dict-k8s": ^1.0.2 + "@cspell/dict-latex": ^4.0.0 + "@cspell/dict-lorem-ipsum": ^4.0.0 + "@cspell/dict-lua": ^4.0.3 + "@cspell/dict-makefile": ^1.0.0 + "@cspell/dict-node": ^4.0.3 + "@cspell/dict-npm": ^5.0.14 + "@cspell/dict-php": ^4.0.5 + "@cspell/dict-powershell": ^5.0.3 + "@cspell/dict-public-licenses": ^2.0.5 + "@cspell/dict-python": ^4.1.11 + "@cspell/dict-r": ^2.0.1 + "@cspell/dict-ruby": ^5.0.2 + "@cspell/dict-rust": ^4.0.1 + "@cspell/dict-scala": ^5.0.0 + "@cspell/dict-software-terms": ^3.3.15 + "@cspell/dict-sql": ^2.1.3 + "@cspell/dict-svelte": ^1.0.2 + "@cspell/dict-swift": ^2.0.1 + "@cspell/dict-typescript": ^3.1.2 + "@cspell/dict-vue": ^3.0.0 + checksum: 2b50d8a3d056a6e261e4d525fe8f70b8d4e9860c305f6ba21ea7869807b2b8100b30d6f4ff4da91ea0ac6fcea7191158c7091e839b3b41ee3052f3e3b401b347 + languageName: node + linkType: hard + +"@cspell/cspell-json-reporter@npm:8.3.2": + version: 8.3.2 + resolution: "@cspell/cspell-json-reporter@npm:8.3.2" + dependencies: + "@cspell/cspell-types": 8.3.2 + checksum: 25926f8cfef378dbce59f140d9f383db4598222a3de5f2a0a6840e225d694afce2c069498668304f4ec39e58f5570887ef0d31f45824ca16b0fc31f20180352e + languageName: node + linkType: hard + +"@cspell/cspell-pipe@npm:8.3.2": + version: 8.3.2 + resolution: "@cspell/cspell-pipe@npm:8.3.2" + checksum: 14b01d2cdc6af931a0b5ac9fcd5e5c358fcdd7710ed82d35a9dcf6c7d3e917bc5ac953571ec9fffa4ed22d8f872e2a74a10258cccac10b7cd49878c8c2e15a3c + languageName: node + linkType: hard + +"@cspell/cspell-resolver@npm:8.3.2": + version: 8.3.2 + resolution: "@cspell/cspell-resolver@npm:8.3.2" + dependencies: + global-directory: ^4.0.1 + checksum: fe723a1b8407b4168f6262cd30a97ad04eb5eb40f4cac3a11c6bf674ed67cc08525b0282b95edbcaf1d014dec3880f6f01b3f49e4319ade5b8e169f0a910f8d1 + languageName: node + linkType: hard + +"@cspell/cspell-service-bus@npm:8.3.2": + version: 8.3.2 + resolution: "@cspell/cspell-service-bus@npm:8.3.2" + checksum: 9bec7ddafcd8acab743248eb547fa5a84cf5363b0d0da354fdb2a0a6268a516b3600c7034ea71b6fca1c2517818f939876d961a4a3fc73a175eb62f5cbb6b7ae + languageName: node + linkType: hard + +"@cspell/cspell-types@npm:8.3.2": + version: 8.3.2 + resolution: "@cspell/cspell-types@npm:8.3.2" + checksum: 5f0b038e6717a3fa9c4109845c94e2a3d561a8b1a5dac073535929dee81e4d6d18af96759135a4dab6b06529a86ab1bd4e6b4a70121561bf22dfe4508140a5c3 + languageName: node + linkType: hard + +"@cspell/dict-ada@npm:^4.0.2": + version: 4.0.2 + resolution: "@cspell/dict-ada@npm:4.0.2" + checksum: 847729d40022db4df698aa9511c6b9073954f71268b64ad4fa354e6ac3eb5b03486bcb566ecadd4bccbebb4f188752eff2b2bdd9021b58dbf2cd61cd6a426752 + languageName: node + linkType: hard + +"@cspell/dict-aws@npm:^4.0.1": + version: 4.0.1 + resolution: "@cspell/dict-aws@npm:4.0.1" + checksum: 8445468151205fdfc51993ebc329e3a210a1628069971f973fb87c4d32cbb33676b32a370021efe0863ef63414632c8edf025ba7d296e932a93f3b05ba6193fc + languageName: node + linkType: hard + +"@cspell/dict-bash@npm:^4.1.3": + version: 4.1.3 + resolution: "@cspell/dict-bash@npm:4.1.3" + checksum: 4ba66c76c144d4c7ea1dd0fb92dfb0d7fd1e43a106a73fc7e9010b4a5c276aa4ef791c7161f56bf911356e3667ba043ee63271c1ffc485d9f8712553770e3ea9 + languageName: node + linkType: hard + +"@cspell/dict-companies@npm:^3.0.29": + version: 3.0.31 + resolution: "@cspell/dict-companies@npm:3.0.31" + checksum: 6fd3ee3bd4485c54231e72bb6602166c51074571177a51f9fdbc71a5afc50e2ad7b43a85d93971c81912cadd00722042a0a48e94cb59627a4a8705dab32b4736 + languageName: node + linkType: hard + +"@cspell/dict-cpp@npm:^5.0.10": + version: 5.1.3 + resolution: "@cspell/dict-cpp@npm:5.1.3" + checksum: 82c75789101856383912bfbef3599d2cc5154ce26761efc1c65154f69015b2bdde07b64edd1f55b2f860f1b8309afb41904837706b9236e684bf03ad45749f87 + languageName: node + linkType: hard + +"@cspell/dict-cryptocurrencies@npm:^5.0.0": + version: 5.0.0 + resolution: "@cspell/dict-cryptocurrencies@npm:5.0.0" + checksum: 116e7f117b59ea4c9fa7ae1c3b47fc963e050448d43e059fb93731a256881ee262420edd5b9701ffe88af3d5e95b0337fc99b4dde1b0283ee0aaed45b23e281e + languageName: node + linkType: hard + +"@cspell/dict-csharp@npm:^4.0.2": + version: 4.0.2 + resolution: "@cspell/dict-csharp@npm:4.0.2" + checksum: d2ecb2aada51c5f0d6d557fd4f0c6eddb5b299e0955e066c49cd2afe96a1c6fe0afde699fdb885dd3183603a1efbd1d793b6a490b8d039256445b4b154b7375b + languageName: node + linkType: hard + +"@cspell/dict-css@npm:^4.0.12": + version: 4.0.12 + resolution: "@cspell/dict-css@npm:4.0.12" + checksum: 208c9434b8f5c8a33a96bb087572c10d5c946cd0847b9439271d0c4d2dcde5ee2588aca73bfea0c868d0124731b3ca890fab4762724d16435f161d4d5e7f3b9b + languageName: node + linkType: hard + +"@cspell/dict-dart@npm:^2.0.3": + version: 2.0.3 + resolution: "@cspell/dict-dart@npm:2.0.3" + checksum: 66bfcfa029baacd0b14b3ff5b6ab7597cf9459f77185d88b25123b42a4babb66df6786806843f1b6506c335326100599a2e1db6e6104e66bd021ede9ccb3cec4 + languageName: node + linkType: hard + +"@cspell/dict-data-science@npm:^1.0.11": + version: 1.0.11 + resolution: "@cspell/dict-data-science@npm:1.0.11" + checksum: 513f8f416f584f46576d45be23a4aa354e46d244f10a3d466222ffc13afe475e676639e4a24ab3a1ba157239f9ce23f7eef59c9f4c7a877a044db3a6344b18c6 + languageName: node + linkType: hard + +"@cspell/dict-django@npm:^4.1.0": + version: 4.1.0 + resolution: "@cspell/dict-django@npm:4.1.0" + checksum: b8a66135525e235bd6f2ea02de84ac7eae78e1068418f36b0c2260f9516b72492ef73f3fdc5fe8db2a6933747ff45a3eb743423a7dbf5b74548b1b1f30792679 + languageName: node + linkType: hard + +"@cspell/dict-docker@npm:^1.1.7": + version: 1.1.7 + resolution: "@cspell/dict-docker@npm:1.1.7" + checksum: 307f8b5132edca7cd291ba0ab6ed88f8787df984d6a42401b12a0da1ecb935d50af3a108ede885ce5bede96c445acdc88bb9ea8396de151c565a90a3bf66853e + languageName: node + linkType: hard + +"@cspell/dict-dotnet@npm:^5.0.0": + version: 5.0.0 + resolution: "@cspell/dict-dotnet@npm:5.0.0" + checksum: 3e55abd3cc0ecb0924caa245b83595c8e90b42a8fb438f3294d06ad32d30f3235dc8943a2865f06eaec5285a8d6a7df1db71fb228753d56a678a0f0cff87c24c + languageName: node + linkType: hard + +"@cspell/dict-elixir@npm:^4.0.3": + version: 4.0.3 + resolution: "@cspell/dict-elixir@npm:4.0.3" + checksum: f084449b2de5a2fa08076ac699c6073beaa4bb43796a662d681ea8fe5cba31f9efe718f3f98ef432ba75d4ea574316de34ab8422f79f4f2022cfddee7a7b8653 + languageName: node + linkType: hard + +"@cspell/dict-en-common-misspellings@npm:^2.0.0": + version: 2.0.0 + resolution: "@cspell/dict-en-common-misspellings@npm:2.0.0" + checksum: 977aac18d737d88e4cdca0771b664078a2d8cde1a0313696882581e67cb1acbf1f6a3923c1ee3f05878cfe3ad6f063a2e451f33e7df61cd1e0eb5de425bb4f2d + languageName: node + linkType: hard + +"@cspell/dict-en-gb@npm:1.1.33": + version: 1.1.33 + resolution: "@cspell/dict-en-gb@npm:1.1.33" + checksum: 09a9e7a3ee4cad75c87cc7adf6b5981b3ec52d4e3707e8de2e1a2a55cd5c8539057a7742d9c7035e23eb0aeff80a95b9599696c7192c9b3b9d8f14440fe01938 + languageName: node + linkType: hard + +"@cspell/dict-en_us@npm:^4.3.13": + version: 4.3.15 + resolution: "@cspell/dict-en_us@npm:4.3.15" + checksum: 8c49af876c0ec6d5e2f50b5a6a0e2acefb050578bb567aa950947f4e67f1e3ea2fbdc18d44a6b59ebfaffe571124def936131b7d68e7070f9631c75414d0194b + languageName: node + linkType: hard + +"@cspell/dict-filetypes@npm:^3.0.3": + version: 3.0.3 + resolution: "@cspell/dict-filetypes@npm:3.0.3" + checksum: 22c38a0b2e98d6223b364ddb5948d14bf6427c8286d4ddb111d5da9bdd4c47ddc0c9199a575c314142da9aefcaa5777a4ea33ac07f239cb4b9b303e4bd888aa1 + languageName: node + linkType: hard + +"@cspell/dict-fonts@npm:^4.0.0": + version: 4.0.0 + resolution: "@cspell/dict-fonts@npm:4.0.0" + checksum: 7e33e4b39fb071165d81920dd0ccc07e4b737a7b09522acf3781b26136526e445e03e456caaecff261d76b711196b84cff7c21293853bf00ebe93f2e64c42520 + languageName: node + linkType: hard + +"@cspell/dict-fsharp@npm:^1.0.1": + version: 1.0.1 + resolution: "@cspell/dict-fsharp@npm:1.0.1" + checksum: ce0df20704bf95d1fe434d2889cc764279cbce2b057fc5247be1ccaf7a8cc57372de3da2cdab6643b3df5221119716929b2e2aaad3f60533dcf0bd3c7d892fab + languageName: node + linkType: hard + +"@cspell/dict-fullstack@npm:^3.1.5": + version: 3.1.5 + resolution: "@cspell/dict-fullstack@npm:3.1.5" + checksum: 01c98a3408d4bf4832f1f110252399e663ce869bb097d681558828bb0e22725c7fe7b43077aa57afc2c3158515eaa744074826c020825af5856a0950219785a6 + languageName: node + linkType: hard + +"@cspell/dict-gaming-terms@npm:^1.0.4": + version: 1.0.5 + resolution: "@cspell/dict-gaming-terms@npm:1.0.5" + checksum: 25d50653ed5e940f9302cc5536c37a20854bb274dec9302d73c5349e51ec623d33d99e4fe283e3b30e70f452063361fbc4cae7dc603232fa82004262f37d0f50 + languageName: node + linkType: hard + +"@cspell/dict-git@npm:^3.0.0": + version: 3.0.0 + resolution: "@cspell/dict-git@npm:3.0.0" + checksum: 97b6da58c93108bae0867515f790d84728f0bce580cc8ad6f0f5f63b2c81eaf6d084d543d99b693ff4d7fbea2413ff068c3e4811fc107820d243da2c06d381fa + languageName: node + linkType: hard + +"@cspell/dict-golang@npm:^6.0.5": + version: 6.0.5 + resolution: "@cspell/dict-golang@npm:6.0.5" + checksum: 20bf2c6a23d26f23e39629f3a48c31c2993d126b03ca31892e4e03ed48d2f5d5d929675987df54b6dad95828f6baa080111167e81a2dc3836c1f5b0b6db04a56 + languageName: node + linkType: hard + +"@cspell/dict-haskell@npm:^4.0.1": + version: 4.0.1 + resolution: "@cspell/dict-haskell@npm:4.0.1" + checksum: cfb51e415b60c5eb266a5782d0a4b19a37f1389b9b018d1bbb2ff4358bd739af1f76f68f26a138d4b4bd0ab67146d6eb9032fc3d3c212695237c134e05339c79 + languageName: node + linkType: hard + +"@cspell/dict-html-symbol-entities@npm:^4.0.0": + version: 4.0.0 + resolution: "@cspell/dict-html-symbol-entities@npm:4.0.0" + checksum: 79f05f9080f39dbde703980eb587ed6624b8fc2f5cedc297327bc1b9b7e6022a7c382e6013149b1afe00609b96003ab5c8d18d378979f76f336ab626317183f4 + languageName: node + linkType: hard + +"@cspell/dict-html@npm:^4.0.5": + version: 4.0.5 + resolution: "@cspell/dict-html@npm:4.0.5" + checksum: 2273e77cad6f373c4b0a43c5fb707725ff7c845e6de3545c8b05cbb2d82e1205f004a817498f561ced3d8d8b1d15848a82f2a667c0b64a1ee46cbde67d8ac136 + languageName: node + linkType: hard + +"@cspell/dict-java@npm:^5.0.6": + version: 5.0.6 + resolution: "@cspell/dict-java@npm:5.0.6" + checksum: 7d5df7831e8a4c0295ebbcfdf9a3185b197f1aa60ec85f7edf4aaec4cc1c53f37a291f3f95543642951d21ff487285f5cfb6e853b7f96f514a35052d59252909 + languageName: node + linkType: hard + +"@cspell/dict-k8s@npm:^1.0.2": + version: 1.0.2 + resolution: "@cspell/dict-k8s@npm:1.0.2" + checksum: 4afd7806033b2bf71b17f4cf3fbc33449492bfb2a33a8301cc97b2e55583c07a4a07c288f50f445261c1de4b95494e495b8b982ca428d285393f7eb917bb5a61 + languageName: node + linkType: hard + +"@cspell/dict-latex@npm:^4.0.0": + version: 4.0.0 + resolution: "@cspell/dict-latex@npm:4.0.0" + checksum: 33a3f158d8c0151cbb4e6bd79ba1189d167b3916e1ce37d7b5754d18dffefe061320fa54c3cb482bd5c7cf37392d0112530b07a3eca63dffbe1069de317dc652 + languageName: node + linkType: hard + +"@cspell/dict-lorem-ipsum@npm:^4.0.0": + version: 4.0.0 + resolution: "@cspell/dict-lorem-ipsum@npm:4.0.0" + checksum: d3575fb7b9684480192d2cd647484312c555f3d1215d6b35371b70de3ecde4273010e5916cc2d130ff1e1223a1a49f75825651671a76d3dabdec98acf67a3902 + languageName: node + linkType: hard + +"@cspell/dict-lua@npm:^4.0.3": + version: 4.0.3 + resolution: "@cspell/dict-lua@npm:4.0.3" + checksum: eee20135a4f0620302c5feeb50485f59af93c24b64eb2081a9e2096a106ce33ae565d6d92607582b44c9f17c8a091d82fbcb443ebae9b77f8512b0d66a703c3b + languageName: node + linkType: hard + +"@cspell/dict-makefile@npm:^1.0.0": + version: 1.0.0 + resolution: "@cspell/dict-makefile@npm:1.0.0" + checksum: f0cac4caf31e27accd5df5e0c2f53097cccbbd085126c4b4ecc08be2a32bd7f89fe6b052e9eae4ec99843175cafa94561868271fb53c5389f27cc078565b5123 + languageName: node + linkType: hard + +"@cspell/dict-node@npm:^4.0.3": + version: 4.0.3 + resolution: "@cspell/dict-node@npm:4.0.3" + checksum: 178e7f3ab45f30722cae7354803dd98ea6577c025a11eda9362fa795a06dd8e934f833bfc7d46816617974822ace11217505a1bd0ea2955aaee92cf94cc6b127 + languageName: node + linkType: hard + +"@cspell/dict-npm@npm:^5.0.14": + version: 5.0.15 + resolution: "@cspell/dict-npm@npm:5.0.15" + checksum: 8be1089f438261ff09eda368b5451448b0701d514f79d555196139ad45144e94184a5df3bdf48379e667f15dc84e8f97ed2a178c097b7ec1a448fbe18e24a3fc + languageName: node + linkType: hard + +"@cspell/dict-php@npm:^4.0.5": + version: 4.0.5 + resolution: "@cspell/dict-php@npm:4.0.5" + checksum: 017375f8a08f93872672b9d14c885b3114ea1b82cb8a4375029c7e71dcb303b82bf684fc84df3cbd8d74b9d1e74c80234280605ef8ca26a7972d99bbf15b14f9 + languageName: node + linkType: hard + +"@cspell/dict-powershell@npm:^5.0.3": + version: 5.0.3 + resolution: "@cspell/dict-powershell@npm:5.0.3" + checksum: 18eac3be8545b3df110bf867bd6285b11d7e67da037e00c9bc1376c5e322092bc1d925375a09df8b7420a6a35847aa20558610ffb491763eb82949f3af764e1d + languageName: node + linkType: hard + +"@cspell/dict-public-licenses@npm:^2.0.5": + version: 2.0.5 + resolution: "@cspell/dict-public-licenses@npm:2.0.5" + checksum: 07e647c24ed1a5f0e88828264581e9f8fde179f776a50c4389ac0bc5c09a2bb94280d299c94d1884a8da01fbf112c5640178789b457f06b1a97414b18cda99e0 + languageName: node + linkType: hard + +"@cspell/dict-python@npm:^4.1.11": + version: 4.1.11 + resolution: "@cspell/dict-python@npm:4.1.11" + dependencies: + "@cspell/dict-data-science": ^1.0.11 + checksum: cdfc493d3a260887dc31b115ab880849895522c4a0c0d4fe379a2e42ebf41f0724f02f778629e3e972fc6fa93e6d7bc7892e4b26b3b6fbf72399cf5d3b67585b + languageName: node + linkType: hard + +"@cspell/dict-r@npm:^2.0.1": + version: 2.0.1 + resolution: "@cspell/dict-r@npm:2.0.1" + checksum: fe85939ad4c8ada34284a673918be711cca60b6d6f1c48ee98602c27905228dfbaea3462a350094633032c1d6b6bba9548df7019e0b21673cf1cf887c57ca228 + languageName: node + linkType: hard + +"@cspell/dict-ruby@npm:^5.0.2": + version: 5.0.2 + resolution: "@cspell/dict-ruby@npm:5.0.2" + checksum: c2006bcc808448b1eef146eb4b6b74388113c50334206191a9fe5817fb13669482ecd114f7bbd397562ad2e19a9683266ff396f48c6ce282f6445c2cfa8e82c7 + languageName: node + linkType: hard + +"@cspell/dict-rust@npm:^4.0.1": + version: 4.0.2 + resolution: "@cspell/dict-rust@npm:4.0.2" + checksum: c4d817cbf77ca6d97562b106cf78c43c6090465191d29db3210e431cf1b9d5ef4b6ac98d9da9c79ccaeab3da39b8d6edf952870507f40d0f051245d45d44d2c0 + languageName: node + linkType: hard + +"@cspell/dict-scala@npm:^5.0.0": + version: 5.0.0 + resolution: "@cspell/dict-scala@npm:5.0.0" + checksum: 759dd8746e68e45299b65eeaf1dfd32d1e345fd80fd9a623af502266598c384198853001f70a700c454d8490fb9a5e1358ca1e0d7c0d43154a4f07e2d5531c72 + languageName: node + linkType: hard + +"@cspell/dict-software-terms@npm:^3.3.15": + version: 3.3.17 + resolution: "@cspell/dict-software-terms@npm:3.3.17" + checksum: 0e8b3cf226f2cd3dd0bccb1f28a8fac24d7223e7ba670b73aec08cb69a1285755743716e53261ae4ef4f6f43d7682a8af11f4a14ef50b1875c1809f955c71f06 + languageName: node + linkType: hard + +"@cspell/dict-sql@npm:^2.1.3": + version: 2.1.3 + resolution: "@cspell/dict-sql@npm:2.1.3" + checksum: a435812cc697d4c453f11efa49962992150702518e49808381ea34548b8a8ed81432a10cca36682007912b013c28e9ce3c6c183341c6cde58c8af0eef25cddc3 + languageName: node + linkType: hard + +"@cspell/dict-svelte@npm:^1.0.2": + version: 1.0.2 + resolution: "@cspell/dict-svelte@npm:1.0.2" + checksum: 5b42989bc6743a26ca5172cc23ebc1449d930695b10c908376048ce1835bf57fef7a0004f02ec5e43219f24a97f154e125041df470441199a045ed0be9e654fc + languageName: node + linkType: hard + +"@cspell/dict-swift@npm:^2.0.1": + version: 2.0.1 + resolution: "@cspell/dict-swift@npm:2.0.1" + checksum: 0bbb106266205c5f5e12886a73ebf0db2078bab1bdd2e1f304fe28445cd72d847a4c5072bf4fe8f9e8cdb4bc69d52fffec0806aea19ea9b64b7a87c67ee01175 + languageName: node + linkType: hard + +"@cspell/dict-typescript@npm:^3.1.2": + version: 3.1.2 + resolution: "@cspell/dict-typescript@npm:3.1.2" + checksum: 3cd0fa39856002975cf05b5584de42f58700a3420bd08b7b073af87dbcc1f66cab45e36a2156dd4e6c926cf67baaa192f02ccf61b9a9e5e94e69e035af54cec1 + languageName: node + linkType: hard + +"@cspell/dict-vue@npm:^3.0.0": + version: 3.0.0 + resolution: "@cspell/dict-vue@npm:3.0.0" + checksum: 4db58b1d6f9be1a523a35678877f2cca2bb04548b136ec5ec4e7186500978dbc32cc8747ced80ade3cad3acc3c80eb23afe980679165810f8f8f26802e952e2f + languageName: node + linkType: hard + +"@cspell/dynamic-import@npm:8.3.2": + version: 8.3.2 + resolution: "@cspell/dynamic-import@npm:8.3.2" + dependencies: + import-meta-resolve: ^4.0.0 + checksum: 176a5684922e9d3b3b277cdacbac14da509f691bd62da5135fab7c75db57f41c52ef0386c6ba3958e48dbc1b7b6f2751067c63bc1167ee09fae427c86dac71f7 + languageName: node + linkType: hard + +"@cspell/strong-weak-map@npm:8.3.2": + version: 8.3.2 + resolution: "@cspell/strong-weak-map@npm:8.3.2" + checksum: 696389c5ecb985bdded3530a088712ad03354051efc6506fae0328353a476604008a03364f3736de9041f51128b46ff6ffdda628c03c2c4800dc256a1b75e6ba + languageName: node + linkType: hard + "@ericcornelissen/bash-parser@npm:0.5.2": version: 0.5.2 resolution: "@ericcornelissen/bash-parser@npm:0.5.2" @@ -1254,6 +1710,13 @@ __metadata: languageName: node linkType: hard +"array-timsort@npm:^1.0.3": + version: 1.0.3 + resolution: "array-timsort@npm:1.0.3" + checksum: fd4b5b0911214bdc8b5699ed10d309685551b518b3819c611c967cff59b87aee01cf591a10e36a3f14dbff696984bd6682b845f6fdbf1217195e910f241a4f78 + languageName: node + linkType: hard + "array-union@npm:^2.1.0": version: 2.1.0 resolution: "array-union@npm:2.1.0" @@ -1409,7 +1872,7 @@ __metadata: languageName: node linkType: hard -"callsites@npm:^3.0.0": +"callsites@npm:^3.0.0, callsites@npm:^3.1.0": version: 3.1.0 resolution: "callsites@npm:3.1.0" checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 @@ -1434,7 +1897,16 @@ __metadata: languageName: node linkType: hard -"chalk@npm:5.3.0, chalk@npm:^5.2.0": +"chalk-template@npm:^1.1.0": + version: 1.1.0 + resolution: "chalk-template@npm:1.1.0" + dependencies: + chalk: ^5.2.0 + checksum: 868aae8d4e7556ad2f35de4e04fe65dbe1ea6c5c80ad783f1c156d0a5c33f444c6814f49cbb68fe348c78e99daf2bcf566b47ad7e13603e4691ca78b2f422824 + languageName: node + linkType: hard + +"chalk@npm:5.3.0, chalk@npm:^5.2.0, chalk@npm:^5.3.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 @@ -1476,6 +1948,16 @@ __metadata: languageName: node linkType: hard +"clear-module@npm:^4.1.2": + version: 4.1.2 + resolution: "clear-module@npm:4.1.2" + dependencies: + parent-module: ^2.0.0 + resolve-from: ^5.0.0 + checksum: 4931f0c461f5d7b9b79f62c2d1bc31c37f7f1d33b4e95eef7080a83955c0374f4c180f5a96cc4d63bbefc64a9aa5d12b155641109e8e489dfa50fd5820e5101f + languageName: node + linkType: hard + "cli-cursor@npm:^4.0.0": version: 4.0.0 resolution: "cli-cursor@npm:4.0.0" @@ -1552,7 +2034,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:11.1.0": +"commander@npm:11.1.0, commander@npm:^11.1.0": version: 11.1.0 resolution: "commander@npm:11.1.0" checksum: fd1a8557c6b5b622c89ecdfde703242ab7db3b628ea5d1755784c79b8e7cb0d74d65b4a262289b533359cd58e1bfc0bf50245dfbcd2954682a6f367c828b79ef @@ -1566,6 +2048,19 @@ __metadata: languageName: node linkType: hard +"comment-json@npm:^4.2.3": + version: 4.2.3 + resolution: "comment-json@npm:4.2.3" + dependencies: + array-timsort: ^1.0.3 + core-util-is: ^1.0.3 + esprima: ^4.0.1 + has-own-prop: ^2.0.0 + repeat-string: ^1.6.1 + checksum: 7f8d26266b0d49de9661f6365cbcc373fee4f4d0f422a203dfb17ad8f3d84c5be5ded444874935a197cd03cff297c53fe48910256cb4171cb2e52a3e6b9d317c + languageName: node + linkType: hard + "compare-func@npm:^2.0.0": version: 2.0.0 resolution: "compare-func@npm:2.0.0" @@ -1592,6 +2087,19 @@ __metadata: languageName: node linkType: hard +"configstore@npm:^6.0.0": + version: 6.0.0 + resolution: "configstore@npm:6.0.0" + dependencies: + dot-prop: ^6.0.1 + graceful-fs: ^4.2.6 + unique-string: ^3.0.0 + write-file-atomic: ^3.0.3 + xdg-basedir: ^5.0.1 + checksum: 81995351c10bc04c58507f17748477aeac6f47465109d20e3534cebc881d22e927cfd29e73dd852c46c55f62c2b7be4cd1fe6eb3a93ba51f7f9813c218f9bae0 + languageName: node + linkType: hard + "conventional-changelog-angular@npm:^7.0.0": version: 7.0.0 resolution: "conventional-changelog-angular@npm:7.0.0" @@ -1624,6 +2132,13 @@ __metadata: languageName: node linkType: hard +"core-util-is@npm:^1.0.3": + version: 1.0.3 + resolution: "core-util-is@npm:1.0.3" + checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 + languageName: node + linkType: hard + "cosmiconfig-typescript-loader@npm:^5.0.0": version: 5.0.0 resolution: "cosmiconfig-typescript-loader@npm:5.0.0" @@ -1685,6 +2200,150 @@ __metadata: languageName: node linkType: hard +"crypto-random-string@npm:^4.0.0": + version: 4.0.0 + resolution: "crypto-random-string@npm:4.0.0" + dependencies: + type-fest: ^1.0.1 + checksum: 91f148f27bcc8582798f0fb3e75a09d9174557f39c3c40a89dd1bd70fb5a14a02548245aa26fa7d663c426ac5026f4729841231c84f9e30e8c8ece5e38656741 + languageName: node + linkType: hard + +"cspell-config-lib@npm:8.3.2": + version: 8.3.2 + resolution: "cspell-config-lib@npm:8.3.2" + dependencies: + "@cspell/cspell-types": 8.3.2 + comment-json: ^4.2.3 + yaml: ^2.3.4 + checksum: 7d5563c2a49f13e9e2b965258f8d5539e282c75234f4375831db3f7ee3c209aa246f07f8bbbc7e7195c248edfdc3a58cb590c5119ad866446ee47df07a593481 + languageName: node + linkType: hard + +"cspell-dictionary@npm:8.3.2": + version: 8.3.2 + resolution: "cspell-dictionary@npm:8.3.2" + dependencies: + "@cspell/cspell-pipe": 8.3.2 + "@cspell/cspell-types": 8.3.2 + cspell-trie-lib: 8.3.2 + fast-equals: ^5.0.1 + gensequence: ^6.0.0 + checksum: 374e8cc94b7d46230b8a3ddb066c14bee746963c01b13a60bf43cfb2e6da1a32dcf963c573016aee3fdf8ffbda6253850679d4c93257de2bf4ec45d4cbaf5888 + languageName: node + linkType: hard + +"cspell-gitignore@npm:8.3.2": + version: 8.3.2 + resolution: "cspell-gitignore@npm:8.3.2" + dependencies: + cspell-glob: 8.3.2 + find-up-simple: ^1.0.0 + bin: + cspell-gitignore: bin.mjs + checksum: 0ae847391993078bca601214812aa9476311d501fcc3a20ceb6e4a22825335188354f71328b0ebc45d6ed35756c6d29062cb4e4b2c26a28a9fb57d3573113b01 + languageName: node + linkType: hard + +"cspell-glob@npm:8.3.2": + version: 8.3.2 + resolution: "cspell-glob@npm:8.3.2" + dependencies: + micromatch: ^4.0.5 + checksum: c1abb55fdfde46014963ccd73451218bec7cd9bc0f3cb9308efa0cf066c7783eb69749400aa0d0c1507fbac3fe598ccc26eb5932985db01264ca933f7564a5b2 + languageName: node + linkType: hard + +"cspell-grammar@npm:8.3.2": + version: 8.3.2 + resolution: "cspell-grammar@npm:8.3.2" + dependencies: + "@cspell/cspell-pipe": 8.3.2 + "@cspell/cspell-types": 8.3.2 + bin: + cspell-grammar: bin.mjs + checksum: 3f48e267f6c26c98f7f24159460bad1b341e0560f00a2e62761ad49ba3fcc8e953af3e4a712e598b2525242cb3dddfb339d85e9917fd72aca33ab292cea71bc9 + languageName: node + linkType: hard + +"cspell-io@npm:8.3.2": + version: 8.3.2 + resolution: "cspell-io@npm:8.3.2" + dependencies: + "@cspell/cspell-service-bus": 8.3.2 + checksum: 609f544d6c23dd471548cbc531ad5d704db4ffaa0513611cdc5f731e9f4de24057dcbc4c1d11e94df3725129549fe2629c9e73750f7de4d3a61eae2cbef13ff1 + languageName: node + linkType: hard + +"cspell-lib@npm:8.3.2": + version: 8.3.2 + resolution: "cspell-lib@npm:8.3.2" + dependencies: + "@cspell/cspell-bundled-dicts": 8.3.2 + "@cspell/cspell-pipe": 8.3.2 + "@cspell/cspell-resolver": 8.3.2 + "@cspell/cspell-types": 8.3.2 + "@cspell/dynamic-import": 8.3.2 + "@cspell/strong-weak-map": 8.3.2 + clear-module: ^4.1.2 + comment-json: ^4.2.3 + configstore: ^6.0.0 + cspell-config-lib: 8.3.2 + cspell-dictionary: 8.3.2 + cspell-glob: 8.3.2 + cspell-grammar: 8.3.2 + cspell-io: 8.3.2 + cspell-trie-lib: 8.3.2 + fast-equals: ^5.0.1 + gensequence: ^6.0.0 + import-fresh: ^3.3.0 + resolve-from: ^5.0.0 + vscode-languageserver-textdocument: ^1.0.11 + vscode-uri: ^3.0.8 + checksum: 398f8b799aa4b7e60b9a0b2e751fbd0d3d81f8ccdc0b331668568ab5f4cced0e64ddc8325a7901ae950fd3838f8fb37bb4dd8f73938fb78b50bdd5f2f5668375 + languageName: node + linkType: hard + +"cspell-trie-lib@npm:8.3.2": + version: 8.3.2 + resolution: "cspell-trie-lib@npm:8.3.2" + dependencies: + "@cspell/cspell-pipe": 8.3.2 + "@cspell/cspell-types": 8.3.2 + gensequence: ^6.0.0 + checksum: 43d3bcf4c1bf1d8fce9601beec52a4f5bd2e27ccd1ea737aca2c32dbec721942cb8671b6add6b57d3a5953389a494a28878a53abccc49de7c59bbb7e78413c3e + languageName: node + linkType: hard + +"cspell@npm:^8.3.2": + version: 8.3.2 + resolution: "cspell@npm:8.3.2" + dependencies: + "@cspell/cspell-json-reporter": 8.3.2 + "@cspell/cspell-pipe": 8.3.2 + "@cspell/cspell-types": 8.3.2 + "@cspell/dynamic-import": 8.3.2 + chalk: ^5.3.0 + chalk-template: ^1.1.0 + commander: ^11.1.0 + cspell-gitignore: 8.3.2 + cspell-glob: 8.3.2 + cspell-io: 8.3.2 + cspell-lib: 8.3.2 + fast-glob: ^3.3.2 + fast-json-stable-stringify: ^2.1.0 + file-entry-cache: ^8.0.0 + get-stdin: ^9.0.0 + semver: ^7.5.4 + strip-ansi: ^7.1.0 + vscode-uri: ^3.0.8 + bin: + cspell: bin.mjs + cspell-esm: bin.mjs + checksum: c798482b411ba94d8dc475445082d56b70fc23d88752f3e6e8e18174f247d35a0c50ed1a1a9f578cdfb1294dc8d175613f1aa7828f92b1f841047580156ab986 + languageName: node + linkType: hard + "dargs@npm:^7.0.0": version: 7.0.0 resolution: "dargs@npm:7.0.0" @@ -1829,6 +2488,15 @@ __metadata: languageName: node linkType: hard +"dot-prop@npm:^6.0.1": + version: 6.0.1 + resolution: "dot-prop@npm:6.0.1" + dependencies: + is-obj: ^2.0.0 + checksum: 0f47600a4b93e1dc37261da4e6909652c008832a5d3684b5bf9a9a0d3f4c67ea949a86dceed9b72f5733ed8e8e6383cc5958df3bbd0799ee317fd181f2ece700 + languageName: node + linkType: hard + "dotenv@npm:^16.3.1": version: 16.3.1 resolution: "dotenv@npm:16.3.1" @@ -2270,6 +2938,16 @@ __metadata: languageName: node linkType: hard +"esprima@npm:^4.0.1": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 + languageName: node + linkType: hard + "esquery@npm:^1.4.2": version: 1.5.0 resolution: "esquery@npm:1.5.0" @@ -2381,6 +3059,13 @@ __metadata: languageName: node linkType: hard +"fast-equals@npm:^5.0.1": + version: 5.0.1 + resolution: "fast-equals@npm:5.0.1" + checksum: fbb3b6a74f3a0fa930afac151ff7d01639159b4fddd2678b5d50708e0ba38e9ec14602222d10dadb8398187342692c04fbef5a62b1cfcc7942fe03e754e064bc + languageName: node + linkType: hard + "fast-glob@npm:3.3.2, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" @@ -2394,7 +3079,7 @@ __metadata: languageName: node linkType: hard -"fast-json-stable-stringify@npm:^2.0.0": +"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb @@ -2443,6 +3128,15 @@ __metadata: languageName: node linkType: hard +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" + dependencies: + flat-cache: ^4.0.0 + checksum: f67802d3334809048c69b3d458f672e1b6d26daefda701761c81f203b80149c35dea04d78ea4238969dd617678e530876722a0634c43031a0957f10cc3ed190f + languageName: node + linkType: hard + "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -2466,6 +3160,13 @@ __metadata: languageName: node linkType: hard +"find-up-simple@npm:^1.0.0": + version: 1.0.0 + resolution: "find-up-simple@npm:1.0.0" + checksum: 91c3d51c1111b5eb4e6e6d71d21438f6571a37a69dc288d4222b98996756e2f472fa5393a4dddb5e1a84929405d87e86f4bdce798ba84ee513b79854960ec140 + languageName: node + linkType: hard + "find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" @@ -2497,6 +3198,17 @@ __metadata: languageName: node linkType: hard +"flat-cache@npm:^4.0.0": + version: 4.0.0 + resolution: "flat-cache@npm:4.0.0" + dependencies: + flatted: ^3.2.9 + keyv: ^4.5.4 + rimraf: ^5.0.5 + checksum: 744d5f111aeecdfb963faab7089230c737a90c325137251b4fe144fd76932e19738a861e356c5ee828bb310592b42a1da667912d74d0403f1f4ef75be8bfdbac + languageName: node + linkType: hard + "flatted@npm:^3.2.9": version: 3.2.9 resolution: "flatted@npm:3.2.9" @@ -2615,6 +3327,13 @@ __metadata: languageName: node linkType: hard +"gensequence@npm:^6.0.0": + version: 6.0.0 + resolution: "gensequence@npm:6.0.0" + checksum: 7c23404b227647cb033a2c6cf5a5266442409e9dcc6bc140565d28de64adfa03dc474119ae14d776dc177fe63d605d2f4b228fa3bf926145dddd68c8df95d029 + languageName: node + linkType: hard + "get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" @@ -2634,6 +3353,13 @@ __metadata: languageName: node linkType: hard +"get-stdin@npm:^9.0.0": + version: 9.0.0 + resolution: "get-stdin@npm:9.0.0" + checksum: 5972bc34d05932b45512c8e2d67b040f1c1ca8afb95c56cbc480985f2d761b7e37fe90dc8abd22527f062cc5639a6930ff346e9952ae4c11a2d4275869459594 + languageName: node + linkType: hard + "get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": version: 6.0.1 resolution: "get-stream@npm:6.0.1" @@ -2700,7 +3426,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.2.2, glob@npm:^10.3.10": +"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": version: 10.3.10 resolution: "glob@npm:10.3.10" dependencies: @@ -2729,6 +3455,15 @@ __metadata: languageName: node linkType: hard +"global-directory@npm:^4.0.1": + version: 4.0.1 + resolution: "global-directory@npm:4.0.1" + dependencies: + ini: 4.1.1 + checksum: 5b4df24438a4e5f21e43fbdd9e54f5e12bb48dce01a0a83b415d8052ce91be2d3a97e0c8f98a535e69649b2190036155e9f0f7d3c62f9318f31bdc3fd4f235f5 + languageName: node + linkType: hard + "global-dirs@npm:^0.1.1": version: 0.1.1 resolution: "global-dirs@npm:0.1.1" @@ -2835,6 +3570,13 @@ __metadata: languageName: node linkType: hard +"has-own-prop@npm:^2.0.0": + version: 2.0.0 + resolution: "has-own-prop@npm:2.0.0" + checksum: ca6336e85ead2295c9603880cbc199e2d3ff7eaea0e9035d68fbc79892e9cf681abc62c0909520f112c671dad9961be2173b21dff951358cc98425c560e789e0 + languageName: node + linkType: hard + "has-own-property@npm:^0.1.0": version: 0.1.0 resolution: "has-own-property@npm:0.1.0" @@ -2989,6 +3731,13 @@ __metadata: languageName: node linkType: hard +"import-meta-resolve@npm:^4.0.0": + version: 4.0.0 + resolution: "import-meta-resolve@npm:4.0.0" + checksum: 51c50115fd38e9ba21736f8d7543a58446b92d2cb5f38c9b5ec72426afeb2fb790f82051560a0f16323f44dd73d8d37c07eab5f8dc4635bcdb401daa36727b1a + languageName: node + linkType: hard + "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" @@ -3027,6 +3776,13 @@ __metadata: languageName: node linkType: hard +"ini@npm:4.1.1": + version: 4.1.1 + resolution: "ini@npm:4.1.1" + checksum: 0e5909554074fbc31824fa5415b0f604de4a665514c96a897a77bf77353a7ad4743927321270e9d0610a9d510ccd1f3cd77422f7cc80d8f4542dbce75476fb6d + languageName: node + linkType: hard + "ini@npm:^1.3.4": version: 1.3.8 resolution: "ini@npm:1.3.8" @@ -3307,6 +4063,13 @@ __metadata: languageName: node linkType: hard +"is-typedarray@npm:^1.0.0": + version: 1.0.0 + resolution: "is-typedarray@npm:1.0.0" + checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 + languageName: node + linkType: hard + "is-weakref@npm:^1.0.2": version: 1.0.2 resolution: "is-weakref@npm:1.0.2" @@ -3469,7 +4232,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.3": +"keyv@npm:^4.5.3, keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -3854,7 +4617,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:4.0.5, micromatch@npm:^4.0.4": +"micromatch@npm:4.0.5, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -4353,6 +5116,15 @@ __metadata: languageName: node linkType: hard +"parent-module@npm:^2.0.0": + version: 2.0.0 + resolution: "parent-module@npm:2.0.0" + dependencies: + callsites: ^3.1.0 + checksum: f131f13d687a938556a01033561fb1b274b39921eb4425c7a691f0d91dcfbe9b19759c2b8d425a3ee7c8a46874e57fa418a690643880c3c7c56827aba12f78dd + languageName: node + linkType: hard + "parse-json@npm:^4.0.0": version: 4.0.0 resolution: "parse-json@npm:4.0.0" @@ -4679,6 +5451,13 @@ __metadata: languageName: node linkType: hard +"repeat-string@npm:^1.6.1": + version: 1.6.1 + resolution: "repeat-string@npm:1.6.1" + checksum: 1b809fc6db97decdc68f5b12c4d1a671c8e3f65ec4a40c238bc5200e44e85bcc52a54f78268ab9c29fcf5fe4f1343e805420056d1f30fa9a9ee4c2d93e3cc6c0 + languageName: node + linkType: hard + "require-directory@npm:^2.1.1": version: 2.1.1 resolution: "require-directory@npm:2.1.1" @@ -4798,6 +5577,17 @@ __metadata: languageName: node linkType: hard +"rimraf@npm:^5.0.5": + version: 5.0.5 + resolution: "rimraf@npm:5.0.5" + dependencies: + glob: ^10.3.7 + bin: + rimraf: dist/esm/bin.mjs + checksum: d66eef829b2e23b16445f34e73d75c7b7cf4cbc8834b04720def1c8f298eb0753c3d76df77325fad79d0a2c60470525d95f89c2475283ad985fd7441c32732d1 + languageName: node + linkType: hard + "run-applescript@npm:^5.0.0": version: 5.0.0 resolution: "run-applescript@npm:5.0.0" @@ -5185,7 +5975,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^7.0.1": +"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" dependencies: @@ -5397,6 +6187,7 @@ __metadata: "@types/node": ^20.10.0 "@typescript-eslint/eslint-plugin": ^6.13.1 "@typescript-eslint/parser": ^6.13.1 + cspell: ^8.3.2 dotenv: ^16.3.1 esbuild: ^0.19.8 eslint: ^8.54.0 @@ -5473,7 +6264,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^1.0.2": +"type-fest@npm:^1.0.1, type-fest@npm:^1.0.2": version: 1.4.0 resolution: "type-fest@npm:1.4.0" checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 @@ -5527,6 +6318,15 @@ __metadata: languageName: node linkType: hard +"typedarray-to-buffer@npm:^3.1.5": + version: 3.1.5 + resolution: "typedarray-to-buffer@npm:3.1.5" + dependencies: + is-typedarray: ^1.0.0 + checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60 + languageName: node + linkType: hard + "typescript@npm:^5.3.2": version: 5.3.2 resolution: "typescript@npm:5.3.2" @@ -5609,6 +6409,15 @@ __metadata: languageName: node linkType: hard +"unique-string@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-string@npm:3.0.0" + dependencies: + crypto-random-string: ^4.0.0 + checksum: 1a1e2e7d02eab1bb10f720475da735e1990c8a5ff34edd1a3b6bc31590cb4210b7a1233d779360cc622ce11c211e43afa1628dd658f35d3e6a89964b622940df + languageName: node + linkType: hard + "universalify@npm:^2.0.0": version: 2.0.1 resolution: "universalify@npm:2.0.1" @@ -5674,6 +6483,20 @@ __metadata: languageName: node linkType: hard +"vscode-languageserver-textdocument@npm:^1.0.11": + version: 1.0.11 + resolution: "vscode-languageserver-textdocument@npm:1.0.11" + checksum: ea7cdc9d4ffaae5952071fa11d17d714215a76444e6936c9359f94b9ba3222a52a55edb5bd5928bd3e9712b900a9f175bb3565ec1c8923234fe3bd327584bafb + languageName: node + linkType: hard + +"vscode-uri@npm:^3.0.8": + version: 3.0.8 + resolution: "vscode-uri@npm:3.0.8" + checksum: 514249126850c0a41a7d8c3c2836cab35983b9dc1938b903cfa253b9e33974c1416d62a00111385adcfa2b98df456437ab704f709a2ecca76a90134ef5eb4832 + languageName: node + linkType: hard + "wcwidth@npm:^1.0.1": version: 1.0.1 resolution: "wcwidth@npm:1.0.1" @@ -5771,6 +6594,25 @@ __metadata: languageName: node linkType: hard +"write-file-atomic@npm:^3.0.3": + version: 3.0.3 + resolution: "write-file-atomic@npm:3.0.3" + dependencies: + imurmurhash: ^0.1.4 + is-typedarray: ^1.0.0 + signal-exit: ^3.0.2 + typedarray-to-buffer: ^3.1.5 + checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280 + languageName: node + linkType: hard + +"xdg-basedir@npm:^5.0.1": + version: 5.1.0 + resolution: "xdg-basedir@npm:5.1.0" + checksum: b60e8a2c663ccb1dac77c2d913f3b96de48dafbfa083657171d3d50e10820b8a04bb4edfe9f00808c8c20e5f5355e1927bea9029f03136e29265cb98291e1fea + languageName: node + linkType: hard + "y18n@npm:^5.0.5": version: 5.0.8 resolution: "y18n@npm:5.0.8" @@ -5785,7 +6627,7 @@ __metadata: languageName: node linkType: hard -"yaml@npm:2.3.4": +"yaml@npm:2.3.4, yaml@npm:^2.3.4": version: 2.3.4 resolution: "yaml@npm:2.3.4" checksum: e6d1dae1c6383bcc8ba11796eef3b8c02d5082911c6723efeeb5ba50fc8e881df18d645e64de68e421b577296000bea9c75d6d9097c2f6699da3ae0406c030d8 From 8ee208a1dd30d5c708a61e636cca29b04b373aac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Fri, 2 Feb 2024 23:58:15 +0900 Subject: [PATCH 37/85] fix: cspell ci --- .github/workflows/cspell.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cspell.yml b/.github/workflows/cspell.yml index d15c4a57..a7165349 100644 --- a/.github/workflows/cspell.yml +++ b/.github/workflows/cspell.yml @@ -21,4 +21,4 @@ jobs: run: yarn add cspell - name: Run cspell - run: cspell "src/**/*.{ts,json}" + run: yarn cspell "src/**/*.{ts,json}" From 48b441995dbc0a78b5de5bb2dd353fa77ef804ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sat, 3 Feb 2024 00:21:38 +0900 Subject: [PATCH 38/85] fix(ci): cspell --- .cspell.json | 8 +++-- .github/workflows/cspell.yml | 2 +- package.json | 7 +++- yarn.lock | 62 +++++++++++++++++++++++++++++++++--- 4 files changed, 71 insertions(+), 8 deletions(-) diff --git a/.cspell.json b/.cspell.json index b72a2dfa..d8828e54 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,6 +1,10 @@ { - "useGitignore": true, + "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", "version": "0.2", + "ignorePaths": ["**/*.json", "**/*.css", "node_modules"], + "useGitignore": true, "language": "en", - "words": [] + "words": ["dataurl", "outdir", "servedir"], + "dictionaries": ["typescript", "node", "software-terms"], + "import": ["@cspell/dict-typescript/cspell-ext.json", "@cspell/dict-node/cspell-ext.json", "@cspell/dict-software-terms"] } diff --git a/.github/workflows/cspell.yml b/.github/workflows/cspell.yml index a7165349..b7d749f2 100644 --- a/.github/workflows/cspell.yml +++ b/.github/workflows/cspell.yml @@ -21,4 +21,4 @@ jobs: run: yarn add cspell - name: Run cspell - run: yarn cspell "src/**/*.{ts,json}" + run: yarn format:cspell" diff --git a/package.json b/package.json index 852ea419..b56ccab8 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,10 @@ "scripts": { "start": "tsx build/esbuild-server.ts", "build": "tsx build/esbuild-build.ts", - "format": "run-s format:prettier format:lint", + "format": "run-s format:lint format:prettier format:cspell", "format:lint": "eslint --fix .", "format:prettier": "prettier --write .", + "format:cspell": "cspell **/*", "prepare": "husky install" }, "keywords": [ @@ -29,10 +30,14 @@ "devDependencies": { "@commitlint/cli": "^18.4.3", "@commitlint/config-conventional": "^18.4.3", + "@cspell/dict-node": "^4.0.3", + "@cspell/dict-software-terms": "^3.3.17", + "@cspell/dict-typescript": "^3.1.2", "@types/node": "^20.10.0", "@typescript-eslint/eslint-plugin": "^6.13.1", "@typescript-eslint/parser": "^6.13.1", "cspell": "^8.3.2", + "cspell-dict-node": "^1.1.5", "esbuild": "^0.19.8", "eslint": "^8.54.0", "eslint-config-prettier": "^9.0.0", diff --git a/yarn.lock b/yarn.lock index 330d4276..7e732c48 100644 --- a/yarn.lock +++ b/yarn.lock @@ -561,6 +561,13 @@ __metadata: languageName: node linkType: hard +"@cspell/dict-node@npm:^1.0.12": + version: 1.0.12 + resolution: "@cspell/dict-node@npm:1.0.12" + checksum: 927c1452968db0e845158d92d612aae1637d97f6f287cc6215fc7bb926c4c7237f66f3ef331e8cb7e78d017514756bc61fb8a0a83480fc70bb7dbd968fc961a6 + languageName: node + linkType: hard + "@cspell/dict-node@npm:^4.0.3": version: 4.0.3 resolution: "@cspell/dict-node@npm:4.0.3" @@ -633,7 +640,7 @@ __metadata: languageName: node linkType: hard -"@cspell/dict-software-terms@npm:^3.3.15": +"@cspell/dict-software-terms@npm:^3.3.15, @cspell/dict-software-terms@npm:^3.3.17": version: 3.3.17 resolution: "@cspell/dict-software-terms@npm:3.3.17" checksum: 0e8b3cf226f2cd3dd0bccb1f28a8fac24d7223e7ba670b73aec08cb69a1285755743716e53261ae4ef4f6f43d7682a8af11f4a14ef50b1875c1809f955c71f06 @@ -2087,6 +2094,20 @@ __metadata: languageName: node linkType: hard +"configstore@npm:^5.0.0": + version: 5.0.1 + resolution: "configstore@npm:5.0.1" + dependencies: + dot-prop: ^5.2.0 + graceful-fs: ^4.1.2 + make-dir: ^3.0.0 + unique-string: ^2.0.0 + write-file-atomic: ^3.0.0 + xdg-basedir: ^4.0.0 + checksum: 60ef65d493b63f96e14b11ba7ec072fdbf3d40110a94fb7199d1c287761bdea5c5244e76b2596325f30c1b652213aa75de96ea20afd4a5f82065e61ea090988e + languageName: node + linkType: hard + "configstore@npm:^6.0.0": version: 6.0.0 resolution: "configstore@npm:6.0.0" @@ -2220,6 +2241,19 @@ __metadata: languageName: node linkType: hard +"cspell-dict-node@npm:^1.1.5": + version: 1.1.5 + resolution: "cspell-dict-node@npm:1.1.5" + dependencies: + "@cspell/dict-node": ^1.0.12 + configstore: ^5.0.0 + bin: + cspell-dict-node-link: link.js + cspell-dict-node-unlink: unlink.js + checksum: 397e7c08971d66bb9d054277ad4f397d142ddf32e1bdc7ec3c09a364d6e2fb1c7762b5860a6bcacf8334df936fad54cde1a0197241fb2245c7328e2a5b1da86e + languageName: node + linkType: hard + "cspell-dictionary@npm:8.3.2": version: 8.3.2 resolution: "cspell-dictionary@npm:8.3.2" @@ -2479,7 +2513,7 @@ __metadata: languageName: node linkType: hard -"dot-prop@npm:^5.1.0": +"dot-prop@npm:^5.1.0, dot-prop@npm:^5.2.0": version: 5.3.0 resolution: "dot-prop@npm:5.3.0" dependencies: @@ -4501,6 +4535,15 @@ __metadata: languageName: node linkType: hard +"make-dir@npm:^3.0.0": + version: 3.1.0 + resolution: "make-dir@npm:3.1.0" + dependencies: + semver: ^6.0.0 + checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 + languageName: node + linkType: hard + "make-fetch-happen@npm:^13.0.0": version: 13.0.0 resolution: "make-fetch-happen@npm:13.0.0" @@ -5663,7 +5706,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.1.0": +"semver@npm:^6.0.0, semver@npm:^6.1.0": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -6184,10 +6227,14 @@ __metadata: dependencies: "@commitlint/cli": ^18.4.3 "@commitlint/config-conventional": ^18.4.3 + "@cspell/dict-node": ^4.0.3 + "@cspell/dict-software-terms": ^3.3.17 + "@cspell/dict-typescript": ^3.1.2 "@types/node": ^20.10.0 "@typescript-eslint/eslint-plugin": ^6.13.1 "@typescript-eslint/parser": ^6.13.1 cspell: ^8.3.2 + cspell-dict-node: ^1.1.5 dotenv: ^16.3.1 esbuild: ^0.19.8 eslint: ^8.54.0 @@ -6594,7 +6641,7 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^3.0.3": +"write-file-atomic@npm:^3.0.0, write-file-atomic@npm:^3.0.3": version: 3.0.3 resolution: "write-file-atomic@npm:3.0.3" dependencies: @@ -6606,6 +6653,13 @@ __metadata: languageName: node linkType: hard +"xdg-basedir@npm:^4.0.0": + version: 4.0.0 + resolution: "xdg-basedir@npm:4.0.0" + checksum: 0073d5b59a37224ed3a5ac0dd2ec1d36f09c49f0afd769008a6e9cd3cd666bd6317bd1c7ce2eab47e1de285a286bad11a9b038196413cd753b79770361855f3c + languageName: node + linkType: hard + "xdg-basedir@npm:^5.0.1": version: 5.1.0 resolution: "xdg-basedir@npm:5.1.0" From 49fc65fba471628319c3d4c5974b7358385d3e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sat, 3 Feb 2024 00:24:01 +0900 Subject: [PATCH 39/85] chore: remove deprecated --- package.json | 1 - yarn.lock | 57 +++------------------------------------------------- 2 files changed, 3 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index b56ccab8..08c8b4cd 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,6 @@ "@typescript-eslint/eslint-plugin": "^6.13.1", "@typescript-eslint/parser": "^6.13.1", "cspell": "^8.3.2", - "cspell-dict-node": "^1.1.5", "esbuild": "^0.19.8", "eslint": "^8.54.0", "eslint-config-prettier": "^9.0.0", diff --git a/yarn.lock b/yarn.lock index 7e732c48..f9b15764 100644 --- a/yarn.lock +++ b/yarn.lock @@ -561,13 +561,6 @@ __metadata: languageName: node linkType: hard -"@cspell/dict-node@npm:^1.0.12": - version: 1.0.12 - resolution: "@cspell/dict-node@npm:1.0.12" - checksum: 927c1452968db0e845158d92d612aae1637d97f6f287cc6215fc7bb926c4c7237f66f3ef331e8cb7e78d017514756bc61fb8a0a83480fc70bb7dbd968fc961a6 - languageName: node - linkType: hard - "@cspell/dict-node@npm:^4.0.3": version: 4.0.3 resolution: "@cspell/dict-node@npm:4.0.3" @@ -2094,20 +2087,6 @@ __metadata: languageName: node linkType: hard -"configstore@npm:^5.0.0": - version: 5.0.1 - resolution: "configstore@npm:5.0.1" - dependencies: - dot-prop: ^5.2.0 - graceful-fs: ^4.1.2 - make-dir: ^3.0.0 - unique-string: ^2.0.0 - write-file-atomic: ^3.0.0 - xdg-basedir: ^4.0.0 - checksum: 60ef65d493b63f96e14b11ba7ec072fdbf3d40110a94fb7199d1c287761bdea5c5244e76b2596325f30c1b652213aa75de96ea20afd4a5f82065e61ea090988e - languageName: node - linkType: hard - "configstore@npm:^6.0.0": version: 6.0.0 resolution: "configstore@npm:6.0.0" @@ -2241,19 +2220,6 @@ __metadata: languageName: node linkType: hard -"cspell-dict-node@npm:^1.1.5": - version: 1.1.5 - resolution: "cspell-dict-node@npm:1.1.5" - dependencies: - "@cspell/dict-node": ^1.0.12 - configstore: ^5.0.0 - bin: - cspell-dict-node-link: link.js - cspell-dict-node-unlink: unlink.js - checksum: 397e7c08971d66bb9d054277ad4f397d142ddf32e1bdc7ec3c09a364d6e2fb1c7762b5860a6bcacf8334df936fad54cde1a0197241fb2245c7328e2a5b1da86e - languageName: node - linkType: hard - "cspell-dictionary@npm:8.3.2": version: 8.3.2 resolution: "cspell-dictionary@npm:8.3.2" @@ -2513,7 +2479,7 @@ __metadata: languageName: node linkType: hard -"dot-prop@npm:^5.1.0, dot-prop@npm:^5.2.0": +"dot-prop@npm:^5.1.0": version: 5.3.0 resolution: "dot-prop@npm:5.3.0" dependencies: @@ -4535,15 +4501,6 @@ __metadata: languageName: node linkType: hard -"make-dir@npm:^3.0.0": - version: 3.1.0 - resolution: "make-dir@npm:3.1.0" - dependencies: - semver: ^6.0.0 - checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 - languageName: node - linkType: hard - "make-fetch-happen@npm:^13.0.0": version: 13.0.0 resolution: "make-fetch-happen@npm:13.0.0" @@ -5706,7 +5663,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.1.0": +"semver@npm:^6.1.0": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -6234,7 +6191,6 @@ __metadata: "@typescript-eslint/eslint-plugin": ^6.13.1 "@typescript-eslint/parser": ^6.13.1 cspell: ^8.3.2 - cspell-dict-node: ^1.1.5 dotenv: ^16.3.1 esbuild: ^0.19.8 eslint: ^8.54.0 @@ -6641,7 +6597,7 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^3.0.0, write-file-atomic@npm:^3.0.3": +"write-file-atomic@npm:^3.0.3": version: 3.0.3 resolution: "write-file-atomic@npm:3.0.3" dependencies: @@ -6653,13 +6609,6 @@ __metadata: languageName: node linkType: hard -"xdg-basedir@npm:^4.0.0": - version: 4.0.0 - resolution: "xdg-basedir@npm:4.0.0" - checksum: 0073d5b59a37224ed3a5ac0dd2ec1d36f09c49f0afd769008a6e9cd3cd666bd6317bd1c7ce2eab47e1de285a286bad11a9b038196413cd753b79770361855f3c - languageName: node - linkType: hard - "xdg-basedir@npm:^5.0.1": version: 5.1.0 resolution: "xdg-basedir@npm:5.1.0" From 27786d7d0ba92c4268395ab38675627bc9bef8ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sat, 3 Feb 2024 00:28:04 +0900 Subject: [PATCH 40/85] feat(cspell): support colors --- .cspell.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.cspell.json b/.cspell.json index d8828e54..dfd6093e 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,10 +1,11 @@ { "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", "version": "0.2", - "ignorePaths": ["**/*.json", "**/*.css", "node_modules"], + "ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log"], "useGitignore": true, "language": "en", - "words": ["dataurl", "outdir", "servedir"], + "words": ["dataurl", "devpool", "outdir", "servedir"], "dictionaries": ["typescript", "node", "software-terms"], - "import": ["@cspell/dict-typescript/cspell-ext.json", "@cspell/dict-node/cspell-ext.json", "@cspell/dict-software-terms"] + "import": ["@cspell/dict-typescript/cspell-ext.json", "@cspell/dict-node/cspell-ext.json", "@cspell/dict-software-terms"], + "ignoreRegExpList": ["[0-9a-fA-F]{6}"] } From ea8c924d95ef36ef5ece2ac3a5b6e0153c6b816a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sat, 3 Feb 2024 00:30:01 +0900 Subject: [PATCH 41/85] fix(ci): cspell --- .github/workflows/cspell.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cspell.yml b/.github/workflows/cspell.yml index b7d749f2..c81c97a0 100644 --- a/.github/workflows/cspell.yml +++ b/.github/workflows/cspell.yml @@ -21,4 +21,4 @@ jobs: run: yarn add cspell - name: Run cspell - run: yarn format:cspell" + run: yarn format:cspell From bbf9660f624f054d6b3ad34663af7da527e6f3ad Mon Sep 17 00:00:00 2001 From: Fernando Date: Mon, 12 Feb 2024 20:33:31 +0900 Subject: [PATCH 42/85] feat: type pulled from gitmodule bot repository --- .gitmodules | 4 + lib/ubiquibot | 1 + static/scripts/onboarding/onboarding.ts | 131 +++++------------------- 3 files changed, 32 insertions(+), 104 deletions(-) create mode 160000 lib/ubiquibot diff --git a/.gitmodules b/.gitmodules index a3706a83..3d81c6bd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,3 +5,7 @@ [submodule "lib/permit2"] path = lib/permit2 url = https://github.com/Uniswap/permit2 +[submodule "lib/ubiquibot"] + path = lib/ubiquibot + url = https://github.com/ubiquity/ubiquibot + shallow = true diff --git a/lib/ubiquibot b/lib/ubiquibot new file mode 160000 index 00000000..8afd7cfa --- /dev/null +++ b/lib/ubiquibot @@ -0,0 +1 @@ +Subproject commit 8afd7cfa13e9731fb49b5f5a03f605258458d649 diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index 9526252f..5c74edff 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -1,13 +1,15 @@ -import _sodium from "libsodium-wrappers"; -import { Octokit } from "@octokit/rest"; +import { JsonRpcSigner } from "@ethersproject/providers"; import { createOrUpdateTextFile } from "@octokit/plugin-create-or-update-text-file"; -import YAML from "yaml"; -import { ethers } from "ethers"; +import { Octokit } from "@octokit/rest"; import { PERMIT2_ADDRESS } from "@uniswap/permit2-sdk"; -import { JsonRpcSigner, Network } from "@ethersproject/providers"; +import { ethers } from "ethers"; import { parseUnits } from "ethers/lib/utils"; -import { NetworkIds, Tokens, getNetworkName, networkNames } from "../rewards/constants"; +import _sodium from "libsodium-wrappers"; +import YAML from "yaml"; +import { DefaultConfig } from "../../../lib/ubiquibot/src/configs/ubiquibot-config-default"; +import { MergedConfig } from "../../../lib/ubiquibot/src/types"; import { erc20Abi } from "../rewards/abis/erc20Abi"; +import { getNetworkName, NetworkIds, Tokens } from "../rewards/constants"; const classes = ["error", "warn", "success"]; const inputClasses = ["input-warn", "input-error", "input-success"]; @@ -33,96 +35,14 @@ const X25519_KEY = "5ghIlfGjz_ChcYlBDOG7dzmgAgBPuTahpvTMBipSH00"; let encryptedValue = ""; -interface ConfLabel { - name: string; -} - -interface CommandLabel { - name: string; - enabled: boolean; -} - -interface IIncentive { - comment: { - elements: Record; - totals: { - word: number; - }; - }; -} - -interface IControl { - label: boolean; - organization: boolean; -} - -interface IConf { - "private-key-encrypted"?: string; - "safe-address"?: string; - "base-multiplier"?: number; - "auto-pay-mode"?: boolean; - "analytics-mode"?: boolean; - "max-concurrent-bounties"?: number; - "incentive-mode"?: boolean; - "evm-network-id"?: number; - "price-multiplier"?: number; - "issue-creator-multiplier"?: number; - "payment-permit-max-price"?: number; - "max-concurrent-assigns"?: number; - "assistive-pricing"?: boolean; - "disable-analytics"?: boolean; - "comment-incentives"?: boolean; - "register-wallet-with-verification"?: boolean; - "promotion-comment"?: string; - "default-labels"?: string[]; - "time-labels"?: ConfLabel[]; - "priority-labels"?: ConfLabel[]; - "command-settings"?: CommandLabel[]; - incentives?: IIncentive; - "enable-access-control"?: IControl; -} - -let defaultConf: IConf = { - "private-key-encrypted": "", - "safe-address": "", - "base-multiplier": 1, - "auto-pay-mode": false, - "analytics-mode": false, - "max-concurrent-bounties": 1, - "incentive-mode": false, - "evm-network-id": 1, - "price-multiplier": 1, - "issue-creator-multiplier": 1, - "payment-permit-max-price": 1, - "max-concurrent-assigns": 1, - "assistive-pricing": false, - "disable-analytics": false, - "comment-incentives": false, - "register-wallet-with-verification": false, - "promotion-comment": "", - "default-labels": [], - "time-labels": [], - "priority-labels": [], - "command-settings": [], - incentives: { - comment: { - elements: {}, - totals: { - word: 0, - }, - }, - }, - "enable-access-control": { - label: false, - organization: true, - }, -}; +let defaultConf = DefaultConfig -export const parseYAML = async (data: any): Promise => { +export const parseYAML = async (data: string | undefined) => { + if (!data) return undefined try { const parsedData = await YAML.parse(data); if (parsedData !== null) { - return parsedData; + return parsedData as T; } else { return undefined; } @@ -131,10 +51,10 @@ export const parseYAML = async (data: any): Promise => { } }; -export const parseJSON = async (data: any): Promise => { +export const parseJSON = async (data: string) => { try { const parsedData = await JSON.parse(data); - return parsedData; + return parsedData as T; } catch (error) { return undefined; } @@ -227,9 +147,9 @@ const sodiumEncryptedSeal = async (publicKey: string, secret: string) => { const binsec = sodium.from_string(secret); const encBytes = sodium.crypto_box_seal(binsec, binkey); const output = sodium.to_base64(encBytes, sodium.base64_variants.URLSAFE_NO_PADDING); - defaultConf[KEY_NAME] = output; - defaultConf["evm-network-id"] = Number(chainIdSelect.value); - defaultConf["safe-address"] = safeAddressInput.value; + // defaultConf[KEY_NAME] = output; + defaultConf["evmNetworkId"] = Number(chainIdSelect.value); + // defaultConf["safe-address"] = safeAddressInput.value; outKey.value = YAMLStringify(defaultConf); outKey.style.height = getTextBox(outKey.value); encryptedValue = output; @@ -304,10 +224,10 @@ const setConfig = async () => { const conf = await getConf(); const updatedConf = defaultConf; - const parsedConf: IConf | undefined = await parseYAML(conf); - updatedConf[KEY_NAME] = encryptedValue; - updatedConf["evm-network-id"] = Number(chainIdSelect.value); - updatedConf["safe-address"] = safeAddressInput.value; + const parsedConf = await parseYAML(conf); + // updatedConf[KEY_NAME] = encryptedValue; + updatedConf["evmNetworkId"] = Number(chainIdSelect.value); + // updatedConf["safe-address"] = safeAddressInput.value; // combine configs (default + remote org wide) const combinedConf = Object.assign(updatedConf, parsedConf); @@ -555,9 +475,12 @@ const init = async () => { let conf = await getConf(true); if (conf !== undefined) { try { - conf = JSON.parse(conf); - defaultConf = conf as IConf; - defaultConf["private-key-encrypted"] = ""; + const parsedConf = JSON.parse(conf) as MergedConfig; + if (!parsedConf) { + throw new Error("Configuration could not be parsed!") + } + defaultConf = parsedConf; + // defaultConf["private-key-encrypted"] = ""; setInputListeners(); setBtn.addEventListener("click", async () => { From 344c81d2482a7cd85d838afbbc9001730f11ea28 Mon Sep 17 00:00:00 2001 From: Fernando Date: Tue, 13 Feb 2024 17:02:32 +0900 Subject: [PATCH 43/85] chore: renamed conf keys to match the new bot conf --- static/scripts/onboarding/onboarding.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index 5c74edff..081bb40d 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -29,7 +29,8 @@ const REPO_NAME = "ubiquibot-config"; const DEFAULT_REPO = "ubiquibot"; const KEY_PATH = ".github/ubiquibot-config.yml"; const DEFAULT_PATH = "ubiquibot-config-default.json"; -const KEY_NAME = "private-key-encrypted"; +const PRIVATE_ENCRYPTED_KEY_NAME = "privateKeyEncrypted"; +const EVM_NETWORK_KEY_NAME = "evmNetworkId"; const KEY_PREFIX = "HSK_"; const X25519_KEY = "5ghIlfGjz_ChcYlBDOG7dzmgAgBPuTahpvTMBipSH00"; @@ -147,9 +148,8 @@ const sodiumEncryptedSeal = async (publicKey: string, secret: string) => { const binsec = sodium.from_string(secret); const encBytes = sodium.crypto_box_seal(binsec, binkey); const output = sodium.to_base64(encBytes, sodium.base64_variants.URLSAFE_NO_PADDING); - // defaultConf[KEY_NAME] = output; - defaultConf["evmNetworkId"] = Number(chainIdSelect.value); - // defaultConf["safe-address"] = safeAddressInput.value; + defaultConf[PRIVATE_ENCRYPTED_KEY_NAME] = output; + defaultConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); outKey.value = YAMLStringify(defaultConf); outKey.style.height = getTextBox(outKey.value); encryptedValue = output; @@ -225,9 +225,8 @@ const setConfig = async () => { const updatedConf = defaultConf; const parsedConf = await parseYAML(conf); - // updatedConf[KEY_NAME] = encryptedValue; - updatedConf["evmNetworkId"] = Number(chainIdSelect.value); - // updatedConf["safe-address"] = safeAddressInput.value; + updatedConf[PRIVATE_ENCRYPTED_KEY_NAME] = encryptedValue; + updatedConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); // combine configs (default + remote org wide) const combinedConf = Object.assign(updatedConf, parsedConf); From b556272402f934be15a8f1bb180ea909243b5c9c Mon Sep 17 00:00:00 2001 From: Fernando Date: Tue, 13 Feb 2024 17:04:50 +0900 Subject: [PATCH 44/85] chore: set private key to empty string to init conf --- static/scripts/onboarding/onboarding.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index 081bb40d..7d035fcb 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -479,7 +479,7 @@ const init = async () => { throw new Error("Configuration could not be parsed!") } defaultConf = parsedConf; - // defaultConf["private-key-encrypted"] = ""; + defaultConf[PRIVATE_ENCRYPTED_KEY_NAME] = ""; setInputListeners(); setBtn.addEventListener("click", async () => { From baf6f8de317402c52f144ec76873f409736043d7 Mon Sep 17 00:00:00 2001 From: Fernando Date: Thu, 15 Feb 2024 14:05:48 +0900 Subject: [PATCH 45/85] chore: removed default conf fetch as it is already imported in the submodule --- static/scripts/onboarding/onboarding.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index 7d035fcb..7ee0bc17 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -471,14 +471,8 @@ const step2Handler = async () => { }; const init = async () => { - let conf = await getConf(true); - if (conf !== undefined) { + if (defaultConf !== undefined) { try { - const parsedConf = JSON.parse(conf) as MergedConfig; - if (!parsedConf) { - throw new Error("Configuration could not be parsed!") - } - defaultConf = parsedConf; defaultConf[PRIVATE_ENCRYPTED_KEY_NAME] = ""; setInputListeners(); From ef0b7b3f3858259a52beb92d6245fe13b1e2d71f Mon Sep 17 00:00:00 2001 From: Fernando Date: Thu, 15 Feb 2024 16:41:45 +0900 Subject: [PATCH 46/85] chore: changed privateKeyEncrypted to be undefined by default --- static/scripts/onboarding/onboarding.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index 7ee0bc17..c763c707 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -473,7 +473,7 @@ const step2Handler = async () => { const init = async () => { if (defaultConf !== undefined) { try { - defaultConf[PRIVATE_ENCRYPTED_KEY_NAME] = ""; + defaultConf[PRIVATE_ENCRYPTED_KEY_NAME] = undefined; setInputListeners(); setBtn.addEventListener("click", async () => { From 24618d6907334108c3c82872f8467b68eec71775 Mon Sep 17 00:00:00 2001 From: Fernando Date: Thu, 15 Feb 2024 17:32:44 +0900 Subject: [PATCH 47/85] chore: added back safe-address --- static/scripts/onboarding/onboarding.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index c763c707..d4c48803 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -36,10 +36,10 @@ const X25519_KEY = "5ghIlfGjz_ChcYlBDOG7dzmgAgBPuTahpvTMBipSH00"; let encryptedValue = ""; -let defaultConf = DefaultConfig +let defaultConf = { ...DefaultConfig, "safe-address": "" }; export const parseYAML = async (data: string | undefined) => { - if (!data) return undefined + if (!data) return undefined; try { const parsedData = await YAML.parse(data); if (parsedData !== null) { @@ -150,6 +150,7 @@ const sodiumEncryptedSeal = async (publicKey: string, secret: string) => { const output = sodium.to_base64(encBytes, sodium.base64_variants.URLSAFE_NO_PADDING); defaultConf[PRIVATE_ENCRYPTED_KEY_NAME] = output; defaultConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); + defaultConf["safe-address"] = safeAddressInput.value; outKey.value = YAMLStringify(defaultConf); outKey.style.height = getTextBox(outKey.value); encryptedValue = output; @@ -224,9 +225,10 @@ const setConfig = async () => { const conf = await getConf(); const updatedConf = defaultConf; - const parsedConf = await parseYAML(conf); + const parsedConf = await parseYAML(conf); updatedConf[PRIVATE_ENCRYPTED_KEY_NAME] = encryptedValue; updatedConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); + defaultConf["safe-address"] = safeAddressInput.value; // combine configs (default + remote org wide) const combinedConf = Object.assign(updatedConf, parsedConf); From 3819fb93ef79228dc226c6603619756bada96e49 Mon Sep 17 00:00:00 2001 From: Fernando Date: Thu, 15 Feb 2024 17:39:58 +0900 Subject: [PATCH 48/85] chore: removed unused constants --- static/scripts/onboarding/onboarding.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index d4c48803..98966069 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -24,11 +24,8 @@ const chainIdSelect = document.getElementById("chainId") as HTMLSelectElement; const loader = document.querySelector(".loader-wrap") as HTMLElement; const APP_ID = 236521; -const DEFAULT_ORG = "ubiquity"; const REPO_NAME = "ubiquibot-config"; -const DEFAULT_REPO = "ubiquibot"; const KEY_PATH = ".github/ubiquibot-config.yml"; -const DEFAULT_PATH = "ubiquibot-config-default.json"; const PRIVATE_ENCRYPTED_KEY_NAME = "privateKeyEncrypted"; const EVM_NETWORK_KEY_NAME = "evmNetworkId"; const KEY_PREFIX = "HSK_"; @@ -63,13 +60,13 @@ export const parseJSON = async (data: string) => { export const YAMLStringify = (value: any) => YAML.stringify(value, { defaultKeyType: "PLAIN", defaultStringType: "QUOTE_DOUBLE", lineWidth: 0 }); -export const getConf = async (initial: boolean = false): Promise => { +export const getConf = async (): Promise => { try { const octokit = new Octokit({ auth: githubPAT.value }); const { data } = await octokit.rest.repos.getContent({ - owner: initial ? DEFAULT_ORG : orgName.value, - repo: initial ? DEFAULT_REPO : REPO_NAME, - path: initial ? DEFAULT_PATH : KEY_PATH, + owner: orgName.value, + repo: REPO_NAME, + path: KEY_PATH, mediaType: { format: "raw", }, From 3a1eecc9b00eb8b1d737ea70fe279d93003a2e71 Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Thu, 15 Feb 2024 14:28:55 +0000 Subject: [PATCH 49/85] fix: cosmetic enhancements --- static/index.html | 6 +- .../render-transaction/render-transaction.ts | 63 +++++++++++-------- static/scripts/rewards/web3/erc20-permit.ts | 2 +- static/styles/rewards/claim-table.css | 6 ++ 4 files changed, 48 insertions(+), 29 deletions(-) diff --git a/static/index.html b/static/index.html index ac75797f..4b6e62f0 100644 --- a/static/index.html +++ b/static/index.html @@ -62,14 +62,14 @@ xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 490 490" xml:space="preserve" - style="cursor: pointer; padding: 10px" + class="paginateClaims" > -
1/x reward
+
diff --git a/static/scripts/rewards/render-transaction/render-transaction.ts b/static/scripts/rewards/render-transaction/render-transaction.ts index c9638ef4..635cc799 100644 --- a/static/scripts/rewards/render-transaction/render-transaction.ts +++ b/static/scripts/rewards/render-transaction/render-transaction.ts @@ -48,28 +48,34 @@ export async function init() { const rewardsCount = document.getElementById("rewardsCount"); if (rewardsCount) { - rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; - - const nextTxButton = document.getElementById("nextTx"); - if (nextTxButton) { - nextTxButton.addEventListener("click", () => { - claimButton.element = removeAllEventListeners(claimButton.element) as HTMLButtonElement; - app.nextTx(); - rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; - table.setAttribute(`data-claim`, "none"); - renderTransaction(); - }); - } - - const prevTxButton = document.getElementById("previousTx"); - if (prevTxButton) { - prevTxButton.addEventListener("click", () => { - claimButton.element = removeAllEventListeners(claimButton.element) as HTMLButtonElement; - app.previousTx(); - rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; - table.setAttribute(`data-claim`, "none"); - renderTransaction(); - }); + if (!app.claimTxs || app.claimTxs.length <= 1) { + // already hidden + } else { + rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; + + const nextTxButton = document.getElementById("nextTx"); + if (nextTxButton) { + nextTxButton.style.display = "block"; + nextTxButton.addEventListener("click", () => { + claimButton.element = removeAllEventListeners(claimButton.element) as HTMLButtonElement; + app.nextTx(); + rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; + table.setAttribute(`data-claim`, "none"); + renderTransaction(); + }); + } + + const prevTxButton = document.getElementById("previousTx"); + if (prevTxButton) { + prevTxButton.style.display = "block"; + prevTxButton.addEventListener("click", () => { + claimButton.element = removeAllEventListeners(claimButton.element) as HTMLButtonElement; + app.previousTx(); + rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; + table.setAttribute(`data-claim`, "none"); + renderTransaction(); + }); + } } } @@ -83,9 +89,16 @@ export async function renderTransaction(nextTx?: boolean): Promise { if (nextTx) { app.nextTx(); - const rewardsCount = document.getElementById("rewardsCount") as Element; - rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; - table.setAttribute(`data-claim`, "none"); + if (!app.claimTxs || app.claimTxs.length <= 1) { + // already hidden + } else { + document.getElementById("nextTx")!.style.display = "block"; + document.getElementById("previousTx")!.style.display = "block"; + + const rewardsCount = document.getElementById("rewardsCount") as Element; + rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; + table.setAttribute(`data-claim`, "none"); + } } if (!app.currentTx) { diff --git a/static/scripts/rewards/web3/erc20-permit.ts b/static/scripts/rewards/web3/erc20-permit.ts index 24a521d0..ba5cbcc1 100644 --- a/static/scripts/rewards/web3/erc20-permit.ts +++ b/static/scripts/rewards/web3/erc20-permit.ts @@ -55,7 +55,7 @@ export function claimErc20PermitHandler(permit: Erc20Permit) { export async function checkPermitClaimable(permit: Erc20Permit, signer: ethers.providers.JsonRpcSigner | null) { const claimed = await isNonceClaimed(permit); if (claimed) { - toaster.create("error", `This reward has already been claimed or invalidated.`); + toaster.create("error", `Your reward for this task has already been claimed or invalidated.`); return false; } diff --git a/static/styles/rewards/claim-table.css b/static/styles/rewards/claim-table.css index 3837b1e1..7b7b38c6 100644 --- a/static/styles/rewards/claim-table.css +++ b/static/styles/rewards/claim-table.css @@ -288,6 +288,12 @@ table[data-claim-rendered="true"][data-claim="none"][data-contract-loaded="true" display: none; } +.paginateClaims { + display: none; + cursor: pointer; + padding: 10px; +} + #additionalDetails svg { /* display: none; */ } From 41006a281cefa5d38d1ae329253918129881d847 Mon Sep 17 00:00:00 2001 From: Fernando Date: Fri, 16 Feb 2024 01:21:30 +0900 Subject: [PATCH 50/85] chore: removed unused safe-address --- static/onboarding.html | 5 ----- static/scripts/onboarding/onboarding.ts | 16 +--------------- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/static/onboarding.html b/static/onboarding.html index 9ab078a9..23953483 100644 --- a/static/onboarding.html +++ b/static/onboarding.html @@ -33,11 +33,6 @@

Onboarding

-
- - - -
diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index 98966069..69e3947e 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -33,7 +33,7 @@ const X25519_KEY = "5ghIlfGjz_ChcYlBDOG7dzmgAgBPuTahpvTMBipSH00"; let encryptedValue = ""; -let defaultConf = { ...DefaultConfig, "safe-address": "" }; +let defaultConf = DefaultConfig; export const parseYAML = async (data: string | undefined) => { if (!data) return undefined; @@ -147,7 +147,6 @@ const sodiumEncryptedSeal = async (publicKey: string, secret: string) => { const output = sodium.to_base64(encBytes, sodium.base64_variants.URLSAFE_NO_PADDING); defaultConf[PRIVATE_ENCRYPTED_KEY_NAME] = output; defaultConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); - defaultConf["safe-address"] = safeAddressInput.value; outKey.value = YAMLStringify(defaultConf); outKey.style.height = getTextBox(outKey.value); encryptedValue = output; @@ -225,7 +224,6 @@ const setConfig = async () => { const parsedConf = await parseYAML(conf); updatedConf[PRIVATE_ENCRYPTED_KEY_NAME] = encryptedValue; updatedConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); - defaultConf["safe-address"] = safeAddressInput.value; // combine configs (default + remote org wide) const combinedConf = Object.assign(updatedConf, parsedConf); @@ -391,18 +389,6 @@ const step1Handler = async () => { singleToggle("warn", `Warn: GitHub PAT is not set.`, githubPAT); return; } - if (!safeAddressInput.value.startsWith("0x")) { - singleToggle("warn", `Warn: Safe Address must start with 0x.`, safeAddressInput); - return; - } - if (!isHex(safeAddressInput.value.substring(2))) { - singleToggle("warn", `Warn: Safe Address is not a valid hex string.`, safeAddressInput); - return; - } - if (safeAddressInput.value.length !== 42) { - singleToggle("warn", `Warn: Safe Address must be 20 bytes long.`, safeAddressInput); - return; - } await sodiumEncryptedSeal(X25519_KEY, `${KEY_PREFIX}${walletPrivateKey.value}`); setConfig(); From 6c9239ab47930e514430650f1c9beed0b5ce1e5a Mon Sep 17 00:00:00 2001 From: Fernando Date: Fri, 16 Feb 2024 01:25:10 +0900 Subject: [PATCH 51/85] chore: submodule checkout --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f889017f..7e8052a6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,6 +17,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3 + with: + submodules: recursive - name: Setup Node uses: actions/setup-node@v3 From 821f81e95925b9dcfc8ae6631bae3150b1cfcb27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Fri, 16 Feb 2024 18:32:56 +0900 Subject: [PATCH 52/85] feat: production deploys related https://github.com/ubiquity/pay.ubq.fi/issues/153 --- .github/workflows/cloudflare-deploy.yml | 7 + yarn.lock | 11244 +++++++++------------- 2 files changed, 4563 insertions(+), 6688 deletions(-) diff --git a/.github/workflows/cloudflare-deploy.yml b/.github/workflows/cloudflare-deploy.yml index 1559949f..9301cefa 100644 --- a/.github/workflows/cloudflare-deploy.yml +++ b/.github/workflows/cloudflare-deploy.yml @@ -11,6 +11,12 @@ jobs: contents: read steps: + - name: Check Cloudflare API Token + run: | + if [[ -z "${{ secrets.CLOUDFLARE_API_TOKEN }}" ]]; then + echo "CLOUDFLARE_API_TOKEN secret must be set" >&2 + exit 1 + fi - name: Deploy to Cloudflare uses: ubiquity/cloudflare-deploy-action@main with: @@ -18,6 +24,7 @@ jobs: repository: ${{ github.repository }} production_branch: ${{ github.event.repository.default_branch }} output_directory: "static" + is_production: ${{ github.event_name == 'push' && github.ref == 'refs/heads/${{ github.event.repository.default_branch }}' }} # env: # Add any environment variables you need to pass along here # SUPABASE_URL: ${{ secrets.SUPABASE_URL }} diff --git a/yarn.lock b/yarn.lock index f9b15764..1959e404 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,6690 +1,4558 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 6 - cacheKey: 8 - -"@aashutoshrathi/word-wrap@npm:^1.2.3": - version: 1.2.6 - resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" - checksum: ada901b9e7c680d190f1d012c84217ce0063d8f5c5a7725bb91ec3c5ed99bb7572680eb2d2938a531ccbaec39a95422fcd8a6b4a13110c7d98dd75402f66a0cd - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.0.0": - version: 7.23.4 - resolution: "@babel/code-frame@npm:7.23.4" - dependencies: - "@babel/highlight": ^7.23.4 - chalk: ^2.4.2 - checksum: 29999d08c3dbd803f3c296dae7f4f40af1f9e381d6bbc76e5a75327c4b8b023bcb2e209843d292f5d71c3b5c845df1da959d415ed862d6a68e0ad6c5c9622d37 - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-validator-identifier@npm:7.22.20" - checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/highlight@npm:7.23.4" - dependencies: - "@babel/helper-validator-identifier": ^7.22.20 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89 - languageName: node - linkType: hard - -"@commitlint/cli@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/cli@npm:18.4.3" - dependencies: - "@commitlint/format": ^18.4.3 - "@commitlint/lint": ^18.4.3 - "@commitlint/load": ^18.4.3 - "@commitlint/read": ^18.4.3 - "@commitlint/types": ^18.4.3 - execa: ^5.0.0 - lodash.isfunction: ^3.0.9 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - yargs: ^17.0.0 - bin: - commitlint: cli.js - checksum: 903b0db897ae9836aa9190da4bacb26d3f8b9621602f5810ee7cca1cac3c339a16671bec1a4e3a414dc226b57687096f84cae2ed50faac6d1814a4b582d663e2 - languageName: node - linkType: hard - -"@commitlint/config-conventional@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/config-conventional@npm:18.4.3" - dependencies: - conventional-changelog-conventionalcommits: ^7.0.2 - checksum: bb6c1559979002e79c5e7c575f57fd713638523cdadfa61754eaabb8aad042d688c859e82ccf58589bb9aa2a4497e820702744095c9b82f6018fbb3b5d75d08d - languageName: node - linkType: hard - -"@commitlint/config-validator@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/config-validator@npm:18.4.3" - dependencies: - "@commitlint/types": ^18.4.3 - ajv: ^8.11.0 - checksum: e56aa321aa4f680ed78822f974e724e27c005c6c6b910ff59c3a2b0220c97ff4291e316674637ec28da6f8234952e2d20673d9851e049913474e8f24b4e2d376 - languageName: node - linkType: hard - -"@commitlint/ensure@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/ensure@npm:18.4.3" - dependencies: - "@commitlint/types": ^18.4.3 - lodash.camelcase: ^4.3.0 - lodash.kebabcase: ^4.1.1 - lodash.snakecase: ^4.1.1 - lodash.startcase: ^4.4.0 - lodash.upperfirst: ^4.3.1 - checksum: 5c8c437ffef5b0d241a02d1c8967324765429d27e2ae882feb4fc96f53472e4c8d6ea6d86a64da7c97dd7efac07bc1f1c2a8babc1bbb56db48152a4f26f2ba69 - languageName: node - linkType: hard - -"@commitlint/execute-rule@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/execute-rule@npm:18.4.3" - checksum: 0f0e99e2f079872efe39915313f7d353a36dfac4432bb74ac60a526ca3c9b7bb55365a2e4627f99f4be3fb8ac4c6e745adcacfbdcbf940418f101ffaa10d5ae3 - languageName: node - linkType: hard - -"@commitlint/format@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/format@npm:18.4.3" - dependencies: - "@commitlint/types": ^18.4.3 - chalk: ^4.1.0 - checksum: 244515c99e60ce1e2c4106ee076554a082ab3655225c59c2bb4fab412f47e1d5e44c5e72a9b8907996eb947243f913347d20640a8da9c01b52e4cf247f1a9f94 - languageName: node - linkType: hard - -"@commitlint/is-ignored@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/is-ignored@npm:18.4.3" - dependencies: - "@commitlint/types": ^18.4.3 - semver: 7.5.4 - checksum: 01fd386bea9634dc7cee2a3f8f9916f4dabf9d3043d838b8ea3328ec622a777c4c637f4a80b639289e38429496535561cc7398b36e880b73fcc819d4f1427fb9 - languageName: node - linkType: hard - -"@commitlint/lint@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/lint@npm:18.4.3" - dependencies: - "@commitlint/is-ignored": ^18.4.3 - "@commitlint/parse": ^18.4.3 - "@commitlint/rules": ^18.4.3 - "@commitlint/types": ^18.4.3 - checksum: dd1e0ad437ab62b5f5b562aef7862f6f1c7cc278c0ae2575923a3b1b2b4594a04bcf9573d279c5a1ae1a92378778bb34f485adb9f927eb718dafb40457b0bc19 - languageName: node - linkType: hard - -"@commitlint/load@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/load@npm:18.4.3" - dependencies: - "@commitlint/config-validator": ^18.4.3 - "@commitlint/execute-rule": ^18.4.3 - "@commitlint/resolve-extends": ^18.4.3 - "@commitlint/types": ^18.4.3 - "@types/node": ^18.11.9 - chalk: ^4.1.0 - cosmiconfig: ^8.3.6 - cosmiconfig-typescript-loader: ^5.0.0 - lodash.isplainobject: ^4.0.6 - lodash.merge: ^4.6.2 - lodash.uniq: ^4.5.0 - resolve-from: ^5.0.0 - checksum: 8fb8652f00f739c75493d3c805d5cc09e5bef8398eff26b9fbfd8d2be2b6a47758bab72650a3ab5202427c9e1936ea36270c40aca39f87fade38c7293194ee21 - languageName: node - linkType: hard - -"@commitlint/message@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/message@npm:18.4.3" - checksum: b81d59f5a295d0cffbab0edd212b1fa4cdd4fd05cc242bc95d6919c038be9d7022db2d6c0d8132c2910ee409cdce5ce6e472e12ac9bb2d3f6acb7a3db7bbeb99 - languageName: node - linkType: hard - -"@commitlint/parse@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/parse@npm:18.4.3" - dependencies: - "@commitlint/types": ^18.4.3 - conventional-changelog-angular: ^7.0.0 - conventional-commits-parser: ^5.0.0 - checksum: 696c60ecee20f9bfb5e19715ae777aca8e86b133ef709a66171c228b4f618ef15ba515e11274c46ff13df964ba69ab1ddec4055ddce1bc0a69f70b6d2301ccd5 - languageName: node - linkType: hard - -"@commitlint/read@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/read@npm:18.4.3" - dependencies: - "@commitlint/top-level": ^18.4.3 - "@commitlint/types": ^18.4.3 - fs-extra: ^11.0.0 - git-raw-commits: ^2.0.11 - minimist: ^1.2.6 - checksum: ebc815effe4920c769f879947608c367b452f334d9a8e8c3140b7685920bb4ba092d36c5416781522c2e50178a4b91092c5661044c13a0d62dace60091f39706 - languageName: node - linkType: hard - -"@commitlint/resolve-extends@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/resolve-extends@npm:18.4.3" - dependencies: - "@commitlint/config-validator": ^18.4.3 - "@commitlint/types": ^18.4.3 - import-fresh: ^3.0.0 - lodash.mergewith: ^4.6.2 - resolve-from: ^5.0.0 - resolve-global: ^1.0.0 - checksum: ef321ae425385e720763019a1dcf39b5daf65a661f6af43d69b7aad04eda21ce43487c7552b65f5611c96b45bfefabe63c9eaef20352f223812b5c9d489a600a - languageName: node - linkType: hard - -"@commitlint/rules@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/rules@npm:18.4.3" - dependencies: - "@commitlint/ensure": ^18.4.3 - "@commitlint/message": ^18.4.3 - "@commitlint/to-lines": ^18.4.3 - "@commitlint/types": ^18.4.3 - execa: ^5.0.0 - checksum: 857c66c1e4d2d24bb3f07a16576626ac27d103ff589afe59ea36d84276c62bd49005ed2e81f43cb430bbd29eb86eb23ebbfec9c58796654249f0064802b9eb62 - languageName: node - linkType: hard - -"@commitlint/to-lines@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/to-lines@npm:18.4.3" - checksum: c9d47868284168fbe94764a2abe3526010bd2d43fa9a7ac3946648408998efc1279827299346042d019120eb8f5692cc5a5c12159f8da49585e4c885c2e628a6 - languageName: node - linkType: hard - -"@commitlint/top-level@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/top-level@npm:18.4.3" - dependencies: - find-up: ^5.0.0 - checksum: b71581c9c485c2ca518b20021ed8d106ea6cd504453c9bed1436df2a620caec78a38bed1e3e8086c51e8b747a7ba6515569275ef29a6707349db6614cda70940 - languageName: node - linkType: hard - -"@commitlint/types@npm:^18.4.3": - version: 18.4.3 - resolution: "@commitlint/types@npm:18.4.3" - dependencies: - chalk: ^4.1.0 - checksum: 52dfc0ee835f3030fff25e45b4568e83eef818126a30f60860637c74de4919c5f9f1eab157622bb70facf9483f07898cfcb47efa484caf6443dd866942e460ec - languageName: node - linkType: hard - -"@cspell/cspell-bundled-dicts@npm:8.3.2": - version: 8.3.2 - resolution: "@cspell/cspell-bundled-dicts@npm:8.3.2" - dependencies: - "@cspell/dict-ada": ^4.0.2 - "@cspell/dict-aws": ^4.0.1 - "@cspell/dict-bash": ^4.1.3 - "@cspell/dict-companies": ^3.0.29 - "@cspell/dict-cpp": ^5.0.10 - "@cspell/dict-cryptocurrencies": ^5.0.0 - "@cspell/dict-csharp": ^4.0.2 - "@cspell/dict-css": ^4.0.12 - "@cspell/dict-dart": ^2.0.3 - "@cspell/dict-django": ^4.1.0 - "@cspell/dict-docker": ^1.1.7 - "@cspell/dict-dotnet": ^5.0.0 - "@cspell/dict-elixir": ^4.0.3 - "@cspell/dict-en-common-misspellings": ^2.0.0 - "@cspell/dict-en-gb": 1.1.33 - "@cspell/dict-en_us": ^4.3.13 - "@cspell/dict-filetypes": ^3.0.3 - "@cspell/dict-fonts": ^4.0.0 - "@cspell/dict-fsharp": ^1.0.1 - "@cspell/dict-fullstack": ^3.1.5 - "@cspell/dict-gaming-terms": ^1.0.4 - "@cspell/dict-git": ^3.0.0 - "@cspell/dict-golang": ^6.0.5 - "@cspell/dict-haskell": ^4.0.1 - "@cspell/dict-html": ^4.0.5 - "@cspell/dict-html-symbol-entities": ^4.0.0 - "@cspell/dict-java": ^5.0.6 - "@cspell/dict-k8s": ^1.0.2 - "@cspell/dict-latex": ^4.0.0 - "@cspell/dict-lorem-ipsum": ^4.0.0 - "@cspell/dict-lua": ^4.0.3 - "@cspell/dict-makefile": ^1.0.0 - "@cspell/dict-node": ^4.0.3 - "@cspell/dict-npm": ^5.0.14 - "@cspell/dict-php": ^4.0.5 - "@cspell/dict-powershell": ^5.0.3 - "@cspell/dict-public-licenses": ^2.0.5 - "@cspell/dict-python": ^4.1.11 - "@cspell/dict-r": ^2.0.1 - "@cspell/dict-ruby": ^5.0.2 - "@cspell/dict-rust": ^4.0.1 - "@cspell/dict-scala": ^5.0.0 - "@cspell/dict-software-terms": ^3.3.15 - "@cspell/dict-sql": ^2.1.3 - "@cspell/dict-svelte": ^1.0.2 - "@cspell/dict-swift": ^2.0.1 - "@cspell/dict-typescript": ^3.1.2 - "@cspell/dict-vue": ^3.0.0 - checksum: 2b50d8a3d056a6e261e4d525fe8f70b8d4e9860c305f6ba21ea7869807b2b8100b30d6f4ff4da91ea0ac6fcea7191158c7091e839b3b41ee3052f3e3b401b347 - languageName: node - linkType: hard - -"@cspell/cspell-json-reporter@npm:8.3.2": - version: 8.3.2 - resolution: "@cspell/cspell-json-reporter@npm:8.3.2" - dependencies: - "@cspell/cspell-types": 8.3.2 - checksum: 25926f8cfef378dbce59f140d9f383db4598222a3de5f2a0a6840e225d694afce2c069498668304f4ec39e58f5570887ef0d31f45824ca16b0fc31f20180352e - languageName: node - linkType: hard - -"@cspell/cspell-pipe@npm:8.3.2": - version: 8.3.2 - resolution: "@cspell/cspell-pipe@npm:8.3.2" - checksum: 14b01d2cdc6af931a0b5ac9fcd5e5c358fcdd7710ed82d35a9dcf6c7d3e917bc5ac953571ec9fffa4ed22d8f872e2a74a10258cccac10b7cd49878c8c2e15a3c - languageName: node - linkType: hard - -"@cspell/cspell-resolver@npm:8.3.2": - version: 8.3.2 - resolution: "@cspell/cspell-resolver@npm:8.3.2" - dependencies: - global-directory: ^4.0.1 - checksum: fe723a1b8407b4168f6262cd30a97ad04eb5eb40f4cac3a11c6bf674ed67cc08525b0282b95edbcaf1d014dec3880f6f01b3f49e4319ade5b8e169f0a910f8d1 - languageName: node - linkType: hard - -"@cspell/cspell-service-bus@npm:8.3.2": - version: 8.3.2 - resolution: "@cspell/cspell-service-bus@npm:8.3.2" - checksum: 9bec7ddafcd8acab743248eb547fa5a84cf5363b0d0da354fdb2a0a6268a516b3600c7034ea71b6fca1c2517818f939876d961a4a3fc73a175eb62f5cbb6b7ae - languageName: node - linkType: hard - -"@cspell/cspell-types@npm:8.3.2": - version: 8.3.2 - resolution: "@cspell/cspell-types@npm:8.3.2" - checksum: 5f0b038e6717a3fa9c4109845c94e2a3d561a8b1a5dac073535929dee81e4d6d18af96759135a4dab6b06529a86ab1bd4e6b4a70121561bf22dfe4508140a5c3 - languageName: node - linkType: hard - -"@cspell/dict-ada@npm:^4.0.2": - version: 4.0.2 - resolution: "@cspell/dict-ada@npm:4.0.2" - checksum: 847729d40022db4df698aa9511c6b9073954f71268b64ad4fa354e6ac3eb5b03486bcb566ecadd4bccbebb4f188752eff2b2bdd9021b58dbf2cd61cd6a426752 - languageName: node - linkType: hard - -"@cspell/dict-aws@npm:^4.0.1": - version: 4.0.1 - resolution: "@cspell/dict-aws@npm:4.0.1" - checksum: 8445468151205fdfc51993ebc329e3a210a1628069971f973fb87c4d32cbb33676b32a370021efe0863ef63414632c8edf025ba7d296e932a93f3b05ba6193fc - languageName: node - linkType: hard - -"@cspell/dict-bash@npm:^4.1.3": - version: 4.1.3 - resolution: "@cspell/dict-bash@npm:4.1.3" - checksum: 4ba66c76c144d4c7ea1dd0fb92dfb0d7fd1e43a106a73fc7e9010b4a5c276aa4ef791c7161f56bf911356e3667ba043ee63271c1ffc485d9f8712553770e3ea9 - languageName: node - linkType: hard - -"@cspell/dict-companies@npm:^3.0.29": - version: 3.0.31 - resolution: "@cspell/dict-companies@npm:3.0.31" - checksum: 6fd3ee3bd4485c54231e72bb6602166c51074571177a51f9fdbc71a5afc50e2ad7b43a85d93971c81912cadd00722042a0a48e94cb59627a4a8705dab32b4736 - languageName: node - linkType: hard - -"@cspell/dict-cpp@npm:^5.0.10": - version: 5.1.3 - resolution: "@cspell/dict-cpp@npm:5.1.3" - checksum: 82c75789101856383912bfbef3599d2cc5154ce26761efc1c65154f69015b2bdde07b64edd1f55b2f860f1b8309afb41904837706b9236e684bf03ad45749f87 - languageName: node - linkType: hard - -"@cspell/dict-cryptocurrencies@npm:^5.0.0": - version: 5.0.0 - resolution: "@cspell/dict-cryptocurrencies@npm:5.0.0" - checksum: 116e7f117b59ea4c9fa7ae1c3b47fc963e050448d43e059fb93731a256881ee262420edd5b9701ffe88af3d5e95b0337fc99b4dde1b0283ee0aaed45b23e281e - languageName: node - linkType: hard - -"@cspell/dict-csharp@npm:^4.0.2": - version: 4.0.2 - resolution: "@cspell/dict-csharp@npm:4.0.2" - checksum: d2ecb2aada51c5f0d6d557fd4f0c6eddb5b299e0955e066c49cd2afe96a1c6fe0afde699fdb885dd3183603a1efbd1d793b6a490b8d039256445b4b154b7375b - languageName: node - linkType: hard - -"@cspell/dict-css@npm:^4.0.12": - version: 4.0.12 - resolution: "@cspell/dict-css@npm:4.0.12" - checksum: 208c9434b8f5c8a33a96bb087572c10d5c946cd0847b9439271d0c4d2dcde5ee2588aca73bfea0c868d0124731b3ca890fab4762724d16435f161d4d5e7f3b9b - languageName: node - linkType: hard - -"@cspell/dict-dart@npm:^2.0.3": - version: 2.0.3 - resolution: "@cspell/dict-dart@npm:2.0.3" - checksum: 66bfcfa029baacd0b14b3ff5b6ab7597cf9459f77185d88b25123b42a4babb66df6786806843f1b6506c335326100599a2e1db6e6104e66bd021ede9ccb3cec4 - languageName: node - linkType: hard - -"@cspell/dict-data-science@npm:^1.0.11": - version: 1.0.11 - resolution: "@cspell/dict-data-science@npm:1.0.11" - checksum: 513f8f416f584f46576d45be23a4aa354e46d244f10a3d466222ffc13afe475e676639e4a24ab3a1ba157239f9ce23f7eef59c9f4c7a877a044db3a6344b18c6 - languageName: node - linkType: hard - -"@cspell/dict-django@npm:^4.1.0": - version: 4.1.0 - resolution: "@cspell/dict-django@npm:4.1.0" - checksum: b8a66135525e235bd6f2ea02de84ac7eae78e1068418f36b0c2260f9516b72492ef73f3fdc5fe8db2a6933747ff45a3eb743423a7dbf5b74548b1b1f30792679 - languageName: node - linkType: hard - -"@cspell/dict-docker@npm:^1.1.7": - version: 1.1.7 - resolution: "@cspell/dict-docker@npm:1.1.7" - checksum: 307f8b5132edca7cd291ba0ab6ed88f8787df984d6a42401b12a0da1ecb935d50af3a108ede885ce5bede96c445acdc88bb9ea8396de151c565a90a3bf66853e - languageName: node - linkType: hard - -"@cspell/dict-dotnet@npm:^5.0.0": - version: 5.0.0 - resolution: "@cspell/dict-dotnet@npm:5.0.0" - checksum: 3e55abd3cc0ecb0924caa245b83595c8e90b42a8fb438f3294d06ad32d30f3235dc8943a2865f06eaec5285a8d6a7df1db71fb228753d56a678a0f0cff87c24c - languageName: node - linkType: hard - -"@cspell/dict-elixir@npm:^4.0.3": - version: 4.0.3 - resolution: "@cspell/dict-elixir@npm:4.0.3" - checksum: f084449b2de5a2fa08076ac699c6073beaa4bb43796a662d681ea8fe5cba31f9efe718f3f98ef432ba75d4ea574316de34ab8422f79f4f2022cfddee7a7b8653 - languageName: node - linkType: hard - -"@cspell/dict-en-common-misspellings@npm:^2.0.0": - version: 2.0.0 - resolution: "@cspell/dict-en-common-misspellings@npm:2.0.0" - checksum: 977aac18d737d88e4cdca0771b664078a2d8cde1a0313696882581e67cb1acbf1f6a3923c1ee3f05878cfe3ad6f063a2e451f33e7df61cd1e0eb5de425bb4f2d - languageName: node - linkType: hard - -"@cspell/dict-en-gb@npm:1.1.33": - version: 1.1.33 - resolution: "@cspell/dict-en-gb@npm:1.1.33" - checksum: 09a9e7a3ee4cad75c87cc7adf6b5981b3ec52d4e3707e8de2e1a2a55cd5c8539057a7742d9c7035e23eb0aeff80a95b9599696c7192c9b3b9d8f14440fe01938 - languageName: node - linkType: hard - -"@cspell/dict-en_us@npm:^4.3.13": - version: 4.3.15 - resolution: "@cspell/dict-en_us@npm:4.3.15" - checksum: 8c49af876c0ec6d5e2f50b5a6a0e2acefb050578bb567aa950947f4e67f1e3ea2fbdc18d44a6b59ebfaffe571124def936131b7d68e7070f9631c75414d0194b - languageName: node - linkType: hard - -"@cspell/dict-filetypes@npm:^3.0.3": - version: 3.0.3 - resolution: "@cspell/dict-filetypes@npm:3.0.3" - checksum: 22c38a0b2e98d6223b364ddb5948d14bf6427c8286d4ddb111d5da9bdd4c47ddc0c9199a575c314142da9aefcaa5777a4ea33ac07f239cb4b9b303e4bd888aa1 - languageName: node - linkType: hard - -"@cspell/dict-fonts@npm:^4.0.0": - version: 4.0.0 - resolution: "@cspell/dict-fonts@npm:4.0.0" - checksum: 7e33e4b39fb071165d81920dd0ccc07e4b737a7b09522acf3781b26136526e445e03e456caaecff261d76b711196b84cff7c21293853bf00ebe93f2e64c42520 - languageName: node - linkType: hard - -"@cspell/dict-fsharp@npm:^1.0.1": - version: 1.0.1 - resolution: "@cspell/dict-fsharp@npm:1.0.1" - checksum: ce0df20704bf95d1fe434d2889cc764279cbce2b057fc5247be1ccaf7a8cc57372de3da2cdab6643b3df5221119716929b2e2aaad3f60533dcf0bd3c7d892fab - languageName: node - linkType: hard - -"@cspell/dict-fullstack@npm:^3.1.5": - version: 3.1.5 - resolution: "@cspell/dict-fullstack@npm:3.1.5" - checksum: 01c98a3408d4bf4832f1f110252399e663ce869bb097d681558828bb0e22725c7fe7b43077aa57afc2c3158515eaa744074826c020825af5856a0950219785a6 - languageName: node - linkType: hard - -"@cspell/dict-gaming-terms@npm:^1.0.4": - version: 1.0.5 - resolution: "@cspell/dict-gaming-terms@npm:1.0.5" - checksum: 25d50653ed5e940f9302cc5536c37a20854bb274dec9302d73c5349e51ec623d33d99e4fe283e3b30e70f452063361fbc4cae7dc603232fa82004262f37d0f50 - languageName: node - linkType: hard - -"@cspell/dict-git@npm:^3.0.0": - version: 3.0.0 - resolution: "@cspell/dict-git@npm:3.0.0" - checksum: 97b6da58c93108bae0867515f790d84728f0bce580cc8ad6f0f5f63b2c81eaf6d084d543d99b693ff4d7fbea2413ff068c3e4811fc107820d243da2c06d381fa - languageName: node - linkType: hard - -"@cspell/dict-golang@npm:^6.0.5": - version: 6.0.5 - resolution: "@cspell/dict-golang@npm:6.0.5" - checksum: 20bf2c6a23d26f23e39629f3a48c31c2993d126b03ca31892e4e03ed48d2f5d5d929675987df54b6dad95828f6baa080111167e81a2dc3836c1f5b0b6db04a56 - languageName: node - linkType: hard - -"@cspell/dict-haskell@npm:^4.0.1": - version: 4.0.1 - resolution: "@cspell/dict-haskell@npm:4.0.1" - checksum: cfb51e415b60c5eb266a5782d0a4b19a37f1389b9b018d1bbb2ff4358bd739af1f76f68f26a138d4b4bd0ab67146d6eb9032fc3d3c212695237c134e05339c79 - languageName: node - linkType: hard - -"@cspell/dict-html-symbol-entities@npm:^4.0.0": - version: 4.0.0 - resolution: "@cspell/dict-html-symbol-entities@npm:4.0.0" - checksum: 79f05f9080f39dbde703980eb587ed6624b8fc2f5cedc297327bc1b9b7e6022a7c382e6013149b1afe00609b96003ab5c8d18d378979f76f336ab626317183f4 - languageName: node - linkType: hard - -"@cspell/dict-html@npm:^4.0.5": - version: 4.0.5 - resolution: "@cspell/dict-html@npm:4.0.5" - checksum: 2273e77cad6f373c4b0a43c5fb707725ff7c845e6de3545c8b05cbb2d82e1205f004a817498f561ced3d8d8b1d15848a82f2a667c0b64a1ee46cbde67d8ac136 - languageName: node - linkType: hard - -"@cspell/dict-java@npm:^5.0.6": - version: 5.0.6 - resolution: "@cspell/dict-java@npm:5.0.6" - checksum: 7d5df7831e8a4c0295ebbcfdf9a3185b197f1aa60ec85f7edf4aaec4cc1c53f37a291f3f95543642951d21ff487285f5cfb6e853b7f96f514a35052d59252909 - languageName: node - linkType: hard - -"@cspell/dict-k8s@npm:^1.0.2": - version: 1.0.2 - resolution: "@cspell/dict-k8s@npm:1.0.2" - checksum: 4afd7806033b2bf71b17f4cf3fbc33449492bfb2a33a8301cc97b2e55583c07a4a07c288f50f445261c1de4b95494e495b8b982ca428d285393f7eb917bb5a61 - languageName: node - linkType: hard - -"@cspell/dict-latex@npm:^4.0.0": - version: 4.0.0 - resolution: "@cspell/dict-latex@npm:4.0.0" - checksum: 33a3f158d8c0151cbb4e6bd79ba1189d167b3916e1ce37d7b5754d18dffefe061320fa54c3cb482bd5c7cf37392d0112530b07a3eca63dffbe1069de317dc652 - languageName: node - linkType: hard - -"@cspell/dict-lorem-ipsum@npm:^4.0.0": - version: 4.0.0 - resolution: "@cspell/dict-lorem-ipsum@npm:4.0.0" - checksum: d3575fb7b9684480192d2cd647484312c555f3d1215d6b35371b70de3ecde4273010e5916cc2d130ff1e1223a1a49f75825651671a76d3dabdec98acf67a3902 - languageName: node - linkType: hard - -"@cspell/dict-lua@npm:^4.0.3": - version: 4.0.3 - resolution: "@cspell/dict-lua@npm:4.0.3" - checksum: eee20135a4f0620302c5feeb50485f59af93c24b64eb2081a9e2096a106ce33ae565d6d92607582b44c9f17c8a091d82fbcb443ebae9b77f8512b0d66a703c3b - languageName: node - linkType: hard - -"@cspell/dict-makefile@npm:^1.0.0": - version: 1.0.0 - resolution: "@cspell/dict-makefile@npm:1.0.0" - checksum: f0cac4caf31e27accd5df5e0c2f53097cccbbd085126c4b4ecc08be2a32bd7f89fe6b052e9eae4ec99843175cafa94561868271fb53c5389f27cc078565b5123 - languageName: node - linkType: hard - -"@cspell/dict-node@npm:^4.0.3": - version: 4.0.3 - resolution: "@cspell/dict-node@npm:4.0.3" - checksum: 178e7f3ab45f30722cae7354803dd98ea6577c025a11eda9362fa795a06dd8e934f833bfc7d46816617974822ace11217505a1bd0ea2955aaee92cf94cc6b127 - languageName: node - linkType: hard - -"@cspell/dict-npm@npm:^5.0.14": - version: 5.0.15 - resolution: "@cspell/dict-npm@npm:5.0.15" - checksum: 8be1089f438261ff09eda368b5451448b0701d514f79d555196139ad45144e94184a5df3bdf48379e667f15dc84e8f97ed2a178c097b7ec1a448fbe18e24a3fc - languageName: node - linkType: hard - -"@cspell/dict-php@npm:^4.0.5": - version: 4.0.5 - resolution: "@cspell/dict-php@npm:4.0.5" - checksum: 017375f8a08f93872672b9d14c885b3114ea1b82cb8a4375029c7e71dcb303b82bf684fc84df3cbd8d74b9d1e74c80234280605ef8ca26a7972d99bbf15b14f9 - languageName: node - linkType: hard - -"@cspell/dict-powershell@npm:^5.0.3": - version: 5.0.3 - resolution: "@cspell/dict-powershell@npm:5.0.3" - checksum: 18eac3be8545b3df110bf867bd6285b11d7e67da037e00c9bc1376c5e322092bc1d925375a09df8b7420a6a35847aa20558610ffb491763eb82949f3af764e1d - languageName: node - linkType: hard - -"@cspell/dict-public-licenses@npm:^2.0.5": - version: 2.0.5 - resolution: "@cspell/dict-public-licenses@npm:2.0.5" - checksum: 07e647c24ed1a5f0e88828264581e9f8fde179f776a50c4389ac0bc5c09a2bb94280d299c94d1884a8da01fbf112c5640178789b457f06b1a97414b18cda99e0 - languageName: node - linkType: hard - -"@cspell/dict-python@npm:^4.1.11": - version: 4.1.11 - resolution: "@cspell/dict-python@npm:4.1.11" - dependencies: - "@cspell/dict-data-science": ^1.0.11 - checksum: cdfc493d3a260887dc31b115ab880849895522c4a0c0d4fe379a2e42ebf41f0724f02f778629e3e972fc6fa93e6d7bc7892e4b26b3b6fbf72399cf5d3b67585b - languageName: node - linkType: hard - -"@cspell/dict-r@npm:^2.0.1": - version: 2.0.1 - resolution: "@cspell/dict-r@npm:2.0.1" - checksum: fe85939ad4c8ada34284a673918be711cca60b6d6f1c48ee98602c27905228dfbaea3462a350094633032c1d6b6bba9548df7019e0b21673cf1cf887c57ca228 - languageName: node - linkType: hard - -"@cspell/dict-ruby@npm:^5.0.2": - version: 5.0.2 - resolution: "@cspell/dict-ruby@npm:5.0.2" - checksum: c2006bcc808448b1eef146eb4b6b74388113c50334206191a9fe5817fb13669482ecd114f7bbd397562ad2e19a9683266ff396f48c6ce282f6445c2cfa8e82c7 - languageName: node - linkType: hard - -"@cspell/dict-rust@npm:^4.0.1": - version: 4.0.2 - resolution: "@cspell/dict-rust@npm:4.0.2" - checksum: c4d817cbf77ca6d97562b106cf78c43c6090465191d29db3210e431cf1b9d5ef4b6ac98d9da9c79ccaeab3da39b8d6edf952870507f40d0f051245d45d44d2c0 - languageName: node - linkType: hard - -"@cspell/dict-scala@npm:^5.0.0": - version: 5.0.0 - resolution: "@cspell/dict-scala@npm:5.0.0" - checksum: 759dd8746e68e45299b65eeaf1dfd32d1e345fd80fd9a623af502266598c384198853001f70a700c454d8490fb9a5e1358ca1e0d7c0d43154a4f07e2d5531c72 - languageName: node - linkType: hard - -"@cspell/dict-software-terms@npm:^3.3.15, @cspell/dict-software-terms@npm:^3.3.17": - version: 3.3.17 - resolution: "@cspell/dict-software-terms@npm:3.3.17" - checksum: 0e8b3cf226f2cd3dd0bccb1f28a8fac24d7223e7ba670b73aec08cb69a1285755743716e53261ae4ef4f6f43d7682a8af11f4a14ef50b1875c1809f955c71f06 - languageName: node - linkType: hard - -"@cspell/dict-sql@npm:^2.1.3": - version: 2.1.3 - resolution: "@cspell/dict-sql@npm:2.1.3" - checksum: a435812cc697d4c453f11efa49962992150702518e49808381ea34548b8a8ed81432a10cca36682007912b013c28e9ce3c6c183341c6cde58c8af0eef25cddc3 - languageName: node - linkType: hard - -"@cspell/dict-svelte@npm:^1.0.2": - version: 1.0.2 - resolution: "@cspell/dict-svelte@npm:1.0.2" - checksum: 5b42989bc6743a26ca5172cc23ebc1449d930695b10c908376048ce1835bf57fef7a0004f02ec5e43219f24a97f154e125041df470441199a045ed0be9e654fc - languageName: node - linkType: hard - -"@cspell/dict-swift@npm:^2.0.1": - version: 2.0.1 - resolution: "@cspell/dict-swift@npm:2.0.1" - checksum: 0bbb106266205c5f5e12886a73ebf0db2078bab1bdd2e1f304fe28445cd72d847a4c5072bf4fe8f9e8cdb4bc69d52fffec0806aea19ea9b64b7a87c67ee01175 - languageName: node - linkType: hard - -"@cspell/dict-typescript@npm:^3.1.2": - version: 3.1.2 - resolution: "@cspell/dict-typescript@npm:3.1.2" - checksum: 3cd0fa39856002975cf05b5584de42f58700a3420bd08b7b073af87dbcc1f66cab45e36a2156dd4e6c926cf67baaa192f02ccf61b9a9e5e94e69e035af54cec1 - languageName: node - linkType: hard - -"@cspell/dict-vue@npm:^3.0.0": - version: 3.0.0 - resolution: "@cspell/dict-vue@npm:3.0.0" - checksum: 4db58b1d6f9be1a523a35678877f2cca2bb04548b136ec5ec4e7186500978dbc32cc8747ced80ade3cad3acc3c80eb23afe980679165810f8f8f26802e952e2f - languageName: node - linkType: hard - -"@cspell/dynamic-import@npm:8.3.2": - version: 8.3.2 - resolution: "@cspell/dynamic-import@npm:8.3.2" - dependencies: - import-meta-resolve: ^4.0.0 - checksum: 176a5684922e9d3b3b277cdacbac14da509f691bd62da5135fab7c75db57f41c52ef0386c6ba3958e48dbc1b7b6f2751067c63bc1167ee09fae427c86dac71f7 - languageName: node - linkType: hard - -"@cspell/strong-weak-map@npm:8.3.2": - version: 8.3.2 - resolution: "@cspell/strong-weak-map@npm:8.3.2" - checksum: 696389c5ecb985bdded3530a088712ad03354051efc6506fae0328353a476604008a03364f3736de9041f51128b46ff6ffdda628c03c2c4800dc256a1b75e6ba - languageName: node - linkType: hard - -"@ericcornelissen/bash-parser@npm:0.5.2": - version: 0.5.2 - resolution: "@ericcornelissen/bash-parser@npm:0.5.2" - dependencies: - array-last: ^1.1.1 - babylon: ^6.9.1 - compose-function: ^3.0.3 - deep-freeze: 0.0.1 - filter-iterator: 0.0.1 - filter-obj: ^1.1.0 - has-own-property: ^0.1.0 - identity-function: ^1.0.0 - is-iterable: ^1.1.0 - iterable-lookahead: ^1.0.0 - lodash.curry: ^4.1.1 - magic-string: ^0.16.0 - map-obj: ^2.0.0 - object-pairs: ^0.1.0 - object-values: ^1.0.0 - reverse-arguments: ^1.0.0 - shell-quote-word: ^1.0.1 - to-pascal-case: ^1.0.0 - unescape-js: ^1.0.5 - checksum: ed6feb775a45e529e36b8ab01cfe2ba39446d8403f30022d4c00f009a45ae47e9c2fd43d5607b7120366c29c42aaf4c5b0bc202066e71d543f3cde235240a87b - languageName: node - linkType: hard - -"@esbuild/android-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-arm64@npm:0.18.20" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/android-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/android-arm64@npm:0.19.8" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/android-arm@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-arm@npm:0.18.20" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@esbuild/android-arm@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/android-arm@npm:0.19.8" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@esbuild/android-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-x64@npm:0.18.20" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/android-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/android-x64@npm:0.19.8" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/darwin-arm64@npm:0.18.20" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/darwin-arm64@npm:0.19.8" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/darwin-x64@npm:0.18.20" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/darwin-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/darwin-x64@npm:0.19.8" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/freebsd-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/freebsd-arm64@npm:0.18.20" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/freebsd-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/freebsd-arm64@npm:0.19.8" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/freebsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/freebsd-x64@npm:0.18.20" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/freebsd-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/freebsd-x64@npm:0.19.8" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/linux-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-arm64@npm:0.18.20" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/linux-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-arm64@npm:0.19.8" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/linux-arm@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-arm@npm:0.18.20" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@esbuild/linux-arm@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-arm@npm:0.19.8" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@esbuild/linux-ia32@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-ia32@npm:0.18.20" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/linux-ia32@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-ia32@npm:0.19.8" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/linux-loong64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-loong64@npm:0.18.20" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - -"@esbuild/linux-loong64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-loong64@npm:0.19.8" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - -"@esbuild/linux-mips64el@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-mips64el@npm:0.18.20" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - -"@esbuild/linux-mips64el@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-mips64el@npm:0.19.8" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - -"@esbuild/linux-ppc64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-ppc64@npm:0.18.20" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/linux-ppc64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-ppc64@npm:0.19.8" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/linux-riscv64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-riscv64@npm:0.18.20" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - -"@esbuild/linux-riscv64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-riscv64@npm:0.19.8" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - -"@esbuild/linux-s390x@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-s390x@npm:0.18.20" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - -"@esbuild/linux-s390x@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-s390x@npm:0.19.8" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - -"@esbuild/linux-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-x64@npm:0.18.20" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/linux-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-x64@npm:0.19.8" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/netbsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/netbsd-x64@npm:0.18.20" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/netbsd-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/netbsd-x64@npm:0.19.8" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/openbsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/openbsd-x64@npm:0.18.20" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/openbsd-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/openbsd-x64@npm:0.19.8" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/sunos-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/sunos-x64@npm:0.18.20" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/sunos-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/sunos-x64@npm:0.19.8" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/win32-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-arm64@npm:0.18.20" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/win32-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/win32-arm64@npm:0.19.8" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/win32-ia32@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-ia32@npm:0.18.20" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/win32-ia32@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/win32-ia32@npm:0.19.8" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/win32-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-x64@npm:0.18.20" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/win32-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/win32-x64@npm:0.19.8" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" - dependencies: - eslint-visitor-keys: ^3.3.0 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.10.0 - resolution: "@eslint-community/regexpp@npm:4.10.0" - checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b - languageName: node - linkType: hard - -"@eslint/eslintrc@npm:^2.1.3": - version: 2.1.3 - resolution: "@eslint/eslintrc@npm:2.1.3" - dependencies: - ajv: ^6.12.4 - debug: ^4.3.2 - espree: ^9.6.0 - globals: ^13.19.0 - ignore: ^5.2.0 - import-fresh: ^3.2.1 - js-yaml: ^4.1.0 - minimatch: ^3.1.2 - strip-json-comments: ^3.1.1 - checksum: 5c6c3878192fe0ddffa9aff08b4e2f3bcc8f1c10d6449b7295a5f58b662019896deabfc19890455ffd7e60a5bd28d25d0eaefb2f78b2d230aae3879af92b89e5 - languageName: node - linkType: hard - -"@eslint/js@npm:8.54.0": - version: 8.54.0 - resolution: "@eslint/js@npm:8.54.0" - checksum: 6d88a6f711ef0133566b5340e3178a178fbb297585766460f195d0a9db85688f1e5cf8559fd5748aeb3131e2096c66595b323d8edab22df015acda68f1ebde92 - languageName: node - linkType: hard - -"@humanwhocodes/config-array@npm:^0.11.13": - version: 0.11.13 - resolution: "@humanwhocodes/config-array@npm:0.11.13" - dependencies: - "@humanwhocodes/object-schema": ^2.0.1 - debug: ^4.1.1 - minimatch: ^3.0.5 - checksum: f8ea57b0d7ed7f2d64cd3944654976829d9da91c04d9c860e18804729a33f7681f78166ef4c761850b8c324d362f7d53f14c5c44907a6b38b32c703ff85e4805 - languageName: node - linkType: hard - -"@humanwhocodes/module-importer@npm:^1.0.1": - version: 1.0.1 - resolution: "@humanwhocodes/module-importer@npm:1.0.1" - checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 - languageName: node - linkType: hard - -"@humanwhocodes/object-schema@npm:^2.0.1": - version: 2.0.1 - resolution: "@humanwhocodes/object-schema@npm:2.0.1" - checksum: 24929487b1ed48795d2f08346a0116cc5ee4634848bce64161fb947109352c562310fd159fc64dda0e8b853307f5794605191a9547f7341158559ca3c8262a45 - languageName: node - linkType: hard - -"@isaacs/cliui@npm:^8.0.2": - version: 8.0.2 - resolution: "@isaacs/cliui@npm:8.0.2" - dependencies: - string-width: ^5.1.2 - string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: ^7.0.1 - strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: ^8.1.0 - wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb - languageName: node - linkType: hard - -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": 2.0.5 - run-parallel: ^1.1.9 - checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": 2.1.5 - fastq: ^1.6.0 - checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 - languageName: node - linkType: hard - -"@npmcli/agent@npm:^2.0.0": - version: 2.2.0 - resolution: "@npmcli/agent@npm:2.2.0" - dependencies: - agent-base: ^7.1.0 - http-proxy-agent: ^7.0.0 - https-proxy-agent: ^7.0.1 - lru-cache: ^10.0.1 - socks-proxy-agent: ^8.0.1 - checksum: 3b25312edbdfaa4089af28e2d423b6f19838b945e47765b0c8174c1395c79d43c3ad6d23cb364b43f59fd3acb02c93e3b493f72ddbe3dfea04c86843a7311fc4 - languageName: node - linkType: hard - -"@npmcli/fs@npm:^3.1.0": - version: 3.1.0 - resolution: "@npmcli/fs@npm:3.1.0" - dependencies: - semver: ^7.3.5 - checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e - languageName: node - linkType: hard - -"@npmcli/map-workspaces@npm:3.0.4": - version: 3.0.4 - resolution: "@npmcli/map-workspaces@npm:3.0.4" - dependencies: - "@npmcli/name-from-folder": ^2.0.0 - glob: ^10.2.2 - minimatch: ^9.0.0 - read-package-json-fast: ^3.0.0 - checksum: 99607dbc502b16d0ce7a47a81ccc496b3f5ed10df4e61e61a505929de12c356092996044174ae0cfd6d8cc177ef3b597eef4987b674fc0c5a306d3a8cc1fe91a - languageName: node - linkType: hard - -"@npmcli/name-from-folder@npm:^2.0.0": - version: 2.0.0 - resolution: "@npmcli/name-from-folder@npm:2.0.0" - checksum: fb3ef891aa57315fb6171866847f298577c8bda98a028e93e458048477133e142b4eb45ce9f3b80454f7c257612cb01754ee782d608507698dd712164436f5bd - languageName: node - linkType: hard - -"@pkgjs/parseargs@npm:0.11.0, @pkgjs/parseargs@npm:^0.11.0": - version: 0.11.0 - resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f - languageName: node - linkType: hard - -"@pkgr/utils@npm:^2.3.1": - version: 2.4.2 - resolution: "@pkgr/utils@npm:2.4.2" - dependencies: - cross-spawn: ^7.0.3 - fast-glob: ^3.3.0 - is-glob: ^4.0.3 - open: ^9.1.0 - picocolors: ^1.0.0 - tslib: ^2.6.0 - checksum: 24e04c121269317d259614cd32beea3af38277151c4002df5883c4be920b8e3490bb897748e844f9d46bf68230f86dabd4e8f093773130e7e60529a769a132fc - languageName: node - linkType: hard - -"@pnpm/constants@npm:7.1.1": - version: 7.1.1 - resolution: "@pnpm/constants@npm:7.1.1" - checksum: a8b6a8c633ba2099ee844a3dd7934352a2135872e86f8fe497d599837b8be7eac374839598b70030e63cb3a32f945e881d6c0e1542f0be2b74ec52d78f891649 - languageName: node - linkType: hard - -"@pnpm/core-loggers@npm:9.0.4": - version: 9.0.4 - resolution: "@pnpm/core-loggers@npm:9.0.4" - dependencies: - "@pnpm/types": 9.4.0 - peerDependencies: - "@pnpm/logger": ^5.0.0 - checksum: 0271da88cba0e8c8f17a01f63b12d617b58e780f2d16f8989a44fbe0eef6cfb4e1b6b8dd2d2ed84f9dc5c7434eba9fb4c44eaf1e34a155e9d2843d7a950d6db9 - languageName: node - linkType: hard - -"@pnpm/error@npm:5.0.2": - version: 5.0.2 - resolution: "@pnpm/error@npm:5.0.2" - dependencies: - "@pnpm/constants": 7.1.1 - checksum: 490e90b3a6fa6527a5a2b07dfd46982e005d8834036871a30cf03fcb389497b9828ed01c0d39e88b6352a340556de316eae9dbefcb3246f368815a03241576e6 - languageName: node - linkType: hard - -"@pnpm/fetching-types@npm:5.0.0": - version: 5.0.0 - resolution: "@pnpm/fetching-types@npm:5.0.0" - dependencies: - "@zkochan/retry": ^0.2.0 - node-fetch: 3.0.0-beta.9 - checksum: 845c1597be6246f484477c3badce5573a1ab35c741f59e297813faf195d07e4c03ca871beb10d614a987a4dff78bd72265c0bd56c40cbf941e416b1f3ea6231c - languageName: node - linkType: hard - -"@pnpm/graceful-fs@npm:3.2.0": - version: 3.2.0 - resolution: "@pnpm/graceful-fs@npm:3.2.0" - dependencies: - graceful-fs: ^4.2.11 - checksum: b31bad77530101d27044d2d712ecf09684398cc72311fbb079675f393219fff002a9ab8e3ea91014e79f1586a861a100ac9b4881d72156383aca6e85cf9855be - languageName: node - linkType: hard - -"@pnpm/logger@npm:5.0.0": - version: 5.0.0 - resolution: "@pnpm/logger@npm:5.0.0" - dependencies: - bole: ^5.0.0 - ndjson: ^2.0.0 - checksum: 6ea91cb3a539351371147b6f051489a01630538327bb3773105e91b9b35ec689b6fc1d112d484726deffe6953b738318e1a86205362baf9fb49fad27084b8f74 - languageName: node - linkType: hard - -"@pnpm/npm-package-arg@npm:^1.0.0": - version: 1.0.0 - resolution: "@pnpm/npm-package-arg@npm:1.0.0" - dependencies: - hosted-git-info: ^4.0.1 - semver: ^7.3.5 - validate-npm-package-name: ^4.0.0 - checksum: e3dbcb605b6c86e0d29854aab00af086fd922211c9c2ed4f4923a70947c10d563b5e9adc8441d7ec0a23d074edb9cd1f0c334b506c4ecc549b07b60700f3639a - languageName: node - linkType: hard - -"@pnpm/npm-resolver@npm:18.0.0": - version: 18.0.0 - resolution: "@pnpm/npm-resolver@npm:18.0.0" - dependencies: - "@pnpm/core-loggers": 9.0.4 - "@pnpm/error": 5.0.2 - "@pnpm/fetching-types": 5.0.0 - "@pnpm/graceful-fs": 3.2.0 - "@pnpm/resolve-workspace-range": 5.0.1 - "@pnpm/resolver-base": 11.0.0 - "@pnpm/types": 9.4.0 - "@zkochan/retry": ^0.2.0 - encode-registry: ^3.0.1 - load-json-file: ^6.2.0 - lru-cache: ^10.0.1 - normalize-path: ^3.0.0 - p-limit: ^3.1.0 - p-memoize: 4.0.1 - parse-npm-tarball-url: ^3.0.0 - path-temp: ^2.1.0 - ramda: "npm:@pnpm/ramda@0.28.1" - rename-overwrite: ^4.0.4 - semver: ^7.5.4 - ssri: 10.0.5 - version-selector-type: ^3.0.0 - peerDependencies: - "@pnpm/logger": ^5.0.0 - checksum: a35fbc34f924a00b00d0987c1f0be876b511cff1840c9cc6d925cd4f7d52db796b14b9acc88f2d367aca3eec858dd345befffb7b711f75c6a478b33a0d1b447f - languageName: node - linkType: hard - -"@pnpm/resolve-workspace-range@npm:5.0.1": - version: 5.0.1 - resolution: "@pnpm/resolve-workspace-range@npm:5.0.1" - dependencies: - semver: ^7.4.0 - checksum: 4c6a853b1f6d8030e5458d1d88891932e209ed35daa3032919802e6005a4beca5fa31ffd2769be1353a9f0367971afebd51493ab187ac675a73a35640a82aaa1 - languageName: node - linkType: hard - -"@pnpm/resolver-base@npm:11.0.0": - version: 11.0.0 - resolution: "@pnpm/resolver-base@npm:11.0.0" - dependencies: - "@pnpm/types": 9.4.0 - checksum: 1dd99524bba0aa502d77469cb0f51d6ed15069a5887335aebf0531e75eca65fcd62a8d9d8d449066307bb3e4b1ed6b45c64ca74626dc75cdc2230a33fa33a6b4 - languageName: node - linkType: hard - -"@pnpm/types@npm:9.4.0": - version: 9.4.0 - resolution: "@pnpm/types@npm:9.4.0" - checksum: 3381181f9bd26bf1c6b766fdf035abd2ecb36b0366d143f7fe91dff8f296f587b7ba58ad573716a109089bf1f59418e870d8cd8c0119398a6c39cfa038e0dc9b - languageName: node - linkType: hard - -"@pnpm/workspace.pkgs-graph@npm:^2.0.10": - version: 2.0.11 - resolution: "@pnpm/workspace.pkgs-graph@npm:2.0.11" - dependencies: - "@pnpm/npm-package-arg": ^1.0.0 - "@pnpm/npm-resolver": 18.0.0 - "@pnpm/resolve-workspace-range": 5.0.1 - ramda: "npm:@pnpm/ramda@0.28.1" - checksum: c2f5448adc467f552fc1ba55d6dff742148be597d47dd48bfa88943adc16d0908d2583e10a271f8b04b1a1a4e0d4b69717a089d3db27ba2f2d278386da1903a5 - languageName: node - linkType: hard - -"@sindresorhus/merge-streams@npm:^1.0.0": - version: 1.0.0 - resolution: "@sindresorhus/merge-streams@npm:1.0.0" - checksum: 453c2a28164113a5ec4fd23ba636e291a4112f6ee9e91cd5476b9a96e0fc9ee5ff40d405fe81bbf284c9773b7ed718a3a0f31df7895a0efd413b1f9775d154fe - languageName: node - linkType: hard - -"@snyk/github-codeowners@npm:1.1.0": - version: 1.1.0 - resolution: "@snyk/github-codeowners@npm:1.1.0" - dependencies: - commander: ^4.1.1 - ignore: ^5.1.8 - p-map: ^4.0.0 - bin: - github-codeowners: dist/cli.js - checksum: 133f867fa968f96229ebce724d8aedaa124218e20add96a3a7d39ea45e52007fee50cc90c39e406c9e662483d003da9326e00dc4d612afa5c2ca069d1cdab9d7 - languageName: node - linkType: hard - -"@types/json-schema@npm:^7.0.12": - version: 7.0.15 - resolution: "@types/json-schema@npm:7.0.15" - checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 - languageName: node - linkType: hard - -"@types/minimist@npm:^1.2.0": - version: 1.2.5 - resolution: "@types/minimist@npm:1.2.5" - checksum: 477047b606005058ab0263c4f58097136268007f320003c348794f74adedc3166ffc47c80ec3e94687787f2ab7f4e72c468223946e79892cf0fd9e25e9970a90 - languageName: node - linkType: hard - -"@types/node@npm:^18.11.9": - version: 18.18.13 - resolution: "@types/node@npm:18.18.13" - dependencies: - undici-types: ~5.26.4 - checksum: e36d7a0ea6ce8fb771fd84dc2412935408448c1fed098205d3103be661852fc40d22a987e6c6c926a20719a15266e3071c8d4fd2548a96ad6c3c74eb474b5e63 - languageName: node - linkType: hard - -"@types/node@npm:^20.10.0": - version: 20.10.0 - resolution: "@types/node@npm:20.10.0" - dependencies: - undici-types: ~5.26.4 - checksum: face395140d6f2f1755b91fdd3b697cf56aeb9e2514529ce88d56e56f261ad65be7269d863520a9406d73c338699ea68b418e8677584de0c1efeed09539b6f97 - languageName: node - linkType: hard - -"@types/normalize-package-data@npm:^2.4.0": - version: 2.4.4 - resolution: "@types/normalize-package-data@npm:2.4.4" - checksum: 65dff72b543997b7be8b0265eca7ace0e34b75c3e5fee31de11179d08fa7124a7a5587265d53d0409532ecb7f7fba662c2012807963e1f9b059653ec2c83ee05 - languageName: node - linkType: hard - -"@types/semver@npm:^7.5.0": - version: 7.5.6 - resolution: "@types/semver@npm:7.5.6" - checksum: 563a0120ec0efcc326567db2ed920d5d98346f3638b6324ea6b50222b96f02a8add3c51a916b6897b51523aad8ac227d21d3dcf8913559f1bfc6c15b14d23037 - languageName: node - linkType: hard - -"@typescript-eslint/eslint-plugin@npm:^6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/eslint-plugin@npm:6.13.1" - dependencies: - "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.13.1 - "@typescript-eslint/type-utils": 6.13.1 - "@typescript-eslint/utils": 6.13.1 - "@typescript-eslint/visitor-keys": 6.13.1 - debug: ^4.3.4 - graphemer: ^1.4.0 - ignore: ^5.2.4 - natural-compare: ^1.4.0 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 - peerDependencies: - "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 568093d76c200a8502047d74f29300110a59b9f2a5cbf995a6cbe419c803a7ec22220e9592a884401d2dde72c79346b4cc0ee393e7b422924ad4a8a2040af3b0 - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:^6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/parser@npm:6.13.1" - dependencies: - "@typescript-eslint/scope-manager": 6.13.1 - "@typescript-eslint/types": 6.13.1 - "@typescript-eslint/typescript-estree": 6.13.1 - "@typescript-eslint/visitor-keys": 6.13.1 - debug: ^4.3.4 - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 58b7fef6f2d02c8f4737f9908a8d335a20bee20dba648233a69f28e7b39237791d2b9fbb818e628dcc053ddf16507b161ace7f1139e093d72365f1270c426de3 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/scope-manager@npm:6.13.1" - dependencies: - "@typescript-eslint/types": 6.13.1 - "@typescript-eslint/visitor-keys": 6.13.1 - checksum: 109a213f82719e10f8c6a0168f2e105dc1369c7e0c075c1f30af137030fc866a3a585a77ff78a9a3538afc213061c8aedbb4462a91f26cbd90eefbab8b89ea10 - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/type-utils@npm:6.13.1" - dependencies: - "@typescript-eslint/typescript-estree": 6.13.1 - "@typescript-eslint/utils": 6.13.1 - debug: ^4.3.4 - ts-api-utils: ^1.0.1 - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: e39d28dd2f3b47a26b4f6aa2c7a301bdd769ce9148d734be93441a813c3d1111eba1d655677355bba5519f3d4dbe93e4ff4e46830216b0302df0070bf7a80057 - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/types@npm:6.13.1" - checksum: bb1d52f1646bab9acd3ec874567ffbaaaf7fe4a5f79845bdacbfea46d15698e58d45797da05b08c23f9496a17229b7f2c1363d000fd89ce4e79874fd57ba1d4a - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/typescript-estree@npm:6.13.1" - dependencies: - "@typescript-eslint/types": 6.13.1 - "@typescript-eslint/visitor-keys": 6.13.1 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 - peerDependenciesMeta: - typescript: - optional: true - checksum: 09aa0f5cbd60e84df4f58f3d479be352549600b24dbefe75c686ea89252526c52c1c06ce1ae56c0405dd7337002e741c2ba02b71fb1caa3b94a740a70fcc8699 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/utils@npm:6.13.1" - dependencies: - "@eslint-community/eslint-utils": ^4.4.0 - "@types/json-schema": ^7.0.12 - "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.13.1 - "@typescript-eslint/types": 6.13.1 - "@typescript-eslint/typescript-estree": 6.13.1 - semver: ^7.5.4 - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - checksum: 14f64840869c8755af4d287cfc74abc424dc139559e87ca1a8b0e850f4fa56311d99dfb61a43dd4433eae5914be12b4b3390e55de1f236dce6701830d17e31c9 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/visitor-keys@npm:6.13.1" - dependencies: - "@typescript-eslint/types": 6.13.1 - eslint-visitor-keys: ^3.4.1 - checksum: d15d362203a2fe995ea62a59d5b44c15c8fb1fb30ff59dd1542a980f75b3b62035303dfb781d83709921613f6ac8cc5bf57b70f6e20d820aec8b7911f07152e9 - languageName: node - linkType: hard - -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 - languageName: node - linkType: hard - -"@zkochan/retry@npm:^0.2.0": - version: 0.2.0 - resolution: "@zkochan/retry@npm:0.2.0" - checksum: 268e77e4f2254e608fdb79396ab6947e7c302ebe3df90696ad6cda4f09417845ca13ad4e6bfe813fab1839f1e66b14294ceb5591fb4dacd0999927aa6fe55826 - languageName: node - linkType: hard - -"@zkochan/rimraf@npm:^2.1.2": - version: 2.1.3 - resolution: "@zkochan/rimraf@npm:2.1.3" - dependencies: - rimraf: ^3.0.2 - checksum: 81cf488065b3b3fcb49980d35dc49a59f8961887c7ed589250ea233f7b91a30c3b9d3ec0b7700829062e7c514c5f07afdcf5f811a4f1a06227daa69c0638f32a - languageName: node - linkType: hard - -"JSONStream@npm:^1.3.5": - version: 1.3.5 - resolution: "JSONStream@npm:1.3.5" - dependencies: - jsonparse: ^1.2.0 - through: ">=2.2.7 <3" - bin: - JSONStream: ./bin.js - checksum: 2605fa124260c61bad38bb65eba30d2f72216a78e94d0ab19b11b4e0327d572b8d530c0c9cc3b0764f727ad26d39e00bf7ebad57781ca6368394d73169c59e46 - languageName: node - linkType: hard - -"abbrev@npm:^2.0.0": - version: 2.0.0 - resolution: "abbrev@npm:2.0.0" - checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 - languageName: node - linkType: hard - -"acorn-jsx@npm:^5.3.2": - version: 5.3.2 - resolution: "acorn-jsx@npm:5.3.2" - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 - languageName: node - linkType: hard - -"acorn@npm:^8.9.0": - version: 8.11.2 - resolution: "acorn@npm:8.11.2" - bin: - acorn: bin/acorn - checksum: 818450408684da89423e3daae24e4dc9b68692db8ab49ea4569c7c5abb7a3f23669438bf129cc81dfdada95e1c9b944ee1bfca2c57a05a4dc73834a612fbf6a7 - languageName: node - linkType: hard - -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": - version: 7.1.0 - resolution: "agent-base@npm:7.1.0" - dependencies: - debug: ^4.3.4 - checksum: f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: ^2.0.0 - indent-string: ^4.0.0 - checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 - languageName: node - linkType: hard - -"ajv@npm:^6.12.4": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" - dependencies: - fast-deep-equal: ^3.1.1 - fast-json-stable-stringify: ^2.0.0 - json-schema-traverse: ^0.4.1 - uri-js: ^4.2.2 - checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 - languageName: node - linkType: hard - -"ajv@npm:^8.11.0": - version: 8.12.0 - resolution: "ajv@npm:8.12.0" - dependencies: - fast-deep-equal: ^3.1.1 - json-schema-traverse: ^1.0.0 - require-from-string: ^2.0.2 - uri-js: ^4.2.2 - checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 - languageName: node - linkType: hard - -"ansi-escapes@npm:^5.0.0": - version: 5.0.0 - resolution: "ansi-escapes@npm:5.0.0" - dependencies: - type-fest: ^1.0.2 - checksum: d4b5eb8207df38367945f5dd2ef41e08c28edc192dc766ef18af6b53736682f49d8bfcfa4e4d6ecbc2e2f97c258fda084fb29a9e43b69170b71090f771afccac - languageName: node - linkType: hard - -"ansi-regex@npm:^5.0.1": - version: 5.0.1 - resolution: "ansi-regex@npm:5.0.1" - checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b - languageName: node - linkType: hard - -"ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 - languageName: node - linkType: hard - -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: ^1.9.0 - checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 - languageName: node - linkType: hard - -"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": - version: 4.3.0 - resolution: "ansi-styles@npm:4.3.0" - dependencies: - color-convert: ^2.0.1 - checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 - languageName: node - linkType: hard - -"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0": - version: 6.2.1 - resolution: "ansi-styles@npm:6.2.1" - checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 - languageName: node - linkType: hard - -"argparse@npm:^2.0.1": - version: 2.0.1 - resolution: "argparse@npm:2.0.1" - checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced - languageName: node - linkType: hard - -"arity-n@npm:^1.0.4": - version: 1.0.4 - resolution: "arity-n@npm:1.0.4" - checksum: 3d76e16907f7b8a9452690c1efc301d0fbecea457365797eccfbade9b8d1653175b2c38343201bf26fdcbf0bcbb31eab6d912e7c008c6d19042301dc0be80a73 - languageName: node - linkType: hard - -"array-buffer-byte-length@npm:^1.0.0": - version: 1.0.0 - resolution: "array-buffer-byte-length@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - is-array-buffer: ^3.0.1 - checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 - languageName: node - linkType: hard - -"array-ify@npm:^1.0.0": - version: 1.0.0 - resolution: "array-ify@npm:1.0.0" - checksum: c0502015b319c93dd4484f18036bcc4b654eb76a4aa1f04afbcef11ac918859bb1f5d71ba1f0f1141770db9eef1a4f40f1761753650873068010bbf7bcdae4a4 - languageName: node - linkType: hard - -"array-last@npm:^1.1.1": - version: 1.3.0 - resolution: "array-last@npm:1.3.0" - dependencies: - is-number: ^4.0.0 - checksum: 7631c7df9b44ea26f49e2f6eeb7a7d4d95b3798586b917e1efae4a321b6362e449e00b011e88eb0260959fbfc940fbdfce1d2a35765ea080de6d71e3fc3cf1dd - languageName: node - linkType: hard - -"array-timsort@npm:^1.0.3": - version: 1.0.3 - resolution: "array-timsort@npm:1.0.3" - checksum: fd4b5b0911214bdc8b5699ed10d309685551b518b3819c611c967cff59b87aee01cf591a10e36a3f14dbff696984bd6682b845f6fdbf1217195e910f241a4f78 - languageName: node - linkType: hard - -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d - languageName: node - linkType: hard - -"arraybuffer.prototype.slice@npm:^1.0.2": - version: 1.0.2 - resolution: "arraybuffer.prototype.slice@npm:1.0.2" - dependencies: - array-buffer-byte-length: ^1.0.0 - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - get-intrinsic: ^1.2.1 - is-array-buffer: ^3.0.2 - is-shared-array-buffer: ^1.0.2 - checksum: c200faf437786f5b2c80d4564ff5481c886a16dee642ef02abdc7306c7edd523d1f01d1dd12b769c7eb42ac9bc53874510db19a92a2c035c0f6696172aafa5d3 - languageName: node - linkType: hard - -"arrify@npm:^1.0.1": - version: 1.0.1 - resolution: "arrify@npm:1.0.1" - checksum: 745075dd4a4624ff0225c331dacb99be501a515d39bcb7c84d24660314a6ec28e68131b137e6f7e16318170842ce97538cd298fc4cd6b2cc798e0b957f2747e7 - languageName: node - linkType: hard - -"available-typed-arrays@npm:^1.0.5": - version: 1.0.5 - resolution: "available-typed-arrays@npm:1.0.5" - checksum: 20eb47b3cefd7db027b9bbb993c658abd36d4edd3fe1060e83699a03ee275b0c9b216cc076ff3f2db29073225fb70e7613987af14269ac1fe2a19803ccc97f1a - languageName: node - linkType: hard - -"babylon@npm:^6.9.1": - version: 6.18.0 - resolution: "babylon@npm:6.18.0" - bin: - babylon: ./bin/babylon.js - checksum: 0777ae0c735ce1cbfc856d627589ed9aae212b84fb0c03c368b55e6c5d3507841780052808d0ad46e18a2ba516e93d55eeed8cd967f3b2938822dfeccfb2a16d - languageName: node - linkType: hard - -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 - languageName: node - linkType: hard - -"big-integer@npm:^1.6.44": - version: 1.6.52 - resolution: "big-integer@npm:1.6.52" - checksum: 6e86885787a20fed96521958ae9086960e4e4b5e74d04f3ef7513d4d0ad631a9f3bde2730fc8aaa4b00419fc865f6ec573e5320234531ef37505da7da192c40b - languageName: node - linkType: hard - -"bole@npm:^5.0.0": - version: 5.0.9 - resolution: "bole@npm:5.0.9" - dependencies: - fast-safe-stringify: ^2.0.7 - individual: ^3.0.0 - checksum: eaa426a2d14a2d5a741ed1d4a19b8a23b452cde11ec9c02b9632603ce32169b919513f04beef92ec44f1d892fe808b91cadbe5dae1b0b573eba66ac784d0c09b - languageName: node - linkType: hard - -"bplist-parser@npm:^0.2.0": - version: 0.2.0 - resolution: "bplist-parser@npm:0.2.0" - dependencies: - big-integer: ^1.6.44 - checksum: d5339dd16afc51de6c88f88f58a45b72ed6a06aa31f5557d09877575f220b7c1d3fbe375da0b62e6a10d4b8ed80523567e351f24014f5bc886ad523758142cdd - languageName: node - linkType: hard - -"brace-expansion@npm:^1.1.7": - version: 1.1.11 - resolution: "brace-expansion@npm:1.1.11" - dependencies: - balanced-match: ^1.0.0 - concat-map: 0.0.1 - checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 - languageName: node - linkType: hard - -"brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" - dependencies: - balanced-match: ^1.0.0 - checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 - languageName: node - linkType: hard - -"braces@npm:^3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: ^7.0.1 - checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 - languageName: node - linkType: hard - -"builtins@npm:^5.0.0": - version: 5.0.1 - resolution: "builtins@npm:5.0.1" - dependencies: - semver: ^7.0.0 - checksum: 66d204657fe36522822a95b288943ad11b58f5eaede235b11d8c4edaa28ce4800087d44a2681524c340494aadb120a0068011acabe99d30e8f11a7d826d83515 - languageName: node - linkType: hard - -"bundle-name@npm:^3.0.0": - version: 3.0.0 - resolution: "bundle-name@npm:3.0.0" - dependencies: - run-applescript: ^5.0.0 - checksum: edf2b1fbe6096ed32e7566947ace2ea937ee427391744d7510a2880c4b9a5b3543d3f6c551236a29e5c87d3195f8e2912516290e638c15bcbede7b37cc375615 - languageName: node - linkType: hard - -"cacache@npm:^18.0.0": - version: 18.0.1 - resolution: "cacache@npm:18.0.1" - dependencies: - "@npmcli/fs": ^3.1.0 - fs-minipass: ^3.0.0 - glob: ^10.2.2 - lru-cache: ^10.0.1 - minipass: ^7.0.3 - minipass-collect: ^2.0.1 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - p-map: ^4.0.0 - ssri: ^10.0.0 - tar: ^6.1.11 - unique-filename: ^3.0.0 - checksum: 5a0b3b2ea451a0379814dc1d3c81af48c7c6db15cd8f7d72e028501ae0036a599a99bbac9687bfec307afb2760808d1c7708e9477c8c70d2b166e7d80b162a23 - languageName: node - linkType: hard - -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.4, call-bind@npm:^1.0.5": - version: 1.0.5 - resolution: "call-bind@npm:1.0.5" - dependencies: - function-bind: ^1.1.2 - get-intrinsic: ^1.2.1 - set-function-length: ^1.1.1 - checksum: 449e83ecbd4ba48e7eaac5af26fea3b50f8f6072202c2dd7c5a6e7a6308f2421abe5e13a3bbd55221087f76320c5e09f25a8fdad1bab2b77c68ae74d92234ea5 - languageName: node - linkType: hard - -"callsites@npm:^3.0.0, callsites@npm:^3.1.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 - languageName: node - linkType: hard - -"camelcase-keys@npm:^6.2.2": - version: 6.2.2 - resolution: "camelcase-keys@npm:6.2.2" - dependencies: - camelcase: ^5.3.1 - map-obj: ^4.0.0 - quick-lru: ^4.0.1 - checksum: 43c9af1adf840471e54c68ab3e5fe8a62719a6b7dbf4e2e86886b7b0ff96112c945736342b837bd2529ec9d1c7d1934e5653318478d98e0cf22c475c04658e2a - languageName: node - linkType: hard - -"camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b - languageName: node - linkType: hard - -"chalk-template@npm:^1.1.0": - version: 1.1.0 - resolution: "chalk-template@npm:1.1.0" - dependencies: - chalk: ^5.2.0 - checksum: 868aae8d4e7556ad2f35de4e04fe65dbe1ea6c5c80ad783f1c156d0a5c33f444c6814f49cbb68fe348c78e99daf2bcf566b47ad7e13603e4691ca78b2f422824 - languageName: node - linkType: hard - -"chalk@npm:5.3.0, chalk@npm:^5.2.0, chalk@npm:^5.3.0": - version: 5.3.0 - resolution: "chalk@npm:5.3.0" - checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 - languageName: node - linkType: hard - -"chalk@npm:^2.4.1, chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: ^3.2.1 - escape-string-regexp: ^1.0.5 - supports-color: ^5.3.0 - checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 - languageName: node - linkType: hard - -"chalk@npm:^4.0.0, chalk@npm:^4.1.0": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" - dependencies: - ansi-styles: ^4.1.0 - supports-color: ^7.1.0 - checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc - languageName: node - linkType: hard - -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f - languageName: node - linkType: hard - -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 - languageName: node - linkType: hard - -"clear-module@npm:^4.1.2": - version: 4.1.2 - resolution: "clear-module@npm:4.1.2" - dependencies: - parent-module: ^2.0.0 - resolve-from: ^5.0.0 - checksum: 4931f0c461f5d7b9b79f62c2d1bc31c37f7f1d33b4e95eef7080a83955c0374f4c180f5a96cc4d63bbefc64a9aa5d12b155641109e8e489dfa50fd5820e5101f - languageName: node - linkType: hard - -"cli-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "cli-cursor@npm:4.0.0" - dependencies: - restore-cursor: ^4.0.0 - checksum: ab3f3ea2076e2176a1da29f9d64f72ec3efad51c0960898b56c8a17671365c26e67b735920530eaf7328d61f8bd41c27f46b9cf6e4e10fe2fa44b5e8c0e392cc - languageName: node - linkType: hard - -"cli-truncate@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-truncate@npm:3.1.0" - dependencies: - slice-ansi: ^5.0.0 - string-width: ^5.0.0 - checksum: c3243e41974445691c63f8b405df1d5a24049dc33d324fe448dc572e561a7b772ae982692900b1a5960901cc4fc7def25a629b9c69a4208ee89d12ab3332617a - languageName: node - linkType: hard - -"cliui@npm:^8.0.1": - version: 8.0.1 - resolution: "cliui@npm:8.0.1" - dependencies: - string-width: ^4.2.0 - strip-ansi: ^6.0.1 - wrap-ansi: ^7.0.0 - checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 - languageName: node - linkType: hard - -"clone@npm:^1.0.2": - version: 1.0.4 - resolution: "clone@npm:1.0.4" - checksum: d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd - languageName: node - linkType: hard - -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: 1.1.3 - checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 - languageName: node - linkType: hard - -"color-convert@npm:^2.0.1": - version: 2.0.1 - resolution: "color-convert@npm:2.0.1" - dependencies: - color-name: ~1.1.4 - checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 - languageName: node - linkType: hard - -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d - languageName: node - linkType: hard - -"color-name@npm:~1.1.4": - version: 1.1.4 - resolution: "color-name@npm:1.1.4" - checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 - languageName: node - linkType: hard - -"colorette@npm:^2.0.20": - version: 2.0.20 - resolution: "colorette@npm:2.0.20" - checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d - languageName: node - linkType: hard - -"commander@npm:11.1.0, commander@npm:^11.1.0": - version: 11.1.0 - resolution: "commander@npm:11.1.0" - checksum: fd1a8557c6b5b622c89ecdfde703242ab7db3b628ea5d1755784c79b8e7cb0d74d65b4a262289b533359cd58e1bfc0bf50245dfbcd2954682a6f367c828b79ef - languageName: node - linkType: hard - -"commander@npm:^4.1.1": - version: 4.1.1 - resolution: "commander@npm:4.1.1" - checksum: d7b9913ff92cae20cb577a4ac6fcc121bd6223319e54a40f51a14740a681ad5c574fd29a57da478a5f234a6fa6c52cbf0b7c641353e03c648b1ae85ba670b977 - languageName: node - linkType: hard - -"comment-json@npm:^4.2.3": - version: 4.2.3 - resolution: "comment-json@npm:4.2.3" - dependencies: - array-timsort: ^1.0.3 - core-util-is: ^1.0.3 - esprima: ^4.0.1 - has-own-prop: ^2.0.0 - repeat-string: ^1.6.1 - checksum: 7f8d26266b0d49de9661f6365cbcc373fee4f4d0f422a203dfb17ad8f3d84c5be5ded444874935a197cd03cff297c53fe48910256cb4171cb2e52a3e6b9d317c - languageName: node - linkType: hard - -"compare-func@npm:^2.0.0": - version: 2.0.0 - resolution: "compare-func@npm:2.0.0" - dependencies: - array-ify: ^1.0.0 - dot-prop: ^5.1.0 - checksum: fb71d70632baa1e93283cf9d80f30ac97f003aabee026e0b4426c9716678079ef5fea7519b84d012cbed938c476493866a38a79760564a9e21ae9433e40e6f0d - languageName: node - linkType: hard - -"compose-function@npm:^3.0.3": - version: 3.0.3 - resolution: "compose-function@npm:3.0.3" - dependencies: - arity-n: ^1.0.4 - checksum: 9f17d431e3ee4797c844f2870e13494079882ac3dbc54c143b7d99967b371908e0ce7ceb71c6aed61e2ecddbcd7bb437d91428a3d0e6569aee17a87fcbc7918f - languageName: node - linkType: hard - -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af - languageName: node - linkType: hard - -"configstore@npm:^6.0.0": - version: 6.0.0 - resolution: "configstore@npm:6.0.0" - dependencies: - dot-prop: ^6.0.1 - graceful-fs: ^4.2.6 - unique-string: ^3.0.0 - write-file-atomic: ^3.0.3 - xdg-basedir: ^5.0.1 - checksum: 81995351c10bc04c58507f17748477aeac6f47465109d20e3534cebc881d22e927cfd29e73dd852c46c55f62c2b7be4cd1fe6eb3a93ba51f7f9813c218f9bae0 - languageName: node - linkType: hard - -"conventional-changelog-angular@npm:^7.0.0": - version: 7.0.0 - resolution: "conventional-changelog-angular@npm:7.0.0" - dependencies: - compare-func: ^2.0.0 - checksum: 2478962ad7ce42878449ba3568347d704f22c5c9af1cd36916b5600734bd7f82c09712a338c649195c44e907f1b0372ce52d6cb51df643f495c89af05ad4bc48 - languageName: node - linkType: hard - -"conventional-changelog-conventionalcommits@npm:^7.0.2": - version: 7.0.2 - resolution: "conventional-changelog-conventionalcommits@npm:7.0.2" - dependencies: - compare-func: ^2.0.0 - checksum: e17ac5970ae09d6e9b0c3a7edaed075b836c0c09c34c514589cbe06554f46ed525067fa8150a8467cc03b1cf9af2073e7ecf48790d4f5ea399921b1cbe313711 - languageName: node - linkType: hard - -"conventional-commits-parser@npm:^5.0.0": - version: 5.0.0 - resolution: "conventional-commits-parser@npm:5.0.0" - dependencies: - JSONStream: ^1.3.5 - is-text-path: ^2.0.0 - meow: ^12.0.1 - split2: ^4.0.0 - bin: - conventional-commits-parser: cli.mjs - checksum: bb92a0bfe41802330d2d14ddb0f912fd65dd355f1aa294e708f4891aac95c580919a70580b9f26563c24c3335baaed2ce003104394a8fa5ba61eeb3889e45df0 - languageName: node - linkType: hard - -"core-util-is@npm:^1.0.3": - version: 1.0.3 - resolution: "core-util-is@npm:1.0.3" - checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 - languageName: node - linkType: hard - -"cosmiconfig-typescript-loader@npm:^5.0.0": - version: 5.0.0 - resolution: "cosmiconfig-typescript-loader@npm:5.0.0" - dependencies: - jiti: ^1.19.1 - peerDependencies: - "@types/node": "*" - cosmiconfig: ">=8.2" - typescript: ">=4" - checksum: 7b614313f2cc2ecbe17270de570a511aa7c974bf14a749d7ed4f4d0f4a9ed02ee7ae87d710e294204abb00bb6bb0cca53795208bb1435815d143b43c6626ec74 - languageName: node - linkType: hard - -"cosmiconfig@npm:^8.3.6": - version: 8.3.6 - resolution: "cosmiconfig@npm:8.3.6" - dependencies: - import-fresh: ^3.3.0 - js-yaml: ^4.1.0 - parse-json: ^5.2.0 - path-type: ^4.0.0 - peerDependencies: - typescript: ">=4.9.5" - peerDependenciesMeta: - typescript: - optional: true - checksum: dc339ebea427898c9e03bf01b56ba7afbac07fc7d2a2d5a15d6e9c14de98275a9565da949375aee1809591c152c0a3877bb86dbeaf74d5bd5aaa79955ad9e7a0 - languageName: node - linkType: hard - -"cross-spawn@npm:^6.0.5": - version: 6.0.5 - resolution: "cross-spawn@npm:6.0.5" - dependencies: - nice-try: ^1.0.4 - path-key: ^2.0.1 - semver: ^5.5.0 - shebang-command: ^1.2.0 - which: ^1.2.9 - checksum: f893bb0d96cd3d5751d04e67145bdddf25f99449531a72e82dcbbd42796bbc8268c1076c6b3ea51d4d455839902804b94bc45dfb37ecbb32ea8e54a6741c3ab9 - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" - dependencies: - path-key: ^3.1.0 - shebang-command: ^2.0.0 - which: ^2.0.1 - checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 - languageName: node - linkType: hard - -"crypto-random-string@npm:^2.0.0": - version: 2.0.0 - resolution: "crypto-random-string@npm:2.0.0" - checksum: 0283879f55e7c16fdceacc181f87a0a65c53bc16ffe1d58b9d19a6277adcd71900d02bb2c4843dd55e78c51e30e89b0fec618a7f170ebcc95b33182c28f05fd6 - languageName: node - linkType: hard - -"crypto-random-string@npm:^4.0.0": - version: 4.0.0 - resolution: "crypto-random-string@npm:4.0.0" - dependencies: - type-fest: ^1.0.1 - checksum: 91f148f27bcc8582798f0fb3e75a09d9174557f39c3c40a89dd1bd70fb5a14a02548245aa26fa7d663c426ac5026f4729841231c84f9e30e8c8ece5e38656741 - languageName: node - linkType: hard - -"cspell-config-lib@npm:8.3.2": - version: 8.3.2 - resolution: "cspell-config-lib@npm:8.3.2" - dependencies: - "@cspell/cspell-types": 8.3.2 - comment-json: ^4.2.3 - yaml: ^2.3.4 - checksum: 7d5563c2a49f13e9e2b965258f8d5539e282c75234f4375831db3f7ee3c209aa246f07f8bbbc7e7195c248edfdc3a58cb590c5119ad866446ee47df07a593481 - languageName: node - linkType: hard - -"cspell-dictionary@npm:8.3.2": - version: 8.3.2 - resolution: "cspell-dictionary@npm:8.3.2" - dependencies: - "@cspell/cspell-pipe": 8.3.2 - "@cspell/cspell-types": 8.3.2 - cspell-trie-lib: 8.3.2 - fast-equals: ^5.0.1 - gensequence: ^6.0.0 - checksum: 374e8cc94b7d46230b8a3ddb066c14bee746963c01b13a60bf43cfb2e6da1a32dcf963c573016aee3fdf8ffbda6253850679d4c93257de2bf4ec45d4cbaf5888 - languageName: node - linkType: hard - -"cspell-gitignore@npm:8.3.2": - version: 8.3.2 - resolution: "cspell-gitignore@npm:8.3.2" - dependencies: - cspell-glob: 8.3.2 - find-up-simple: ^1.0.0 - bin: - cspell-gitignore: bin.mjs - checksum: 0ae847391993078bca601214812aa9476311d501fcc3a20ceb6e4a22825335188354f71328b0ebc45d6ed35756c6d29062cb4e4b2c26a28a9fb57d3573113b01 - languageName: node - linkType: hard - -"cspell-glob@npm:8.3.2": - version: 8.3.2 - resolution: "cspell-glob@npm:8.3.2" - dependencies: - micromatch: ^4.0.5 - checksum: c1abb55fdfde46014963ccd73451218bec7cd9bc0f3cb9308efa0cf066c7783eb69749400aa0d0c1507fbac3fe598ccc26eb5932985db01264ca933f7564a5b2 - languageName: node - linkType: hard - -"cspell-grammar@npm:8.3.2": - version: 8.3.2 - resolution: "cspell-grammar@npm:8.3.2" - dependencies: - "@cspell/cspell-pipe": 8.3.2 - "@cspell/cspell-types": 8.3.2 - bin: - cspell-grammar: bin.mjs - checksum: 3f48e267f6c26c98f7f24159460bad1b341e0560f00a2e62761ad49ba3fcc8e953af3e4a712e598b2525242cb3dddfb339d85e9917fd72aca33ab292cea71bc9 - languageName: node - linkType: hard - -"cspell-io@npm:8.3.2": - version: 8.3.2 - resolution: "cspell-io@npm:8.3.2" - dependencies: - "@cspell/cspell-service-bus": 8.3.2 - checksum: 609f544d6c23dd471548cbc531ad5d704db4ffaa0513611cdc5f731e9f4de24057dcbc4c1d11e94df3725129549fe2629c9e73750f7de4d3a61eae2cbef13ff1 - languageName: node - linkType: hard - -"cspell-lib@npm:8.3.2": - version: 8.3.2 - resolution: "cspell-lib@npm:8.3.2" - dependencies: - "@cspell/cspell-bundled-dicts": 8.3.2 - "@cspell/cspell-pipe": 8.3.2 - "@cspell/cspell-resolver": 8.3.2 - "@cspell/cspell-types": 8.3.2 - "@cspell/dynamic-import": 8.3.2 - "@cspell/strong-weak-map": 8.3.2 - clear-module: ^4.1.2 - comment-json: ^4.2.3 - configstore: ^6.0.0 - cspell-config-lib: 8.3.2 - cspell-dictionary: 8.3.2 - cspell-glob: 8.3.2 - cspell-grammar: 8.3.2 - cspell-io: 8.3.2 - cspell-trie-lib: 8.3.2 - fast-equals: ^5.0.1 - gensequence: ^6.0.0 - import-fresh: ^3.3.0 - resolve-from: ^5.0.0 - vscode-languageserver-textdocument: ^1.0.11 - vscode-uri: ^3.0.8 - checksum: 398f8b799aa4b7e60b9a0b2e751fbd0d3d81f8ccdc0b331668568ab5f4cced0e64ddc8325a7901ae950fd3838f8fb37bb4dd8f73938fb78b50bdd5f2f5668375 - languageName: node - linkType: hard - -"cspell-trie-lib@npm:8.3.2": - version: 8.3.2 - resolution: "cspell-trie-lib@npm:8.3.2" - dependencies: - "@cspell/cspell-pipe": 8.3.2 - "@cspell/cspell-types": 8.3.2 - gensequence: ^6.0.0 - checksum: 43d3bcf4c1bf1d8fce9601beec52a4f5bd2e27ccd1ea737aca2c32dbec721942cb8671b6add6b57d3a5953389a494a28878a53abccc49de7c59bbb7e78413c3e - languageName: node - linkType: hard - -"cspell@npm:^8.3.2": - version: 8.3.2 - resolution: "cspell@npm:8.3.2" - dependencies: - "@cspell/cspell-json-reporter": 8.3.2 - "@cspell/cspell-pipe": 8.3.2 - "@cspell/cspell-types": 8.3.2 - "@cspell/dynamic-import": 8.3.2 - chalk: ^5.3.0 - chalk-template: ^1.1.0 - commander: ^11.1.0 - cspell-gitignore: 8.3.2 - cspell-glob: 8.3.2 - cspell-io: 8.3.2 - cspell-lib: 8.3.2 - fast-glob: ^3.3.2 - fast-json-stable-stringify: ^2.1.0 - file-entry-cache: ^8.0.0 - get-stdin: ^9.0.0 - semver: ^7.5.4 - strip-ansi: ^7.1.0 - vscode-uri: ^3.0.8 - bin: - cspell: bin.mjs - cspell-esm: bin.mjs - checksum: c798482b411ba94d8dc475445082d56b70fc23d88752f3e6e8e18174f247d35a0c50ed1a1a9f578cdfb1294dc8d175613f1aa7828f92b1f841047580156ab986 - languageName: node - linkType: hard - -"dargs@npm:^7.0.0": - version: 7.0.0 - resolution: "dargs@npm:7.0.0" - checksum: b8f1e3cba59c42e1f13a114ad4848c3fc1cf7470f633ee9e9f1043762429bc97d91ae31b826fb135eefde203a3fdb20deb0c0a0222ac29d937b8046085d668d1 - languageName: node - linkType: hard - -"data-uri-to-buffer@npm:^3.0.1": - version: 3.0.1 - resolution: "data-uri-to-buffer@npm:3.0.1" - checksum: c59c3009686a78c071806b72f4810856ec28222f0f4e252aa495ec027ed9732298ceea99c50328cf59b151dd34cbc3ad6150bbb43e41fc56fa19f48c99e9fc30 - languageName: node - linkType: hard - -"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" - dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 - languageName: node - linkType: hard - -"decamelize-keys@npm:^1.1.0": - version: 1.1.1 - resolution: "decamelize-keys@npm:1.1.1" - dependencies: - decamelize: ^1.1.0 - map-obj: ^1.0.0 - checksum: fc645fe20b7bda2680bbf9481a3477257a7f9304b1691036092b97ab04c0ab53e3bf9fcc2d2ae382536568e402ec41fb11e1d4c3836a9abe2d813dd9ef4311e0 - languageName: node - linkType: hard - -"decamelize@npm:^1.1.0": - version: 1.2.0 - resolution: "decamelize@npm:1.2.0" - checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa - languageName: node - linkType: hard - -"deep-freeze@npm:0.0.1": - version: 0.0.1 - resolution: "deep-freeze@npm:0.0.1" - checksum: 1e43c98e44c7849382d9f896e679d48a1b5bf40993f7cc858e3730ef4e2ba387b9b7b7fe722cac34febe7f6a564cd242c27bbc319e8df793c2a287f21e5ba038 - languageName: node - linkType: hard - -"deep-is@npm:^0.1.3": - version: 0.1.4 - resolution: "deep-is@npm:0.1.4" - checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 - languageName: node - linkType: hard - -"default-browser-id@npm:^3.0.0": - version: 3.0.0 - resolution: "default-browser-id@npm:3.0.0" - dependencies: - bplist-parser: ^0.2.0 - untildify: ^4.0.0 - checksum: 279c7ad492542e5556336b6c254a4eaf31b2c63a5433265655ae6e47301197b6cfb15c595a6fdc6463b2ff8e1a1a1ed3cba56038a60e1527ba4ab1628c6b9941 - languageName: node - linkType: hard - -"default-browser@npm:^4.0.0": - version: 4.0.0 - resolution: "default-browser@npm:4.0.0" - dependencies: - bundle-name: ^3.0.0 - default-browser-id: ^3.0.0 - execa: ^7.1.1 - titleize: ^3.0.0 - checksum: 40c5af984799042b140300be5639c9742599bda76dc9eba5ac9ad5943c83dd36cebc4471eafcfddf8e0ec817166d5ba89d56f08e66a126c7c7908a179cead1a7 - languageName: node - linkType: hard - -"defaults@npm:^1.0.3": - version: 1.0.4 - resolution: "defaults@npm:1.0.4" - dependencies: - clone: ^1.0.2 - checksum: 3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a - languageName: node - linkType: hard - -"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.1": - version: 1.1.1 - resolution: "define-data-property@npm:1.1.1" - dependencies: - get-intrinsic: ^1.2.1 - gopd: ^1.0.1 - has-property-descriptors: ^1.0.0 - checksum: a29855ad3f0630ea82e3c5012c812efa6ca3078d5c2aa8df06b5f597c1cde6f7254692df41945851d903e05a1668607b6d34e778f402b9ff9ffb38111f1a3f0d - languageName: node - linkType: hard - -"define-lazy-prop@npm:^3.0.0": - version: 3.0.0 - resolution: "define-lazy-prop@npm:3.0.0" - checksum: 54884f94caac0791bf6395a3ec530ce901cf71c47b0196b8754f3fd17edb6c0e80149c1214429d851873bb0d689dbe08dcedbb2306dc45c8534a5934723851b6 - languageName: node - linkType: hard - -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": - version: 1.2.1 - resolution: "define-properties@npm:1.2.1" - dependencies: - define-data-property: ^1.0.1 - has-property-descriptors: ^1.0.0 - object-keys: ^1.1.1 - checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 - languageName: node - linkType: hard - -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" - dependencies: - path-type: ^4.0.0 - checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 - languageName: node - linkType: hard - -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: ^2.0.2 - checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce - languageName: node - linkType: hard - -"dot-prop@npm:^5.1.0": - version: 5.3.0 - resolution: "dot-prop@npm:5.3.0" - dependencies: - is-obj: ^2.0.0 - checksum: d5775790093c234ef4bfd5fbe40884ff7e6c87573e5339432870616331189f7f5d86575c5b5af2dcf0f61172990f4f734d07844b1f23482fff09e3c4bead05ea - languageName: node - linkType: hard - -"dot-prop@npm:^6.0.1": - version: 6.0.1 - resolution: "dot-prop@npm:6.0.1" - dependencies: - is-obj: ^2.0.0 - checksum: 0f47600a4b93e1dc37261da4e6909652c008832a5d3684b5bf9a9a0d3f4c67ea949a86dceed9b72f5733ed8e8e6383cc5958df3bbd0799ee317fd181f2ece700 - languageName: node - linkType: hard - -"dotenv@npm:^16.3.1": - version: 16.3.1 - resolution: "dotenv@npm:16.3.1" - checksum: 15d75e7279018f4bafd0ee9706593dd14455ddb71b3bcba9c52574460b7ccaf67d5cf8b2c08a5af1a9da6db36c956a04a1192b101ee102a3e0cf8817bbcf3dfd - languageName: node - linkType: hard - -"eastasianwidth@npm:^0.2.0": - version: 0.2.0 - resolution: "eastasianwidth@npm:0.2.0" - checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed - languageName: node - linkType: hard - -"easy-table@npm:1.2.0": - version: 1.2.0 - resolution: "easy-table@npm:1.2.0" - dependencies: - ansi-regex: ^5.0.1 - wcwidth: ^1.0.1 - dependenciesMeta: - wcwidth: - optional: true - checksum: 66961b19751a68d2d30ce9b74ef750c374cc3112bbcac3d1ed5a939e43c035ecf6b1954098df2d5b05f1e853ab2b67de893794390dcbf0abe1f157fddeb52174 - languageName: node - linkType: hard - -"emoji-regex@npm:^8.0.0": - version: 8.0.0 - resolution: "emoji-regex@npm:8.0.0" - checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 - languageName: node - linkType: hard - -"emoji-regex@npm:^9.2.2": - version: 9.2.2 - resolution: "emoji-regex@npm:9.2.2" - checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 - languageName: node - linkType: hard - -"encode-registry@npm:^3.0.1": - version: 3.0.1 - resolution: "encode-registry@npm:3.0.1" - dependencies: - mem: ^8.0.0 - checksum: 4e7cb234704782ef3e9e0c1941cb90de9b2421da8b87a21c968609e59b931c0316b15ea0e9b5280338a831dcb8e91362f8a54f712b10c70e28598f2dfb97da4a - languageName: node - linkType: hard - -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: ^0.6.2 - checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e - languageName: node - linkType: hard - -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 - languageName: node - linkType: hard - -"error-ex@npm:^1.3.1": - version: 1.3.2 - resolution: "error-ex@npm:1.3.2" - dependencies: - is-arrayish: ^0.2.1 - checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 - languageName: node - linkType: hard - -"es-abstract@npm:^1.22.1": - version: 1.22.3 - resolution: "es-abstract@npm:1.22.3" - dependencies: - array-buffer-byte-length: ^1.0.0 - arraybuffer.prototype.slice: ^1.0.2 - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.5 - es-set-tostringtag: ^2.0.1 - es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.6 - get-intrinsic: ^1.2.2 - get-symbol-description: ^1.0.0 - globalthis: ^1.0.3 - gopd: ^1.0.1 - has-property-descriptors: ^1.0.0 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - hasown: ^2.0.0 - internal-slot: ^1.0.5 - is-array-buffer: ^3.0.2 - is-callable: ^1.2.7 - is-negative-zero: ^2.0.2 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.2 - is-string: ^1.0.7 - is-typed-array: ^1.1.12 - is-weakref: ^1.0.2 - object-inspect: ^1.13.1 - object-keys: ^1.1.1 - object.assign: ^4.1.4 - regexp.prototype.flags: ^1.5.1 - safe-array-concat: ^1.0.1 - safe-regex-test: ^1.0.0 - string.prototype.trim: ^1.2.8 - string.prototype.trimend: ^1.0.7 - string.prototype.trimstart: ^1.0.7 - 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.13 - checksum: b1bdc962856836f6e72be10b58dc128282bdf33771c7a38ae90419d920fc3b36cc5d2b70a222ad8016e3fc322c367bf4e9e89fc2bc79b7e933c05b218e83d79a - languageName: node - linkType: hard - -"es-set-tostringtag@npm:^2.0.1": - version: 2.0.2 - resolution: "es-set-tostringtag@npm:2.0.2" - dependencies: - get-intrinsic: ^1.2.2 - has-tostringtag: ^1.0.0 - hasown: ^2.0.0 - checksum: afcec3a4c9890ae14d7ec606204858441c801ff84f312538e1d1ccf1e5493c8b17bd672235df785f803756472cb4f2d49b87bde5237aef33411e74c22f194e07 - languageName: node - linkType: hard - -"es-to-primitive@npm:^1.2.1": - version: 1.2.1 - resolution: "es-to-primitive@npm:1.2.1" - dependencies: - is-callable: ^1.1.4 - is-date-object: ^1.0.1 - is-symbol: ^1.0.2 - checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed - languageName: node - linkType: hard - -"esbuild@npm:^0.19.8": - version: 0.19.8 - resolution: "esbuild@npm:0.19.8" - dependencies: - "@esbuild/android-arm": 0.19.8 - "@esbuild/android-arm64": 0.19.8 - "@esbuild/android-x64": 0.19.8 - "@esbuild/darwin-arm64": 0.19.8 - "@esbuild/darwin-x64": 0.19.8 - "@esbuild/freebsd-arm64": 0.19.8 - "@esbuild/freebsd-x64": 0.19.8 - "@esbuild/linux-arm": 0.19.8 - "@esbuild/linux-arm64": 0.19.8 - "@esbuild/linux-ia32": 0.19.8 - "@esbuild/linux-loong64": 0.19.8 - "@esbuild/linux-mips64el": 0.19.8 - "@esbuild/linux-ppc64": 0.19.8 - "@esbuild/linux-riscv64": 0.19.8 - "@esbuild/linux-s390x": 0.19.8 - "@esbuild/linux-x64": 0.19.8 - "@esbuild/netbsd-x64": 0.19.8 - "@esbuild/openbsd-x64": 0.19.8 - "@esbuild/sunos-x64": 0.19.8 - "@esbuild/win32-arm64": 0.19.8 - "@esbuild/win32-ia32": 0.19.8 - "@esbuild/win32-x64": 0.19.8 - dependenciesMeta: - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 1dff99482ecbfcc642ec66c71e4dc5c73ce6aef68e8158a4937890b570e86a95959ac47e0f14785ba70df5a673ae4289df88a162e9759b02367ed28074cee8ba - languageName: node - linkType: hard - -"esbuild@npm:~0.18.20": - version: 0.18.20 - resolution: "esbuild@npm:0.18.20" - dependencies: - "@esbuild/android-arm": 0.18.20 - "@esbuild/android-arm64": 0.18.20 - "@esbuild/android-x64": 0.18.20 - "@esbuild/darwin-arm64": 0.18.20 - "@esbuild/darwin-x64": 0.18.20 - "@esbuild/freebsd-arm64": 0.18.20 - "@esbuild/freebsd-x64": 0.18.20 - "@esbuild/linux-arm": 0.18.20 - "@esbuild/linux-arm64": 0.18.20 - "@esbuild/linux-ia32": 0.18.20 - "@esbuild/linux-loong64": 0.18.20 - "@esbuild/linux-mips64el": 0.18.20 - "@esbuild/linux-ppc64": 0.18.20 - "@esbuild/linux-riscv64": 0.18.20 - "@esbuild/linux-s390x": 0.18.20 - "@esbuild/linux-x64": 0.18.20 - "@esbuild/netbsd-x64": 0.18.20 - "@esbuild/openbsd-x64": 0.18.20 - "@esbuild/sunos-x64": 0.18.20 - "@esbuild/win32-arm64": 0.18.20 - "@esbuild/win32-ia32": 0.18.20 - "@esbuild/win32-x64": 0.18.20 - dependenciesMeta: - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 5d253614e50cdb6ec22095afd0c414f15688e7278a7eb4f3720a6dd1306b0909cf431e7b9437a90d065a31b1c57be60130f63fe3e8d0083b588571f31ee6ec7b - languageName: node - linkType: hard - -"escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^4.0.0": - version: 4.0.0 - resolution: "escape-string-regexp@npm:4.0.0" - checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 - languageName: node - linkType: hard - -"eslint-config-prettier@npm:^9.0.0": - version: 9.0.0 - resolution: "eslint-config-prettier@npm:9.0.0" - peerDependencies: - eslint: ">=7.0.0" - bin: - eslint-config-prettier: bin/cli.js - checksum: 362e991b6cb343f79362bada2d97c202e5303e6865888918a7445c555fb75e4c078b01278e90be98aa98ae22f8597d8e93d48314bec6824f540f7efcab3ce451 - languageName: node - linkType: hard - -"eslint-plugin-prettier@npm:^5.0.1": - version: 5.0.1 - resolution: "eslint-plugin-prettier@npm:5.0.1" - dependencies: - prettier-linter-helpers: ^1.0.0 - synckit: ^0.8.5 - peerDependencies: - "@types/eslint": ">=8.0.0" - eslint: ">=8.0.0" - prettier: ">=3.0.0" - peerDependenciesMeta: - "@types/eslint": - optional: true - eslint-config-prettier: - optional: true - checksum: c2261033b97bafe99ccb7cc47c2fac6fa85b8bbc8b128042e52631f906b69e12afed2cdd9d7e3021cc892ee8dd4204a3574e1f32a0b718b4bb3b440944b6983b - languageName: node - linkType: hard - -"eslint-plugin-sonarjs@npm:^0.23.0": - version: 0.23.0 - resolution: "eslint-plugin-sonarjs@npm:0.23.0" - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 4f56557740ab438eee8d98e4d93363a8dadcf8d6d795a5d95e6a0b0d6335273a06c5633fe753271c6a56c14a3b0086014b8278984b5594fad5db274ec7fd7edf - languageName: node - linkType: hard - -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" - dependencies: - esrecurse: ^4.3.0 - estraverse: ^5.2.0 - checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": - version: 3.4.3 - resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 - languageName: node - linkType: hard - -"eslint@npm:^8.54.0": - version: 8.54.0 - resolution: "eslint@npm:8.54.0" - dependencies: - "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.3 - "@eslint/js": 8.54.0 - "@humanwhocodes/config-array": ^0.11.13 - "@humanwhocodes/module-importer": ^1.0.1 - "@nodelib/fs.walk": ^1.2.8 - "@ungap/structured-clone": ^1.2.0 - ajv: ^6.12.4 - chalk: ^4.0.0 - cross-spawn: ^7.0.2 - debug: ^4.3.2 - doctrine: ^3.0.0 - escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.2 - eslint-visitor-keys: ^3.4.3 - espree: ^9.6.1 - esquery: ^1.4.2 - esutils: ^2.0.2 - fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 - find-up: ^5.0.0 - glob-parent: ^6.0.2 - globals: ^13.19.0 - graphemer: ^1.4.0 - ignore: ^5.2.0 - imurmurhash: ^0.1.4 - is-glob: ^4.0.0 - is-path-inside: ^3.0.3 - js-yaml: ^4.1.0 - json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 - lodash.merge: ^4.6.2 - minimatch: ^3.1.2 - natural-compare: ^1.4.0 - optionator: ^0.9.3 - strip-ansi: ^6.0.1 - text-table: ^0.2.0 - bin: - eslint: bin/eslint.js - checksum: 7e876e9da2a18a017271cf3733d05a3dfbbe469272d75753408c6ea5b1646c71c6bb18cb91e10ca930144c32c1ce3701e222f1ae6784a3975a69f8f8aa68e49f - languageName: node - linkType: hard - -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" - dependencies: - acorn: ^8.9.0 - acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^3.4.1 - checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 - languageName: node - linkType: hard - -"esprima@npm:^4.0.1": - version: 4.0.1 - resolution: "esprima@npm:4.0.1" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 - languageName: node - linkType: hard - -"esquery@npm:^1.4.2": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" - dependencies: - estraverse: ^5.1.0 - checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 - languageName: node - linkType: hard - -"esrecurse@npm:^4.3.0": - version: 4.3.0 - resolution: "esrecurse@npm:4.3.0" - dependencies: - estraverse: ^5.2.0 - checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 - languageName: node - linkType: hard - -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": - version: 5.3.0 - resolution: "estraverse@npm:5.3.0" - checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b - languageName: node - linkType: hard - -"esutils@npm:^2.0.2": - version: 2.0.3 - resolution: "esutils@npm:2.0.3" - checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 - languageName: node - linkType: hard - -"eventemitter3@npm:^5.0.1": - version: 5.0.1 - resolution: "eventemitter3@npm:5.0.1" - checksum: 543d6c858ab699303c3c32e0f0f47fc64d360bf73c3daf0ac0b5079710e340d6fe9f15487f94e66c629f5f82cd1a8678d692f3dbb6f6fcd1190e1b97fcad36f8 - languageName: node - linkType: hard - -"execa@npm:8.0.1": - version: 8.0.1 - resolution: "execa@npm:8.0.1" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^8.0.1 - human-signals: ^5.0.0 - is-stream: ^3.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^5.1.0 - onetime: ^6.0.0 - signal-exit: ^4.1.0 - strip-final-newline: ^3.0.0 - checksum: cac1bf86589d1d9b73bdc5dda65c52012d1a9619c44c526891956745f7b366ca2603d29fe3f7460bacc2b48c6eab5d6a4f7afe0534b31473d3708d1265545e1f - languageName: node - linkType: hard - -"execa@npm:^5.0.0": - version: 5.1.1 - resolution: "execa@npm:5.1.1" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^6.0.0 - human-signals: ^2.1.0 - is-stream: ^2.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^4.0.1 - onetime: ^5.1.2 - signal-exit: ^3.0.3 - strip-final-newline: ^2.0.0 - checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 - languageName: node - linkType: hard - -"execa@npm:^7.1.1": - version: 7.2.0 - resolution: "execa@npm:7.2.0" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^6.0.1 - human-signals: ^4.3.0 - is-stream: ^3.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^5.1.0 - onetime: ^6.0.0 - signal-exit: ^3.0.7 - strip-final-newline: ^3.0.0 - checksum: 14fd17ba0ca8c87b277584d93b1d9fc24f2a65e5152b31d5eb159a3b814854283eaae5f51efa9525e304447e2f757c691877f7adff8fde5746aae67eb1edd1cc - languageName: node - linkType: hard - -"exponential-backoff@npm:^3.1.1": - version: 3.1.1 - resolution: "exponential-backoff@npm:3.1.1" - checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 - languageName: node - linkType: hard - -"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": - version: 3.1.3 - resolution: "fast-deep-equal@npm:3.1.3" - checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d - languageName: node - linkType: hard - -"fast-diff@npm:^1.1.2": - version: 1.3.0 - resolution: "fast-diff@npm:1.3.0" - checksum: d22d371b994fdc8cce9ff510d7b8dc4da70ac327bcba20df607dd5b9cae9f908f4d1028f5fe467650f058d1e7270235ae0b8230809a262b4df587a3b3aa216c3 - languageName: node - linkType: hard - -"fast-equals@npm:^5.0.1": - version: 5.0.1 - resolution: "fast-equals@npm:5.0.1" - checksum: fbb3b6a74f3a0fa930afac151ff7d01639159b4fddd2678b5d50708e0ba38e9ec14602222d10dadb8398187342692c04fbef5a62b1cfcc7942fe03e754e064bc - languageName: node - linkType: hard - -"fast-glob@npm:3.3.2, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.2": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" - dependencies: - "@nodelib/fs.stat": ^2.0.2 - "@nodelib/fs.walk": ^1.2.3 - glob-parent: ^5.1.2 - merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 - languageName: node - linkType: hard - -"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb - languageName: node - linkType: hard - -"fast-levenshtein@npm:^2.0.6": - version: 2.0.6 - resolution: "fast-levenshtein@npm:2.0.6" - checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c - languageName: node - linkType: hard - -"fast-safe-stringify@npm:^2.0.7": - version: 2.1.1 - resolution: "fast-safe-stringify@npm:2.1.1" - checksum: a851cbddc451745662f8f00ddb622d6766f9bd97642dabfd9a405fb0d646d69fc0b9a1243cbf67f5f18a39f40f6fa821737651ff1bceeba06c9992ca2dc5bd3d - languageName: node - linkType: hard - -"fastq@npm:^1.6.0": - version: 1.15.0 - resolution: "fastq@npm:1.15.0" - dependencies: - reusify: ^1.0.4 - checksum: 0170e6bfcd5d57a70412440b8ef600da6de3b2a6c5966aeaf0a852d542daff506a0ee92d6de7679d1de82e644bce69d7a574a6c93f0b03964b5337eed75ada1a - languageName: node - linkType: hard - -"fetch-blob@npm:^2.1.1": - version: 2.1.2 - resolution: "fetch-blob@npm:2.1.2" - peerDependenciesMeta: - domexception: - optional: true - checksum: 22d4487ce78ea4e52b432b0057d8d42922d5d93c0374b0bc2692cebdcb11bf8fac4f6d141b31f1633db1e9212effd38385adbd765a2c7412a621307058499214 - languageName: node - linkType: hard - -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" - dependencies: - flat-cache: ^3.0.4 - checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 - languageName: node - linkType: hard - -"file-entry-cache@npm:^8.0.0": - version: 8.0.0 - resolution: "file-entry-cache@npm:8.0.0" - dependencies: - flat-cache: ^4.0.0 - checksum: f67802d3334809048c69b3d458f672e1b6d26daefda701761c81f203b80149c35dea04d78ea4238969dd617678e530876722a0634c43031a0957f10cc3ed190f - languageName: node - linkType: hard - -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" - dependencies: - to-regex-range: ^5.0.1 - checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 - languageName: node - linkType: hard - -"filter-iterator@npm:0.0.1": - version: 0.0.1 - resolution: "filter-iterator@npm:0.0.1" - checksum: 1dd34e0728183b3cc69d45c57ec58cbdd21c5160d53e70592e2db049ed4da81ba551b7bfaccb11731011ce5b07ee09961b09fa4573fe906145ce63d9a1813db0 - languageName: node - linkType: hard - -"filter-obj@npm:^1.1.0": - version: 1.1.0 - resolution: "filter-obj@npm:1.1.0" - checksum: cf2104a7c45ff48e7f505b78a3991c8f7f30f28bd8106ef582721f321f1c6277f7751aacd5d83026cb079d9d5091082f588d14a72e7c5d720ece79118fa61e10 - languageName: node - linkType: hard - -"find-up-simple@npm:^1.0.0": - version: 1.0.0 - resolution: "find-up-simple@npm:1.0.0" - checksum: 91c3d51c1111b5eb4e6e6d71d21438f6571a37a69dc288d4222b98996756e2f472fa5393a4dddb5e1a84929405d87e86f4bdce798ba84ee513b79854960ec140 - languageName: node - linkType: hard - -"find-up@npm:^4.1.0": - version: 4.1.0 - resolution: "find-up@npm:4.1.0" - dependencies: - locate-path: ^5.0.0 - path-exists: ^4.0.0 - checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 - languageName: node - linkType: hard - -"find-up@npm:^5.0.0": - version: 5.0.0 - resolution: "find-up@npm:5.0.0" - dependencies: - locate-path: ^6.0.0 - path-exists: ^4.0.0 - checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 - languageName: node - linkType: hard - -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" - dependencies: - flatted: ^3.2.9 - keyv: ^4.5.3 - rimraf: ^3.0.2 - checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec - languageName: node - linkType: hard - -"flat-cache@npm:^4.0.0": - version: 4.0.0 - resolution: "flat-cache@npm:4.0.0" - dependencies: - flatted: ^3.2.9 - keyv: ^4.5.4 - rimraf: ^5.0.5 - checksum: 744d5f111aeecdfb963faab7089230c737a90c325137251b4fe144fd76932e19738a861e356c5ee828bb310592b42a1da667912d74d0403f1f4ef75be8bfdbac - languageName: node - linkType: hard - -"flatted@npm:^3.2.9": - version: 3.2.9 - resolution: "flatted@npm:3.2.9" - checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 - languageName: node - linkType: hard - -"for-each@npm:^0.3.3": - version: 0.3.3 - resolution: "for-each@npm:0.3.3" - dependencies: - is-callable: ^1.1.3 - checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 - languageName: node - linkType: hard - -"foreground-child@npm:^3.1.0": - version: 3.1.1 - resolution: "foreground-child@npm:3.1.1" - dependencies: - cross-spawn: ^7.0.0 - signal-exit: ^4.0.1 - checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 - languageName: node - linkType: hard - -"fs-extra@npm:10.1.0": - version: 10.1.0 - resolution: "fs-extra@npm:10.1.0" - dependencies: - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 - languageName: node - linkType: hard - -"fs-extra@npm:^11.0.0": - version: 11.2.0 - resolution: "fs-extra@npm:11.2.0" - dependencies: - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: b12e42fa40ba47104202f57b8480dd098aa931c2724565e5e70779ab87605665594e76ee5fb00545f772ab9ace167fe06d2ab009c416dc8c842c5ae6df7aa7e8 - languageName: node - linkType: hard - -"fs-minipass@npm:^2.0.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: ^3.0.0 - checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 - languageName: node - linkType: hard - -"fs-minipass@npm:^3.0.0": - version: 3.0.3 - resolution: "fs-minipass@npm:3.0.3" - dependencies: - minipass: ^7.0.3 - checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 - languageName: node - linkType: hard - -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 - languageName: node - linkType: hard - -"fsevents@npm:~2.3.3": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" - dependencies: - node-gyp: latest - checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@~2.3.3#~builtin": - version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" - dependencies: - node-gyp: latest - conditions: os=darwin - languageName: node - linkType: hard - -"function-bind@npm:^1.1.2": - version: 1.1.2 - resolution: "function-bind@npm:1.1.2" - checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 - languageName: node - linkType: hard - -"function.prototype.name@npm:^1.1.6": - version: 1.1.6 - resolution: "function.prototype.name@npm:1.1.6" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - functions-have-names: ^1.2.3 - checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 - languageName: node - linkType: hard - -"functions-have-names@npm:^1.2.3": - version: 1.2.3 - resolution: "functions-have-names@npm:1.2.3" - checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 - languageName: node - linkType: hard - -"gensequence@npm:^6.0.0": - version: 6.0.0 - resolution: "gensequence@npm:6.0.0" - checksum: 7c23404b227647cb033a2c6cf5a5266442409e9dcc6bc140565d28de64adfa03dc474119ae14d776dc177fe63d605d2f4b228fa3bf926145dddd68c8df95d029 - languageName: node - linkType: hard - -"get-caller-file@npm:^2.0.5": - version: 2.0.5 - resolution: "get-caller-file@npm:2.0.5" - checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2": - version: 1.2.2 - resolution: "get-intrinsic@npm:1.2.2" - dependencies: - function-bind: ^1.1.2 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - hasown: ^2.0.0 - checksum: 447ff0724df26829908dc033b62732359596fcf66027bc131ab37984afb33842d9cd458fd6cecadfe7eac22fd8a54b349799ed334cf2726025c921c7250e7417 - languageName: node - linkType: hard - -"get-stdin@npm:^9.0.0": - version: 9.0.0 - resolution: "get-stdin@npm:9.0.0" - checksum: 5972bc34d05932b45512c8e2d67b040f1c1ca8afb95c56cbc480985f2d761b7e37fe90dc8abd22527f062cc5639a6930ff346e9952ae4c11a2d4275869459594 - languageName: node - linkType: hard - -"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": - version: 6.0.1 - resolution: "get-stream@npm:6.0.1" - checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad - languageName: node - linkType: hard - -"get-stream@npm:^8.0.1": - version: 8.0.1 - resolution: "get-stream@npm:8.0.1" - checksum: 01e3d3cf29e1393f05f44d2f00445c5f9ec3d1c49e8179b31795484b9c117f4c695e5e07b88b50785d5c8248a788c85d9913a79266fc77e3ef11f78f10f1b974 - languageName: node - linkType: hard - -"get-symbol-description@npm:^1.0.0": - version: 1.0.0 - resolution: "get-symbol-description@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.1 - checksum: 9ceff8fe968f9270a37a1f73bf3f1f7bda69ca80f4f80850670e0e7b9444ff99323f7ac52f96567f8b5f5fbe7ac717a0d81d3407c7313e82810c6199446a5247 - languageName: node - linkType: hard - -"get-tsconfig@npm:^4.7.2": - version: 4.7.2 - resolution: "get-tsconfig@npm:4.7.2" - dependencies: - resolve-pkg-maps: ^1.0.0 - checksum: 172358903250eff0103943f816e8a4e51d29b8e5449058bdf7266714a908a48239f6884308bd3a6ff28b09f692b9533dbebfd183ab63e4e14f073cda91f1bca9 - languageName: node - linkType: hard - -"git-raw-commits@npm:^2.0.11": - version: 2.0.11 - resolution: "git-raw-commits@npm:2.0.11" - dependencies: - dargs: ^7.0.0 - lodash: ^4.17.15 - meow: ^8.0.0 - split2: ^3.0.0 - through2: ^4.0.0 - bin: - git-raw-commits: cli.js - checksum: c178af43633684106179793b6e3473e1d2bb50bb41d04e2e285ea4eef342ca4090fee6bc8a737552fde879d22346c90de5c49f18c719a0f38d4c934f258a0f79 - languageName: node - linkType: hard - -"glob-parent@npm:^5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" - dependencies: - is-glob: ^4.0.1 - checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e - languageName: node - linkType: hard - -"glob-parent@npm:^6.0.2": - version: 6.0.2 - resolution: "glob-parent@npm:6.0.2" - dependencies: - is-glob: ^4.0.3 - checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 - languageName: node - linkType: hard - -"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": - version: 10.3.10 - resolution: "glob@npm:10.3.10" - dependencies: - foreground-child: ^3.1.0 - jackspeak: ^2.3.5 - minimatch: ^9.0.1 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - path-scurry: ^1.10.1 - bin: - glob: dist/esm/bin.mjs - checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 - languageName: node - linkType: hard - -"glob@npm:^7.1.3": - version: 7.2.3 - resolution: "glob@npm:7.2.3" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^3.1.1 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 - languageName: node - linkType: hard - -"global-directory@npm:^4.0.1": - version: 4.0.1 - resolution: "global-directory@npm:4.0.1" - dependencies: - ini: 4.1.1 - checksum: 5b4df24438a4e5f21e43fbdd9e54f5e12bb48dce01a0a83b415d8052ce91be2d3a97e0c8f98a535e69649b2190036155e9f0f7d3c62f9318f31bdc3fd4f235f5 - languageName: node - linkType: hard - -"global-dirs@npm:^0.1.1": - version: 0.1.1 - resolution: "global-dirs@npm:0.1.1" - dependencies: - ini: ^1.3.4 - checksum: 10624f5a8ddb8634c22804c6b24f93fb591c3639a6bc78e3584e01a238fc6f7b7965824184e57d63f6df36980b6c191484ad7bc6c35a1599b8f1d64be64c2a4a - languageName: node - linkType: hard - -"globals@npm:^13.19.0": - version: 13.23.0 - resolution: "globals@npm:13.23.0" - dependencies: - type-fest: ^0.20.2 - checksum: 194c97cf8d1ef6ba59417234c2386549c4103b6e5f24b1ff1952de61a4753e5d2069435ba629de711a6480b1b1d114a98e2ab27f85e966d5a10c319c3bbd3dc3 - languageName: node - linkType: hard - -"globalthis@npm:^1.0.3": - version: 1.0.3 - resolution: "globalthis@npm:1.0.3" - dependencies: - define-properties: ^1.1.3 - checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 - languageName: node - linkType: hard - -"globby@npm:^11.1.0": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: ^2.1.0 - dir-glob: ^3.0.1 - fast-glob: ^3.2.9 - ignore: ^5.2.0 - merge2: ^1.4.1 - slash: ^3.0.0 - checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 - languageName: node - linkType: hard - -"globby@npm:^14.0.0": - version: 14.0.0 - resolution: "globby@npm:14.0.0" - dependencies: - "@sindresorhus/merge-streams": ^1.0.0 - fast-glob: ^3.3.2 - ignore: ^5.2.4 - path-type: ^5.0.0 - slash: ^5.1.0 - unicorn-magic: ^0.1.0 - checksum: f331b42993e420c8f2b61a6ca062276977ea6d95f181640ff018f00200f4fe5b50f1fae7540903483e6570ca626fe16234ab88e848d43381a2529220548a9d39 - languageName: node - linkType: hard - -"gopd@npm:^1.0.1": - version: 1.0.1 - resolution: "gopd@npm:1.0.1" - dependencies: - get-intrinsic: ^1.1.3 - checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.6": - version: 4.2.11 - resolution: "graceful-fs@npm:4.2.11" - checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 - languageName: node - linkType: hard - -"graphemer@npm:^1.4.0": - version: 1.4.0 - resolution: "graphemer@npm:1.4.0" - checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 - languageName: node - linkType: hard - -"hard-rejection@npm:^2.1.0": - version: 2.1.0 - resolution: "hard-rejection@npm:2.1.0" - checksum: 7baaf80a0c7fff4ca79687b4060113f1529589852152fa935e6787a2bc96211e784ad4588fb3048136ff8ffc9dfcf3ae385314a5b24db32de20bea0d1597f9dc - languageName: node - linkType: hard - -"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b - languageName: node - linkType: hard - -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b - languageName: node - linkType: hard - -"has-flag@npm:^4.0.0": - version: 4.0.0 - resolution: "has-flag@npm:4.0.0" - checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad - languageName: node - linkType: hard - -"has-own-prop@npm:^2.0.0": - version: 2.0.0 - resolution: "has-own-prop@npm:2.0.0" - checksum: ca6336e85ead2295c9603880cbc199e2d3ff7eaea0e9035d68fbc79892e9cf681abc62c0909520f112c671dad9961be2173b21dff951358cc98425c560e789e0 - languageName: node - linkType: hard - -"has-own-property@npm:^0.1.0": - version: 0.1.0 - resolution: "has-own-property@npm:0.1.0" - checksum: 4754f42e8a54860ea1a397c231843937ba890f3aa556698c9a2160df5f9b1a02ddb321ef0528294aec3aaa3139d17744da048027aa7129a631cb6554b6faed6f - languageName: node - linkType: hard - -"has-property-descriptors@npm:^1.0.0": - version: 1.0.1 - resolution: "has-property-descriptors@npm:1.0.1" - dependencies: - get-intrinsic: ^1.2.2 - checksum: 2bcc6bf6ec6af375add4e4b4ef586e43674850a91ad4d46666d0b28ba8e1fd69e424c7677d24d60f69470ad0afaa2f3197f508b20b0bb7dd99a8ab77ffc4b7c4 - languageName: node - linkType: hard - -"has-proto@npm:^1.0.1": - version: 1.0.1 - resolution: "has-proto@npm:1.0.1" - checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e - languageName: node - linkType: hard - -"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": - version: 1.0.3 - resolution: "has-symbols@npm:1.0.3" - checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 - languageName: node - linkType: hard - -"has-tostringtag@npm:^1.0.0": - version: 1.0.0 - resolution: "has-tostringtag@npm:1.0.0" - dependencies: - has-symbols: ^1.0.2 - checksum: cc12eb28cb6ae22369ebaad3a8ab0799ed61270991be88f208d508076a1e99abe4198c965935ce85ea90b60c94ddda73693b0920b58e7ead048b4a391b502c1c - languageName: node - linkType: hard - -"hasown@npm:^2.0.0": - version: 2.0.0 - resolution: "hasown@npm:2.0.0" - dependencies: - function-bind: ^1.1.2 - checksum: 6151c75ca12554565098641c98a40f4cc86b85b0fd5b6fe92360967e4605a4f9610f7757260b4e8098dd1c2ce7f4b095f2006fe72a570e3b6d2d28de0298c176 - languageName: node - linkType: hard - -"hosted-git-info@npm:^2.1.4": - version: 2.8.9 - resolution: "hosted-git-info@npm:2.8.9" - checksum: c955394bdab888a1e9bb10eb33029e0f7ce5a2ac7b3f158099dc8c486c99e73809dca609f5694b223920ca2174db33d32b12f9a2a47141dc59607c29da5a62dd - languageName: node - linkType: hard - -"hosted-git-info@npm:^4.0.1": - version: 4.1.0 - resolution: "hosted-git-info@npm:4.1.0" - dependencies: - lru-cache: ^6.0.0 - checksum: c3f87b3c2f7eb8c2748c8f49c0c2517c9a95f35d26f4bf54b2a8cba05d2e668f3753548b6ea366b18ec8dadb4e12066e19fa382a01496b0ffa0497eb23cbe461 - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^7.0.0": - version: 7.0.0 - resolution: "http-proxy-agent@npm:7.0.0" - dependencies: - agent-base: ^7.1.0 - debug: ^4.3.4 - checksum: 48d4fac997917e15f45094852b63b62a46d0c8a4f0b9c6c23ca26d27b8df8d178bed88389e604745e748bd9a01f5023e25093722777f0593c3f052009ff438b6 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^7.0.1": - version: 7.0.2 - resolution: "https-proxy-agent@npm:7.0.2" - dependencies: - agent-base: ^7.0.2 - debug: 4 - checksum: 088969a0dd476ea7a0ed0a2cf1283013682b08f874c3bc6696c83fa061d2c157d29ef0ad3eb70a2046010bb7665573b2388d10fdcb3e410a66995e5248444292 - languageName: node - linkType: hard - -"human-signals@npm:^2.1.0": - version: 2.1.0 - resolution: "human-signals@npm:2.1.0" - checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 - languageName: node - linkType: hard - -"human-signals@npm:^4.3.0": - version: 4.3.1 - resolution: "human-signals@npm:4.3.1" - checksum: 6f12958df3f21b6fdaf02d90896c271df00636a31e2bbea05bddf817a35c66b38a6fdac5863e2df85bd52f34958997f1f50350ff97249e1dff8452865d5235d1 - languageName: node - linkType: hard - -"human-signals@npm:^5.0.0": - version: 5.0.0 - resolution: "human-signals@npm:5.0.0" - checksum: 6504560d5ed91444f16bea3bd9dfc66110a339442084e56c3e7fa7bbdf3f406426d6563d662bdce67064b165eac31eeabfc0857ed170aaa612cf14ec9f9a464c - languageName: node - linkType: hard - -"husky@npm:^8.0.3": - version: 8.0.3 - resolution: "husky@npm:8.0.3" - bin: - husky: lib/bin.js - checksum: 837bc7e4413e58c1f2946d38fb050f5d7324c6f16b0fd66411ffce5703b294bd21429e8ba58711cd331951ee86ed529c5be4f76805959ff668a337dbfa82a1b0 - languageName: node - linkType: hard - -"iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: ">= 2.1.2 < 3.0.0" - checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf - languageName: node - linkType: hard - -"identity-function@npm:^1.0.0": - version: 1.0.0 - resolution: "identity-function@npm:1.0.0" - checksum: 0ec311050c69679334b12479f53226f67ca41bc3ba7283ede3dacfb80802ec07643868d16b274ab823ceb2e81291697f01b07e32c7796f92255bd81452b7ea15 - languageName: node - linkType: hard - -"ignore@npm:^5.1.8, ignore@npm:^5.2.0, ignore@npm:^5.2.4": - version: 5.3.0 - resolution: "ignore@npm:5.3.0" - checksum: 2736da6621f14ced652785cb05d86301a66d70248597537176612bd0c8630893564bd5f6421f8806b09e8472e75c591ef01672ab8059c07c6eb2c09cefe04bf9 - languageName: node - linkType: hard - -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" - dependencies: - parent-module: ^1.0.0 - resolve-from: ^4.0.0 - checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa - languageName: node - linkType: hard - -"import-meta-resolve@npm:^4.0.0": - version: 4.0.0 - resolution: "import-meta-resolve@npm:4.0.0" - checksum: 51c50115fd38e9ba21736f8d7543a58446b92d2cb5f38c9b5ec72426afeb2fb790f82051560a0f16323f44dd73d8d37c07eab5f8dc4635bcdb401daa36727b1a - languageName: node - linkType: hard - -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 - languageName: node - linkType: hard - -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 - languageName: node - linkType: hard - -"individual@npm:^3.0.0": - version: 3.0.0 - resolution: "individual@npm:3.0.0" - checksum: 49f69cff2791f09d1364b39723cc03d8d48ae425b15b23c8f618ac81f8d76160dae9c2abde5fb885a6bfbce939017ba2a5c84cf3d8051d0804fca0ee79138aa2 - languageName: node - linkType: hard - -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: ^1.3.0 - wrappy: 1 - checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd - languageName: node - linkType: hard - -"inherits@npm:2, inherits@npm:^2.0.3": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 - languageName: node - linkType: hard - -"ini@npm:4.1.1": - version: 4.1.1 - resolution: "ini@npm:4.1.1" - checksum: 0e5909554074fbc31824fa5415b0f604de4a665514c96a897a77bf77353a7ad4743927321270e9d0610a9d510ccd1f3cd77422f7cc80d8f4542dbce75476fb6d - languageName: node - linkType: hard - -"ini@npm:^1.3.4": - version: 1.3.8 - resolution: "ini@npm:1.3.8" - checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 - languageName: node - linkType: hard - -"internal-slot@npm:^1.0.5": - version: 1.0.6 - resolution: "internal-slot@npm:1.0.6" - dependencies: - get-intrinsic: ^1.2.2 - hasown: ^2.0.0 - side-channel: ^1.0.4 - checksum: 7872454888047553ce97a3fa1da7cc054a28ec5400a9c2e9f4dbe4fe7c1d041cb8e8301467614b80d4246d50377aad2fb58860b294ed74d6700cc346b6f89549 - languageName: node - linkType: hard - -"ip@npm:^2.0.0": - version: 2.0.0 - resolution: "ip@npm:2.0.0" - checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 - languageName: node - linkType: hard - -"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": - version: 3.0.2 - resolution: "is-array-buffer@npm:3.0.2" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.2.0 - is-typed-array: ^1.1.10 - checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 - languageName: node - linkType: hard - -"is-arrayish@npm:^0.2.1": - version: 0.2.1 - resolution: "is-arrayish@npm:0.2.1" - checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f - languageName: node - linkType: hard - -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" - dependencies: - has-bigints: ^1.0.1 - checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 - languageName: node - linkType: hard - -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" - dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 - languageName: node - linkType: hard - -"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": - version: 1.2.7 - resolution: "is-callable@npm:1.2.7" - checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac - languageName: node - linkType: hard - -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0": - version: 2.13.1 - resolution: "is-core-module@npm:2.13.1" - dependencies: - hasown: ^2.0.0 - checksum: 256559ee8a9488af90e4bad16f5583c6d59e92f0742e9e8bb4331e758521ee86b810b93bae44f390766ffbc518a0488b18d9dab7da9a5ff997d499efc9403f7c - languageName: node - linkType: hard - -"is-date-object@npm:^1.0.1": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" - dependencies: - has-tostringtag: ^1.0.0 - checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc - languageName: node - linkType: hard - -"is-docker@npm:^2.0.0": - version: 2.2.1 - resolution: "is-docker@npm:2.2.1" - bin: - is-docker: cli.js - checksum: 3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56 - languageName: node - linkType: hard - -"is-docker@npm:^3.0.0": - version: 3.0.0 - resolution: "is-docker@npm:3.0.0" - bin: - is-docker: cli.js - checksum: b698118f04feb7eaf3338922bd79cba064ea54a1c3db6ec8c0c8d8ee7613e7e5854d802d3ef646812a8a3ace81182a085dfa0a71cc68b06f3fa794b9783b3c90 - languageName: node - linkType: hard - -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^3.0.0": - version: 3.0.0 - resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^4.0.0": - version: 4.0.0 - resolution: "is-fullwidth-code-point@npm:4.0.0" - checksum: 8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d - languageName: node - linkType: hard - -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: ^2.1.1 - checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 - languageName: node - linkType: hard - -"is-inside-container@npm:^1.0.0": - version: 1.0.0 - resolution: "is-inside-container@npm:1.0.0" - dependencies: - is-docker: ^3.0.0 - bin: - is-inside-container: cli.js - checksum: c50b75a2ab66ab3e8b92b3bc534e1ea72ca25766832c0623ac22d134116a98bcf012197d1caabe1d1c4bd5f84363d4aa5c36bb4b585fbcaf57be172cd10a1a03 - languageName: node - linkType: hard - -"is-iterable@npm:^1.1.0": - version: 1.1.1 - resolution: "is-iterable@npm:1.1.1" - checksum: d059aaf00899cf351cdf4d71ea6b4e8912107c47b31b554d28205199b306420f3b5d30a419efa6b807f466f675fd945822f1651fd6d1fd45469a578573da671e - languageName: node - linkType: hard - -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 - languageName: node - linkType: hard - -"is-negative-zero@npm:^2.0.2": - version: 2.0.2 - resolution: "is-negative-zero@npm:2.0.2" - checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a - languageName: node - linkType: hard - -"is-number-object@npm:^1.0.4": - version: 1.0.7 - resolution: "is-number-object@npm:1.0.7" - dependencies: - has-tostringtag: ^1.0.0 - checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 - languageName: node - linkType: hard - -"is-number@npm:^4.0.0": - version: 4.0.0 - resolution: "is-number@npm:4.0.0" - checksum: e71962a5ae97400211e6be5946eff2b81d3fa85154dad498bfe2704999e63ac6b3f8591fdb7971a121122cc6e25915c2cfe882ff7b77e243d51b92ca6961267e - languageName: node - linkType: hard - -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a - languageName: node - linkType: hard - -"is-obj@npm:^2.0.0": - version: 2.0.0 - resolution: "is-obj@npm:2.0.0" - checksum: c9916ac8f4621962a42f5e80e7ffdb1d79a3fab7456ceaeea394cd9e0858d04f985a9ace45be44433bf605673c8be8810540fe4cc7f4266fc7526ced95af5a08 - languageName: node - linkType: hard - -"is-path-inside@npm:^3.0.3": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 - languageName: node - linkType: hard - -"is-plain-obj@npm:^1.1.0": - version: 1.1.0 - resolution: "is-plain-obj@npm:1.1.0" - checksum: 0ee04807797aad50859652a7467481816cbb57e5cc97d813a7dcd8915da8195dc68c436010bf39d195226cde6a2d352f4b815f16f26b7bf486a5754290629931 - languageName: node - linkType: hard - -"is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" - dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 - languageName: node - linkType: hard - -"is-shared-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "is-shared-array-buffer@npm:1.0.2" - dependencies: - call-bind: ^1.0.2 - checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a - languageName: node - linkType: hard - -"is-stream@npm:^2.0.0": - version: 2.0.1 - resolution: "is-stream@npm:2.0.1" - checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 - languageName: node - linkType: hard - -"is-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "is-stream@npm:3.0.0" - checksum: 172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 - languageName: node - linkType: hard - -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" - dependencies: - has-tostringtag: ^1.0.0 - checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 - languageName: node - linkType: hard - -"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" - dependencies: - has-symbols: ^1.0.2 - checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 - languageName: node - linkType: hard - -"is-text-path@npm:^2.0.0": - version: 2.0.0 - resolution: "is-text-path@npm:2.0.0" - dependencies: - text-extensions: ^2.0.0 - checksum: 3a8725fc7c0d4c7741a97993bc2fecc09a0963660394d3ee76145274366c98ad57c6791d20d4ef829835f573b1137265051c05ecd65fbe72f69bb9ab9e3babbd - languageName: node - linkType: hard - -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.12, is-typed-array@npm:^1.1.9": - version: 1.1.12 - resolution: "is-typed-array@npm:1.1.12" - dependencies: - which-typed-array: ^1.1.11 - checksum: 4c89c4a3be07186caddadf92197b17fda663a9d259ea0d44a85f171558270d36059d1c386d34a12cba22dfade5aba497ce22778e866adc9406098c8fc4771796 - languageName: node - linkType: hard - -"is-typedarray@npm:^1.0.0": - version: 1.0.0 - resolution: "is-typedarray@npm:1.0.0" - checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 - languageName: node - linkType: hard - -"is-weakref@npm:^1.0.2": - version: 1.0.2 - resolution: "is-weakref@npm:1.0.2" - dependencies: - call-bind: ^1.0.2 - checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de - languageName: node - linkType: hard - -"is-wsl@npm:^2.2.0": - version: 2.2.0 - resolution: "is-wsl@npm:2.2.0" - dependencies: - is-docker: ^2.0.0 - checksum: 20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8 - languageName: node - linkType: hard - -"isarray@npm:^2.0.5": - version: 2.0.5 - resolution: "isarray@npm:2.0.5" - checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a - languageName: node - linkType: hard - -"isexe@npm:^2.0.0": - version: 2.0.0 - resolution: "isexe@npm:2.0.0" - checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 - languageName: node - linkType: hard - -"isexe@npm:^3.1.1": - version: 3.1.1 - resolution: "isexe@npm:3.1.1" - checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e - languageName: node - linkType: hard - -"iterable-lookahead@npm:^1.0.0": - version: 1.0.0 - resolution: "iterable-lookahead@npm:1.0.0" - checksum: 9d849bfbfafcaf83c6eec2835192088b1f7d1aadf9f33ec4e1d117664af2d47acb742e130179c35a6eec01d0e3ec2750ea8347ba6796e47e329b015455076e67 - languageName: node - linkType: hard - -"jackspeak@npm:^2.3.5": - version: 2.3.6 - resolution: "jackspeak@npm:2.3.6" - dependencies: - "@isaacs/cliui": ^8.0.2 - "@pkgjs/parseargs": ^0.11.0 - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 - languageName: node - linkType: hard - -"jiti@npm:1.21.0, jiti@npm:^1.19.1": - version: 1.21.0 - resolution: "jiti@npm:1.21.0" - bin: - jiti: bin/jiti.js - checksum: a7bd5d63921c170eaec91eecd686388181c7828e1fa0657ab374b9372bfc1f383cf4b039e6b272383d5cb25607509880af814a39abdff967322459cca41f2961 - languageName: node - linkType: hard - -"js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 - languageName: node - linkType: hard - -"js-yaml@npm:4.1.0, js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" - dependencies: - argparse: ^2.0.1 - bin: - js-yaml: bin/js-yaml.js - checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a - languageName: node - linkType: hard - -"json-buffer@npm:3.0.1": - version: 3.0.1 - resolution: "json-buffer@npm:3.0.1" - checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 - languageName: node - linkType: hard - -"json-parse-better-errors@npm:^1.0.1": - version: 1.0.2 - resolution: "json-parse-better-errors@npm:1.0.2" - checksum: ff2b5ba2a70e88fd97a3cb28c1840144c5ce8fae9cbeeddba15afa333a5c407cf0e42300cd0a2885dbb055227fe68d405070faad941beeffbfde9cf3b2c78c5d - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^2.3.0": - version: 2.3.1 - resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^3.0.0": - version: 3.0.1 - resolution: "json-parse-even-better-errors@npm:3.0.1" - checksum: bf74fa3f715e56699ccd68b80a7d20908de432a3fae2d5aa2ed530a148e9d9ccdf8e6983b93d9966a553aa70dcf003ce3a7ffec2c0ce74d2a6173e3691a426f0 - languageName: node - linkType: hard - -"json-schema-traverse@npm:^0.4.1": - version: 0.4.1 - resolution: "json-schema-traverse@npm:0.4.1" - checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b - languageName: node - linkType: hard - -"json-schema-traverse@npm:^1.0.0": - version: 1.0.0 - resolution: "json-schema-traverse@npm:1.0.0" - checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad - languageName: node - linkType: hard - -"json-stable-stringify-without-jsonify@npm:^1.0.1": - version: 1.0.1 - resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" - checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 - languageName: node - linkType: hard - -"json-stringify-safe@npm:^5.0.1": - version: 5.0.1 - resolution: "json-stringify-safe@npm:5.0.1" - checksum: 48ec0adad5280b8a96bb93f4563aa1667fd7a36334f79149abd42446d0989f2ddc58274b479f4819f1f00617957e6344c886c55d05a4e15ebb4ab931e4a6a8ee - languageName: node - linkType: hard - -"jsonfile@npm:^6.0.1": - version: 6.1.0 - resolution: "jsonfile@npm:6.1.0" - dependencies: - graceful-fs: ^4.1.6 - universalify: ^2.0.0 - dependenciesMeta: - graceful-fs: - optional: true - checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 - languageName: node - linkType: hard - -"jsonparse@npm:^1.2.0": - version: 1.3.1 - resolution: "jsonparse@npm:1.3.1" - checksum: 6514a7be4674ebf407afca0eda3ba284b69b07f9958a8d3113ef1005f7ec610860c312be067e450c569aab8b89635e332cee3696789c750692bb60daba627f4d - languageName: node - linkType: hard - -"keyv@npm:^4.5.3, keyv@npm:^4.5.4": - version: 4.5.4 - resolution: "keyv@npm:4.5.4" - dependencies: - json-buffer: 3.0.1 - checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 - languageName: node - linkType: hard - -"kind-of@npm:^6.0.3": - version: 6.0.3 - resolution: "kind-of@npm:6.0.3" - checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b - languageName: node - linkType: hard - -"knip@npm:^3.3.0": - version: 3.3.0 - resolution: "knip@npm:3.3.0" - dependencies: - "@ericcornelissen/bash-parser": 0.5.2 - "@npmcli/map-workspaces": 3.0.4 - "@pkgjs/parseargs": 0.11.0 - "@pnpm/logger": 5.0.0 - "@pnpm/workspace.pkgs-graph": ^2.0.10 - "@snyk/github-codeowners": 1.1.0 - chalk: ^5.2.0 - easy-table: 1.2.0 - fast-glob: 3.3.2 - globby: ^14.0.0 - jiti: 1.21.0 - js-yaml: 4.1.0 - micromatch: 4.0.5 - minimist: 1.2.8 - pretty-ms: 8.0.0 - strip-json-comments: 5.0.1 - summary: 2.1.0 - zod: 3.22.4 - zod-validation-error: 2.1.0 - peerDependencies: - typescript: ">=5.0.4" - bin: - knip: bin/knip.js - checksum: 7852a2b3f8899f0e9d778c9c614ed658288dd30d7b37b5892f863550539ef4dc02853d07fccca420b69db4d07c23bf382e7f5dc8f821a8dd15b26057834c1659 - languageName: node - linkType: hard - -"levn@npm:^0.4.1": - version: 0.4.1 - resolution: "levn@npm:0.4.1" - dependencies: - prelude-ls: ^1.2.1 - type-check: ~0.4.0 - checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 - languageName: node - linkType: hard - -"lilconfig@npm:2.1.0": - version: 2.1.0 - resolution: "lilconfig@npm:2.1.0" - checksum: 8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117 - languageName: node - linkType: hard - -"lines-and-columns@npm:^1.1.6": - version: 1.2.4 - resolution: "lines-and-columns@npm:1.2.4" - checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 - languageName: node - linkType: hard - -"lint-staged@npm:^15.1.0": - version: 15.1.0 - resolution: "lint-staged@npm:15.1.0" - dependencies: - chalk: 5.3.0 - commander: 11.1.0 - debug: 4.3.4 - execa: 8.0.1 - lilconfig: 2.1.0 - listr2: 7.0.2 - micromatch: 4.0.5 - pidtree: 0.6.0 - string-argv: 0.3.2 - yaml: 2.3.4 - bin: - lint-staged: bin/lint-staged.js - checksum: e99bdedb32d20fa22c0d0798ecf014fd00ac9cce1158373d7caf47855c0b9b4c20d228417677a05ea81f6941f957ae9347dccb3846a48bc1fdd0cdeed2ccf0ef - languageName: node - linkType: hard - -"listr2@npm:7.0.2": - version: 7.0.2 - resolution: "listr2@npm:7.0.2" - dependencies: - cli-truncate: ^3.1.0 - colorette: ^2.0.20 - eventemitter3: ^5.0.1 - log-update: ^5.0.1 - rfdc: ^1.3.0 - wrap-ansi: ^8.1.0 - checksum: 1734c6b9367ceeb09bf372427930a4586b3727097373408f2f840896b9333cc80e53a1a696771a83a7d4d9ada46229843f3052b87f3b0b58c20e9451362c2dd3 - languageName: node - linkType: hard - -"load-json-file@npm:^4.0.0": - version: 4.0.0 - resolution: "load-json-file@npm:4.0.0" - dependencies: - graceful-fs: ^4.1.2 - parse-json: ^4.0.0 - pify: ^3.0.0 - strip-bom: ^3.0.0 - checksum: 8f5d6d93ba64a9620445ee9bde4d98b1eac32cf6c8c2d20d44abfa41a6945e7969456ab5f1ca2fb06ee32e206c9769a20eec7002fe290de462e8c884b6b8b356 - languageName: node - linkType: hard - -"load-json-file@npm:^6.2.0": - version: 6.2.0 - resolution: "load-json-file@npm:6.2.0" - dependencies: - graceful-fs: ^4.1.15 - parse-json: ^5.0.0 - strip-bom: ^4.0.0 - type-fest: ^0.6.0 - checksum: 4429e430ebb99375fc7cd936348e4f7ba729486080ced4272091c1e386a7f5f738ea3337d8ffd4b01c2f5bc3ddde92f2c780045b66838fe98bdb79f901884643 - languageName: node - linkType: hard - -"locate-path@npm:^5.0.0": - version: 5.0.0 - resolution: "locate-path@npm:5.0.0" - dependencies: - p-locate: ^4.1.0 - checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 - languageName: node - linkType: hard - -"locate-path@npm:^6.0.0": - version: 6.0.0 - resolution: "locate-path@npm:6.0.0" - dependencies: - p-locate: ^5.0.0 - checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a - languageName: node - linkType: hard - -"lodash.camelcase@npm:^4.3.0": - version: 4.3.0 - resolution: "lodash.camelcase@npm:4.3.0" - checksum: cb9227612f71b83e42de93eccf1232feeb25e705bdb19ba26c04f91e885bfd3dd5c517c4a97137658190581d3493ea3973072ca010aab7e301046d90740393d1 - languageName: node - linkType: hard - -"lodash.curry@npm:^4.1.1": - version: 4.1.1 - resolution: "lodash.curry@npm:4.1.1" - checksum: 9192b70fe7df4d1ff780c0260bee271afa9168c93fe4fa24bc861900240531b59781b5fdaadf4644fea8f4fbcd96f0700539ab294b579ffc1022c6c15dcc462a - languageName: node - linkType: hard - -"lodash.isfunction@npm:^3.0.9": - version: 3.0.9 - resolution: "lodash.isfunction@npm:3.0.9" - checksum: 99e54c34b1e8a9ba75c034deb39cedbd2aca7af685815e67a2a8ec4f73ec9748cda6ebee5a07d7de4b938e90d421fd280e9c385cc190f903ac217ac8aff30314 - languageName: node - linkType: hard - -"lodash.isplainobject@npm:^4.0.6": - version: 4.0.6 - resolution: "lodash.isplainobject@npm:4.0.6" - checksum: 29c6351f281e0d9a1d58f1a4c8f4400924b4c79f18dfc4613624d7d54784df07efaff97c1ff2659f3e085ecf4fff493300adc4837553104cef2634110b0d5337 - languageName: node - linkType: hard - -"lodash.kebabcase@npm:^4.1.1": - version: 4.1.1 - resolution: "lodash.kebabcase@npm:4.1.1" - checksum: 5a6c59161914e1bae23438a298c7433e83d935e0f59853fa862e691164696bc07f6dfa4c313d499fbf41ba8d53314e9850416502376705a357d24ee6ca33af78 - languageName: node - linkType: hard - -"lodash.merge@npm:^4.6.2": - version: 4.6.2 - resolution: "lodash.merge@npm:4.6.2" - checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 - languageName: node - linkType: hard - -"lodash.mergewith@npm:^4.6.2": - version: 4.6.2 - resolution: "lodash.mergewith@npm:4.6.2" - checksum: a6db2a9339752411f21b956908c404ec1e088e783a65c8b29e30ae5b3b6384f82517662d6f425cc97c2070b546cc2c7daaa8d33f78db7b6e9be06cd834abdeb8 - languageName: node - linkType: hard - -"lodash.snakecase@npm:^4.1.1": - version: 4.1.1 - resolution: "lodash.snakecase@npm:4.1.1" - checksum: 1685ed3e83dda6eae5a4dcaee161a51cd210aabb3e1c09c57150e7dd8feda19e4ca0d27d0631eabe8d0f4eaa51e376da64e8c018ae5415417c5890d42feb72a8 - languageName: node - linkType: hard - -"lodash.startcase@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.startcase@npm:4.4.0" - checksum: c03a4a784aca653845fe09d0ef67c902b6e49288dc45f542a4ab345a9c406a6dc194c774423fa313ee7b06283950301c1221dd2a1d8ecb2dac8dfbb9ed5606b5 - languageName: node - linkType: hard - -"lodash.uniq@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.uniq@npm:4.5.0" - checksum: a4779b57a8d0f3c441af13d9afe7ecff22dd1b8ce1129849f71d9bbc8e8ee4e46dfb4b7c28f7ad3d67481edd6e51126e4e2a6ee276e25906d10f7140187c392d - languageName: node - linkType: hard - -"lodash.upperfirst@npm:^4.3.1": - version: 4.3.1 - resolution: "lodash.upperfirst@npm:4.3.1" - checksum: cadec6955900afe1928cc60cdc4923a79c2ef991e42665419cc81630ed9b4f952a1093b222e0141ab31cbc4dba549f97ec28ff67929d71e01861c97188a5fa83 - languageName: node - linkType: hard - -"lodash@npm:^4.17.15": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 - languageName: node - linkType: hard - -"log-update@npm:^5.0.1": - version: 5.0.1 - resolution: "log-update@npm:5.0.1" - dependencies: - ansi-escapes: ^5.0.0 - cli-cursor: ^4.0.0 - slice-ansi: ^5.0.0 - strip-ansi: ^7.0.1 - wrap-ansi: ^8.0.1 - checksum: 2c6b47dcce6f9233df6d232a37d9834cb3657a0749ef6398f1706118de74c55f158587d4128c225297ea66803f35c5ac3db4f3f617046d817233c45eedc32ef1 - languageName: node - linkType: hard - -"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": - version: 10.1.0 - resolution: "lru-cache@npm:10.1.0" - checksum: 58056d33e2500fbedce92f8c542e7c11b50d7d086578f14b7074d8c241422004af0718e08a6eaae8705cee09c77e39a61c1c79e9370ba689b7010c152e6a76ab - languageName: node - linkType: hard - -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: ^4.0.0 - checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 - languageName: node - linkType: hard - -"magic-string@npm:^0.16.0": - version: 0.16.0 - resolution: "magic-string@npm:0.16.0" - dependencies: - vlq: ^0.2.1 - checksum: f97e225062b600212e95fc8ed1948410bee3cb5248e03ed14fc45f12bb61a43960fdc0525f4aaaf62d6e79165526c9f8274ec225a92d421980cfcfcb8063be98 - languageName: node - linkType: hard - -"make-fetch-happen@npm:^13.0.0": - version: 13.0.0 - resolution: "make-fetch-happen@npm:13.0.0" - dependencies: - "@npmcli/agent": ^2.0.0 - cacache: ^18.0.0 - http-cache-semantics: ^4.1.1 - is-lambda: ^1.0.1 - minipass: ^7.0.2 - minipass-fetch: ^3.0.0 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - promise-retry: ^2.0.1 - ssri: ^10.0.0 - checksum: 7c7a6d381ce919dd83af398b66459a10e2fe8f4504f340d1d090d3fa3d1b0c93750220e1d898114c64467223504bd258612ba83efbc16f31b075cd56de24b4af - languageName: node - linkType: hard - -"map-age-cleaner@npm:^0.1.3": - version: 0.1.3 - resolution: "map-age-cleaner@npm:0.1.3" - dependencies: - p-defer: ^1.0.0 - checksum: cb2804a5bcb3cbdfe4b59066ea6d19f5e7c8c196cd55795ea4c28f792b192e4c442426ae52524e5e1acbccf393d3bddacefc3d41f803e66453f6c4eda3650bc1 - languageName: node - linkType: hard - -"map-obj@npm:^1.0.0": - version: 1.0.1 - resolution: "map-obj@npm:1.0.1" - checksum: 9949e7baec2a336e63b8d4dc71018c117c3ce6e39d2451ccbfd3b8350c547c4f6af331a4cbe1c83193d7c6b786082b6256bde843db90cb7da2a21e8fcc28afed - languageName: node - linkType: hard - -"map-obj@npm:^2.0.0": - version: 2.0.0 - resolution: "map-obj@npm:2.0.0" - checksum: 77d2b7b03398a71c84bd7df8ab7be2139e5459fc1e18dbb5f15055fe7284bec0fc37fe410185b5f8ca2e3c3e01fd0fd1f946c579607878adb26cad1cd75314aa - languageName: node - linkType: hard - -"map-obj@npm:^4.0.0": - version: 4.3.0 - resolution: "map-obj@npm:4.3.0" - checksum: fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e - languageName: node - linkType: hard - -"mem@npm:^6.0.1": - version: 6.1.1 - resolution: "mem@npm:6.1.1" - dependencies: - map-age-cleaner: ^0.1.3 - mimic-fn: ^3.0.0 - checksum: 59a54b66838f074354fd2ae32cca5064996761ded870e74fa1e098bb3e5d48fc033ebeacf6809d4b2ad3036f7a6fb7538858821bbd4f1cfb7ef8966c0ab9b753 - languageName: node - linkType: hard - -"mem@npm:^8.0.0": - version: 8.1.1 - resolution: "mem@npm:8.1.1" - dependencies: - map-age-cleaner: ^0.1.3 - mimic-fn: ^3.1.0 - checksum: c41bc97f6f82b91899206058989e34bcb1543af40413c2ab59e5a8e97e4f8f2188d62e7bd95b2d575d5b0d823d5034a0f274a0676f6d11a0e0b973898b06c8b1 - languageName: node - linkType: hard - -"memorystream@npm:^0.3.1": - version: 0.3.1 - resolution: "memorystream@npm:0.3.1" - checksum: f18b42440d24d09516d01466c06adf797df7873f0d40aa7db02e5fb9ed83074e5e65412d0720901d7069363465f82dc4f8bcb44f0cde271567a61426ce6ca2e9 - languageName: node - linkType: hard - -"meow@npm:^12.0.1": - version: 12.1.1 - resolution: "meow@npm:12.1.1" - checksum: a6f3be85fbe53430ef53ab933dd790c39216eb4dbaabdbef593aa59efb40ecaa417897000175476bc33eed09e4cbce01df7ba53ba91e9a4bd84ec07024cb8914 - languageName: node - linkType: hard - -"meow@npm:^8.0.0": - version: 8.1.2 - resolution: "meow@npm:8.1.2" - dependencies: - "@types/minimist": ^1.2.0 - camelcase-keys: ^6.2.2 - decamelize-keys: ^1.1.0 - hard-rejection: ^2.1.0 - minimist-options: 4.1.0 - normalize-package-data: ^3.0.0 - read-pkg-up: ^7.0.1 - redent: ^3.0.0 - trim-newlines: ^3.0.0 - type-fest: ^0.18.0 - yargs-parser: ^20.2.3 - checksum: bc23bf1b4423ef6a821dff9734406bce4b91ea257e7f10a8b7f896f45b59649f07adc0926e2917eacd8cf1df9e4cd89c77623cf63dfd0f8bf54de07a32ee5a85 - languageName: node - linkType: hard - -"merge-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "merge-stream@npm:2.0.0" - checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 - languageName: node - linkType: hard - -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 - languageName: node - linkType: hard - -"micromatch@npm:4.0.5, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" - dependencies: - braces: ^3.0.2 - picomatch: ^2.3.1 - checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc - languageName: node - linkType: hard - -"mimic-fn@npm:^2.1.0": - version: 2.1.0 - resolution: "mimic-fn@npm:2.1.0" - checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a - languageName: node - linkType: hard - -"mimic-fn@npm:^3.0.0, mimic-fn@npm:^3.1.0": - version: 3.1.0 - resolution: "mimic-fn@npm:3.1.0" - checksum: f7b167f9115b8bbdf2c3ee55dce9149d14be9e54b237259c4bc1d8d0512ea60f25a1b323f814eb1fe8f5a541662804bcfcfff3202ca58df143edb986849d58db - languageName: node - linkType: hard - -"mimic-fn@npm:^4.0.0": - version: 4.0.0 - resolution: "mimic-fn@npm:4.0.0" - checksum: 995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 - languageName: node - linkType: hard - -"min-indent@npm:^1.0.0": - version: 1.0.1 - resolution: "min-indent@npm:1.0.1" - checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 - languageName: node - linkType: hard - -"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" - dependencies: - brace-expansion: ^1.1.7 - checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a - languageName: node - linkType: hard - -"minimatch@npm:^9.0.0, minimatch@npm:^9.0.1": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: ^2.0.1 - checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 - languageName: node - linkType: hard - -"minimist-options@npm:4.1.0": - version: 4.1.0 - resolution: "minimist-options@npm:4.1.0" - dependencies: - arrify: ^1.0.1 - is-plain-obj: ^1.1.0 - kind-of: ^6.0.3 - checksum: 8c040b3068811e79de1140ca2b708d3e203c8003eb9a414c1ab3cd467fc5f17c9ca02a5aef23bedc51a7f8bfbe77f87e9a7e31ec81fba304cda675b019496f4e - languageName: node - linkType: hard - -"minimist@npm:1.2.8, minimist@npm:^1.2.5, minimist@npm:^1.2.6": - version: 1.2.8 - resolution: "minimist@npm:1.2.8" - checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 - languageName: node - linkType: hard - -"minipass-collect@npm:^2.0.1": - version: 2.0.1 - resolution: "minipass-collect@npm:2.0.1" - dependencies: - minipass: ^7.0.3 - checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 - languageName: node - linkType: hard - -"minipass-fetch@npm:^3.0.0": - version: 3.0.4 - resolution: "minipass-fetch@npm:3.0.4" - dependencies: - encoding: ^0.1.13 - minipass: ^7.0.3 - minipass-sized: ^1.0.3 - minizlib: ^2.1.2 - dependenciesMeta: - encoding: - optional: true - checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: ^3.0.0 - checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: ^3.0.0 - checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: ^3.0.0 - checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 - languageName: node - linkType: hard - -"minipass@npm:^3.0.0": - version: 3.3.6 - resolution: "minipass@npm:3.3.6" - dependencies: - yallist: ^4.0.0 - checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 - languageName: node - linkType: hard - -"minipass@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass@npm:5.0.0" - checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea - languageName: node - linkType: hard - -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": - version: 7.0.4 - resolution: "minipass@npm:7.0.4" - checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 - languageName: node - linkType: hard - -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" - dependencies: - minipass: ^3.0.0 - yallist: ^4.0.0 - checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 - languageName: node - linkType: hard - -"mkdirp@npm:^1.0.3": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f - languageName: node - linkType: hard - -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f - languageName: node - linkType: hard - -"natural-compare@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare@npm:1.4.0" - checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d - languageName: node - linkType: hard - -"ndjson@npm:^2.0.0": - version: 2.0.0 - resolution: "ndjson@npm:2.0.0" - dependencies: - json-stringify-safe: ^5.0.1 - minimist: ^1.2.5 - readable-stream: ^3.6.0 - split2: ^3.0.0 - through2: ^4.0.0 - bin: - ndjson: cli.js - checksum: f847a51a2275b8a6a1bfdb24095183836b71c3085670161678c9922bc59644f04e53ced385e549a5565fdc44c28e206bd3f2199d12525028f843a86b680c4446 - languageName: node - linkType: hard - -"negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 - languageName: node - linkType: hard - -"nice-try@npm:^1.0.4": - version: 1.0.5 - resolution: "nice-try@npm:1.0.5" - checksum: 0b4af3b5bb5d86c289f7a026303d192a7eb4417231fe47245c460baeabae7277bcd8fd9c728fb6bd62c30b3e15cd6620373e2cf33353b095d8b403d3e8a15aff - languageName: node - linkType: hard - -"node-fetch@npm:3.0.0-beta.9": - version: 3.0.0-beta.9 - resolution: "node-fetch@npm:3.0.0-beta.9" - dependencies: - data-uri-to-buffer: ^3.0.1 - fetch-blob: ^2.1.1 - checksum: 586af0910649cb62f1c044ddac41e71c0b0f48133fba406ad5e0fab51baff18f22cd187ea65ef690ceed7386a71910e904348105dc8eae55f907fa94df7e76ca - languageName: node - linkType: hard - -"node-gyp@npm:latest": - version: 10.0.1 - resolution: "node-gyp@npm:10.0.1" - dependencies: - env-paths: ^2.2.0 - exponential-backoff: ^3.1.1 - glob: ^10.3.10 - graceful-fs: ^4.2.6 - make-fetch-happen: ^13.0.0 - nopt: ^7.0.0 - proc-log: ^3.0.0 - semver: ^7.3.5 - tar: ^6.1.2 - which: ^4.0.0 - bin: - node-gyp: bin/node-gyp.js - checksum: 60a74e66d364903ce02049966303a57f898521d139860ac82744a5fdd9f7b7b3b61f75f284f3bfe6e6add3b8f1871ce305a1d41f775c7482de837b50c792223f - languageName: node - linkType: hard - -"nopt@npm:^7.0.0": - version: 7.2.0 - resolution: "nopt@npm:7.2.0" - dependencies: - abbrev: ^2.0.0 - bin: - nopt: bin/nopt.js - checksum: a9c0f57fb8cb9cc82ae47192ca2b7ef00e199b9480eed202482c962d61b59a7fbe7541920b2a5839a97b42ee39e288c0aed770e38057a608d7f579389dfde410 - languageName: node - linkType: hard - -"normalize-package-data@npm:^2.3.2, normalize-package-data@npm:^2.5.0": - version: 2.5.0 - resolution: "normalize-package-data@npm:2.5.0" - dependencies: - hosted-git-info: ^2.1.4 - resolve: ^1.10.0 - semver: 2 || 3 || 4 || 5 - validate-npm-package-license: ^3.0.1 - checksum: 7999112efc35a6259bc22db460540cae06564aa65d0271e3bdfa86876d08b0e578b7b5b0028ee61b23f1cae9fc0e7847e4edc0948d3068a39a2a82853efc8499 - languageName: node - linkType: hard - -"normalize-package-data@npm:^3.0.0": - version: 3.0.3 - resolution: "normalize-package-data@npm:3.0.3" - dependencies: - hosted-git-info: ^4.0.1 - is-core-module: ^2.5.0 - semver: ^7.3.4 - validate-npm-package-license: ^3.0.1 - checksum: bbcee00339e7c26fdbc760f9b66d429258e2ceca41a5df41f5df06cc7652de8d82e8679ff188ca095cad8eff2b6118d7d866af2b68400f74602fbcbce39c160a - languageName: node - linkType: hard - -"normalize-path@npm:^3.0.0": - version: 3.0.0 - resolution: "normalize-path@npm:3.0.0" - checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 - languageName: node - linkType: hard - -"npm-normalize-package-bin@npm:^3.0.0": - version: 3.0.1 - resolution: "npm-normalize-package-bin@npm:3.0.1" - checksum: de416d720ab22137a36292ff8a333af499ea0933ef2320a8c6f56a73b0f0448227fec4db5c890d702e26d21d04f271415eab6580b5546456861cc0c19498a4bf - languageName: node - linkType: hard - -"npm-run-all@npm:^4.1.5": - version: 4.1.5 - resolution: "npm-run-all@npm:4.1.5" - dependencies: - ansi-styles: ^3.2.1 - chalk: ^2.4.1 - cross-spawn: ^6.0.5 - memorystream: ^0.3.1 - minimatch: ^3.0.4 - pidtree: ^0.3.0 - read-pkg: ^3.0.0 - shell-quote: ^1.6.1 - string.prototype.padend: ^3.0.0 - bin: - npm-run-all: bin/npm-run-all/index.js - run-p: bin/run-p/index.js - run-s: bin/run-s/index.js - checksum: 373b72c6a36564da13c1642c1fd9bb4dcc756bce7a3648f883772f02661095319820834ff813762d2fee403e9b40c1cd27c8685807c107440f10eb19c006d4a0 - languageName: node - linkType: hard - -"npm-run-path@npm:^4.0.1": - version: 4.0.1 - resolution: "npm-run-path@npm:4.0.1" - dependencies: - path-key: ^3.0.0 - checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 - languageName: node - linkType: hard - -"npm-run-path@npm:^5.1.0": - version: 5.1.0 - resolution: "npm-run-path@npm:5.1.0" - dependencies: - path-key: ^4.0.0 - checksum: dc184eb5ec239d6a2b990b43236845332ef12f4e0beaa9701de724aa797fe40b6bbd0157fb7639d24d3ab13f5d5cf22d223a19c6300846b8126f335f788bee66 - languageName: node - linkType: hard - -"object-inspect@npm:^1.13.1, object-inspect@npm:^1.9.0": - version: 1.13.1 - resolution: "object-inspect@npm:1.13.1" - checksum: 7d9fa9221de3311dcb5c7c307ee5dc011cdd31dc43624b7c184b3840514e118e05ef0002be5388304c416c0eb592feb46e983db12577fc47e47d5752fbbfb61f - languageName: node - linkType: hard - -"object-keys@npm:^1.1.1": - version: 1.1.1 - resolution: "object-keys@npm:1.1.1" - checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a - languageName: node - linkType: hard - -"object-pairs@npm:^0.1.0": - version: 0.1.0 - resolution: "object-pairs@npm:0.1.0" - checksum: 8bde82dda701c84a27ba5bcf5e014283c6defbdab6df189af0b6582541711ed86ba2f0cce0a300a2220ba27b54ee11128c508982a191fa04f81770a7695b23d9 - languageName: node - linkType: hard - -"object-values@npm:^1.0.0": - version: 1.0.0 - resolution: "object-values@npm:1.0.0" - checksum: b86e7ef56349de1444e45b00f4aac7dcb76f2973f3e2cd5836cf86815b1ea4b2b3827bb2320cd5d1a50c78dd3068ce23cbcb5a1f024abe12296af8cf50d17a22 - languageName: node - linkType: hard - -"object.assign@npm:^4.1.4": - version: 4.1.4 - resolution: "object.assign@npm:4.1.4" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - has-symbols: ^1.0.3 - object-keys: ^1.1.1 - checksum: 76cab513a5999acbfe0ff355f15a6a125e71805fcf53de4e9d4e082e1989bdb81d1e329291e1e4e0ae7719f0e4ef80e88fb2d367ae60500d79d25a6224ac8864 - languageName: node - linkType: hard - -"once@npm:^1.3.0": - version: 1.4.0 - resolution: "once@npm:1.4.0" - dependencies: - wrappy: 1 - checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 - languageName: node - linkType: hard - -"onetime@npm:^5.1.0, onetime@npm:^5.1.2": - version: 5.1.2 - resolution: "onetime@npm:5.1.2" - dependencies: - mimic-fn: ^2.1.0 - checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 - languageName: node - linkType: hard - -"onetime@npm:^6.0.0": - version: 6.0.0 - resolution: "onetime@npm:6.0.0" - dependencies: - mimic-fn: ^4.0.0 - checksum: 0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 - languageName: node - linkType: hard - -"open@npm:^9.1.0": - version: 9.1.0 - resolution: "open@npm:9.1.0" - dependencies: - default-browser: ^4.0.0 - define-lazy-prop: ^3.0.0 - is-inside-container: ^1.0.0 - is-wsl: ^2.2.0 - checksum: 3993c0f61d51fed8ac290e99c9c3cf45d3b6cfb3e2aa2b74cafd312c3486c22fd81df16ac8f3ab91dd8a4e3e729a16fc2480cfc406c4833416cf908acf1ae7c9 - languageName: node - linkType: hard - -"optionator@npm:^0.9.3": - version: 0.9.3 - resolution: "optionator@npm:0.9.3" - dependencies: - "@aashutoshrathi/word-wrap": ^1.2.3 - deep-is: ^0.1.3 - fast-levenshtein: ^2.0.6 - levn: ^0.4.1 - prelude-ls: ^1.2.1 - type-check: ^0.4.0 - checksum: 09281999441f2fe9c33a5eeab76700795365a061563d66b098923eb719251a42bdbe432790d35064d0816ead9296dbeb1ad51a733edf4167c96bd5d0882e428a - languageName: node - linkType: hard - -"p-defer@npm:^1.0.0": - version: 1.0.0 - resolution: "p-defer@npm:1.0.0" - checksum: 4271b935c27987e7b6f229e5de4cdd335d808465604644cb7b4c4c95bef266735859a93b16415af8a41fd663ee9e3b97a1a2023ca9def613dba1bad2a0da0c7b - languageName: node - linkType: hard - -"p-limit@npm:^2.2.0": - version: 2.3.0 - resolution: "p-limit@npm:2.3.0" - dependencies: - p-try: ^2.0.0 - checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 - languageName: node - linkType: hard - -"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" - dependencies: - yocto-queue: ^0.1.0 - checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 - languageName: node - linkType: hard - -"p-locate@npm:^4.1.0": - version: 4.1.0 - resolution: "p-locate@npm:4.1.0" - dependencies: - p-limit: ^2.2.0 - checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 - languageName: node - linkType: hard - -"p-locate@npm:^5.0.0": - version: 5.0.0 - resolution: "p-locate@npm:5.0.0" - dependencies: - p-limit: ^3.0.2 - checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 - languageName: node - linkType: hard - -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: ^3.0.0 - checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c - languageName: node - linkType: hard - -"p-memoize@npm:4.0.1": - version: 4.0.1 - resolution: "p-memoize@npm:4.0.1" - dependencies: - mem: ^6.0.1 - mimic-fn: ^3.0.0 - checksum: 322294f7d8c6112cc961cf48f3e08eadc5fa0da7bc457db1a3f6f6c72d9745ae098255584d67a62367707551c514825917c86773e60c27cc341eabc9636d0a0d - languageName: node - linkType: hard - -"p-try@npm:^2.0.0": - version: 2.2.0 - resolution: "p-try@npm:2.2.0" - checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae - languageName: node - linkType: hard - -"parent-module@npm:^1.0.0": - version: 1.0.1 - resolution: "parent-module@npm:1.0.1" - dependencies: - callsites: ^3.0.0 - checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff - languageName: node - linkType: hard - -"parent-module@npm:^2.0.0": - version: 2.0.0 - resolution: "parent-module@npm:2.0.0" - dependencies: - callsites: ^3.1.0 - checksum: f131f13d687a938556a01033561fb1b274b39921eb4425c7a691f0d91dcfbe9b19759c2b8d425a3ee7c8a46874e57fa418a690643880c3c7c56827aba12f78dd - languageName: node - linkType: hard - -"parse-json@npm:^4.0.0": - version: 4.0.0 - resolution: "parse-json@npm:4.0.0" - dependencies: - error-ex: ^1.3.1 - json-parse-better-errors: ^1.0.1 - checksum: 0fe227d410a61090c247e34fa210552b834613c006c2c64d9a05cfe9e89cf8b4246d1246b1a99524b53b313e9ac024438d0680f67e33eaed7e6f38db64cfe7b5 - languageName: node - linkType: hard - -"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": - version: 5.2.0 - resolution: "parse-json@npm:5.2.0" - dependencies: - "@babel/code-frame": ^7.0.0 - error-ex: ^1.3.1 - json-parse-even-better-errors: ^2.3.0 - lines-and-columns: ^1.1.6 - checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 - languageName: node - linkType: hard - -"parse-ms@npm:^3.0.0": - version: 3.0.0 - resolution: "parse-ms@npm:3.0.0" - checksum: fc602bba093835562321a67a9d6c8c9687ca4f26a09459a77e07ebd7efddd1a5766725ec60eb0c83a2abe67f7a23808f7deb1c1226727776eaf7f9607ae09db2 - languageName: node - linkType: hard - -"parse-npm-tarball-url@npm:^3.0.0": - version: 3.0.0 - resolution: "parse-npm-tarball-url@npm:3.0.0" - dependencies: - semver: ^6.1.0 - checksum: 4a6c1048a86465570fe128d69aa4d5a4a9916cbdf86ac39e43fca3fea16554905cafa4b351bf6274ce131e698412fd89157b372abed29dfd8e6aea9e67b3a717 - languageName: node - linkType: hard - -"path-exists@npm:^4.0.0": - version: 4.0.0 - resolution: "path-exists@npm:4.0.0" - checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 - languageName: node - linkType: hard - -"path-is-absolute@npm:^1.0.0": - version: 1.0.1 - resolution: "path-is-absolute@npm:1.0.1" - checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 - languageName: node - linkType: hard - -"path-key@npm:^2.0.1": - version: 2.0.1 - resolution: "path-key@npm:2.0.1" - checksum: f7ab0ad42fe3fb8c7f11d0c4f849871e28fbd8e1add65c370e422512fc5887097b9cf34d09c1747d45c942a8c1e26468d6356e2df3f740bf177ab8ca7301ebfd - languageName: node - linkType: hard - -"path-key@npm:^3.0.0, path-key@npm:^3.1.0": - version: 3.1.1 - resolution: "path-key@npm:3.1.1" - checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 - languageName: node - linkType: hard - -"path-key@npm:^4.0.0": - version: 4.0.0 - resolution: "path-key@npm:4.0.0" - checksum: 8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 - languageName: node - linkType: hard - -"path-parse@npm:^1.0.7": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a - languageName: node - linkType: hard - -"path-scurry@npm:^1.10.1": - version: 1.10.1 - resolution: "path-scurry@npm:1.10.1" - dependencies: - lru-cache: ^9.1.1 || ^10.0.0 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 - languageName: node - linkType: hard - -"path-temp@npm:^2.1.0": - version: 2.1.0 - resolution: "path-temp@npm:2.1.0" - dependencies: - unique-string: ^2.0.0 - checksum: ad28022a9c807d17d729c3ee265cd51a36f2d0283c9b1daee02dfd84fa2e4944b93e0a8d07bd5c2ed678c3c6c048d011c1817a181f6a3f03cd3a9648faef1b7d - languageName: node - linkType: hard - -"path-type@npm:^3.0.0": - version: 3.0.0 - resolution: "path-type@npm:3.0.0" - dependencies: - pify: ^3.0.0 - checksum: 735b35e256bad181f38fa021033b1c33cfbe62ead42bb2222b56c210e42938eecb272ae1949f3b6db4ac39597a61b44edd8384623ec4d79bfdc9a9c0f12537a6 - languageName: node - linkType: hard - -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 - languageName: node - linkType: hard - -"path-type@npm:^5.0.0": - version: 5.0.0 - resolution: "path-type@npm:5.0.0" - checksum: 15ec24050e8932c2c98d085b72cfa0d6b4eeb4cbde151a0a05726d8afae85784fc5544f733d8dfc68536587d5143d29c0bd793623fad03d7e61cc00067291cd5 - languageName: node - linkType: hard - -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 - languageName: node - linkType: hard - -"picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf - languageName: node - linkType: hard - -"pidtree@npm:0.6.0": - version: 0.6.0 - resolution: "pidtree@npm:0.6.0" - bin: - pidtree: bin/pidtree.js - checksum: 8fbc073ede9209dd15e80d616e65eb674986c93be49f42d9ddde8dbbd141bb53d628a7ca4e58ab5c370bb00383f67d75df59a9a226dede8fa801267a7030c27a - languageName: node - linkType: hard - -"pidtree@npm:^0.3.0": - version: 0.3.1 - resolution: "pidtree@npm:0.3.1" - bin: - pidtree: bin/pidtree.js - checksum: eb49025099f1af89a4696f7673351421f13420f3397b963c901fe23a1c9c2ff50f4750321970d4472c0ffbb065e4a6c3c27f75e226cc62284b19e21d32ce7012 - languageName: node - linkType: hard - -"pify@npm:^3.0.0": - version: 3.0.0 - resolution: "pify@npm:3.0.0" - checksum: 6cdcbc3567d5c412450c53261a3f10991665d660961e06605decf4544a61a97a54fefe70a68d5c37080ff9d6f4cf51444c90198d1ba9f9309a6c0d6e9f5c4fde - languageName: node - linkType: hard - -"prelude-ls@npm:^1.2.1": - version: 1.2.1 - resolution: "prelude-ls@npm:1.2.1" - checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a - languageName: node - linkType: hard - -"prettier-linter-helpers@npm:^1.0.0": - version: 1.0.0 - resolution: "prettier-linter-helpers@npm:1.0.0" - dependencies: - fast-diff: ^1.1.2 - checksum: 00ce8011cf6430158d27f9c92cfea0a7699405633f7f1d4a45f07e21bf78e99895911cbcdc3853db3a824201a7c745bd49bfea8abd5fb9883e765a90f74f8392 - languageName: node - linkType: hard - -"prettier@npm:^3.1.0": - version: 3.1.0 - resolution: "prettier@npm:3.1.0" - bin: - prettier: bin/prettier.cjs - checksum: 44b556bd56f74d7410974fbb2418bb4e53a894d3e7b42f6f87779f69f27a6c272fa7fc27cec0118cd11730ef3246478052e002cbd87e9a253f9cd04a56aa7d9b - languageName: node - linkType: hard - -"pretty-ms@npm:8.0.0": - version: 8.0.0 - resolution: "pretty-ms@npm:8.0.0" - dependencies: - parse-ms: ^3.0.0 - checksum: b7d2a8182887af0e5ab93f9df331f10db9b8eda86855e2de115eb01a6c501bde5631a8813b1b0abdd7d045e79b08ae875369a8fd279a3dacd6d9e572bdd3bfa6 - languageName: node - linkType: hard - -"proc-log@npm:^3.0.0": - version: 3.0.0 - resolution: "proc-log@npm:3.0.0" - checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02 - languageName: node - linkType: hard - -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: ^2.0.2 - retry: ^0.12.0 - checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 - languageName: node - linkType: hard - -"punycode@npm:^2.1.0": - version: 2.3.1 - resolution: "punycode@npm:2.3.1" - checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 - languageName: node - linkType: hard - -"queue-microtask@npm:^1.2.2": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 - languageName: node - linkType: hard - -"quick-lru@npm:^4.0.1": - version: 4.0.1 - resolution: "quick-lru@npm:4.0.1" - checksum: bea46e1abfaa07023e047d3cf1716a06172c4947886c053ede5c50321893711577cb6119360f810cc3ffcd70c4d7db4069c3cee876b358ceff8596e062bd1154 - languageName: node - linkType: hard +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@babel/code-frame@^7.0.0": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@commitlint/cli@^18.4.3": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-18.6.1.tgz#78bffdfa00d6f01425d53096954993d83f2b343d" + integrity sha512-5IDE0a+lWGdkOvKH892HHAZgbAjcj1mT5QrfA/SVbLJV/BbBMGyKN0W5mhgjekPJJwEQdVNvhl9PwUacY58Usw== + dependencies: + "@commitlint/format" "^18.6.1" + "@commitlint/lint" "^18.6.1" + "@commitlint/load" "^18.6.1" + "@commitlint/read" "^18.6.1" + "@commitlint/types" "^18.6.1" + execa "^5.0.0" + lodash.isfunction "^3.0.9" + resolve-from "5.0.0" + resolve-global "1.0.0" + yargs "^17.0.0" + +"@commitlint/config-conventional@^18.4.3": + version "18.6.2" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-18.6.2.tgz#617f3ee761578040cade530631058699642cbd78" + integrity sha512-PcgSYg1AKGQIwDQKbaHtJsfqYy4uJTC7crLVZ83lfjcPaec4Pry2vLeaWej7ao2KsT20l9dWoMPpEGg8LWdUuA== + dependencies: + "@commitlint/types" "^18.6.1" + conventional-changelog-conventionalcommits "^7.0.2" + +"@commitlint/config-validator@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-18.6.1.tgz#e0d71a99c984a68586c7ae7afd3f52342022fae8" + integrity sha512-05uiToBVfPhepcQWE1ZQBR/Io3+tb3gEotZjnI4tTzzPk16NffN6YABgwFQCLmzZefbDcmwWqJWc2XT47q7Znw== + dependencies: + "@commitlint/types" "^18.6.1" + ajv "^8.11.0" + +"@commitlint/ensure@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-18.6.1.tgz#17141e083200ca94d8480dc23b0e8f8b1fd37b7f" + integrity sha512-BPm6+SspyxQ7ZTsZwXc7TRQL5kh5YWt3euKmEIBZnocMFkJevqs3fbLRb8+8I/cfbVcAo4mxRlpTPfz8zX7SnQ== + dependencies: + "@commitlint/types" "^18.6.1" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.upperfirst "^4.3.1" + +"@commitlint/execute-rule@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-18.6.1.tgz#18175e043fe6fb5fceea7b8530316c644f93dfe6" + integrity sha512-7s37a+iWyJiGUeMFF6qBlyZciUkF8odSAnHijbD36YDctLhGKoYltdvuJ/AFfRm6cBLRtRk9cCVPdsEFtt/2rg== + +"@commitlint/format@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-18.6.1.tgz#5f2b8b3ae4d8d80bd9239178e97df63e5b8d280a" + integrity sha512-K8mNcfU/JEFCharj2xVjxGSF+My+FbUHoqR+4GqPGrHNqXOGNio47ziiR4HQUPKtiNs05o8/WyLBoIpMVOP7wg== + dependencies: + "@commitlint/types" "^18.6.1" + chalk "^4.1.0" + +"@commitlint/is-ignored@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-18.6.1.tgz#4ee08ba91ff3defb06e0ef19259a9c6734a8d06e" + integrity sha512-MOfJjkEJj/wOaPBw5jFjTtfnx72RGwqYIROABudOtJKW7isVjFe9j0t8xhceA02QebtYf4P/zea4HIwnXg8rvA== + dependencies: + "@commitlint/types" "^18.6.1" + semver "7.6.0" + +"@commitlint/lint@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-18.6.1.tgz#fe3834636c99ee14534a8eb3832831ac362e9fd8" + integrity sha512-8WwIFo3jAuU+h1PkYe5SfnIOzp+TtBHpFr4S8oJWhu44IWKuVx6GOPux3+9H1iHOan/rGBaiacicZkMZuluhfQ== + dependencies: + "@commitlint/is-ignored" "^18.6.1" + "@commitlint/parse" "^18.6.1" + "@commitlint/rules" "^18.6.1" + "@commitlint/types" "^18.6.1" + +"@commitlint/load@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-18.6.1.tgz#fb79ed7ee8b5897a9b5c274c1e24eda9162df816" + integrity sha512-p26x8734tSXUHoAw0ERIiHyW4RaI4Bj99D8YgUlVV9SedLf8hlWAfyIFhHRIhfPngLlCe0QYOdRKYFt8gy56TA== + dependencies: + "@commitlint/config-validator" "^18.6.1" + "@commitlint/execute-rule" "^18.6.1" + "@commitlint/resolve-extends" "^18.6.1" + "@commitlint/types" "^18.6.1" + chalk "^4.1.0" + cosmiconfig "^8.3.6" + cosmiconfig-typescript-loader "^5.0.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + lodash.uniq "^4.5.0" + resolve-from "^5.0.0" + +"@commitlint/message@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-18.6.1.tgz#107bd40923ad23d2de56c92a68b179ebfb7e314e" + integrity sha512-VKC10UTMLcpVjMIaHHsY1KwhuTQtdIKPkIdVEwWV+YuzKkzhlI3aNy6oo1eAN6b/D2LTtZkJe2enHmX0corYRw== + +"@commitlint/parse@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-18.6.1.tgz#2946b814125e907b9c4d63d3e71d0c1b54b30b62" + integrity sha512-eS/3GREtvVJqGZrwAGRwR9Gdno3YcZ6Xvuaa+vUF8j++wsmxrA2En3n0ccfVO2qVOLJC41ni7jSZhQiJpMPGOQ== + dependencies: + "@commitlint/types" "^18.6.1" + conventional-changelog-angular "^7.0.0" + conventional-commits-parser "^5.0.0" + +"@commitlint/read@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-18.6.1.tgz#8c138311ed9749427920c369f6276be136f2aa50" + integrity sha512-ia6ODaQFzXrVul07ffSgbZGFajpe8xhnDeLIprLeyfz3ivQU1dIoHp7yz0QIorZ6yuf4nlzg4ZUkluDrGN/J/w== + dependencies: + "@commitlint/top-level" "^18.6.1" + "@commitlint/types" "^18.6.1" + git-raw-commits "^2.0.11" + minimist "^1.2.6" + +"@commitlint/resolve-extends@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-18.6.1.tgz#f0572c682fc24dbabe2e0f42873261e0fa42c91a" + integrity sha512-ifRAQtHwK+Gj3Bxj/5chhc4L2LIc3s30lpsyW67yyjsETR6ctHAHRu1FSpt0KqahK5xESqoJ92v6XxoDRtjwEQ== + dependencies: + "@commitlint/config-validator" "^18.6.1" + "@commitlint/types" "^18.6.1" + import-fresh "^3.0.0" + lodash.mergewith "^4.6.2" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + +"@commitlint/rules@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-18.6.1.tgz#da25aeffe6c0e1c7625e44f46089fb8860986caf" + integrity sha512-kguM6HxZDtz60v/zQYOe0voAtTdGybWXefA1iidjWYmyUUspO1zBPQEmJZ05/plIAqCVyNUTAiRPWIBKLCrGew== + dependencies: + "@commitlint/ensure" "^18.6.1" + "@commitlint/message" "^18.6.1" + "@commitlint/to-lines" "^18.6.1" + "@commitlint/types" "^18.6.1" + execa "^5.0.0" + +"@commitlint/to-lines@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-18.6.1.tgz#d28827a4a540c98eea1aae31dafd66f80b2f1b9e" + integrity sha512-Gl+orGBxYSNphx1+83GYeNy5N0dQsHBQ9PJMriaLQDB51UQHCVLBT/HBdOx5VaYksivSf5Os55TLePbRLlW50Q== + +"@commitlint/top-level@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-18.6.1.tgz#429fcb985e3beaba9b17e05c0ae61926c647baf0" + integrity sha512-HyiHQZUTf0+r0goTCDs/bbVv/LiiQ7AVtz6KIar+8ZrseB9+YJAIo8HQ2IC2QT1y3N1lbW6OqVEsTHjbT6hGSw== + dependencies: + find-up "^5.0.0" + +"@commitlint/types@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-18.6.1.tgz#7eb3ab2d799d9166fbb98b96b0744581e59a4ad4" + integrity sha512-gwRLBLra/Dozj2OywopeuHj2ac26gjGkz2cZ+86cTJOdtWfiRRr4+e77ZDAGc6MDWxaWheI+mAV5TLWWRwqrFg== + dependencies: + chalk "^4.1.0" + +"@cspell/cspell-bundled-dicts@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.3.2.tgz#649ed168a72cb49a7d83f3840ab6933a8beba68d" + integrity sha512-3ubOgz1/MDixJbq//0rQ2omB3cSdhVJDviERZeiREGz4HOq84aaK1Fqbw5SjNZHvhpoq+AYXm6kJbIAH8YhKgg== + dependencies: + "@cspell/dict-ada" "^4.0.2" + "@cspell/dict-aws" "^4.0.1" + "@cspell/dict-bash" "^4.1.3" + "@cspell/dict-companies" "^3.0.29" + "@cspell/dict-cpp" "^5.0.10" + "@cspell/dict-cryptocurrencies" "^5.0.0" + "@cspell/dict-csharp" "^4.0.2" + "@cspell/dict-css" "^4.0.12" + "@cspell/dict-dart" "^2.0.3" + "@cspell/dict-django" "^4.1.0" + "@cspell/dict-docker" "^1.1.7" + "@cspell/dict-dotnet" "^5.0.0" + "@cspell/dict-elixir" "^4.0.3" + "@cspell/dict-en-common-misspellings" "^2.0.0" + "@cspell/dict-en-gb" "1.1.33" + "@cspell/dict-en_us" "^4.3.13" + "@cspell/dict-filetypes" "^3.0.3" + "@cspell/dict-fonts" "^4.0.0" + "@cspell/dict-fsharp" "^1.0.1" + "@cspell/dict-fullstack" "^3.1.5" + "@cspell/dict-gaming-terms" "^1.0.4" + "@cspell/dict-git" "^3.0.0" + "@cspell/dict-golang" "^6.0.5" + "@cspell/dict-haskell" "^4.0.1" + "@cspell/dict-html" "^4.0.5" + "@cspell/dict-html-symbol-entities" "^4.0.0" + "@cspell/dict-java" "^5.0.6" + "@cspell/dict-k8s" "^1.0.2" + "@cspell/dict-latex" "^4.0.0" + "@cspell/dict-lorem-ipsum" "^4.0.0" + "@cspell/dict-lua" "^4.0.3" + "@cspell/dict-makefile" "^1.0.0" + "@cspell/dict-node" "^4.0.3" + "@cspell/dict-npm" "^5.0.14" + "@cspell/dict-php" "^4.0.5" + "@cspell/dict-powershell" "^5.0.3" + "@cspell/dict-public-licenses" "^2.0.5" + "@cspell/dict-python" "^4.1.11" + "@cspell/dict-r" "^2.0.1" + "@cspell/dict-ruby" "^5.0.2" + "@cspell/dict-rust" "^4.0.1" + "@cspell/dict-scala" "^5.0.0" + "@cspell/dict-software-terms" "^3.3.15" + "@cspell/dict-sql" "^2.1.3" + "@cspell/dict-svelte" "^1.0.2" + "@cspell/dict-swift" "^2.0.1" + "@cspell/dict-typescript" "^3.1.2" + "@cspell/dict-vue" "^3.0.0" + +"@cspell/cspell-json-reporter@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.3.2.tgz#314f7b7deb465a7b94b03405c3498d9b96d410ab" + integrity sha512-gHSz4jXMJPcxx+lOGfXhHuoyenAWQ8PVA/atHFrWYKo1LzKTbpkEkrsDnlX8QNJubc3EMH63Uy+lOIaFDVyHiQ== + dependencies: + "@cspell/cspell-types" "8.3.2" + +"@cspell/cspell-pipe@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-pipe/-/cspell-pipe-8.3.2.tgz#72b986c6c03ed9894d5ddafdcb435973336216b9" + integrity sha512-GZmDwvQGOjQi3IjD4k9xXeVTDANczksOsgVKb3v2QZk9mR4Qj8c6Uarjd4AgSiIhu/wBliJfzr5rWFJu4X2VfQ== + +"@cspell/cspell-resolver@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-resolver/-/cspell-resolver-8.3.2.tgz#e4a981ed8fc2029804d8fa5847e47934a26c5c86" + integrity sha512-w2Tmb95bzdEz9L4W5qvsP5raZbyEzKL7N2ksU/+yh8NEJcTuExmAl/nMnb3aIk7m2b+kPHnMOcJuwfUMLmyv4A== + dependencies: + global-directory "^4.0.1" + +"@cspell/cspell-service-bus@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-service-bus/-/cspell-service-bus-8.3.2.tgz#b1c6620232c22c0a7c8b68051e524963285f4768" + integrity sha512-skTHNyVi74//W/O+f4IauDhm6twA9S2whkylonsIzPxEl4Pn3y2ZEMXNki/MWUwZfDIzKKSxlcREH61g7zCvhg== + +"@cspell/cspell-types@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-types/-/cspell-types-8.3.2.tgz#35a6d0f1a4c7c2a8a5275bcd41dacf85618f44c3" + integrity sha512-qS/gWd9ItOrN6ZX5pwC9lJjnBoyiAyhxYq0GUXuV892LQvwrBmECGk6KhsA1lPW7JJS7o57YTAS1jmXnmXMEpg== + +"@cspell/dict-ada@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-ada/-/dict-ada-4.0.2.tgz#8da2216660aeb831a0d9055399a364a01db5805a" + integrity sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA== + +"@cspell/dict-aws@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-aws/-/dict-aws-4.0.1.tgz#a0e758531ae81792b928a3f406618296291a658a" + integrity sha512-NXO+kTPQGqaaJKa4kO92NAXoqS+i99dQzf3/L1BxxWVSBS3/k1f3uhmqIh7Crb/n22W793lOm0D9x952BFga3Q== + +"@cspell/dict-bash@^4.1.3": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-bash/-/dict-bash-4.1.3.tgz#25fba40825ac10083676ab2c777e471c3f71b36e" + integrity sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw== + +"@cspell/dict-companies@^3.0.29": + version "3.0.31" + resolved "https://registry.yarnpkg.com/@cspell/dict-companies/-/dict-companies-3.0.31.tgz#f0dacabc5308096c0f12db8a8b802ece604d6bf7" + integrity sha512-hKVpV/lcGKP4/DpEPS8P4osPvFH/YVLJaDn9cBIOH6/HSmL5LbFgJNKpMGaYRbhm2FEX56MKE3yn/MNeNYuesQ== + +"@cspell/dict-cpp@^5.0.10": + version "5.1.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-cpp/-/dict-cpp-5.1.3.tgz#c0c34ccdecc3ff954877a56dbbf07a7bf53b218e" + integrity sha512-sqnriXRAInZH9W75C+APBh6dtben9filPqVbIsiRMUXGg+s02ekz0z6LbS7kXeJ5mD2qXoMLBrv13qH2eIwutQ== + +"@cspell/dict-cryptocurrencies@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-5.0.0.tgz#19fbc7bdbec76ce64daf7d53a6d0f3cfff7d0038" + integrity sha512-Z4ARIw5+bvmShL+4ZrhDzGhnc9znaAGHOEMaB/GURdS/jdoreEDY34wdN0NtdLHDO5KO7GduZnZyqGdRoiSmYA== + +"@cspell/dict-csharp@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-csharp/-/dict-csharp-4.0.2.tgz#e55659dbe594e744d86b1baf0f3397fe57b1e283" + integrity sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g== + +"@cspell/dict-css@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@cspell/dict-css/-/dict-css-4.0.12.tgz#59abf3512ae729835c933c38f64a3d8a5f09ce3d" + integrity sha512-vGBgPM92MkHQF5/2jsWcnaahOZ+C6OE/fPvd5ScBP72oFY9tn5GLuomcyO0z8vWCr2e0nUSX1OGimPtcQAlvSw== + +"@cspell/dict-dart@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-dart/-/dict-dart-2.0.3.tgz#75e7ffe47d5889c2c831af35acdd92ebdbd4cf12" + integrity sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw== + +"@cspell/dict-data-science@^1.0.11": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@cspell/dict-data-science/-/dict-data-science-1.0.11.tgz#4eabba75c21d27253c1114b4fbbade0ead739ffc" + integrity sha512-TaHAZRVe0Zlcc3C23StZqqbzC0NrodRwoSAc8dis+5qLeLLnOCtagYQeROQvDlcDg3X/VVEO9Whh4W/z4PAmYQ== + +"@cspell/dict-django@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-django/-/dict-django-4.1.0.tgz#2d4b765daf3c83e733ef3e06887ea34403a4de7a" + integrity sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w== + +"@cspell/dict-docker@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@cspell/dict-docker/-/dict-docker-1.1.7.tgz#bcf933283fbdfef19c71a642e7e8c38baf9014f2" + integrity sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A== + +"@cspell/dict-dotnet@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-dotnet/-/dict-dotnet-5.0.0.tgz#13690aafe14b240ad17a30225ac1ec29a5a6a510" + integrity sha512-EOwGd533v47aP5QYV8GlSSKkmM9Eq8P3G/eBzSpH3Nl2+IneDOYOBLEUraHuiCtnOkNsz0xtZHArYhAB2bHWAw== + +"@cspell/dict-elixir@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-elixir/-/dict-elixir-4.0.3.tgz#57c25843e46cf3463f97da72d9ef8e37c818296f" + integrity sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q== + +"@cspell/dict-en-common-misspellings@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.0.tgz#708f424d75dc65237a6fcb8d253bc1e7ab641380" + integrity sha512-NOg8dlv37/YqLkCfBs5OXeJm/Wcfb/CzeOmOZJ2ZXRuxwsNuolb4TREUce0yAXRqMhawahY5TSDRJJBgKjBOdw== + +"@cspell/dict-en-gb@1.1.33": + version "1.1.33" + resolved "https://registry.yarnpkg.com/@cspell/dict-en-gb/-/dict-en-gb-1.1.33.tgz#7f1fd90fc364a5cb77111b5438fc9fcf9cc6da0e" + integrity sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g== + +"@cspell/dict-en_us@^4.3.13": + version "4.3.16" + resolved "https://registry.yarnpkg.com/@cspell/dict-en_us/-/dict-en_us-4.3.16.tgz#b04fd49524db9fe6d8a3919881a525b073453c06" + integrity sha512-fyNuAvYpkllmsMpfAJaMip250LRAnEDp2EZbkjYwAJXXjtgQ4/1yh6sLityxPMDtJZN65Eko+8rJzGJHez4zbA== + +"@cspell/dict-filetypes@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-filetypes/-/dict-filetypes-3.0.3.tgz#ab0723ca2f4d3d5674e9c9745efc9f144e49c905" + integrity sha512-J9UP+qwwBLfOQ8Qg9tAsKtSY/WWmjj21uj6zXTI9hRLD1eG1uUOLcfVovAmtmVqUWziPSKMr87F6SXI3xmJXgw== + +"@cspell/dict-fonts@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-fonts/-/dict-fonts-4.0.0.tgz#9bc8beb2a7b068b4fdb45cb994b36fd184316327" + integrity sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q== + +"@cspell/dict-fsharp@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-fsharp/-/dict-fsharp-1.0.1.tgz#d62c699550a39174f182f23c8c1330a795ab5f53" + integrity sha512-23xyPcD+j+NnqOjRHgW3IU7Li912SX9wmeefcY0QxukbAxJ/vAN4rBpjSwwYZeQPAn3fxdfdNZs03fg+UM+4yQ== + +"@cspell/dict-fullstack@^3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-fullstack/-/dict-fullstack-3.1.5.tgz#35d18678161f214575cc613dd95564e05422a19c" + integrity sha512-6ppvo1dkXUZ3fbYn/wwzERxCa76RtDDl5Afzv2lijLoijGGUw5yYdLBKJnx8PJBGNLh829X352ftE7BElG4leA== + +"@cspell/dict-gaming-terms@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.5.tgz#d6ca40eb34a4c99847fd58a7354cd2c651065156" + integrity sha512-C3riccZDD3d9caJQQs1+MPfrUrQ+0KHdlj9iUR1QD92FgTOF6UxoBpvHUUZ9YSezslcmpFQK4xQQ5FUGS7uWfw== + +"@cspell/dict-git@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-git/-/dict-git-3.0.0.tgz#c275af86041a2b59a7facce37525e2af05653b95" + integrity sha512-simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw== + +"@cspell/dict-golang@^6.0.5": + version "6.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-golang/-/dict-golang-6.0.5.tgz#4dd2e2fda419730a21fb77ade3b90241ad4a5bcc" + integrity sha512-w4mEqGz4/wV+BBljLxduFNkMrd3rstBNDXmoX5kD4UTzIb4Sy0QybWCtg2iVT+R0KWiRRA56QKOvBsgXiddksA== + +"@cspell/dict-haskell@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-haskell/-/dict-haskell-4.0.1.tgz#e9fca7c452411ff11926e23ffed2b50bb9b95e47" + integrity sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ== + +"@cspell/dict-html-symbol-entities@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz#4d86ac18a4a11fdb61dfb6f5929acd768a52564f" + integrity sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw== + +"@cspell/dict-html@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-html/-/dict-html-4.0.5.tgz#03a5182148d80e6c25f71339dbb2b7c5b9894ef8" + integrity sha512-p0brEnRybzSSWi8sGbuVEf7jSTDmXPx7XhQUb5bgG6b54uj+Z0Qf0V2n8b/LWwIPJNd1GygaO9l8k3HTCy1h4w== + +"@cspell/dict-java@^5.0.6": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@cspell/dict-java/-/dict-java-5.0.6.tgz#2462d6fc15f79ec15eb88ecf875b6ad2a7bf7a6a" + integrity sha512-kdE4AHHHrixyZ5p6zyms1SLoYpaJarPxrz8Tveo6gddszBVVwIUZ+JkQE1bWNLK740GWzIXdkznpUfw1hP9nXw== + +"@cspell/dict-k8s@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-k8s/-/dict-k8s-1.0.2.tgz#b19e66f4ac8a4264c0f3981ac6e23e88a60f1c91" + integrity sha512-tLT7gZpNPnGa+IIFvK9SP1LrSpPpJ94a/DulzAPOb1Q2UBFwdpFd82UWhio0RNShduvKG/WiMZf/wGl98pn+VQ== + +"@cspell/dict-latex@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-latex/-/dict-latex-4.0.0.tgz#85054903db834ea867174795d162e2a8f0e9c51e" + integrity sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ== + +"@cspell/dict-lorem-ipsum@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.0.tgz#2793a5dbfde474a546b0caecc40c38fdf076306e" + integrity sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw== + +"@cspell/dict-lua@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-lua/-/dict-lua-4.0.3.tgz#2d23c8f7e74b4e62000678d80e7d1ebb10b003e0" + integrity sha512-lDHKjsrrbqPaea13+G9s0rtXjMO06gPXPYRjRYawbNmo4E/e3XFfVzeci3OQDQNDmf2cPOwt9Ef5lu2lDmwfJg== + +"@cspell/dict-makefile@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-makefile/-/dict-makefile-1.0.0.tgz#5afb2910873ebbc01ab8d9c38661c4c93d0e5a40" + integrity sha512-3W9tHPcSbJa6s0bcqWo6VisEDTSN5zOtDbnPabF7rbyjRpNo0uHXHRJQF8gAbFzoTzBBhgkTmrfSiuyQm7vBUQ== + +"@cspell/dict-node@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-node/-/dict-node-4.0.3.tgz#5ae0222d72871e82978049f8e11ea627ca42fca3" + integrity sha512-sFlUNI5kOogy49KtPg8SMQYirDGIAoKBO3+cDLIwD4MLdsWy1q0upc7pzGht3mrjuyMiPRUV14Bb0rkVLrxOhg== + +"@cspell/dict-npm@^5.0.14": + version "5.0.15" + resolved "https://registry.yarnpkg.com/@cspell/dict-npm/-/dict-npm-5.0.15.tgz#c1d1646011fd0eb8ee119b481818a92223c459d1" + integrity sha512-sX0X5YWNW54F4baW7b5JJB6705OCBIZtUqjOghlJNORS5No7QY1IX1zc5FxNNu4gsaCZITAmfMi4ityXEsEThA== + +"@cspell/dict-php@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@cspell/dict-php/-/dict-php-4.0.6.tgz#fcdee4d850f279b2757eb55c4f69a3a221ac1f7e" + integrity sha512-ySAXisf7twoVFZqBV2o/DKiCLIDTHNqfnj0EfH9OoOUR7HL3rb6zJkm0viLUFDO2G/8SyIi6YrN/6KX+Scjjjg== + +"@cspell/dict-powershell@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-powershell/-/dict-powershell-5.0.3.tgz#7bceb4e7db39f87479a6d2af3a033ce26796ae49" + integrity sha512-lEdzrcyau6mgzu1ie98GjOEegwVHvoaWtzQnm1ie4DyZgMr+N6D0Iyj1lzvtmt0snvsDFa5F2bsYzf3IMKcpcA== + +"@cspell/dict-public-licenses@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.5.tgz#86948b29bd36184943955eaa80bf594488c4dd8a" + integrity sha512-91HK4dSRri/HqzAypHgduRMarJAleOX5NugoI8SjDLPzWYkwZ1ftuCXSk+fy8DLc3wK7iOaFcZAvbjmnLhVs4A== + +"@cspell/dict-python@^4.1.11": + version "4.1.11" + resolved "https://registry.yarnpkg.com/@cspell/dict-python/-/dict-python-4.1.11.tgz#4e339def01bf468b32d459c46ecb6894970b7eb8" + integrity sha512-XG+v3PumfzUW38huSbfT15Vqt3ihNb462ulfXifpQllPok5OWynhszCLCRQjQReV+dgz784ST4ggRxW452/kVg== + dependencies: + "@cspell/dict-data-science" "^1.0.11" + +"@cspell/dict-r@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-r/-/dict-r-2.0.1.tgz#73474fb7cce45deb9094ebf61083fbf5913f440a" + integrity sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA== + +"@cspell/dict-ruby@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-ruby/-/dict-ruby-5.0.2.tgz#cf1a71380c633dec0857143d3270cb503b10679a" + integrity sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g== + +"@cspell/dict-rust@^4.0.1": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-rust/-/dict-rust-4.0.2.tgz#e9111f0105ee6d836a1be8314f47347fd9f8fc3a" + integrity sha512-RhziKDrklzOntxAbY3AvNR58wnFGIo3YS8+dNeLY36GFuWOvXDHFStYw5Pod4f/VXbO/+1tXtywCC4zWfB2p1w== + +"@cspell/dict-scala@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-scala/-/dict-scala-5.0.0.tgz#b64365ad559110a36d44ccd90edf7151ea648022" + integrity sha512-ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ== + +"@cspell/dict-software-terms@^3.3.15", "@cspell/dict-software-terms@^3.3.17": + version "3.3.18" + resolved "https://registry.yarnpkg.com/@cspell/dict-software-terms/-/dict-software-terms-3.3.18.tgz#f25863c316eea195d74b170d41711e2c7402e9ca" + integrity sha512-LJZGGMGqS8KzgXJrSMs3T+6GoqHG9z8Bc+rqLzLzbtoR3FbsMasE9U8oP2PmS3q7jJLFjQkzmg508DrcuZuo2g== + +"@cspell/dict-sql@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-sql/-/dict-sql-2.1.3.tgz#8d9666a82e35b310d0be4064032c0d891fbd2702" + integrity sha512-SEyTNKJrjqD6PAzZ9WpdSu6P7wgdNtGV2RV8Kpuw1x6bV+YsSptuClYG+JSdRExBTE6LwIe1bTklejUp3ZP8TQ== + +"@cspell/dict-svelte@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-svelte/-/dict-svelte-1.0.2.tgz#0c866b08a7a6b33bbc1a3bdbe6a1b484ca15cdaa" + integrity sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q== + +"@cspell/dict-swift@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-swift/-/dict-swift-2.0.1.tgz#06ec86e52e9630c441d3c19605657457e33d7bb6" + integrity sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw== + +"@cspell/dict-typescript@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-typescript/-/dict-typescript-3.1.2.tgz#14d05f54db2984feaa24ea133b583d19c04cc104" + integrity sha512-lcNOYWjLUvDZdLa0UMNd/LwfVdxhE9rKA+agZBGjL3lTA3uNvH7IUqSJM/IXhJoBpLLMVEOk8v1N9xi+vDuCdA== + +"@cspell/dict-vue@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-vue/-/dict-vue-3.0.0.tgz#68ccb432ad93fcb0fd665352d075ae9a64ea9250" + integrity sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A== + +"@cspell/dynamic-import@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/dynamic-import/-/dynamic-import-8.3.2.tgz#96fea6b1139164449a8ef92530de670d4c2fb36e" + integrity sha512-4t0xM5luA3yQhar2xWvYK4wQSDB2r0u8XkpzzJqd57MnJXd7uIAxI0awGUrDXukadRaCo0tDIlMUBemH48SNVg== + dependencies: + import-meta-resolve "^4.0.0" + +"@cspell/strong-weak-map@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/strong-weak-map/-/strong-weak-map-8.3.2.tgz#5a9490e042bbc472089817b50cf51262dfedef65" + integrity sha512-Mte/2000ap278kRYOUhiGWI7MNr1+A7WSWJmlcdP4CAH5SO20sZI3/cyZLjJJEyapdhK5vaP1L5J9sUcVDHd3A== + +"@ericcornelissen/bash-parser@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@ericcornelissen/bash-parser/-/bash-parser-0.5.2.tgz#5eb3bc52020d97fbaebc63b5168ca0aa0b2e8418" + integrity sha512-4pIMTa1nEFfMXitv7oaNEWOdM+zpOZavesa5GaiWTgda6Zk32CFGxjUp/iIaN0PwgUW1yTq/fztSjbpE8SLGZQ== + dependencies: + array-last "^1.1.1" + babylon "^6.9.1" + compose-function "^3.0.3" + deep-freeze "0.0.1" + filter-iterator "0.0.1" + filter-obj "^1.1.0" + has-own-property "^0.1.0" + identity-function "^1.0.0" + is-iterable "^1.1.0" + iterable-lookahead "^1.0.0" + lodash.curry "^4.1.1" + magic-string "^0.16.0" + map-obj "^2.0.0" + object-pairs "^0.1.0" + object-values "^1.0.0" + reverse-arguments "^1.0.0" + shell-quote-word "^1.0.1" + to-pascal-case "^1.0.0" + unescape-js "^1.0.5" + +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== + +"@humanwhocodes/config-array@^0.11.13": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/git@^5.0.0": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.4.tgz#d18c50f99649e6e89e8b427318134f582498700c" + integrity sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ== + dependencies: + "@npmcli/promise-spawn" "^7.0.0" + lru-cache "^10.0.1" + npm-pick-manifest "^9.0.0" + proc-log "^3.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^4.0.0" + +"@npmcli/map-workspaces@3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz#15ad7d854292e484f7ba04bc30187a8320dba799" + integrity sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg== + dependencies: + "@npmcli/name-from-folder" "^2.0.0" + glob "^10.2.2" + minimatch "^9.0.0" + read-package-json-fast "^3.0.0" + +"@npmcli/name-from-folder@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" + integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg== + +"@npmcli/package-json@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.0.0.tgz#77d0f8b17096763ccbd8af03b7117ba6e34d6e91" + integrity sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g== + dependencies: + "@npmcli/git" "^5.0.0" + glob "^10.2.2" + hosted-git-info "^7.0.0" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^6.0.0" + proc-log "^3.0.0" + semver "^7.5.3" + +"@npmcli/promise-spawn@^7.0.0": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz#a836de2f42a2245d629cf6fbb8dd6c74c74c55af" + integrity sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg== + dependencies: + which "^4.0.0" + +"@pkgjs/parseargs@0.11.0", "@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + +"@pnpm/constants@7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@pnpm/constants/-/constants-7.1.1.tgz#3db261425fe15425aa213a2b003f4f60c9378b43" + integrity sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw== + +"@pnpm/core-loggers@9.0.6": + version "9.0.6" + resolved "https://registry.yarnpkg.com/@pnpm/core-loggers/-/core-loggers-9.0.6.tgz#59a65822cc5ef901dad5aca5b8f1f9562cf91e2a" + integrity sha512-iK67SGbp+06bA/elpg51wygPFjNA7JKHtKkpLxqXXHw+AjFFBC3f2OznJsCIuDK6HdGi5UhHLYqo5QxJ2gMqJQ== + dependencies: + "@pnpm/types" "9.4.2" + +"@pnpm/error@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@pnpm/error/-/error-5.0.2.tgz#153d18fe9eeaeb02e48e9dc45b042f4c962b3822" + integrity sha512-0TEm+tWNYm+9uh6DSKyRbv8pv/6b4NL0PastLvMxIoqZbBZ5Zj1cYi332R9xsSUi31ZOsu2wpgn/bC7DA9hrjg== + dependencies: + "@pnpm/constants" "7.1.1" + +"@pnpm/fetching-types@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@pnpm/fetching-types/-/fetching-types-5.0.0.tgz#36807c4bea4697d5ad7519d80929666a91c0083d" + integrity sha512-o9gdO1v8Uc5P2fBBuW6GSpfTqIivQmQlqjQJdFiQX0m+tgxlrMRneIg392jZuc6fk7kFqjLheInlslgJfwY+4Q== + dependencies: + "@zkochan/retry" "^0.2.0" + node-fetch "3.0.0-beta.9" + +"@pnpm/graceful-fs@3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@pnpm/graceful-fs/-/graceful-fs-3.2.0.tgz#241846c42c23feff7421b8bd97d4039891003f12" + integrity sha512-vRoXJxscDpHak7YE9SqCkzfrayn+Lw+YueOeHIPEqkgokrHeYgYeONoc2kGh0ObHaRtNSsonozVfJ456kxLNvA== + dependencies: + graceful-fs "^4.2.11" + +"@pnpm/logger@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@pnpm/logger/-/logger-5.0.0.tgz#9ac8254d40d8d5b5e676742dc66b8cac1af380bf" + integrity sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw== + dependencies: + bole "^5.0.0" + ndjson "^2.0.0" + +"@pnpm/npm-package-arg@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@pnpm/npm-package-arg/-/npm-package-arg-1.0.0.tgz#2a27938f4d38c6cce5f3695fd1e7d5ed8929645e" + integrity sha512-oQYP08exi6mOPdAZZWcNIGS+KKPsnNwUBzSuAEGWuCcqwMAt3k/WVCqVIXzBxhO5sP2b43og69VHmPj6IroKqw== + dependencies: + hosted-git-info "^4.0.1" + semver "^7.3.5" + validate-npm-package-name "^4.0.0" + +"@pnpm/npm-resolver@18.1.0": + version "18.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/npm-resolver/-/npm-resolver-18.1.0.tgz#bbafcdf88391ee84e2dc78c2b599b54dbbc8f8e3" + integrity sha512-fUYKX/iHiHldL0VRVvkQI35YK2jWhZEkPO6rrGke8309+LKAo12v833nBttMDpQrtHefmqhB4mhCzQq6L2Xqmg== + dependencies: + "@pnpm/core-loggers" "9.0.6" + "@pnpm/error" "5.0.2" + "@pnpm/fetching-types" "5.0.0" + "@pnpm/graceful-fs" "3.2.0" + "@pnpm/resolve-workspace-range" "5.0.1" + "@pnpm/resolver-base" "11.1.0" + "@pnpm/types" "9.4.2" + "@zkochan/retry" "^0.2.0" + encode-registry "^3.0.1" + load-json-file "^6.2.0" + lru-cache "^10.0.2" + normalize-path "^3.0.0" + p-limit "^3.1.0" + p-memoize "4.0.1" + parse-npm-tarball-url "^3.0.0" + path-temp "^2.1.0" + ramda "npm:@pnpm/ramda@0.28.1" + rename-overwrite "^5.0.0" + semver "^7.5.4" + ssri "10.0.5" + version-selector-type "^3.0.0" + +"@pnpm/resolve-workspace-range@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@pnpm/resolve-workspace-range/-/resolve-workspace-range-5.0.1.tgz#839179560fbf5e565234e5dd1d65b79765d86f4c" + integrity sha512-yQ0pMthlw8rTgS/C9hrjne+NEnnSNevCjtdodd7i15I59jMBYciHifZ/vjg0NY+Jl+USTc3dBE+0h/4tdYjMKg== + dependencies: + semver "^7.4.0" + +"@pnpm/resolver-base@11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/resolver-base/-/resolver-base-11.1.0.tgz#e640ba9ae096bf05a0b905496a63509556322618" + integrity sha512-y2qKaj18pwe1VWc3YXEitdYFo+WqOOt60aqTUuOVkJAirUzz0DzuYh3Ifct4znYWPdgUXHaN5DMphNF5iL85rA== + dependencies: + "@pnpm/types" "9.4.2" + +"@pnpm/types@9.4.2": + version "9.4.2" + resolved "https://registry.yarnpkg.com/@pnpm/types/-/types-9.4.2.tgz#0a34c3c41d5452461d8d8958374a727f9c46cfb2" + integrity sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA== + +"@pnpm/workspace.pkgs-graph@^2.0.13": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@pnpm/workspace.pkgs-graph/-/workspace.pkgs-graph-2.0.14.tgz#3ea12b8d95987e64bc98876422ea7ad578cd022a" + integrity sha512-SBXXyWDkPEoaLTjLRyQzRHoBYH+P0NLcIjX1yPUxuJiMTvGOMzjpLWTuxYNVe/P0V0VQMrjpJFaJPjlViNLhzg== + dependencies: + "@pnpm/npm-package-arg" "^1.0.0" + "@pnpm/npm-resolver" "18.1.0" + "@pnpm/resolve-workspace-range" "5.0.1" + ramda "npm:@pnpm/ramda@0.28.1" + +"@sindresorhus/merge-streams@^2.1.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.2.1.tgz#82b5e1e135ef62ef8b522d6e7f43ad360a69f294" + integrity sha512-255V7MMIKw6aQ43Wbqp9HZ+VHn6acddERTLiiLnlcPLU9PdTq9Aijl12oklAgUEblLWye+vHLzmqBx6f2TGcZw== + +"@snyk/github-codeowners@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@snyk/github-codeowners/-/github-codeowners-1.1.0.tgz#45b99732c3c38b5f5b47e43d2b0c9db67a6d2bcc" + integrity sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw== + dependencies: + commander "^4.1.1" + ignore "^5.1.8" + p-map "^4.0.0" + +"@types/json-schema@^7.0.12": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/minimist@^1.2.0": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== + +"@types/node@^20.10.0": + version "20.11.19" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.19.tgz#b466de054e9cb5b3831bee38938de64ac7f81195" + integrity sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ== + dependencies: + undici-types "~5.26.4" + +"@types/normalize-package-data@^2.4.0": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + +"@types/semver@^7.5.0": + version "7.5.7" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.7.tgz#326f5fdda70d13580777bcaa1bc6fa772a5aef0e" + integrity sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg== + +"@typescript-eslint/eslint-plugin@^6.13.1": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" + integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== + dependencies: + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/type-utils" "6.21.0" + "@typescript-eslint/utils" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@^6.13.1": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" + integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== + dependencies: + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" + integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + +"@typescript-eslint/type-utils@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" + integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== + dependencies: + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/utils" "6.21.0" + debug "^4.3.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/types@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" + integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== + +"@typescript-eslint/typescript-estree@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" + integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "9.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" + integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + semver "^7.5.4" + +"@typescript-eslint/visitor-keys@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" + integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== + dependencies: + "@typescript-eslint/types" "6.21.0" + eslint-visitor-keys "^3.4.1" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@zkochan/retry@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@zkochan/retry/-/retry-0.2.0.tgz#cb52c9fce1976f3eed7b1979b739e70706f4a3d2" + integrity sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw== + +"@zkochan/rimraf@^2.1.2": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@zkochan/rimraf/-/rimraf-2.1.3.tgz#1074cb72d6e4997275285b04296a343b6ac7046b" + integrity sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A== + dependencies: + rimraf "^3.0.2" + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.11.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-escapes@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" + integrity sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw== + dependencies: + type-fest "^3.0.0" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +arity-n@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" + integrity sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ== + +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== + +array-last@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" + integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== + dependencies: + is-number "^4.0.0" + +array-timsort@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926" + integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== + +babylon@^6.9.1: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +bole@^5.0.0: + version "5.0.11" + resolved "https://registry.yarnpkg.com/bole/-/bole-5.0.11.tgz#c4a165975422daee6f576360e882a425c8e40617" + integrity sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ== + dependencies: + fast-safe-stringify "^2.0.7" + individual "^3.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +builtins@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0, callsites@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +chalk-template@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-1.1.0.tgz#ffc55db6dd745e9394b85327c8ac8466edb7a7b1" + integrity sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg== + dependencies: + chalk "^5.2.0" + +chalk@5.3.0, chalk@^5.2.0, chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +clear-module@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/clear-module/-/clear-module-4.1.2.tgz#5a58a5c9f8dccf363545ad7284cad3c887352a80" + integrity sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw== + dependencies: + parent-module "^2.0.0" + resolve-from "^5.0.0" + +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + +cli-truncate@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a" + integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== + dependencies: + slice-ansi "^5.0.0" + string-width "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +commander@11.1.0, commander@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + +commander@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +comment-json@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.2.3.tgz#50b487ebbf43abe44431f575ebda07d30d015365" + integrity sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw== + dependencies: + array-timsort "^1.0.3" + core-util-is "^1.0.3" + esprima "^4.0.1" + has-own-prop "^2.0.0" + repeat-string "^1.6.1" + +compare-func@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== + dependencies: + array-ify "^1.0.0" + dot-prop "^5.1.0" + +compose-function@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" + integrity sha512-xzhzTJ5eC+gmIzvZq+C3kCJHsp9os6tJkrigDRZclyGtOKINbZtE8n1Tzmeh32jW+BUDPbvZpibwvJHBLGMVwg== + dependencies: + arity-n "^1.0.4" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +configstore@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" + integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== + dependencies: + dot-prop "^6.0.1" + graceful-fs "^4.2.6" + unique-string "^3.0.0" + write-file-atomic "^3.0.3" + xdg-basedir "^5.0.1" + +conventional-changelog-angular@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" + integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== + dependencies: + compare-func "^2.0.0" + +conventional-changelog-conventionalcommits@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz#aa5da0f1b2543094889e8cf7616ebe1a8f5c70d5" + integrity sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w== + dependencies: + compare-func "^2.0.0" + +conventional-commits-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#57f3594b81ad54d40c1b4280f04554df28627d9a" + integrity sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA== + dependencies: + JSONStream "^1.3.5" + is-text-path "^2.0.0" + meow "^12.0.1" + split2 "^4.0.0" + +core-util-is@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig-typescript-loader@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz#0d3becfe022a871f7275ceb2397d692e06045dc8" + integrity sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA== + dependencies: + jiti "^1.19.1" + +cosmiconfig@^8.3.6: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +crypto-random-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" + integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== + dependencies: + type-fest "^1.0.1" + +cspell-config-lib@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-config-lib/-/cspell-config-lib-8.3.2.tgz#050a6d782072a810cb6655efe11c08c80ae7636b" + integrity sha512-Wc98XhBNLwDxnxCzMtgRJALI9a69cu3C5Gf1rGjNTKSFo9JYiQmju0Ur3z25Pkx9Sa86f+2IjvNCf33rUDSoBQ== + dependencies: + "@cspell/cspell-types" "8.3.2" + comment-json "^4.2.3" + yaml "^2.3.4" + +cspell-dictionary@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-dictionary/-/cspell-dictionary-8.3.2.tgz#6627a94501811a143f3b638e0e77f7262335dbd4" + integrity sha512-xyK95hO2BMPFxIo8zBwGml8035qOxSBdga1BMhwW/p2wDrQP8S4Cdm/54//tCDmKn6uRkFQvyOfWGaX2l8WMEg== + dependencies: + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-types" "8.3.2" + cspell-trie-lib "8.3.2" + fast-equals "^5.0.1" + gensequence "^6.0.0" + +cspell-gitignore@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-gitignore/-/cspell-gitignore-8.3.2.tgz#5cf244be494bf87257ca8715ac88b0849dd5fef3" + integrity sha512-3Qc9P5BVvl/cg//s2s+zIMGKcoH5v7oOtRgwn4UQry8yiyo19h0tiTKkSR574FMhF5NtcShTnwIwPSIXVBPFHA== + dependencies: + cspell-glob "8.3.2" + find-up-simple "^1.0.0" + +cspell-glob@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-8.3.2.tgz#4c208e4ddd5604d2871df534a3054c7a3fdc9998" + integrity sha512-KtIFxE+3l5dGEofND4/CdZffXP8XN1+XGQKxJ96lIzWsc01mkotfhxTkla6mgvfH039t7BsY/SWv0460KyGslQ== + dependencies: + micromatch "^4.0.5" + +cspell-grammar@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-grammar/-/cspell-grammar-8.3.2.tgz#69d7980c036c206745d5d417d32c95edaaff6107" + integrity sha512-tYCkOmRzJe1a6/R+8QGSwG7TwTgznLPqsHtepKzLmnS4YX54VXjKRI9zMARxXDzUVfyCSVdW5MyiY/0WTNoy+A== + dependencies: + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-types" "8.3.2" + +cspell-io@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-8.3.2.tgz#8ddd865fa9a1391852e3288789f5b2a6613239bd" + integrity sha512-WYpKsyBCQP0SY4gXnhW5fPuxcYchKYKG1PIXVV3ezFU4muSgW6GuLNbGuSfwv/8YNXRgFSN0e3hYH0rdBK2Aow== + dependencies: + "@cspell/cspell-service-bus" "8.3.2" + +cspell-lib@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-8.3.2.tgz#8225f8d3a20596bda4b9689a2ad958f7831f5a7d" + integrity sha512-wTvdaev/TyGB/ln6CVD1QbVs2D7/+QiajQ67S7yj1suLHM6YcNQQb/5sPAM8VPtj0E7PgwgPXf3bq18OtPvnFg== + dependencies: + "@cspell/cspell-bundled-dicts" "8.3.2" + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-resolver" "8.3.2" + "@cspell/cspell-types" "8.3.2" + "@cspell/dynamic-import" "8.3.2" + "@cspell/strong-weak-map" "8.3.2" + clear-module "^4.1.2" + comment-json "^4.2.3" + configstore "^6.0.0" + cspell-config-lib "8.3.2" + cspell-dictionary "8.3.2" + cspell-glob "8.3.2" + cspell-grammar "8.3.2" + cspell-io "8.3.2" + cspell-trie-lib "8.3.2" + fast-equals "^5.0.1" + gensequence "^6.0.0" + import-fresh "^3.3.0" + resolve-from "^5.0.0" + vscode-languageserver-textdocument "^1.0.11" + vscode-uri "^3.0.8" + +cspell-trie-lib@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-8.3.2.tgz#e1e8c9926f41a094bec7f0af85b931be06019fe7" + integrity sha512-8qh2FqzkLMwzlTlvO/5Z+89fhi30rrfekocpight/BmqKbE2XFJQD7wS2ml24e7q/rdHJLXVpJbY/V5mByucCA== + dependencies: + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-types" "8.3.2" + gensequence "^6.0.0" + +cspell@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell/-/cspell-8.3.2.tgz#56e7e919d87d38016b4c34b8c8ee745404c230a7" + integrity sha512-V8Ub3RO/a5lwSsltW/ib3Z3G/sczKtSpBBN1JChzbSCfEgaY2mJY8JW0BpkSV+Ug6uJitpXNOOaxa3Xr489i7g== + dependencies: + "@cspell/cspell-json-reporter" "8.3.2" + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-types" "8.3.2" + "@cspell/dynamic-import" "8.3.2" + chalk "^5.3.0" + chalk-template "^1.1.0" + commander "^11.1.0" + cspell-gitignore "8.3.2" + cspell-glob "8.3.2" + cspell-io "8.3.2" + cspell-lib "8.3.2" + fast-glob "^3.3.2" + fast-json-stable-stringify "^2.1.0" + file-entry-cache "^8.0.0" + get-stdin "^9.0.0" + semver "^7.5.4" + strip-ansi "^7.1.0" + vscode-uri "^3.0.8" + +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + +data-uri-to-buffer@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" + integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== + +debug@4.3.4, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decamelize-keys@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +deep-freeze@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" + integrity sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dot-prop@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +dotenv@^16.3.1: + version "16.4.4" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.4.tgz#a26e7bb95ebd36272ebb56edb80b826aecf224c1" + integrity sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +easy-table@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/easy-table/-/easy-table-1.2.0.tgz#ba9225d7138fee307bfd4f0b5bc3c04bdc7c54eb" + integrity sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww== + dependencies: + ansi-regex "^5.0.1" + optionalDependencies: + wcwidth "^1.0.1" + +emoji-regex@^10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" + integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encode-registry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/encode-registry/-/encode-registry-3.0.1.tgz#cb925d0db14ce59b18882b62c67133721b0846d1" + integrity sha512-6qOwkl1g0fv0DN3Y3ggr2EaZXN71aoAqPp3p/pVaWSBSIo+YjLOWN61Fva43oVyQNPf7kgm8lkudzlzojwE2jw== + dependencies: + mem "^8.0.0" + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.22.1, es-abstract@^1.22.3: + version "1.22.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.4.tgz#26eb2e7538c3271141f5754d31aabfdb215f27bf" + integrity sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.6" + call-bind "^1.0.7" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.2" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.1" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.0" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.1" + 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.14" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-set-tostringtag@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" + integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== + dependencies: + get-intrinsic "^1.2.2" + has-tostringtag "^1.0.0" + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +esbuild@^0.19.8, esbuild@~0.19.10: + version "0.19.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" + +escalade@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== + +eslint-plugin-prettier@^5.0.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== + dependencies: + prettier-linter-helpers "^1.0.0" + synckit "^0.8.6" + +eslint-plugin-sonarjs@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.23.0.tgz#0265bad801ea210951672ee3cafbcf5d456ada96" + integrity sha512-z44T3PBf9W7qQ/aR+NmofOTyg6HLhSEZOPD4zhStqBpLoMp8GYhFksuUBnCxbnf1nfISpKBVkQhiBLFI/F4Wlg== + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.54.0: + version "8.56.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.56.0" + "@humanwhocodes/config-array" "^0.11.13" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +execa@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-equals@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-5.0.1.tgz#a4eefe3c5d1c0d021aeed0bc10ba5e0c12ee405d" + integrity sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ== + +fast-glob@3.3.2, fast-glob@^3.2.9, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +fetch-blob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-2.1.2.tgz#a7805db1361bd44c1ef62bb57fb5fe8ea173ef3c" + integrity sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow== + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== + dependencies: + flat-cache "^4.0.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +filter-iterator@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/filter-iterator/-/filter-iterator-0.0.1.tgz#0a2ecf07d6c06f96bdeb6846f8e88b57b8da1f37" + integrity sha512-v4lhL7Qa8XpbW3LN46CEnmhGk3eHZwxfNl5at20aEkreesht4YKb/Ba3BUIbnPhAC/r3dmu7ABaGk6MAvh2alA== + +filter-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" + integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== + +find-up-simple@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-up-simple/-/find-up-simple-1.0.0.tgz#21d035fde9fdbd56c8f4d2f63f32fd93a1cfc368" + integrity sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw== + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat-cache@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.0.tgz#d12437636f83bb8a12b8f300c36fd1614e1c7224" + integrity sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA== + dependencies: + flatted "^3.2.9" + keyv "^4.5.4" + rimraf "^5.0.5" + +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +fs-extra@10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensequence@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gensequence/-/gensequence-6.0.0.tgz#ae46a0f89ebd7cc334e45cfb8f1c99a65248694e" + integrity sha512-8WwuywE9pokJRAcg2QFR/plk3cVPebSUqRPzpGQh3WQ0wIiHAw+HyOQj5IuHyUTQBHpBKFoB2JUMu9zT3vJ16Q== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-east-asian-width@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" + integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-stdin@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" + integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +get-tsconfig@^4.7.2: + version "4.7.2" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" + integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== + dependencies: + resolve-pkg-maps "^1.0.0" + +git-raw-commits@^2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" + integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== + dependencies: + dargs "^7.0.0" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^10.2.2, glob@^10.3.7: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-directory@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/global-directory/-/global-directory-4.0.1.tgz#4d7ac7cfd2cb73f304c53b8810891748df5e361e" + integrity sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q== + dependencies: + ini "4.1.1" + +global-dirs@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== + dependencies: + ini "^1.3.4" + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^14.0.0: + version "14.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.1.tgz#a1b44841aa7f4c6d8af2bc39951109d77301959b" + integrity sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ== + dependencies: + "@sindresorhus/merge-streams" "^2.1.0" + fast-glob "^3.3.2" + ignore "^5.2.4" + path-type "^5.0.0" + slash "^5.1.0" + unicorn-magic "^0.1.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.6: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-own-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-own-prop/-/has-own-prop-2.0.0.tgz#f0f95d58f65804f5d218db32563bb85b8e0417af" + integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ== + +has-own-property@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-own-property/-/has-own-property-0.1.0.tgz#992b0f5bb3a25416f8d4d0cde53f497b9d7b1ea5" + integrity sha512-14qdBKoonU99XDhWcFKZTShK+QV47qU97u8zzoVo9cL5TZ3BmBHXogItSt9qJjR0KUMFRhcCW8uGIGl8nkl7Aw== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.0, hasown@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" + integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== + dependencies: + function-bind "^1.1.2" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +hosted-git-info@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.1.tgz#9985fcb2700467fecf7f33a4d4874e30680b5322" + integrity sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA== + dependencies: + lru-cache "^10.0.1" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + +husky@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== + +identity-function@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/identity-function/-/identity-function-1.0.0.tgz#bea1159f0985239be3ca348edf40ce2f0dd2c21d" + integrity sha512-kNrgUK0qI+9qLTBidsH85HjDLpZfrrS0ElquKKe/fJFdB3D7VeKdXXEvOPDUHSHOzdZKCAAaQIWWyp0l2yq6pw== + +ignore@^5.1.8, ignore@^5.2.0, ignore@^5.2.4: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-meta-resolve@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz#0b1195915689f60ab00f830af0f15cc841e8919e" + integrity sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +individual@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/individual/-/individual-3.0.0.tgz#e7ca4f85f8957b018734f285750dc22ec2f9862d" + integrity sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" + integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.8.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + +is-fullwidth-code-point@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz#9609efced7c2f97da7b60145ef481c787c7ba704" + integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== + dependencies: + get-east-asian-width "^1.0.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-iterable@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-iterable/-/is-iterable-1.1.1.tgz#71f9aa6f113e1d968ebe1d41cff4c8fb23a817bc" + integrity sha512-EdOZCr0NsGE00Pot+x1ZFx9MJK3C6wy91geZpXwvwexDLJvA4nzYyZf7r+EIwSeVsOLDdBz7ATg9NqKTzuNYuQ== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-text-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636" + integrity sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw== + dependencies: + text-extensions "^2.0.0" + +is-typed-array@^1.1.10, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + +iterable-lookahead@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/iterable-lookahead/-/iterable-lookahead-1.0.0.tgz#896dfcb78680bdb50036e97edb034c8b68a9737f" + integrity sha512-hJnEP2Xk4+44DDwJqUQGdXal5VbyeWLaPyDl2AQc242Zr7iqz4DgpQOrEzglWVMGHMDCkguLHEKxd1+rOsmgSQ== + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jiti@1.21.0, jiti@^1.19.1: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.1.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-parse-even-better-errors@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" + integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +keyv@^4.5.3, keyv@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +knip@^3.3.0: + version "3.13.2" + resolved "https://registry.yarnpkg.com/knip/-/knip-3.13.2.tgz#34f347a9b3ff1d45f3be7fed6bd3bb1ee5fbbaaa" + integrity sha512-izf5dvW+7fG0OfeZKyJTdhmrgQE1ltoxhPnNxYUKnPEBUMDEb61N2LD6SESKEpt4b6Mmbj4h9Tr4/14zcb7PSA== + dependencies: + "@ericcornelissen/bash-parser" "0.5.2" + "@npmcli/map-workspaces" "3.0.4" + "@npmcli/package-json" "5.0.0" + "@pkgjs/parseargs" "0.11.0" + "@pnpm/logger" "5.0.0" + "@pnpm/workspace.pkgs-graph" "^2.0.13" + "@snyk/github-codeowners" "1.1.0" + easy-table "1.2.0" + fast-glob "3.3.2" + globby "^14.0.0" + jiti "1.21.0" + js-yaml "4.1.0" + micromatch "4.0.5" + minimist "1.2.8" + picocolors "1.0.0" + pretty-ms "8.0.0" + strip-json-comments "5.0.1" + summary "2.1.0" + zod "3.22.4" + zod-validation-error "2.1.0" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lilconfig@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" + integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lint-staged@^15.1.0: + version "15.2.2" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.2.tgz#ad7cbb5b3ab70e043fa05bff82a09ed286bc4c5f" + integrity sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw== + dependencies: + chalk "5.3.0" + commander "11.1.0" + debug "4.3.4" + execa "8.0.1" + lilconfig "3.0.0" + listr2 "8.0.1" + micromatch "4.0.5" + pidtree "0.6.0" + string-argv "0.3.2" + yaml "2.3.4" + +listr2@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.0.1.tgz#4d3f50ae6cec3c62bdf0e94f5c2c9edebd4b9c34" + integrity sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA== + dependencies: + cli-truncate "^4.0.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^6.0.0" + rfdc "^1.3.0" + wrap-ansi "^9.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +load-json-file@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" + integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== + dependencies: + graceful-fs "^4.1.15" + parse-json "^5.0.0" + strip-bom "^4.0.0" + type-fest "^0.6.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.curry@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" + integrity sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA== + +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.mergewith@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== + +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + +lodash@^4.17.15: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-update@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.0.0.tgz#0ddeb7ac6ad658c944c1de902993fce7c33f5e59" + integrity sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw== + dependencies: + ansi-escapes "^6.2.0" + cli-cursor "^4.0.0" + slice-ansi "^7.0.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" + +lru-cache@^10.0.1, lru-cache@^10.0.2, "lru-cache@^9.1.1 || ^10.0.0": + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.16.0.tgz#970ebb0da7193301285fb1aa650f39bdd81eb45a" + integrity sha512-c4BEos3y6G2qO0B9X7K0FVLOPT9uGrjYwYRLFmDqyl5YMboUviyecnXWp94fJTSMwPw2/sf+CEYt5AGpmklkkQ== + dependencies: + vlq "^0.2.1" + +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + integrity sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ== + +map-obj@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +mem@^6.0.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-6.1.1.tgz#ea110c2ebc079eca3022e6b08c85a795e77f6318" + integrity sha512-Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^3.0.0" + +mem@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" + integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^3.1.0" + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== + +meow@^12.0.1: + version "12.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6" + integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== + +meow@^8.0.0: + version "8.1.2" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@4.0.5, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^3.0.0, mimic-fn@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@1.2.8, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3: + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +ndjson@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ndjson/-/ndjson-2.0.0.tgz#320ac86f6fe53f5681897349b86ac6f43bfa3a19" + integrity sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ== + dependencies: + json-stringify-safe "^5.0.1" + minimist "^1.2.5" + readable-stream "^3.6.0" + split2 "^3.0.0" + through2 "^4.0.0" + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-fetch@3.0.0-beta.9: + version "3.0.0-beta.9" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.0.0-beta.9.tgz#0a7554cfb824380dd6812864389923c783c80d9b" + integrity sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg== + dependencies: + data-uri-to-buffer "^3.0.1" + fetch-blob "^2.1.1" + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.0.tgz#68a96b3c11edd462af7189c837b6b1064a484196" + integrity sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg== + dependencies: + hosted-git-info "^7.0.0" + is-core-module "^2.8.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-install-checks@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== + +npm-package-arg@^11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.1.tgz#f208b0022c29240a1c532a449bdde3f0a4708ebc" + integrity sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ== + dependencies: + hosted-git-info "^7.0.0" + proc-log "^3.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-pick-manifest@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz#f87a4c134504a2c7931f2bb8733126e3c3bb7e8f" + integrity sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg== + dependencies: + npm-install-checks "^6.0.0" + npm-normalize-package-bin "^3.0.0" + npm-package-arg "^11.0.0" + semver "^7.3.5" + +npm-run-all@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== + dependencies: + ansi-styles "^3.2.1" + chalk "^2.4.1" + cross-spawn "^6.0.5" + memorystream "^0.3.1" + minimatch "^3.0.4" + pidtree "^0.3.0" + read-pkg "^3.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npm-run-path@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" + integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== + dependencies: + path-key "^4.0.0" + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-pairs@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-pairs/-/object-pairs-0.1.0.tgz#8276eed81d60b8549d69c5f73a682ab9da4ff32f" + integrity sha512-3ECr6K831I4xX/Mduxr9UC+HPOz/d6WKKYj9p4cmC8Lg8p7g8gitzsxNX5IWlSIgFWN/a4JgrJaoAMKn20oKwA== + +object-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/object-values/-/object-values-1.0.0.tgz#72af839630119e5b98c3b02bb8c27e3237158105" + integrity sha512-+8hwcz/JnQ9EpLIXzN0Rs7DLsBpJNT/xYehtB/jU93tHYr5BFEO8E+JGQNOSqE7opVzz5cGksKFHt7uUJVLSjQ== + +object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-memoize@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/p-memoize/-/p-memoize-4.0.1.tgz#6f4231857fec10de2504611fe820c808fa8c5f8b" + integrity sha512-km0sP12uE0dOZ5qP+s7kGVf07QngxyG0gS8sYFvFWhqlgzOsSy+m71aUejf/0akxj5W7gE//2G74qTv6b4iMog== + dependencies: + mem "^6.0.1" + mimic-fn "^3.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parent-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-2.0.0.tgz#fa71f88ff1a50c27e15d8ff74e0e3a9523bf8708" + integrity sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg== + dependencies: + callsites "^3.1.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-ms@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-3.0.0.tgz#3ea24a934913345fcc3656deda72df921da3a70e" + integrity sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw== + +parse-npm-tarball-url@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/parse-npm-tarball-url/-/parse-npm-tarball-url-3.0.0.tgz#4bcdd84b7eb824b9539182dea082f7bde2cbb24f" + integrity sha512-InpdgIdNe5xWMEUcrVQUniQKwnggBtJ7+SCwh7zQAZwbbIYZV9XdgJyhtmDSSvykFyQXoe4BINnzKTfCwWLs5g== + dependencies: + semver "^6.1.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-temp@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-temp/-/path-temp-2.1.0.tgz#cc68bb26d4fc301df799bb40b8c005cab0e62786" + integrity sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w== + dependencies: + unique-string "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +path-type@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" + integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== + +picocolors@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pidtree@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + +pidtree@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" + integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^3.1.0: + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== + +pretty-ms@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-8.0.0.tgz#a35563b2a02df01e595538f86d7de54ca23194a3" + integrity sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q== + dependencies: + parse-ms "^3.0.0" + +proc-log@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" + integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== "ramda@npm:@pnpm/ramda@0.28.1": - version: 0.28.1 - resolution: "@pnpm/ramda@npm:0.28.1" - checksum: e45e41ceab4f9a0a08fec9c7809a7b79cf3b3220998588f76567addb7533167b591112e0ea1a34b9d99f97ab7511a5bedb1cbb3d49c424c7dc0cdc060ffc2aae - languageName: node - linkType: hard - -"read-package-json-fast@npm:^3.0.0": - version: 3.0.2 - resolution: "read-package-json-fast@npm:3.0.2" - dependencies: - json-parse-even-better-errors: ^3.0.0 - npm-normalize-package-bin: ^3.0.0 - checksum: 8d406869f045f1d76e2a99865a8fd1c1af9c1dc06200b94d2b07eef87ed734b22703a8d72e1cd36ea36cc48e22020bdd187f88243c7dd0563f72114d38c17072 - languageName: node - linkType: hard - -"read-pkg-up@npm:^7.0.1": - version: 7.0.1 - resolution: "read-pkg-up@npm:7.0.1" - dependencies: - find-up: ^4.1.0 - read-pkg: ^5.2.0 - type-fest: ^0.8.1 - checksum: e4e93ce70e5905b490ca8f883eb9e48b5d3cebc6cd4527c25a0d8f3ae2903bd4121c5ab9c5a3e217ada0141098eeb661313c86fa008524b089b8ed0b7f165e44 - languageName: node - linkType: hard - -"read-pkg@npm:^3.0.0": - version: 3.0.0 - resolution: "read-pkg@npm:3.0.0" - dependencies: - load-json-file: ^4.0.0 - normalize-package-data: ^2.3.2 - path-type: ^3.0.0 - checksum: 398903ebae6c7e9965419a1062924436cc0b6f516c42c4679a90290d2f87448ed8f977e7aa2dbba4aa1ac09248628c43e493ac25b2bc76640e946035200e34c6 - languageName: node - linkType: hard - -"read-pkg@npm:^5.2.0": - version: 5.2.0 - resolution: "read-pkg@npm:5.2.0" - dependencies: - "@types/normalize-package-data": ^2.4.0 - normalize-package-data: ^2.5.0 - parse-json: ^5.0.0 - type-fest: ^0.6.0 - checksum: eb696e60528b29aebe10e499ba93f44991908c57d70f2d26f369e46b8b9afc208ef11b4ba64f67630f31df8b6872129e0a8933c8c53b7b4daf0eace536901222 - languageName: node - linkType: hard - -"readable-stream@npm:3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.6.0": - version: 3.6.2 - resolution: "readable-stream@npm:3.6.2" - dependencies: - inherits: ^2.0.3 - string_decoder: ^1.1.1 - util-deprecate: ^1.0.1 - checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d - languageName: node - linkType: hard - -"redent@npm:^3.0.0": - version: 3.0.0 - resolution: "redent@npm:3.0.0" - dependencies: - indent-string: ^4.0.0 - strip-indent: ^3.0.0 - checksum: fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.5.1": - version: 1.5.1 - resolution: "regexp.prototype.flags@npm:1.5.1" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - set-function-name: ^2.0.0 - checksum: 869edff00288442f8d7fa4c9327f91d85f3b3acf8cbbef9ea7a220345cf23e9241b6def9263d2c1ebcf3a316b0aa52ad26a43a84aa02baca3381717b3e307f47 - languageName: node - linkType: hard - -"rename-overwrite@npm:^4.0.4": - version: 4.0.4 - resolution: "rename-overwrite@npm:4.0.4" - dependencies: - "@zkochan/rimraf": ^2.1.2 - fs-extra: 10.1.0 - checksum: 80e694b8d47f0abe08d47f0ed90007305d50087d00b84e3430e8eb92cc101591c584148f20f83b6a5b1223ea1507f37b8b3fa619abac15c423739c5e0aa28011 - languageName: node - linkType: hard - -"repeat-string@npm:^1.6.1": - version: 1.6.1 - resolution: "repeat-string@npm:1.6.1" - checksum: 1b809fc6db97decdc68f5b12c4d1a671c8e3f65ec4a40c238bc5200e44e85bcc52a54f78268ab9c29fcf5fe4f1343e805420056d1f30fa9a9ee4c2d93e3cc6c0 - languageName: node - linkType: hard - -"require-directory@npm:^2.1.1": - version: 2.1.1 - resolution: "require-directory@npm:2.1.1" - checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 - languageName: node - linkType: hard - -"require-from-string@npm:^2.0.2": - version: 2.0.2 - resolution: "require-from-string@npm:2.0.2" - checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b - languageName: node - linkType: hard - -"resolve-from@npm:5.0.0, resolve-from@npm:^5.0.0": - version: 5.0.0 - resolution: "resolve-from@npm:5.0.0" - checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf - languageName: node - linkType: hard - -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f - languageName: node - linkType: hard - -"resolve-global@npm:1.0.0, resolve-global@npm:^1.0.0": - version: 1.0.0 - resolution: "resolve-global@npm:1.0.0" - dependencies: - global-dirs: ^0.1.1 - checksum: c4e11d33e84bde7516b824503ffbe4b6cce863d5ce485680fd3db997b7c64da1df98321b1fd0703b58be8bc9bc83bc96bd83043f96194386b45eb47229efb6b6 - languageName: node - linkType: hard - -"resolve-pkg-maps@npm:^1.0.0": - version: 1.0.0 - resolution: "resolve-pkg-maps@npm:1.0.0" - checksum: 1012afc566b3fdb190a6309cc37ef3b2dcc35dff5fa6683a9d00cd25c3247edfbc4691b91078c97adc82a29b77a2660c30d791d65dab4fc78bfc473f60289977 - languageName: node - linkType: hard - -"resolve@npm:^1.10.0": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" - dependencies: - is-core-module: ^2.13.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c - languageName: node - linkType: hard - -"resolve@patch:resolve@^1.10.0#~builtin": - version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" - dependencies: - is-core-module: ^2.13.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 - languageName: node - linkType: hard - -"restore-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "restore-cursor@npm:4.0.0" - dependencies: - onetime: ^5.1.0 - signal-exit: ^3.0.2 - checksum: 5b675c5a59763bf26e604289eab35711525f11388d77f409453904e1e69c0d37ae5889295706b2c81d23bd780165084d040f9b68fffc32cc921519031c4fa4af - languageName: node - linkType: hard - -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c - languageName: node - linkType: hard - -"reusify@npm:^1.0.4": - version: 1.0.4 - resolution: "reusify@npm:1.0.4" - checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc - languageName: node - linkType: hard - -"reverse-arguments@npm:^1.0.0": - version: 1.0.0 - resolution: "reverse-arguments@npm:1.0.0" - checksum: 4dc725066adb35bccdee90545bab7e3ddd07e61c3622afa22a6a17cc84cf22166f9355f8f206c89d344f0afc78a53ae6a8d43a710ca9774a676e3632a5a3d9a1 - languageName: node - linkType: hard - -"rfdc@npm:^1.3.0": - version: 1.3.0 - resolution: "rfdc@npm:1.3.0" - checksum: fb2ba8512e43519983b4c61bd3fa77c0f410eff6bae68b08614437bc3f35f91362215f7b4a73cbda6f67330b5746ce07db5dd9850ad3edc91271ad6deea0df32 - languageName: node - linkType: hard - -"rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: ^7.1.3 - bin: - rimraf: bin.js - checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 - languageName: node - linkType: hard - -"rimraf@npm:^5.0.5": - version: 5.0.5 - resolution: "rimraf@npm:5.0.5" - dependencies: - glob: ^10.3.7 - bin: - rimraf: dist/esm/bin.mjs - checksum: d66eef829b2e23b16445f34e73d75c7b7cf4cbc8834b04720def1c8f298eb0753c3d76df77325fad79d0a2c60470525d95f89c2475283ad985fd7441c32732d1 - languageName: node - linkType: hard - -"run-applescript@npm:^5.0.0": - version: 5.0.0 - resolution: "run-applescript@npm:5.0.0" - dependencies: - execa: ^5.0.0 - checksum: d00c2dbfa5b2d774de7451194b8b125f40f65fc183de7d9dcae97f57f59433586d3c39b9001e111c38bfa24c3436c99df1bb4066a2a0c90d39a8c4cd6889af77 - languageName: node - linkType: hard - -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: ^1.2.2 - checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d - languageName: node - linkType: hard - -"safe-array-concat@npm:^1.0.1": - version: 1.0.1 - resolution: "safe-array-concat@npm:1.0.1" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.2.1 - has-symbols: ^1.0.3 - isarray: ^2.0.5 - checksum: 001ecf1d8af398251cbfabaf30ed66e3855127fbceee178179524b24160b49d15442f94ed6c0db0b2e796da76bb05b73bf3cc241490ec9c2b741b41d33058581 - languageName: node - linkType: hard - -"safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 - languageName: node - linkType: hard - -"safe-regex-test@npm:^1.0.0": - version: 1.0.0 - resolution: "safe-regex-test@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.3 - is-regex: ^1.1.4 - checksum: bc566d8beb8b43c01b94e67de3f070fd2781685e835959bbbaaec91cc53381145ca91f69bd837ce6ec244817afa0a5e974fc4e40a2957f0aca68ac3add1ddd34 - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3.0.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 - languageName: node - linkType: hard - -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0": - version: 5.7.2 - resolution: "semver@npm:5.7.2" - bin: - semver: bin/semver - checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 - languageName: node - linkType: hard - -"semver@npm:7.5.4, semver@npm:^7.0.0, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.4.0, semver@npm:^7.5.4": - version: 7.5.4 - resolution: "semver@npm:7.5.4" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 - languageName: node - linkType: hard - -"semver@npm:^6.1.0": - version: 6.3.1 - resolution: "semver@npm:6.3.1" - bin: - semver: bin/semver.js - checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 - languageName: node - linkType: hard - -"set-function-length@npm:^1.1.1": - version: 1.1.1 - resolution: "set-function-length@npm:1.1.1" - dependencies: - define-data-property: ^1.1.1 - get-intrinsic: ^1.2.1 - gopd: ^1.0.1 - has-property-descriptors: ^1.0.0 - checksum: c131d7569cd7e110cafdfbfbb0557249b538477624dfac4fc18c376d879672fa52563b74029ca01f8f4583a8acb35bb1e873d573a24edb80d978a7ee607c6e06 - languageName: node - linkType: hard - -"set-function-name@npm:^2.0.0": - version: 2.0.1 - resolution: "set-function-name@npm:2.0.1" - dependencies: - define-data-property: ^1.0.1 - functions-have-names: ^1.2.3 - has-property-descriptors: ^1.0.0 - checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126 - languageName: node - linkType: hard - -"shebang-command@npm:^1.2.0": - version: 1.2.0 - resolution: "shebang-command@npm:1.2.0" - dependencies: - shebang-regex: ^1.0.0 - checksum: 9eed1750301e622961ba5d588af2212505e96770ec376a37ab678f965795e995ade7ed44910f5d3d3cb5e10165a1847f52d3348c64e146b8be922f7707958908 - languageName: node - linkType: hard - -"shebang-command@npm:^2.0.0": - version: 2.0.0 - resolution: "shebang-command@npm:2.0.0" - dependencies: - shebang-regex: ^3.0.0 - checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa - languageName: node - linkType: hard - -"shebang-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "shebang-regex@npm:1.0.0" - checksum: 404c5a752cd40f94591dfd9346da40a735a05139dac890ffc229afba610854d8799aaa52f87f7e0c94c5007f2c6af55bdcaeb584b56691926c5eaf41dc8f1372 - languageName: node - linkType: hard - -"shebang-regex@npm:^3.0.0": - version: 3.0.0 - resolution: "shebang-regex@npm:3.0.0" - checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 - languageName: node - linkType: hard - -"shell-quote-word@npm:^1.0.1": - version: 1.0.1 - resolution: "shell-quote-word@npm:1.0.1" - checksum: 05c5df92acba3e7920dbd987b235276871d38cf360d339074cbfabea49bbca8406a6f06a822cd1e84912c3150277d73de5194ca21c37ef95e108dfe45372526f - languageName: node - linkType: hard - -"shell-quote@npm:^1.6.1": - version: 1.8.1 - resolution: "shell-quote@npm:1.8.1" - checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b - languageName: node - linkType: hard - -"side-channel@npm:^1.0.4": - version: 1.0.4 - resolution: "side-channel@npm:1.0.4" - dependencies: - call-bind: ^1.0.0 - get-intrinsic: ^1.0.2 - object-inspect: ^1.9.0 - checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 - languageName: node - linkType: hard - -"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": - version: 4.1.0 - resolution: "signal-exit@npm:4.1.0" - checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 - languageName: node - linkType: hard - -"slash@npm:^3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c - languageName: node - linkType: hard - -"slash@npm:^5.1.0": - version: 5.1.0 - resolution: "slash@npm:5.1.0" - checksum: 70434b34c50eb21b741d37d455110258c42d2cf18c01e6518aeb7299f3c6e626330c889c0c552b5ca2ef54a8f5a74213ab48895f0640717cacefeef6830a1ba4 - languageName: node - linkType: hard - -"slice-ansi@npm:^5.0.0": - version: 5.0.0 - resolution: "slice-ansi@npm:5.0.0" - dependencies: - ansi-styles: ^6.0.0 - is-fullwidth-code-point: ^4.0.0 - checksum: 7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e - languageName: node - linkType: hard - -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^8.0.1": - version: 8.0.2 - resolution: "socks-proxy-agent@npm:8.0.2" - dependencies: - agent-base: ^7.0.2 - debug: ^4.3.4 - socks: ^2.7.1 - checksum: 4fb165df08f1f380881dcd887b3cdfdc1aba3797c76c1e9f51d29048be6e494c5b06d68e7aea2e23df4572428f27a3ec22b3d7c75c570c5346507433899a4b6d - languageName: node - linkType: hard - -"socks@npm:^2.7.1": - version: 2.7.1 - resolution: "socks@npm:2.7.1" - dependencies: - ip: ^2.0.0 - smart-buffer: ^4.2.0 - checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 - languageName: node - linkType: hard - -"spdx-correct@npm:^3.0.0": - version: 3.2.0 - resolution: "spdx-correct@npm:3.2.0" - dependencies: - spdx-expression-parse: ^3.0.0 - spdx-license-ids: ^3.0.0 - checksum: e9ae98d22f69c88e7aff5b8778dc01c361ef635580e82d29e5c60a6533cc8f4d820803e67d7432581af0cc4fb49973125076ee3b90df191d153e223c004193b2 - languageName: node - linkType: hard - -"spdx-exceptions@npm:^2.1.0": - version: 2.3.0 - resolution: "spdx-exceptions@npm:2.3.0" - checksum: cb69a26fa3b46305637123cd37c85f75610e8c477b6476fa7354eb67c08128d159f1d36715f19be6f9daf4b680337deb8c65acdcae7f2608ba51931540687ac0 - languageName: node - linkType: hard - -"spdx-expression-parse@npm:^3.0.0": - version: 3.0.1 - resolution: "spdx-expression-parse@npm:3.0.1" - dependencies: - spdx-exceptions: ^2.1.0 - spdx-license-ids: ^3.0.0 - checksum: a1c6e104a2cbada7a593eaa9f430bd5e148ef5290d4c0409899855ce8b1c39652bcc88a725259491a82601159d6dc790bedefc9016c7472f7de8de7361f8ccde - languageName: node - linkType: hard - -"spdx-license-ids@npm:^3.0.0": - version: 3.0.16 - resolution: "spdx-license-ids@npm:3.0.16" - checksum: 5cdaa85aaa24bd02f9353a2e357b4df0a4f205cb35655f3fd0a5674a4fb77081f28ffd425379214bc3be2c2b7593ce1215df6bcc75884aeee0a9811207feabe2 - languageName: node - linkType: hard - -"split2@npm:^3.0.0": - version: 3.2.2 - resolution: "split2@npm:3.2.2" - dependencies: - readable-stream: ^3.0.0 - checksum: 8127ddbedd0faf31f232c0e9192fede469913aa8982aa380752e0463b2e31c2359ef6962eb2d24c125bac59eeec76873678d723b1c7ff696216a1cd071e3994a - languageName: node - linkType: hard - -"split2@npm:^4.0.0": - version: 4.2.0 - resolution: "split2@npm:4.2.0" - checksum: 05d54102546549fe4d2455900699056580cca006c0275c334611420f854da30ac999230857a85fdd9914dc2109ae50f80fda43d2a445f2aa86eccdc1dfce779d - languageName: node - linkType: hard - -"ssri@npm:10.0.5, ssri@npm:^10.0.0": - version: 10.0.5 - resolution: "ssri@npm:10.0.5" - dependencies: - minipass: ^7.0.3 - checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 - languageName: node - linkType: hard - -"string-argv@npm:0.3.2": - version: 0.3.2 - resolution: "string-argv@npm:0.3.2" - checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f - languageName: node - linkType: hard - -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": - version: 4.2.3 - resolution: "string-width@npm:4.2.3" - dependencies: - emoji-regex: ^8.0.0 - is-fullwidth-code-point: ^3.0.0 - strip-ansi: ^6.0.1 - checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb - languageName: node - linkType: hard - -"string-width@npm:^5.0.0, string-width@npm:^5.0.1, string-width@npm:^5.1.2": - version: 5.1.2 - resolution: "string-width@npm:5.1.2" - dependencies: - eastasianwidth: ^0.2.0 - emoji-regex: ^9.2.2 - strip-ansi: ^7.0.1 - checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 - languageName: node - linkType: hard - -"string.fromcodepoint@npm:^0.2.1": - version: 0.2.1 - resolution: "string.fromcodepoint@npm:0.2.1" - checksum: 6ba80f70c3e2a36dab87f5d68168936403295a73838564e701f5c861d397d77d9e97b0e2aa0f3c163a25a96c785dcc2145452b220753fb7b3e6c6fe431c9c411 - languageName: node - linkType: hard - -"string.prototype.padend@npm:^3.0.0": - version: 3.1.5 - resolution: "string.prototype.padend@npm:3.1.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: fc915e0b6ae1dce07a9f5088429d84fda2c1c0ac9a05bc14a602f173cc2fdef32e4893dfba5656f8f955450c9c16deebdb8d303d27613a367bc6d8508a94cd5e - languageName: node - linkType: hard - -"string.prototype.trim@npm:^1.2.8": - version: 1.2.8 - resolution: "string.prototype.trim@npm:1.2.8" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07 - languageName: node - linkType: hard - -"string.prototype.trimend@npm:^1.0.7": - version: 1.0.7 - resolution: "string.prototype.trimend@npm:1.0.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 2375516272fd1ba75992f4c4aa88a7b5f3c7a9ca308d963bcd5645adf689eba6f8a04ebab80c33e30ec0aefc6554181a3a8416015c38da0aa118e60ec896310c - languageName: node - linkType: hard - -"string.prototype.trimstart@npm:^1.0.7": - version: 1.0.7 - resolution: "string.prototype.trimstart@npm:1.0.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 13d0c2cb0d5ff9e926fa0bec559158b062eed2b68cd5be777ffba782c96b2b492944e47057274e064549b94dd27cf81f48b27a31fee8af5b574cff253e7eb613 - languageName: node - linkType: hard - -"string_decoder@npm:^1.1.1": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" - dependencies: - safe-buffer: ~5.2.0 - checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 - languageName: node - linkType: hard - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: ^5.0.1 - checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c - languageName: node - linkType: hard - -"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": - version: 7.1.0 - resolution: "strip-ansi@npm:7.1.0" - dependencies: - ansi-regex: ^6.0.1 - checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d - languageName: node - linkType: hard - -"strip-bom@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-bom@npm:3.0.0" - checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b - languageName: node - linkType: hard - -"strip-bom@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-bom@npm:4.0.0" - checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 - languageName: node - linkType: hard - -"strip-final-newline@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-final-newline@npm:2.0.0" - checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 - languageName: node - linkType: hard - -"strip-final-newline@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-final-newline@npm:3.0.0" - checksum: 23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 - languageName: node - linkType: hard - -"strip-indent@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-indent@npm:3.0.0" - dependencies: - min-indent: ^1.0.0 - checksum: 18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530 - languageName: node - linkType: hard - -"strip-json-comments@npm:5.0.1": - version: 5.0.1 - resolution: "strip-json-comments@npm:5.0.1" - checksum: b314af70c6666a71133e309a571bdb87687fc878d9fd8b38ebed393a77b89835b92f191aa6b0bc10dfd028ba99eed6b6365985001d64c5aef32a4a82456a156b - languageName: node - linkType: hard - -"strip-json-comments@npm:^3.1.1": - version: 3.1.1 - resolution: "strip-json-comments@npm:3.1.1" - checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 - languageName: node - linkType: hard - -"summary@npm:2.1.0": - version: 2.1.0 - resolution: "summary@npm:2.1.0" - checksum: 10ac12ce12c013b56ad44c37cfac206961f0993d98867b33b1b03a27b38a1cf8dd2db0b788883356c5335bbbb37d953772ef4a381d6fc8f408faf99f2bc54af5 - languageName: node - linkType: hard - -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: ^3.0.0 - checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac - languageName: node - linkType: hard - -"supports-color@npm:^7.1.0": - version: 7.2.0 - resolution: "supports-color@npm:7.2.0" - dependencies: - has-flag: ^4.0.0 - checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a - languageName: node - linkType: hard - -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae - languageName: node - linkType: hard - -"synckit@npm:^0.8.5": - version: 0.8.5 - resolution: "synckit@npm:0.8.5" - dependencies: - "@pkgr/utils": ^2.3.1 - tslib: ^2.5.0 - checksum: 8a9560e5d8f3d94dc3cf5f7b9c83490ffa30d320093560a37b88f59483040771fd1750e76b9939abfbb1b5a23fd6dfbae77f6b338abffe7cae7329cd9b9bb86b - languageName: node - linkType: hard - -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.2.0 - resolution: "tar@npm:6.2.0" - dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^5.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c - languageName: node - linkType: hard - -"text-extensions@npm:^2.0.0": - version: 2.4.0 - resolution: "text-extensions@npm:2.4.0" - checksum: 9bdbc9959e004ccc86a6ec076d6c5bb6765978263e9d0d5febb640d7675c09919ea912f3fe9d50b68c3c7c43cc865610a7cb24954343abb31f74c205fbae4e45 - languageName: node - linkType: hard - -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a - languageName: node - linkType: hard - -"through2@npm:^4.0.0": - version: 4.0.2 - resolution: "through2@npm:4.0.2" - dependencies: - readable-stream: 3 - checksum: ac7430bd54ccb7920fd094b1c7ff3e1ad6edd94202e5528331253e5fde0cc56ceaa690e8df9895de2e073148c52dfbe6c4db74cacae812477a35660090960cc0 - languageName: node - linkType: hard - -"through@npm:>=2.2.7 <3": - version: 2.3.8 - resolution: "through@npm:2.3.8" - checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd - languageName: node - linkType: hard - -"titleize@npm:^3.0.0": - version: 3.0.0 - resolution: "titleize@npm:3.0.0" - checksum: 71fbbeabbfb36ccd840559f67f21e356e1d03da2915b32d2ae1a60ddcc13a124be2739f696d2feb884983441d159a18649e8d956648d591bdad35c430a6b6d28 - languageName: node - linkType: hard - -"to-no-case@npm:^1.0.0": - version: 1.0.2 - resolution: "to-no-case@npm:1.0.2" - checksum: 1d85326eeb89f9f3a805bf5b395bcabb8556e882350164c1faa10846076732f4cec02ac95b016e7d6bb2f55e448ce5dd227c7699ec43e387c705a5b2b1ee2963 - languageName: node - linkType: hard - -"to-pascal-case@npm:^1.0.0": - version: 1.0.0 - resolution: "to-pascal-case@npm:1.0.0" - dependencies: - to-space-case: ^1.0.0 - checksum: 3956e209defc6df9de98c5db24a16fb2a1a11f711350ea3bdd9466240a04ab889fa09f1bd005e26fc31343c1cca341981daf2d80d4ec3f2d0706a557978f8b91 - languageName: node - linkType: hard - -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: ^7.0.0 - checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed - languageName: node - linkType: hard - -"to-space-case@npm:^1.0.0": - version: 1.0.0 - resolution: "to-space-case@npm:1.0.0" - dependencies: - to-no-case: ^1.0.0 - checksum: 157cebe3e98e7cb465fe1978cf26450cc8ea8e637a01039854fac7ed60ad074e5e18b32333cc5f30df81b81ca374d63df768cd4c1fa0fe672605f965376227f4 - languageName: node - linkType: hard - -"trim-newlines@npm:^3.0.0": - version: 3.0.1 - resolution: "trim-newlines@npm:3.0.1" - checksum: b530f3fadf78e570cf3c761fb74fef655beff6b0f84b29209bac6c9622db75ad1417f4a7b5d54c96605dcd72734ad44526fef9f396807b90839449eb543c6206 - languageName: node - linkType: hard - -"ts-api-utils@npm:^1.0.1": - version: 1.0.3 - resolution: "ts-api-utils@npm:1.0.3" - peerDependencies: - typescript: ">=4.2.0" - checksum: 441cc4489d65fd515ae6b0f4eb8690057add6f3b6a63a36073753547fb6ce0c9ea0e0530220a0b282b0eec535f52c4dfc315d35f8a4c9a91c0def0707a714ca6 - languageName: node - linkType: hard - -"ts-template@workspace:.": - version: 0.0.0-use.local - resolution: "ts-template@workspace:." - dependencies: - "@commitlint/cli": ^18.4.3 - "@commitlint/config-conventional": ^18.4.3 - "@cspell/dict-node": ^4.0.3 - "@cspell/dict-software-terms": ^3.3.17 - "@cspell/dict-typescript": ^3.1.2 - "@types/node": ^20.10.0 - "@typescript-eslint/eslint-plugin": ^6.13.1 - "@typescript-eslint/parser": ^6.13.1 - cspell: ^8.3.2 - dotenv: ^16.3.1 - esbuild: ^0.19.8 - eslint: ^8.54.0 - eslint-config-prettier: ^9.0.0 - eslint-plugin-prettier: ^5.0.1 - eslint-plugin-sonarjs: ^0.23.0 - husky: ^8.0.3 - knip: ^3.3.0 - lint-staged: ^15.1.0 - npm-run-all: ^4.1.5 - prettier: ^3.1.0 - tsx: ^4.6.0 - typescript: ^5.3.2 - languageName: unknown - linkType: soft - -"tslib@npm:^2.5.0, tslib@npm:^2.6.0": - version: 2.6.2 - resolution: "tslib@npm:2.6.2" - checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad - languageName: node - linkType: hard - -"tsx@npm:^4.6.0": - version: 4.6.0 - resolution: "tsx@npm:4.6.0" - dependencies: - esbuild: ~0.18.20 - fsevents: ~2.3.3 - get-tsconfig: ^4.7.2 - dependenciesMeta: - fsevents: - optional: true - bin: - tsx: dist/cli.mjs - checksum: fee53c89cc8f507c64b6f36460597e6a4e91ac3d37609d999ec1d8e1a5a3b545fa83b3a34762ad54536141ad536359f2590e1eb46a71cf8b2f4a5390bf91f04e - languageName: node - linkType: hard - -"type-check@npm:^0.4.0, type-check@npm:~0.4.0": - version: 0.4.0 - resolution: "type-check@npm:0.4.0" - dependencies: - prelude-ls: ^1.2.1 - checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a - languageName: node - linkType: hard - -"type-fest@npm:^0.18.0": - version: 0.18.1 - resolution: "type-fest@npm:0.18.1" - checksum: e96dcee18abe50ec82dab6cbc4751b3a82046da54c52e3b2d035b3c519732c0b3dd7a2fa9df24efd1a38d953d8d4813c50985f215f1957ee5e4f26b0fe0da395 - languageName: node - linkType: hard - -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 - languageName: node - linkType: hard - -"type-fest@npm:^0.6.0": - version: 0.6.0 - resolution: "type-fest@npm:0.6.0" - checksum: b2188e6e4b21557f6e92960ec496d28a51d68658018cba8b597bd3ef757721d1db309f120ae987abeeda874511d14b776157ff809f23c6d1ce8f83b9b2b7d60f - languageName: node - linkType: hard - -"type-fest@npm:^0.8.1": - version: 0.8.1 - resolution: "type-fest@npm:0.8.1" - checksum: d61c4b2eba24009033ae4500d7d818a94fd6d1b481a8111612ee141400d5f1db46f199c014766b9fa9b31a6a7374d96fc748c6d688a78a3ce5a33123839becb7 - languageName: node - linkType: hard - -"type-fest@npm:^1.0.1, type-fest@npm:^1.0.2": - version: 1.4.0 - resolution: "type-fest@npm:1.4.0" - checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 - languageName: node - linkType: hard - -"typed-array-buffer@npm:^1.0.0": - version: 1.0.0 - resolution: "typed-array-buffer@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.2.1 - is-typed-array: ^1.1.10 - checksum: 3e0281c79b2a40cd97fe715db803884301993f4e8c18e8d79d75fd18f796e8cd203310fec8c7fdb5e6c09bedf0af4f6ab8b75eb3d3a85da69328f28a80456bd3 - languageName: node - linkType: hard - -"typed-array-byte-length@npm:^1.0.0": - version: 1.0.0 - resolution: "typed-array-byte-length@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - for-each: ^0.3.3 - has-proto: ^1.0.1 - is-typed-array: ^1.1.10 - checksum: b03db16458322b263d87a702ff25388293f1356326c8a678d7515767ef563ef80e1e67ce648b821ec13178dd628eb2afdc19f97001ceae7a31acf674c849af94 - languageName: node - linkType: hard - -"typed-array-byte-offset@npm:^1.0.0": - version: 1.0.0 - resolution: "typed-array-byte-offset@npm:1.0.0" - 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.10 - checksum: 04f6f02d0e9a948a95fbfe0d5a70b002191fae0b8fe0fe3130a9b2336f043daf7a3dda56a31333c35a067a97e13f539949ab261ca0f3692c41603a46a94e960b - languageName: node - linkType: hard - -"typed-array-length@npm:^1.0.4": - version: 1.0.4 - resolution: "typed-array-length@npm:1.0.4" - dependencies: - call-bind: ^1.0.2 - for-each: ^0.3.3 - is-typed-array: ^1.1.9 - checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 - languageName: node - linkType: hard - -"typedarray-to-buffer@npm:^3.1.5": - version: 3.1.5 - resolution: "typedarray-to-buffer@npm:3.1.5" - dependencies: - is-typedarray: ^1.0.0 - checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60 - languageName: node - linkType: hard - -"typescript@npm:^5.3.2": - version: 5.3.2 - resolution: "typescript@npm:5.3.2" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: d92534dda639eb825db013203404c1fabca8ac630564283c9e7dc9e64fd9c9346c2de95ecebdf3e6e8c1c32941bca1cfe0da37877611feb9daf8feeaea58d230 - languageName: node - linkType: hard - -"typescript@patch:typescript@^5.3.2#~builtin": - version: 5.3.2 - resolution: "typescript@patch:typescript@npm%3A5.3.2#~builtin::version=5.3.2&hash=1f5320" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: c034461079fbfde3cb584ddee52afccb15b6e32a0ce186d0b2719968786f7ca73e1b07f71fac4163088790b16811c6ccf79680de190664ef66ff0ba9c1fe4a23 - languageName: node - linkType: hard - -"unbox-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "unbox-primitive@npm:1.0.2" - dependencies: - call-bind: ^1.0.2 - has-bigints: ^1.0.2 - has-symbols: ^1.0.3 - which-boxed-primitive: ^1.0.2 - checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9 - languageName: node - linkType: hard - -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487 - languageName: node - linkType: hard - -"unescape-js@npm:^1.0.5": - version: 1.1.4 - resolution: "unescape-js@npm:1.1.4" - dependencies: - string.fromcodepoint: ^0.2.1 - checksum: 97acf60a8f6c170f8a66b48b71f5c56bda728c2ff6b08c3443c5f21635bf5fa38a4265bcfcf46d17cb6ac9bbb8b913a34b1abc5cfe8db5d7cc5c8eecb1817472 - languageName: node - linkType: hard - -"unicorn-magic@npm:^0.1.0": - version: 0.1.0 - resolution: "unicorn-magic@npm:0.1.0" - checksum: 48c5882ca3378f380318c0b4eb1d73b7e3c5b728859b060276e0a490051d4180966beeb48962d850fd0c6816543bcdfc28629dcd030bb62a286a2ae2acb5acb6 - languageName: node - linkType: hard - -"unique-filename@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-filename@npm:3.0.0" - dependencies: - unique-slug: ^4.0.0 - checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df - languageName: node - linkType: hard - -"unique-slug@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-slug@npm:4.0.0" - dependencies: - imurmurhash: ^0.1.4 - checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 - languageName: node - linkType: hard - -"unique-string@npm:^2.0.0": - version: 2.0.0 - resolution: "unique-string@npm:2.0.0" - dependencies: - crypto-random-string: ^2.0.0 - checksum: ef68f639136bcfe040cf7e3cd7a8dff076a665288122855148a6f7134092e6ed33bf83a7f3a9185e46c98dddc445a0da6ac25612afa1a7c38b8b654d6c02498e - languageName: node - linkType: hard - -"unique-string@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-string@npm:3.0.0" - dependencies: - crypto-random-string: ^4.0.0 - checksum: 1a1e2e7d02eab1bb10f720475da735e1990c8a5ff34edd1a3b6bc31590cb4210b7a1233d779360cc622ce11c211e43afa1628dd658f35d3e6a89964b622940df - languageName: node - linkType: hard - -"universalify@npm:^2.0.0": - version: 2.0.1 - resolution: "universalify@npm:2.0.1" - checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 - languageName: node - linkType: hard - -"untildify@npm:^4.0.0": - version: 4.0.0 - resolution: "untildify@npm:4.0.0" - checksum: 39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9 - languageName: node - linkType: hard - -"uri-js@npm:^4.2.2": - version: 4.4.1 - resolution: "uri-js@npm:4.4.1" - dependencies: - punycode: ^2.1.0 - checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 - languageName: node - linkType: hard - -"util-deprecate@npm:^1.0.1": - version: 1.0.2 - resolution: "util-deprecate@npm:1.0.2" - checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 - languageName: node - linkType: hard - -"validate-npm-package-license@npm:^3.0.1": - version: 3.0.4 - resolution: "validate-npm-package-license@npm:3.0.4" - dependencies: - spdx-correct: ^3.0.0 - spdx-expression-parse: ^3.0.0 - checksum: 35703ac889d419cf2aceef63daeadbe4e77227c39ab6287eeb6c1b36a746b364f50ba22e88591f5d017bc54685d8137bc2d328d0a896e4d3fd22093c0f32a9ad - languageName: node - linkType: hard - -"validate-npm-package-name@npm:^4.0.0": - version: 4.0.0 - resolution: "validate-npm-package-name@npm:4.0.0" - dependencies: - builtins: ^5.0.0 - checksum: a32fd537bad17fcb59cfd58ae95a414d443866020d448ec3b22e8d40550cb585026582a57efbe1f132b882eea4da8ac38ee35f7be0dd72988a3cb55d305a20c1 - languageName: node - linkType: hard - -"version-selector-type@npm:^3.0.0": - version: 3.0.0 - resolution: "version-selector-type@npm:3.0.0" - dependencies: - semver: ^7.3.2 - checksum: e97968054ad3bd2ff25a1c8e55273d34db5601e573f1ebca144b145d6a984925390358959859e77aca526082a64483e776e3f15178b0d8e2b3f1deb64932a7aa - languageName: node - linkType: hard - -"vlq@npm:^0.2.1": - version: 0.2.3 - resolution: "vlq@npm:0.2.3" - checksum: 2231d8caeb5b2c1a438677ab029e9a94aa6fb61ab05819c72691b792aea0456dab29576aff5ae29309ee45bad0a309e832dc45173119bca1393f3b87709d8f8d - languageName: node - linkType: hard - -"vscode-languageserver-textdocument@npm:^1.0.11": - version: 1.0.11 - resolution: "vscode-languageserver-textdocument@npm:1.0.11" - checksum: ea7cdc9d4ffaae5952071fa11d17d714215a76444e6936c9359f94b9ba3222a52a55edb5bd5928bd3e9712b900a9f175bb3565ec1c8923234fe3bd327584bafb - languageName: node - linkType: hard - -"vscode-uri@npm:^3.0.8": - version: 3.0.8 - resolution: "vscode-uri@npm:3.0.8" - checksum: 514249126850c0a41a7d8c3c2836cab35983b9dc1938b903cfa253b9e33974c1416d62a00111385adcfa2b98df456437ab704f709a2ecca76a90134ef5eb4832 - languageName: node - linkType: hard - -"wcwidth@npm:^1.0.1": - version: 1.0.1 - resolution: "wcwidth@npm:1.0.1" - dependencies: - defaults: ^1.0.3 - checksum: 814e9d1ddcc9798f7377ffa448a5a3892232b9275ebb30a41b529607691c0491de47cba426e917a4d08ded3ee7e9ba2f3fe32e62ee3cd9c7d3bafb7754bd553c - languageName: node - linkType: hard - -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" - dependencies: - is-bigint: ^1.0.1 - is-boolean-object: ^1.1.0 - is-number-object: ^1.0.4 - is-string: ^1.0.5 - is-symbol: ^1.0.3 - checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e - languageName: node - linkType: hard - -"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.13": - version: 1.1.13 - resolution: "which-typed-array@npm:1.1.13" - dependencies: - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.4 - for-each: ^0.3.3 - gopd: ^1.0.1 - has-tostringtag: ^1.0.0 - checksum: 3828a0d5d72c800e369d447e54c7620742a4cc0c9baf1b5e8c17e9b6ff90d8d861a3a6dd4800f1953dbf80e5e5cec954a289e5b4a223e3bee4aeb1f8c5f33309 - languageName: node - linkType: hard - -"which@npm:^1.2.9": - version: 1.3.1 - resolution: "which@npm:1.3.1" - dependencies: - isexe: ^2.0.0 - bin: - which: ./bin/which - checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 - languageName: node - linkType: hard - -"which@npm:^2.0.1": - version: 2.0.2 - resolution: "which@npm:2.0.2" - dependencies: - isexe: ^2.0.0 - bin: - node-which: ./bin/node-which - checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 - languageName: node - linkType: hard - -"which@npm:^4.0.0": - version: 4.0.0 - resolution: "which@npm:4.0.0" - dependencies: - isexe: ^3.1.1 - bin: - node-which: bin/which.js - checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 - languageName: node - linkType: hard - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": - version: 7.0.0 - resolution: "wrap-ansi@npm:7.0.0" - dependencies: - ansi-styles: ^4.0.0 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b - languageName: node - linkType: hard - -"wrap-ansi@npm:^8.0.1, wrap-ansi@npm:^8.1.0": - version: 8.1.0 - resolution: "wrap-ansi@npm:8.1.0" - dependencies: - ansi-styles: ^6.1.0 - string-width: ^5.0.1 - strip-ansi: ^7.0.1 - checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 - languageName: node - linkType: hard - -"wrappy@npm:1": - version: 1.0.2 - resolution: "wrappy@npm:1.0.2" - checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 - languageName: node - linkType: hard - -"write-file-atomic@npm:^3.0.3": - version: 3.0.3 - resolution: "write-file-atomic@npm:3.0.3" - dependencies: - imurmurhash: ^0.1.4 - is-typedarray: ^1.0.0 - signal-exit: ^3.0.2 - typedarray-to-buffer: ^3.1.5 - checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280 - languageName: node - linkType: hard - -"xdg-basedir@npm:^5.0.1": - version: 5.1.0 - resolution: "xdg-basedir@npm:5.1.0" - checksum: b60e8a2c663ccb1dac77c2d913f3b96de48dafbfa083657171d3d50e10820b8a04bb4edfe9f00808c8c20e5f5355e1927bea9029f03136e29265cb98291e1fea - languageName: node - linkType: hard - -"y18n@npm:^5.0.5": - version: 5.0.8 - resolution: "y18n@npm:5.0.8" - checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 - languageName: node - linkType: hard - -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 - languageName: node - linkType: hard - -"yaml@npm:2.3.4, yaml@npm:^2.3.4": - version: 2.3.4 - resolution: "yaml@npm:2.3.4" - checksum: e6d1dae1c6383bcc8ba11796eef3b8c02d5082911c6723efeeb5ba50fc8e881df18d645e64de68e421b577296000bea9c75d6d9097c2f6699da3ae0406c030d8 - languageName: node - linkType: hard - -"yargs-parser@npm:^20.2.3": - version: 20.2.9 - resolution: "yargs-parser@npm:20.2.9" - checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3 - languageName: node - linkType: hard - -"yargs-parser@npm:^21.1.1": - version: 21.1.1 - resolution: "yargs-parser@npm:21.1.1" - checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c - languageName: node - linkType: hard - -"yargs@npm:^17.0.0": - version: 17.7.2 - resolution: "yargs@npm:17.7.2" - dependencies: - cliui: ^8.0.1 - escalade: ^3.1.1 - get-caller-file: ^2.0.5 - require-directory: ^2.1.1 - string-width: ^4.2.3 - y18n: ^5.0.5 - yargs-parser: ^21.1.1 - checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a - languageName: node - linkType: hard - -"yocto-queue@npm:^0.1.0": - version: 0.1.0 - resolution: "yocto-queue@npm:0.1.0" - checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 - languageName: node - linkType: hard - -"zod-validation-error@npm:2.1.0": - version: 2.1.0 - resolution: "zod-validation-error@npm:2.1.0" - peerDependencies: - zod: ^3.18.0 - checksum: 2331cc8d876c2df0b720b648249447b65d6b85ad0b6e60dd6515170570e6ffbe7a9adb844d44035c07d59c871048d9c45a8c429849bedeb8cbcdfa5f90101402 - languageName: node - linkType: hard - -"zod@npm:3.22.4": - version: 3.22.4 - resolution: "zod@npm:3.22.4" - checksum: 80bfd7f8039b24fddeb0718a2ec7c02aa9856e4838d6aa4864335a047b6b37a3273b191ef335bf0b2002e5c514ef261ffcda5a589fb084a48c336ffc4cdbab7f - languageName: node - linkType: hard + version "0.28.1" + resolved "https://registry.yarnpkg.com/@pnpm/ramda/-/ramda-0.28.1.tgz#0f32abc5275d586a03e0dc1dd90a009ac668ff33" + integrity sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw== + +read-package-json-fast@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" + integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== + dependencies: + json-parse-even-better-errors "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +rename-overwrite@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/rename-overwrite/-/rename-overwrite-5.0.0.tgz#ccd1f85aef47d41647ccc1c681d9b6d054cf5fc8" + integrity sha512-vSxE5Ww7Jnyotvaxi3Dj0vOMoojH8KMkBfs9xYeW/qNfJiLTcC1fmwTjrbGUq3mQSOCxkG0DbdcvwTUrpvBN4w== + dependencies: + "@zkochan/rimraf" "^2.1.2" + fs-extra "10.1.0" + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-global@1.0.0, resolve-global@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== + dependencies: + global-dirs "^0.1.1" + +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve@^1.10.0: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +reverse-arguments@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/reverse-arguments/-/reverse-arguments-1.0.0.tgz#c28095a3a921ac715d61834ddece9027992667cd" + integrity sha512-/x8uIPdTafBqakK0TmPNJzgkLP+3H+yxpUJhCQHsLBg1rYEVNR2D8BRYNWQhVBjyOd7oo1dZRVzIkwMY2oqfYQ== + +rfdc@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" + integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" + integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== + dependencies: + glob "^10.3.7" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-array-concat@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" + integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== + dependencies: + call-bind "^1.0.5" + get-intrinsic "^1.2.2" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +"semver@2 || 3 || 4 || 5", semver@^5.5.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@7.6.0, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.4.0, semver@^7.5.3, semver@^7.5.4: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + +semver@^6.1.0: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +set-function-length@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== + dependencies: + define-data-property "^1.1.2" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.1" + +set-function-name@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote-word@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/shell-quote-word/-/shell-quote-word-1.0.1.tgz#e2bdfd22d599fd68886491677e38f560f9d469c9" + integrity sha512-lT297f1WLAdq0A4O+AknIFRP6kkiI3s8C913eJ0XqBxJbZPGWUNkRQk2u8zk4bEAjUJ5i+fSLwB6z1HzeT+DEg== + +shell-quote@^1.6.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +side-channel@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1, signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" + integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== + +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + +slice-ansi@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" + integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== + dependencies: + ansi-styles "^6.2.1" + is-fullwidth-code-point "^5.0.0" + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.17" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c" + integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== + +split2@^3.0.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +ssri@10.0.5: + version "10.0.5" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== + dependencies: + minipass "^7.0.3" + +string-argv@0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== + +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string-width@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.1.0.tgz#d994252935224729ea3719c49f7206dc9c46550a" + integrity sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw== + dependencies: + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" + +string.fromcodepoint@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string.fromcodepoint/-/string.fromcodepoint-0.2.1.tgz#8d978333c0bc92538f50f383e4888f3e5619d653" + integrity sha512-n69H31OnxSGSZyZbgBlvYIXlrMhJQ0dQAX1js1QDhpaUH6zmU3QYlj07bCwCNlPOu3oRXIubGPl2gDGnHsiCqg== + +string.prototype.padend@^3.0.0: + version "3.1.5" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz#311ef3a4e3c557dd999cdf88fbdde223f2ac0f95" + integrity sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1, strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-5.0.1.tgz#0d8b7d01b23848ed7dbdf4baaaa31a8250d8cfa0" + integrity sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +summary@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/summary/-/summary-2.1.0.tgz#be8a49a0aa34eb6ceea56042cae88f8add4b0885" + integrity sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +synckit@^0.8.6: + version "0.8.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + +text-extensions@^2.0.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" + integrity sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +through2@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + +"through@>=2.2.7 <3": + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +to-no-case@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/to-no-case/-/to-no-case-1.0.2.tgz#c722907164ef6b178132c8e69930212d1b4aa16a" + integrity sha512-Z3g735FxuZY8rodxV4gH7LxClE4H0hTIyHNIHdk+vpQxjLm0cwnKXq/OFVZ76SOQmto7txVcwSCwkU5kqp+FKg== + +to-pascal-case@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-pascal-case/-/to-pascal-case-1.0.0.tgz#0bbdc8df448886ba01535e543327048d0aa1ce78" + integrity sha512-QGMWHqM6xPrcQW57S23c5/3BbYb0Tbe9p+ur98ckRnGDwD4wbbtDiYI38CfmMKNB5Iv0REjs5SNDntTwvDxzZA== + dependencies: + to-space-case "^1.0.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-space-case@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-space-case/-/to-space-case-1.0.0.tgz#b052daafb1b2b29dc770cea0163e5ec0ebc9fc17" + integrity sha512-rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA== + dependencies: + to-no-case "^1.0.0" + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +ts-api-utils@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz#f716c7e027494629485b21c0df6180f4d08f5e8b" + integrity sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA== + +tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tsx@^4.6.0: + version "4.7.1" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.7.1.tgz#27af6cbf4e1cdfcb9b5425b1c61bb7e668eb5e84" + integrity sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g== + dependencies: + esbuild "~0.19.10" + get-tsconfig "^4.7.2" + optionalDependencies: + fsevents "~2.3.3" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-fest@^1.0.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^3.0.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" + integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== + +typed-array-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + 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.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typescript@^5.3.2: + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unescape-js@^1.0.5: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unescape-js/-/unescape-js-1.1.4.tgz#4bc6389c499cb055a98364a0b3094e1c3d5da395" + integrity sha512-42SD8NOQEhdYntEiUQdYq/1V/YHwr1HLwlHuTJB5InVVdOSbgI6xu8jK5q65yIzuFCfczzyDF/7hbGzVbyCw0g== + dependencies: + string.fromcodepoint "^0.2.1" + +unicorn-magic@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" + integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +unique-string@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" + integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== + dependencies: + crypto-random-string "^4.0.0" + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747" + integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== + dependencies: + builtins "^5.0.0" + +validate-npm-package-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713" + integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ== + dependencies: + builtins "^5.0.0" + +version-selector-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/version-selector-type/-/version-selector-type-3.0.0.tgz#47c365fb4d9ca4a54e6dabcad6fb7a46265f7955" + integrity sha512-PSvMIZS7C1MuVNBXl/CDG2pZq8EXy/NW2dHIdm3bVP5N0PC8utDK8ttXLXj44Gn3J0lQE3U7Mpm1estAOd+eiA== + dependencies: + semver "^7.3.2" + +vlq@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" + integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== + +vscode-languageserver-textdocument@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz#0822a000e7d4dc083312580d7575fe9e3ba2e2bf" + integrity sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA== + +vscode-uri@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" + integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== + dependencies: + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.1" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== + dependencies: + isexe "^3.1.1" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrap-ansi@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" + integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== + dependencies: + ansi-styles "^6.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +xdg-basedir@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" + integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@2.3.4, yaml@^2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + +yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.0.0: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zod-validation-error@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-2.1.0.tgz#208eac75237dfed47c0018d2fe8fd03501bfc9ac" + integrity sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ== + +zod@3.22.4: + version "3.22.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" + integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== From 377e8920fbe65f47f669612ead472e70dc7a9131 Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Fri, 16 Feb 2024 10:32:36 +0000 Subject: [PATCH 53/85] fix: pagination css class --- package.json | 2 +- static/index.html | 4 ++-- .../render-transaction/render-transaction.ts | 17 +++++++++++++---- static/styles/rewards/claim-table.css | 8 ++++++-- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 1be823f3..991069d6 100644 --- a/package.json +++ b/package.json @@ -36,4 +36,4 @@ "engines": { "node": ">=20.10.0" } -} +} \ No newline at end of file diff --git a/static/index.html b/static/index.html index 4b6e62f0..6fefad1c 100644 --- a/static/index.html +++ b/static/index.html @@ -62,7 +62,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 490 490" xml:space="preserve" - class="paginateClaims" + class="hide-pagination" > @@ -80,7 +80,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 490 490" xml:space="preserve" - class="paginateClaims" + class="hide-pagination" > diff --git a/static/scripts/rewards/render-transaction/render-transaction.ts b/static/scripts/rewards/render-transaction/render-transaction.ts index 635cc799..8d3c37c8 100644 --- a/static/scripts/rewards/render-transaction/render-transaction.ts +++ b/static/scripts/rewards/render-transaction/render-transaction.ts @@ -55,7 +55,6 @@ export async function init() { const nextTxButton = document.getElementById("nextTx"); if (nextTxButton) { - nextTxButton.style.display = "block"; nextTxButton.addEventListener("click", () => { claimButton.element = removeAllEventListeners(claimButton.element) as HTMLButtonElement; app.nextTx(); @@ -67,7 +66,6 @@ export async function init() { const prevTxButton = document.getElementById("previousTx"); if (prevTxButton) { - prevTxButton.style.display = "block"; prevTxButton.addEventListener("click", () => { claimButton.element = removeAllEventListeners(claimButton.element) as HTMLButtonElement; app.previousTx(); @@ -76,12 +74,24 @@ export async function init() { renderTransaction(); }); } + + setPagination(nextTxButton, prevTxButton); } } renderTransaction(); } +function setPagination(nextTxButton: Element | null, prevTxButton: Element | null) { + if (app.claimTxs.length > 1) { + prevTxButton!.classList.remove("hide-pagination"); + nextTxButton!.classList.remove("hide-pagination"); + + prevTxButton!.classList.add("show-pagination"); + nextTxButton!.classList.add("show-pagination"); + } +} + type Success = boolean; export async function renderTransaction(nextTx?: boolean): Promise { const table = document.getElementsByTagName(`table`)[0]; @@ -92,8 +102,7 @@ export async function renderTransaction(nextTx?: boolean): Promise { if (!app.claimTxs || app.claimTxs.length <= 1) { // already hidden } else { - document.getElementById("nextTx")!.style.display = "block"; - document.getElementById("previousTx")!.style.display = "block"; + setPagination(document.getElementById("nextTx"), document.getElementById("previousTx")); const rewardsCount = document.getElementById("rewardsCount") as Element; rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; diff --git a/static/styles/rewards/claim-table.css b/static/styles/rewards/claim-table.css index 7b7b38c6..121a462a 100644 --- a/static/styles/rewards/claim-table.css +++ b/static/styles/rewards/claim-table.css @@ -288,12 +288,16 @@ table[data-claim-rendered="true"][data-claim="none"][data-contract-loaded="true" display: none; } -.paginateClaims { - display: none; +.show-pagination { + display: flex; cursor: pointer; padding: 10px; } +.hide-pagination { + display: none; +} + #additionalDetails svg { /* display: none; */ } From 04f5e5d7997405536bafcb199002bbf037f8cfc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sat, 17 Feb 2024 02:48:19 +0900 Subject: [PATCH 54/85] style: remove hash from claim complete toast --- .github/workflows/cloudflare-deploy.yml | 31 ++++++++++++++++++++ static/scripts/rewards/web3/erc20-permit.ts | 4 +-- static/scripts/rewards/web3/erc721-permit.ts | 11 +++---- 3 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/cloudflare-deploy.yml diff --git a/.github/workflows/cloudflare-deploy.yml b/.github/workflows/cloudflare-deploy.yml new file mode 100644 index 00000000..9301cefa --- /dev/null +++ b/.github/workflows/cloudflare-deploy.yml @@ -0,0 +1,31 @@ +name: Deploy to Cloudflare Pages + +on: + push: + +jobs: + deploy-to-cloudflare: + name: Deploy to Cloudflare Pages + runs-on: ubuntu-22.04 + permissions: + contents: read + + steps: + - name: Check Cloudflare API Token + run: | + if [[ -z "${{ secrets.CLOUDFLARE_API_TOKEN }}" ]]; then + echo "CLOUDFLARE_API_TOKEN secret must be set" >&2 + exit 1 + fi + - name: Deploy to Cloudflare + uses: ubiquity/cloudflare-deploy-action@main + with: + cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }} + repository: ${{ github.repository }} + production_branch: ${{ github.event.repository.default_branch }} + output_directory: "static" + is_production: ${{ github.event_name == 'push' && github.ref == 'refs/heads/${{ github.event.repository.default_branch }}' }} + # env: + # Add any environment variables you need to pass along here + # SUPABASE_URL: ${{ secrets.SUPABASE_URL }} + # SUPABASE_KEY: ${{ secrets.SUPABASE_KEY }} diff --git a/static/scripts/rewards/web3/erc20-permit.ts b/static/scripts/rewards/web3/erc20-permit.ts index 80506eea..2ff7b3dc 100644 --- a/static/scripts/rewards/web3/erc20-permit.ts +++ b/static/scripts/rewards/web3/erc20-permit.ts @@ -40,9 +40,9 @@ export function claimErc20PermitHandler(permit: Erc20Permit) { const permit2Contract = new ethers.Contract(permit2Address, permit2Abi, signer); const tx = await permit2Contract.permitTransferFrom(permit.permit, permit.transferDetails, permit.owner, permit.signature); toaster.create("info", `Transaction sent`); - const receipt = await tx.wait(); - toaster.create("success", `Claim Complete: ${receipt?.transactionHash}`); + toaster.create("success", `Claim Complete.`); + console.log(receipt.transactionHash); // @TODO: post to database claimButton.element.removeEventListener("click", handler); renderTransaction(true); diff --git a/static/scripts/rewards/web3/erc721-permit.ts b/static/scripts/rewards/web3/erc721-permit.ts index de7a2d25..77d39090 100644 --- a/static/scripts/rewards/web3/erc721-permit.ts +++ b/static/scripts/rewards/web3/erc721-permit.ts @@ -1,11 +1,11 @@ +import { TransactionResponse } from "@ethersproject/providers"; import { ethers } from "ethers"; -import { Erc721Permit } from "../render-transaction/tx-type"; -import { claimButton, errorToast, loadingClaimButton, resetClaimButton, toaster } from "../toaster"; -import { connectWallet } from "./wallet"; import { nftRewardAbi } from "../abis/nftRewardAbi"; -import { TransactionResponse } from "@ethersproject/providers"; import { getOptimalRPC } from "../helpers"; import { renderTransaction } from "../render-transaction/render-transaction"; +import { Erc721Permit } from "../render-transaction/tx-type"; +import { claimButton, errorToast, loadingClaimButton, resetClaimButton, toaster } from "../toaster"; +import { connectWallet } from "./wallet"; export function claimErc721PermitHandler(permit: Erc721Permit) { return async function claimButtonHandler() { @@ -40,7 +40,8 @@ export function claimErc721PermitHandler(permit: Erc721Permit) { const tx: TransactionResponse = await nftContract.safeMint(permit.request, permit.signature); toaster.create("info", `Transaction sent. Waiting for confirmation...`); const receipt = await tx.wait(); - toaster.create("success", `Claim Complete: ${receipt.transactionHash}`); + toaster.create("success", `Claim Complete.`); + console.log(receipt.transactionHash); // @TODO: post to database claimButton.element.removeEventListener("click", claimButtonHandler); From 5d9adb5160de80a06c5f85baf4ddc371920aa953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sat, 17 Feb 2024 02:49:33 +0900 Subject: [PATCH 55/85] revert: accidently included this file --- .github/workflows/cloudflare-deploy.yml | 31 ------------------------- 1 file changed, 31 deletions(-) delete mode 100644 .github/workflows/cloudflare-deploy.yml diff --git a/.github/workflows/cloudflare-deploy.yml b/.github/workflows/cloudflare-deploy.yml deleted file mode 100644 index 9301cefa..00000000 --- a/.github/workflows/cloudflare-deploy.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Deploy to Cloudflare Pages - -on: - push: - -jobs: - deploy-to-cloudflare: - name: Deploy to Cloudflare Pages - runs-on: ubuntu-22.04 - permissions: - contents: read - - steps: - - name: Check Cloudflare API Token - run: | - if [[ -z "${{ secrets.CLOUDFLARE_API_TOKEN }}" ]]; then - echo "CLOUDFLARE_API_TOKEN secret must be set" >&2 - exit 1 - fi - - name: Deploy to Cloudflare - uses: ubiquity/cloudflare-deploy-action@main - with: - cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }} - repository: ${{ github.repository }} - production_branch: ${{ github.event.repository.default_branch }} - output_directory: "static" - is_production: ${{ github.event_name == 'push' && github.ref == 'refs/heads/${{ github.event.repository.default_branch }}' }} - # env: - # Add any environment variables you need to pass along here - # SUPABASE_URL: ${{ secrets.SUPABASE_URL }} - # SUPABASE_KEY: ${{ secrets.SUPABASE_KEY }} From de7a276385bb718a4980707f8f453fdd97a10873 Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Fri, 16 Feb 2024 20:25:05 +0000 Subject: [PATCH 56/85] fix: handle network once --- .../rewards/render-transaction/render-transaction.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/static/scripts/rewards/render-transaction/render-transaction.ts b/static/scripts/rewards/render-transaction/render-transaction.ts index 8d3c37c8..e2b2ca5d 100644 --- a/static/scripts/rewards/render-transaction/render-transaction.ts +++ b/static/scripts/rewards/render-transaction/render-transaction.ts @@ -16,6 +16,12 @@ import { removeAllEventListeners } from "./utils"; export async function init() { const table = document.getElementsByTagName(`table`)[0]; + /** + * Moving this here takes us from ~40 requests at 3.97s + * down to ~7 requests at 0.82s + */ + handleNetwork(app.currentTx!.networkId); + // decode base64 to get tx data const urlParams = new URLSearchParams(window.location.search); const base64encodedTxData = urlParams.get("claim"); From 63e60fe0508376b5f11cfe50dd2a7babd3c8d5d1 Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 01:50:54 +0000 Subject: [PATCH 57/85] feat: improvements - create one instance of a provider with the optimalRPC - hardcode tokens so skip symbol and decimal calls - access chain ID through provider network vars vs a call - stripped out only the fa icons in use and cut the size of the stylesheet in half - removed unsed css classes - moved handleNetwork outside of renderTransaction - minify = true from 40 requests to 14-18 from 12.s to 1.8-3s from 8.2mb to 3.9mb resources --- build/esbuild-config.ts | 2 +- static/scripts/rewards/helpers.ts | 15 +++--- .../rewards/render-transaction/index.ts | 3 +- .../render-transaction/render-token-symbol.ts | 37 +++++++++---- .../render-transaction/render-transaction.ts | 33 ++++++------ static/scripts/rewards/web3/erc20-permit.ts | 48 +++++++++++------ static/scripts/rewards/web3/erc721-permit.ts | 13 ++--- static/scripts/rewards/web3/wallet.ts | 6 +-- static/styles/rewards/claim-table.css | 29 ++-------- static/styles/rewards/media-queries.css | 4 -- static/styles/rewards/pay.css | 16 ------ static/styles/rewards/rewards.css | 2 +- static/styles/rewards/usedFa.css | 53 +++++++++++++++++++ yarn.lock | 2 +- 14 files changed, 154 insertions(+), 109 deletions(-) create mode 100644 static/styles/rewards/usedFa.css diff --git a/build/esbuild-config.ts b/build/esbuild-config.ts index 7c7a681f..6c60cd65 100644 --- a/build/esbuild-config.ts +++ b/build/esbuild-config.ts @@ -14,7 +14,7 @@ export let esBuildContext = { entryPoints: entries, //plugins: [invertColors], bundle: true, - minify: false, + minify: true, loader: { ".png": "dataurl", ".woff": "dataurl", diff --git a/static/scripts/rewards/helpers.ts b/static/scripts/rewards/helpers.ts index 77123684..7ed0cdb7 100644 --- a/static/scripts/rewards/helpers.ts +++ b/static/scripts/rewards/helpers.ts @@ -2,8 +2,7 @@ import axios from "axios"; import { NetworkIds, networkRpcs } from "./constants"; import { Contract, ethers } from "ethers"; import { erc20Abi } from "./abis"; -import { Type as T, StaticDecode } from "@sinclair/typebox"; -import { Value } from "@sinclair/typebox/value"; +import { JsonRpcProvider } from "@ethersproject/providers"; type DataType = { jsonrpc: string; @@ -36,14 +35,12 @@ const RPC_HEADER = { "Content-Type": "application/json", }; -export const getErc20Contract = async (contractAddress: string, networkId: number): Promise => { - const providerUrl = await getOptimalRPC(networkId); - const provider = new ethers.providers.JsonRpcProvider(providerUrl); +export const getErc20Contract = async (contractAddress: string, provider: JsonRpcProvider): Promise => { const contractInstance = new ethers.Contract(contractAddress, erc20Abi, provider); return contractInstance; }; -export const getOptimalRPC = async (networkId: number): Promise => { +export const getOptimalRPC = async (networkId: number) => { const promises = networkRpcs[networkId].map(async (baseURL: string) => { try { const startTime = performance.now(); @@ -69,5 +66,9 @@ export const getOptimalRPC = async (networkId: number): Promise => { }); const { baseURL: optimalRPC } = await Promise.any(promises); - return optimalRPC; + return new ethers.providers.JsonRpcProvider(optimalRPC, { + name: NetworkIds[networkId], + chainId: networkId, + ensAddress: "", + }); }; diff --git a/static/scripts/rewards/render-transaction/index.ts b/static/scripts/rewards/render-transaction/index.ts index bbc74f47..e84e6f3c 100644 --- a/static/scripts/rewards/render-transaction/index.ts +++ b/static/scripts/rewards/render-transaction/index.ts @@ -1,3 +1,4 @@ +import { JsonRpcProvider } from "@ethersproject/providers"; import { networkRpcs, networkExplorers } from "../constants"; import { getOptimalRPC } from "../helpers"; import { ClaimTx } from "./tx-type"; @@ -14,7 +15,7 @@ class AppState { return this.currentIndex < this.claimTxs.length ? this.claimTxs[this.currentIndex] : null; } - async currentNetworkRpc(): Promise { + async currentNetworkRpc(): Promise { if (!this.currentTx) { return getOptimalRPC(1); } diff --git a/static/scripts/rewards/render-transaction/render-token-symbol.ts b/static/scripts/rewards/render-transaction/render-token-symbol.ts index f92fbe49..028ffaca 100644 --- a/static/scripts/rewards/render-transaction/render-token-symbol.ts +++ b/static/scripts/rewards/render-transaction/render-token-symbol.ts @@ -1,26 +1,45 @@ -import { BigNumberish, utils } from "ethers"; +import { BigNumberish, Contract, providers, utils } from "ethers"; import { getErc20Contract } from "../helpers"; +import { MaxUint256 } from "@uniswap/permit2-sdk"; +import { JsonRpcProvider } from "@ethersproject/providers"; + +export const tokens = [ + { + name: "WXDAI", + address: "0xe91d153e0b41518a2ce8dd3d7944fa863463a97d", + }, + { + name: "DAI", + address: "0x6b175474e89094c44da98b954eedeac495271d0f", + }, +]; export async function renderTokenSymbol({ table, requestedAmountElement, tokenAddress, ownerAddress, - networkId, amount, explorerUrl, + provider, }: { table: Element; requestedAmountElement: Element; tokenAddress: string; ownerAddress: string; - networkId: number; amount: BigNumberish; explorerUrl: string; + provider: JsonRpcProvider; }): Promise { - const contract = await getErc20Contract(tokenAddress, networkId); - const symbol = await contract.symbol(); - const decimals = await contract.decimals(); + let symbol = tokenAddress === tokens[0].address ? tokens[0].name : tokenAddress === tokens[1].address ? tokens[1].name : false; + let decimals = tokenAddress === tokens[0].address ? 18 : tokenAddress === tokens[1].address ? 18 : MaxUint256; + + if (!symbol || decimals === MaxUint256) { + const contract: Contract = await getErc20Contract(tokenAddress, provider); + symbol = await contract.symbol(); + decimals = await contract.decimals(); + } + table.setAttribute(`data-contract-loaded`, "true"); requestedAmountElement.innerHTML = `${utils.formatUnits( amount, @@ -32,16 +51,16 @@ export async function renderNftSymbol({ table, requestedAmountElement, tokenAddress, - networkId, explorerUrl, + provider, }: { table: Element; requestedAmountElement: Element; tokenAddress: string; - networkId: number; explorerUrl: string; + provider: JsonRpcProvider; }): Promise { - const contract = await getErc20Contract(tokenAddress, networkId); + const contract = await getErc20Contract(tokenAddress, provider); const symbol = await contract.symbol(); table.setAttribute(`data-contract-loaded`, "true"); requestedAmountElement.innerHTML = `1 ${symbol}`; diff --git a/static/scripts/rewards/render-transaction/render-transaction.ts b/static/scripts/rewards/render-transaction/render-transaction.ts index e2b2ca5d..bde0207a 100644 --- a/static/scripts/rewards/render-transaction/render-transaction.ts +++ b/static/scripts/rewards/render-transaction/render-transaction.ts @@ -12,16 +12,14 @@ import { handleNetwork } from "../web3/wallet"; import { claimErc721PermitHandler } from "../web3/erc721-permit"; import { claimErc20PermitHandler, fetchTreasury, generateInvalidatePermitAdminControl } from "../web3/erc20-permit"; import { removeAllEventListeners } from "./utils"; +import { getOptimalRPC } from "../helpers"; +import { JsonRpcProvider } from "@ethersproject/providers"; + +let optimalRPC: JsonRpcProvider; export async function init() { const table = document.getElementsByTagName(`table`)[0]; - /** - * Moving this here takes us from ~40 requests at 3.97s - * down to ~7 requests at 0.82s - */ - handleNetwork(app.currentTx!.networkId); - // decode base64 to get tx data const urlParams = new URLSearchParams(window.location.search); const base64encodedTxData = urlParams.get("claim"); @@ -35,6 +33,9 @@ export async function init() { try { const claimTxs = Value.Decode(Type.Array(ClaimTx), JSON.parse(atob(base64encodedTxData))); app.claimTxs = claimTxs; + optimalRPC = await getOptimalRPC(app.currentTx?.networkId ?? app.claimTxs[0].networkId); + + handleNetwork(app.currentTx?.networkId ?? app.claimTxs[0].networkId, optimalRPC); } catch (error) { console.error(error); setClaimMessage({ type: "Error", message: `Invalid claim data passed in URL` }); @@ -66,7 +67,7 @@ export async function init() { app.nextTx(); rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; table.setAttribute(`data-claim`, "none"); - renderTransaction(); + renderTransaction(optimalRPC, undefined); }); } @@ -77,7 +78,7 @@ export async function init() { app.previousTx(); rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; table.setAttribute(`data-claim`, "none"); - renderTransaction(); + renderTransaction(optimalRPC, undefined); }); } @@ -85,7 +86,7 @@ export async function init() { } } - renderTransaction(); + renderTransaction(optimalRPC, undefined); } function setPagination(nextTxButton: Element | null, prevTxButton: Element | null) { @@ -99,7 +100,7 @@ function setPagination(nextTxButton: Element | null, prevTxButton: Element | nul } type Success = boolean; -export async function renderTransaction(nextTx?: boolean): Promise { +export async function renderTransaction(provider: JsonRpcProvider, nextTx?: boolean): Promise { const table = document.getElementsByTagName(`table`)[0]; resetClaimButton(); @@ -121,10 +122,8 @@ export async function renderTransaction(nextTx?: boolean): Promise { return false; } - handleNetwork(app.currentTx.networkId); - if (app.currentTx.type === "erc20-permit") { - const treasury = await fetchTreasury(app.currentTx); + const treasury = await fetchTreasury(app.currentTx, provider); // insert tx data into table const requestedAmountElement = insertErc20PermitTableData(app.currentTx, table, treasury); @@ -133,11 +132,11 @@ export async function renderTransaction(nextTx?: boolean): Promise { renderTokenSymbol({ tokenAddress: app.currentTx.permit.permitted.token, ownerAddress: app.currentTx.owner, - networkId: app.currentTx.networkId, amount: app.currentTx.transferDetails.requestedAmount, explorerUrl: networkExplorers[app.currentTx.networkId], table, requestedAmountElement, + provider, }).catch(console.error); const toElement = document.getElementById(`rewardRecipient`) as Element; @@ -145,23 +144,23 @@ export async function renderTransaction(nextTx?: boolean): Promise { generateInvalidatePermitAdminControl(app.currentTx); - claimButton.element.addEventListener("click", claimErc20PermitHandler(app.currentTx)); + claimButton.element.addEventListener("click", claimErc20PermitHandler(app.currentTx, optimalRPC)); } else if (app.currentTx.type === "erc721-permit") { const requestedAmountElement = insertErc721PermitTableData(app.currentTx, table); table.setAttribute(`data-claim`, "ok"); renderNftSymbol({ tokenAddress: app.currentTx.nftAddress, - networkId: app.currentTx.networkId, explorerUrl: networkExplorers[app.currentTx.networkId], table, requestedAmountElement, + provider, }).catch(console.error); const toElement = document.getElementById(`rewardRecipient`) as Element; renderEnsName({ element: toElement, address: app.currentTx.request.beneficiary }); - claimButton.element.addEventListener("click", claimErc721PermitHandler(app.currentTx)); + claimButton.element.addEventListener("click", claimErc721PermitHandler(app.currentTx, provider)); } return true; diff --git a/static/scripts/rewards/web3/erc20-permit.ts b/static/scripts/rewards/web3/erc20-permit.ts index 8c5bd202..ed838f72 100644 --- a/static/scripts/rewards/web3/erc20-permit.ts +++ b/static/scripts/rewards/web3/erc20-permit.ts @@ -7,24 +7,40 @@ import { toaster, resetClaimButton, errorToast, loadingClaimButton, claimButton import { renderTransaction } from "../render-transaction/render-transaction"; import { connectWallet } from "./wallet"; import invalidateButton from "../invalidate-component"; +import { JsonRpcProvider } from "@ethersproject/providers"; +import { tokens } from "../render-transaction/render-token-symbol"; -export async function fetchTreasury(permit: Erc20Permit): Promise<{ balance: BigNumber; allowance: BigNumber; decimals: number; symbol: string }> { +export async function fetchTreasury( + permit: Erc20Permit, + providerUrl: JsonRpcProvider, +): Promise<{ balance: BigNumber; allowance: BigNumber; decimals: number; symbol: string }> { try { - const providerUrl = await getOptimalRPC(permit.networkId); - const provider = new ethers.providers.JsonRpcProvider(providerUrl); const tokenAddress = permit.permit.permitted.token; - const tokenContract = new ethers.Contract(tokenAddress, erc20Abi, provider); - const balance = await tokenContract.balanceOf(permit.owner); - const allowance = await tokenContract.allowance(permit.owner, permit2Address); - const decimals = await tokenContract.decimals(); - const symbol = await tokenContract.symbol(); - return { balance, allowance, decimals, symbol }; + const tokenContract = new ethers.Contract(tokenAddress, erc20Abi, providerUrl); + + if (tokenAddress === tokens[0].address || tokenAddress === tokens[1].address) { + const decimals = tokenAddress === tokens[0].address ? 18 : tokenAddress === tokens[1].address ? 18 : -1; + const symbol = tokenAddress === tokens[0].address ? tokens[0].name : tokenAddress === tokens[1].address ? tokens[1].name : ""; + const [balance, allowance] = await Promise.all([tokenContract.balanceOf(permit.owner), tokenContract.allowance(permit.owner, permit2Address)]); + + return { balance, allowance, decimals, symbol }; + } else { + console.log(`Hardcode this token in render-token-symbol.ts and save two calls: ${tokenAddress}`); + const [balance, allowance, decimals, symbol] = await Promise.all([ + tokenContract.balanceOf(permit.owner), + tokenContract.allowance(permit.owner, permit2Address), + tokenContract.decimals(), + tokenContract.symbol(), + ]); + + return { balance, allowance, decimals, symbol }; + } } catch (error: any) { return { balance: BigNumber.from(-1), allowance: BigNumber.from(-1), decimals: -1, symbol: "" }; } } -export function claimErc20PermitHandler(permit: Erc20Permit) { +export function claimErc20PermitHandler(permit: Erc20Permit, provider: JsonRpcProvider) { return async function handler() { try { const signer = await connectWallet(); @@ -32,7 +48,7 @@ export function claimErc20PermitHandler(permit: Erc20Permit) { return; } - if (!(await checkPermitClaimable(permit, signer))) { + if (!(await checkPermitClaimable(permit, signer, provider))) { return; } @@ -45,7 +61,7 @@ export function claimErc20PermitHandler(permit: Erc20Permit) { console.log(receipt.transactionHash); // @TODO: post to database claimButton.element.removeEventListener("click", handler); - renderTransaction(true); + renderTransaction(provider); } catch (error: any) { console.log(error); errorToast(error, error.message); @@ -54,7 +70,7 @@ export function claimErc20PermitHandler(permit: Erc20Permit) { }; } -export async function checkPermitClaimable(permit: Erc20Permit, signer: ethers.providers.JsonRpcSigner | null) { +export async function checkPermitClaimable(permit: Erc20Permit, signer: ethers.providers.JsonRpcSigner | null, provider: JsonRpcProvider) { const claimed = await isNonceClaimed(permit); if (claimed) { toaster.create("error", `Your reward for this task has already been claimed or invalidated.`); @@ -66,7 +82,7 @@ export async function checkPermitClaimable(permit: Erc20Permit, signer: ethers.p return false; } - const { balance, allowance } = await fetchTreasury(permit); + const { balance, allowance } = await fetchTreasury(permit, provider); const permitted = BigNumber.from(permit.permit.permitted.amount); const solvent = balance.gte(permitted); const allowed = allowance.gte(permitted); @@ -129,8 +145,8 @@ export async function generateInvalidatePermitAdminControl(permit: Erc20Permit) //mimics https://github.com/Uniswap/permit2/blob/a7cd186948b44f9096a35035226d7d70b9e24eaf/src/SignatureTransfer.sol#L150 export async function isNonceClaimed(permit: Erc20Permit): Promise { - const providerUrl = await getOptimalRPC(permit.networkId); - const provider = new ethers.providers.JsonRpcProvider(providerUrl); + const provider = await getOptimalRPC(permit.networkId); + const permit2Contract = new ethers.Contract(permit2Address, permit2Abi, provider); const { wordPos, bitPos } = nonceBitmap(BigNumber.from(permit.permit.nonce)); diff --git a/static/scripts/rewards/web3/erc721-permit.ts b/static/scripts/rewards/web3/erc721-permit.ts index 77d39090..405a447d 100644 --- a/static/scripts/rewards/web3/erc721-permit.ts +++ b/static/scripts/rewards/web3/erc721-permit.ts @@ -1,13 +1,12 @@ -import { TransactionResponse } from "@ethersproject/providers"; +import { JsonRpcProvider, TransactionResponse } from "@ethersproject/providers"; import { ethers } from "ethers"; import { nftRewardAbi } from "../abis/nftRewardAbi"; -import { getOptimalRPC } from "../helpers"; import { renderTransaction } from "../render-transaction/render-transaction"; import { Erc721Permit } from "../render-transaction/tx-type"; import { claimButton, errorToast, loadingClaimButton, resetClaimButton, toaster } from "../toaster"; import { connectWallet } from "./wallet"; -export function claimErc721PermitHandler(permit: Erc721Permit) { +export function claimErc721PermitHandler(permit: Erc721Permit, provider: JsonRpcProvider) { return async function claimButtonHandler() { const signer = await connectWallet(); if (!signer) { @@ -26,7 +25,7 @@ export function claimErc721PermitHandler(permit: Erc721Permit) { return; } - const reedemed = await isNonceRedeemed(permit); + const reedemed = await isNonceRedeemed(permit, provider); if (reedemed) { toaster.create("error", `This NFT has already been redeemed.`); resetClaimButton(); @@ -45,7 +44,7 @@ export function claimErc721PermitHandler(permit: Erc721Permit) { claimButton.element.removeEventListener("click", claimButtonHandler); - renderTransaction(true); + renderTransaction(provider, true); } catch (error: any) { console.error(error); errorToast(error, error.message ?? error); @@ -54,9 +53,7 @@ export function claimErc721PermitHandler(permit: Erc721Permit) { }; } -export async function isNonceRedeemed(nftMint: Erc721Permit): Promise { - const providerUrl = await getOptimalRPC(nftMint.networkId); - const provider = new ethers.providers.JsonRpcProvider(providerUrl); +export async function isNonceRedeemed(nftMint: Erc721Permit, provider: JsonRpcProvider): Promise { const nftContract = new ethers.Contract(nftMint.nftAddress, nftRewardAbi, provider); return nftContract.nonceRedeemed(nftMint.request.nonce); } diff --git a/static/scripts/rewards/web3/wallet.ts b/static/scripts/rewards/web3/wallet.ts index 9c23a9ba..e698fd6e 100644 --- a/static/scripts/rewards/web3/wallet.ts +++ b/static/scripts/rewards/web3/wallet.ts @@ -2,7 +2,7 @@ import { ethers } from "ethers"; import { claimButton, loadingClaimButton, resetClaimButton, toaster } from "../toaster"; import { getNetworkName, networkCurrencies, networkExplorers, networkRpcs } from "../constants"; import invalidateButton from "../invalidate-component"; -import { JsonRpcSigner } from "@ethersproject/providers"; +import { JsonRpcProvider, JsonRpcSigner } from "@ethersproject/providers"; export async function connectWallet(): Promise { try { @@ -23,7 +23,7 @@ export async function connectWallet(): Promise { } } -export async function handleNetwork(desiredNetworkId: number) { +export async function handleNetwork(desiredNetworkId: number, provider: JsonRpcProvider) { const web3provider = new ethers.providers.Web3Provider(window.ethereum); if (!web3provider || !web3provider.provider.isMetaMask) { toaster.create("info", "Please connect to MetaMask."); @@ -31,7 +31,7 @@ export async function handleNetwork(desiredNetworkId: number) { invalidateButton.disabled = true; } - const currentNetworkId = parseInt(await web3provider.provider.request!({ method: "eth_chainId" }), 16); + const currentNetworkId = provider.network.chainId; // watch for network changes window.ethereum.on("chainChanged", newNetworkId => handleIfOnCorrectNetwork(parseInt(newNetworkId, 16), desiredNetworkId)); diff --git a/static/styles/rewards/claim-table.css b/static/styles/rewards/claim-table.css index 121a462a..53f7615f 100644 --- a/static/styles/rewards/claim-table.css +++ b/static/styles/rewards/claim-table.css @@ -29,10 +29,6 @@ table { background-color: var(--background-color-default); border: 1px solid var(--border-color); } -table tr { - /* width: 100%; */ - /* border: 1px solid; */ -} table a:hover, table a:hover > div { @@ -122,11 +118,7 @@ table tr#additional-details-border > * { padding: 0; margin: 0; } -table[data-claim-rendered] { - /* border: 1px solid #80808020; */ - /* border-right: 0; */ - /* border-left: 0; */ -} + table[data-claim-rendered] #controls { display: flex; } @@ -159,9 +151,7 @@ table[data-claim-rendered] button#additionalDetails { color: #fff; /* opacity: 0.25; */ } -table[data-claim-rendered] button#additionalDetails:hover { - /* opacity: 1; */ -} + table[data-claim-rendered] tr { background-color: #80808000; transition: 125ms ease-in-out opacity; @@ -184,9 +174,7 @@ table[data-details-visible="false"] #additionalDetailsTable tr { pointer-events: none; display: none; } -table[data-details-visible="false"] { - /* border-bottom: 1px solid #80808000; */ -} + table[data-details-visible="true"] #additionalDetailsTable tr { opacity: 1; pointer-events: unset; @@ -195,9 +183,7 @@ table[data-details-visible="true"] #additionalDetailsTable tr { /* -webkit-backdrop-filter: blur(4px); */ /* backdrop-filter: blur(4px); */ } -table[data-details-visible="true"] { - /* border-bottom: 1px solid #80808020; */ -} + table[data-contract-loaded] #Token { display: none; } @@ -298,9 +284,6 @@ table[data-claim-rendered="true"][data-claim="none"][data-contract-loaded="true" display: none; } -#additionalDetails svg { - /* display: none; */ -} table[data-details-visible="true"] #additionalDetails svg.opener { display: none; } @@ -315,10 +298,6 @@ table[data-details-visible="false"] #additionalDetails svg.closer { display: none; } -table .full { - /* word-break: break-all; */ -} - td#owner > a { word-break: break-all; } diff --git a/static/styles/rewards/media-queries.css b/static/styles/rewards/media-queries.css index 3cdf4011..86cc1e08 100644 --- a/static/styles/rewards/media-queries.css +++ b/static/styles/rewards/media-queries.css @@ -1,7 +1,3 @@ -header span:first-child::after { - /* content: " | "; */ -} - @media screen and (max-width: 640px) { table { border-left-width: 0px; diff --git a/static/styles/rewards/pay.css b/static/styles/rewards/pay.css index 7289c096..9278ec09 100644 --- a/static/styles/rewards/pay.css +++ b/static/styles/rewards/pay.css @@ -14,11 +14,6 @@ a { color: #808080; } -body { - /* min-height: 100vh; */ - /* height: calc(100 * var(--vh)); */ -} - body, main { max-width: 100vw; @@ -119,17 +114,6 @@ main { height: 100vh; /* adjust this according to your needs */ } -header { - /* height: 140px; */ - /* width: 100%; */ -} - -footer { - /* height: 108px; */ - /* width: 100%; */ - /* padding-bottom: env(safe-area-inset-bottom); */ -} - canvas { width: 100vw; height: 100vh; diff --git a/static/styles/rewards/rewards.css b/static/styles/rewards/rewards.css index 707ab0f4..a3f6df2e 100644 --- a/static/styles/rewards/rewards.css +++ b/static/styles/rewards/rewards.css @@ -4,5 +4,5 @@ @import url("media-queries.css"); @import url("../proxima.css"); @import url("../toast.css"); -@import url("../fa.css"); +@import url("usedFa.css"); @import url("light-mode.css"); diff --git a/static/styles/rewards/usedFa.css b/static/styles/rewards/usedFa.css new file mode 100644 index 00000000..67dfe6a5 --- /dev/null +++ b/static/styles/rewards/usedFa.css @@ -0,0 +1,53 @@ +.fa-circle-check { + color: var(--toast-success); +} + +.fa-circle-xmark { + color: var(--toast-error); +} + +.fa-triangle-exclamation { + color: var(--toast-warning); +} + +.fa-circle-info { + color: var(--toast-info); +} + +.fa-solid, + +.fa-check-circle:before, +.fa-circle-check:before { + content: "\f058"; +} + +.fa-exclamation-triangle:before, +.fa-triangle-exclamation:before, + +.fa-circle-info:before, +.fa-info-circle:before { + content: "\f05a"; +} + +.fa-circle-xmark:before, +.fa-xmark-circle:before { + content: "\f057"; +} + +.fa-solid, + +.fa-xmarks-lines:before { + content: "\e59a"; +} + +.fa-xmark:before { + content: "\f00d"; +} + +.fa-xmark-square:before { + content: "\f2d3"; +} + +.fa-xmark-circle:before { + content: "\f057"; +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index e335067b..982dc37f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1898,4 +1898,4 @@ ws@7.4.6: yaml@^2.2.2: version "2.3.4" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" - integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== \ No newline at end of file From 13e7ee7b119a6d41736df73d38da40be8fbc3e7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sat, 17 Feb 2024 17:01:09 +0900 Subject: [PATCH 58/85] chore: fix simple lint errors --- globals.d.ts | 6 +- scripts/typescript/generate-permit2-url.ts | 2 +- static/scripts/audit-report/audit.ts | 88 +++++++++---------- static/scripts/audit-report/helpers.ts | 2 +- .../audit-report/utils/getTransaction.ts | 4 +- static/scripts/onboarding/onboarding.ts | 21 ++--- static/scripts/rewards/cirip/ens-lookup.ts | 10 +-- static/scripts/rewards/helpers.ts | 7 +- .../rewards/render-transaction/index.ts | 2 +- .../render-transaction/insert-table-data.ts | 2 +- .../render-transaction/render-transaction.ts | 16 ++-- .../rewards/render-transaction/tx-type.ts | 2 +- static/scripts/rewards/the-grid.ts | 4 +- static/scripts/rewards/toaster.ts | 2 +- static/scripts/rewards/web3/erc20-permit.ts | 6 +- static/scripts/rewards/web3/wallet.ts | 4 +- 16 files changed, 85 insertions(+), 93 deletions(-) diff --git a/globals.d.ts b/globals.d.ts index 2f29226d..4ab599ac 100644 --- a/globals.d.ts +++ b/globals.d.ts @@ -4,10 +4,10 @@ export interface EthereumIsh { isMetaMask?: boolean; isStatus?: boolean; networkVersion: string; - selectedAddress: any; + selectedAddress: string; - on(event: "close" | "accountsChanged" | "chainChanged" | "networkChanged", callback: (payload: any) => void): void; - once(event: "close" | "accountsChanged" | "chainChanged" | "networkChanged", callback: (payload: any) => void): void; + on(event: "close" | "accountsChanged" | "chainChanged" | "networkChanged", callback: (payload: unknown) => void): void; + once(event: "close" | "accountsChanged" | "chainChanged" | "networkChanged", callback: (payload: unknown) => void): void; } declare global { diff --git a/scripts/typescript/generate-permit2-url.ts b/scripts/typescript/generate-permit2-url.ts index 81f7a3ff..f686585a 100644 --- a/scripts/typescript/generate-permit2-url.ts +++ b/scripts/typescript/generate-permit2-url.ts @@ -2,7 +2,7 @@ import { MaxUint256, PermitTransferFrom, SignatureTransfer } from "@uniswap/perm import { randomBytes } from "crypto"; import * as dotenv from "dotenv"; import { BigNumber, ethers } from "ethers"; -import { verifyEnvironmentVariables, log, colorizeText } from "./utils"; +import { log, verifyEnvironmentVariables } from "./utils"; dotenv.config(); const PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3"; // same on all chains diff --git a/static/scripts/audit-report/audit.ts b/static/scripts/audit-report/audit.ts index d5859dab..8c763196 100644 --- a/static/scripts/audit-report/audit.ts +++ b/static/scripts/audit-report/audit.ts @@ -1,23 +1,23 @@ -import { ethers } from "ethers"; -import { Octokit } from "@octokit/rest"; import { throttling } from "@octokit/plugin-throttling"; +import { Octokit } from "@octokit/rest"; import axios from "axios"; +import { ethers } from "ethers"; import GoDB from "godb"; import { permit2Abi } from "../rewards/abis"; -import { ObserverKeys, ElemInterface, QuickImport, StandardInterface, TxData, GoDBSchema, GitHubUrlParts, ChainScanResult, SavedData } from "./types"; import { Chain, ChainScan, DatabaseName, NULL_HASH, NULL_ID } from "./constants"; import { + RateLimitOptions, getCurrency, getGitHubUrlPartsArray, - getRandomAPIKey, getOptimalRPC, + getRandomAPIKey, isValidUrl, parseRepoUrl, populateTable, primaryRateLimitHandler, - RateLimitOptions, secondaryRateLimitHandler, } from "./helpers"; +import { ChainScanResult, ElemInterface, GitHubUrlParts, GoDBSchema, ObserverKeys, QuickImport, SavedData, StandardInterface, TxData } from "./types"; import { getTxInfo } from "./utils/getTransaction"; const rateOctokit = Octokit.plugin(throttling); @@ -26,7 +26,7 @@ let BOT_WALLET_ADDRESS = ""; let REPOSITORY_URL = ""; let GITHUB_PAT = ""; -let repoArray: string[] = []; +const repoArray: string[] = []; const urlRegex = /\((.*?)\)/; const botNodeId = "BOT_kgDOBr8EgA"; @@ -64,7 +64,7 @@ let etherHash = NULL_HASH; let lastGitID: number | boolean = false; let lastEtherHash: string | boolean = false; -const getDataSchema = (storeHash: string) => { +function getDataSchema(storeHash: string) { const schema: GoDBSchema = { [NULL_HASH]: { id: { @@ -101,14 +101,14 @@ const getDataSchema = (storeHash: string) => { }; return schema; -}; +} -const parseAndAddUrls = (input: string): void => { - const urls = input.split(",").map(url => url.trim()); +function parseAndAddUrls(input: string): void { + const urls = input.split(",").map((url) => url.trim()); repoArray.push(...urls); -}; +} -const updateDB = async (storeHash: string) => { +async function updateDB(storeHash: string) { const schema = getDataSchema(storeHash); const cacheDB = new GoDB(DatabaseName, schema); const metaTable = cacheDB.table(NULL_HASH); @@ -122,7 +122,7 @@ const updateDB = async (storeHash: string) => { await metaTable.put(metaData); if (elemList.length > 0) { - for (let elem of elemList) { + for (const elem of elemList) { const { id, tx, amount, title, bounty_hunter, network, owner, repo } = elem; await storeTable.put({ id, @@ -138,30 +138,30 @@ const updateDB = async (storeHash: string) => { } await cacheDB.close(); return; -}; +} -const readDB = async (storeHash: string) => { +async function readDB(storeHash: string) { const schema = getDataSchema(storeHash); const cacheDB = new GoDB(DatabaseName, schema); const storeTable = cacheDB.table(storeHash); const tableData = await storeTable.getAll(); await cacheDB.close(); return tableData; -}; +} -const readMeta = async (storeHash: string) => { +async function readMeta(storeHash: string) { const schema = getDataSchema(storeHash); const cacheDB = new GoDB(DatabaseName, schema); const metaTable = cacheDB.table(NULL_HASH); const metaData = await metaTable.get({ id: storeHash }); await cacheDB.close(); return metaData; -}; +} -const toggleLoader = (type: "none" | "block") => { +function toggleLoader(type: "none" | "block") { getReportElem.disabled = type === "block" ? true : false; reportLoader.style.display = type; -}; +} class QueueObserver { private readonly queueObject: { @@ -217,16 +217,16 @@ class QueueObserver { const finishedQueue = new QueueObserver(); -class smartQueue { - private readonly queue: Map; +class SmartQueue { + private readonly _queue: Map; constructor() { - this.queue = new Map(); + this._queue = new Map(); } add(key: string, value: StandardInterface) { - if (this.queue.has(key)) { - const queueValue = this.queue.get(key) as StandardInterface; + if (this._queue.has(key)) { + const queueValue = this._queue.get(key) as StandardInterface; queueValue.s[value.t] = value.s[value.t] as any; const { s: { ether, git, network }, @@ -247,14 +247,14 @@ class smartQueue { }); if (elemList.length > 0) { resultTableTbodyElem.innerHTML = ""; - for (let data of elemList) { + for (const data of elemList) { populateTable(data?.owner, data?.repo, data?.id, data?.network, data?.tx, data?.title, data?.amount, data?.bounty_hunter); } } } - this.queue.delete(key); + this._queue.delete(key); } else { - this.queue.set(key, value); + this._queue.set(key, value); } } } @@ -289,7 +289,7 @@ class QueueSet { } } -const updateQueue = new smartQueue(); +const updateQueue = new SmartQueue(); const rpcQueue = new QueueSet(); const commentFetcher = async () => { @@ -309,7 +309,7 @@ const commentFetcher = async () => { }, }, }); - let [owner, repo] = parseRepoUrl(issueList[0].html_url); + const [owner, repo] = parseRepoUrl(issueList[0].html_url); const { data } = await octokit.rest.issues.listComments({ owner, repo, @@ -328,14 +328,14 @@ const commentFetcher = async () => { } } else { let isFound = false; - for (let comment of data) { + for (const comment of data) { if (comment.user && comment.user.node_id === botNodeId && comment.body) { const match = comment.body.match(urlRegex); if (match && isValidUrl(match[1])) { const url = new URL(match[1]); const params = new URLSearchParams(url.search); const base64Payload = params.get("claim"); - let network = getCurrency(comment.body); // Might change it to `const claimNetwork = params.get("network");` later because previous permits are missing network query + const network = getCurrency(comment.body); // Might change it to `const claimNetwork = params.get("network");` later because previous permits are missing network query if (base64Payload) { const { owner: ownerAddress, @@ -444,13 +444,13 @@ const gitFetcher = async (repoUrls: GitHubUrlParts[]) => { if (data.length === 0) break; - const issues = data.filter(issue => !issue.pull_request && issue.comments > 0); + const issues = data.filter((issue) => !issue.pull_request && issue.comments > 0); if (issues.length > 0) { if (!lastGitID) { lastGitID = issues[0].number; } let iEF = true; - for (let i of issues) { + for (const i of issues) { if (i.number !== gitID) { await issueList.push(i); } else { @@ -477,7 +477,7 @@ const gitFetcher = async (repoUrls: GitHubUrlParts[]) => { }; try { - const issuesPromises = repoUrls.map(repoUrl => getIssuesForRepo(repoUrl.owner, repoUrl.repo)); + const issuesPromises = repoUrls.map((repoUrl) => getIssuesForRepo(repoUrl.owner, repoUrl.repo)); const allIssues = await Promise.all(issuesPromises); for (let i = 0; i < allIssues.length; i++) { @@ -507,11 +507,11 @@ const fetchDataFromChainScanAPI = async (url: string, chain: string) => { const etherFetcher = async () => { const ethereumURL = `https://api.${ChainScan.Ethereum}/api?module=account&action=tokentx&address=${BOT_WALLET_ADDRESS}&apikey=${getRandomAPIKey( - Chain.Ethereum, + Chain.Ethereum )}&page=${etherPageNumber}&offset=${offset}&sort=desc`; const gnosisURL = `https://api.${ChainScan.Gnosis}/api?module=account&action=tokentx&address=${BOT_WALLET_ADDRESS}&apikey=${getRandomAPIKey( - Chain.Gnosis, + Chain.Gnosis )}&page=${etherPageNumber}&offset=${offset}&sort=desc`; if (isEther) { @@ -529,7 +529,7 @@ const etherFetcher = async () => { lastEtherHash = combinedData[0].hash; } let iEF = true; - for (let e of combinedData) { + for (const e of combinedData) { if (e.hash !== etherHash) { await rpcQueue.add({ hash: e.hash, chain: e.chain }); } else { @@ -642,7 +642,7 @@ const dbInit = async () => { const tableData = await readDB(storeHash); if (tableData.length > 0) { - for (let data of tableData) { + for (const data of tableData) { const { owner, repo, id, network, tx, bounty_hunter, amount, title } = data as unknown as SavedData; populateTable(owner, repo, id, network, tx, title, amount, bounty_hunter); // for filtering @@ -732,19 +732,19 @@ const auditInit = () => { // Function to filter the table based on search input function filterTable() { const input = document.getElementById("searchInput")! as HTMLInputElement; - let value = input.value.toLowerCase(); + const value = input.value.toLowerCase(); const filteredData = elemList.filter( - row => + (row) => row.owner.toLowerCase().includes(value) || row.repo.toLowerCase().includes(value) || row.amount.toLowerCase().includes(value) || row.tx.toLowerCase().includes(value) || row.title.toLowerCase().includes(value) || row.network.toLowerCase().includes(value) || - row.bounty_hunter.name.toLowerCase().includes(value), + row.bounty_hunter.name.toLowerCase().includes(value) ); resultTableTbodyElem.innerHTML = ""; // Clear the existing rows - for (let data of filteredData) { + for (const data of filteredData) { const { owner, repo, id, network, tx, bounty_hunter, amount, title } = data as unknown as SavedData; populateTable(owner, repo, id, network, tx, title, amount, bounty_hunter); } @@ -759,7 +759,7 @@ function sortTableByAmount() { sortDirection *= -1; updateSortArrow(); resultTableTbodyElem.innerHTML = ""; // Clear the existing rows - for (let data of elemList) { + for (const data of elemList) { const { owner, repo, id, network, tx, bounty_hunter, amount, title } = data as unknown as SavedData; populateTable(owner, repo, id, network, tx, title, amount, bounty_hunter); } diff --git a/static/scripts/audit-report/helpers.ts b/static/scripts/audit-report/helpers.ts index eb81e0f9..b52c9b61 100644 --- a/static/scripts/audit-report/helpers.ts +++ b/static/scripts/audit-report/helpers.ts @@ -1,7 +1,7 @@ +import axios from "axios"; import { ethers } from "ethers"; import { API_KEYS, Chain, ChainScan, RPC_URLS } from "./constants"; import { BountyHunter, GitHubUrlParts } from "./types"; -import axios from "axios"; export interface RateLimitOptions { method: string; diff --git a/static/scripts/audit-report/utils/getTransaction.ts b/static/scripts/audit-report/utils/getTransaction.ts index 320f0ab4..c9a23c9d 100644 --- a/static/scripts/audit-report/utils/getTransaction.ts +++ b/static/scripts/audit-report/utils/getTransaction.ts @@ -1,7 +1,7 @@ import axios from "axios"; +import { Chain } from "../constants"; import { ITransaction } from "../types/transaction"; import { getBlockInfo, updateBlockInfo } from "./blockInfo"; -import { Chain } from "../constants"; export const getTxInfo = async (hash: string, url: string, chain: Chain): Promise => { try { @@ -13,7 +13,7 @@ export const getTxInfo = async (hash: string, url: string, chain: Chain): Promis }); const transaction = transactionResponse.data.result as ITransaction; - let timestamp = await getBlockInfo(transaction.blockNumber, chain); + const timestamp = await getBlockInfo(transaction.blockNumber, chain); if (timestamp !== null) { transaction.timestamp = timestamp; } else { diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index edf013ee..93d61028 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -1,13 +1,13 @@ -import _sodium from "libsodium-wrappers"; -import { Octokit } from "@octokit/rest"; +import { JsonRpcSigner } from "@ethersproject/providers"; import { createOrUpdateTextFile } from "@octokit/plugin-create-or-update-text-file"; -import YAML from "yaml"; -import { ethers } from "ethers"; +import { Octokit } from "@octokit/rest"; import { PERMIT2_ADDRESS } from "@uniswap/permit2-sdk"; -import { JsonRpcSigner, Network } from "@ethersproject/providers"; +import { ethers } from "ethers"; import { parseUnits } from "ethers/lib/utils"; -import { NetworkIds, Tokens, getNetworkName, networkNames } from "../rewards/constants"; +import _sodium from "libsodium-wrappers"; +import YAML from "yaml"; import { erc20Abi } from "../rewards/abis/erc20Abi"; +import { NetworkIds, Tokens, getNetworkName } from "../rewards/constants"; const classes = ["error", "warn", "success"]; const inputClasses = ["input-warn", "input-error", "input-success"]; @@ -133,8 +133,7 @@ export const parseYAML = async (data: any): Promise => { export const parseJSON = async (data: any): Promise => { try { - const parsedData = await JSON.parse(data); - return parsedData; + return await JSON.parse(data); } catch (error) { return undefined; } @@ -161,8 +160,7 @@ export const getConf = async (initial: boolean = false): Promise { const strLen = text.split("\n").length * 22; - const strPx = `${strLen > 140 ? strLen : 140}px`; - return strPx; + return `${strLen > 140 ? strLen : 140}px`; }; const resetToggle = () => { @@ -417,8 +415,7 @@ const connectWallet = async (): Promise => { try { const provider = new ethers.providers.Web3Provider(window.ethereum, "any"); await provider.send("eth_requestAccounts", []); - const signer = provider.getSigner(); - return signer; + return provider.getSigner(); } catch (error: any) { if (error?.message?.includes("missing provider")) { singleToggle("error", "Error: Please install MetaMask."); diff --git a/static/scripts/rewards/cirip/ens-lookup.ts b/static/scripts/rewards/cirip/ens-lookup.ts index 60a0b974..496313c1 100644 --- a/static/scripts/rewards/cirip/ens-lookup.ts +++ b/static/scripts/rewards/cirip/ens-lookup.ts @@ -14,7 +14,7 @@ export async function ensLookup(__address: string) { const _address = "/".concat(__address); // quick adapter // try { - let start = _address.indexOf("/0x"); + const start = _address.indexOf("/0x"); if (start == -1) throw "No ethereum address provided."; if (_address.length <= 42 + start) { throw "Invalid ethereum address provided."; @@ -26,14 +26,14 @@ export async function ensLookup(__address: string) { try { reverseRecord = await queryReverseEns(address); const responseParsed = JSON.parse(reverseRecord).result; - let _reverseRecord = ethers.utils.defaultAbiCoder.decode([ethers.utils.ParamType.from("string[]")], responseParsed); + const _reverseRecord = ethers.utils.defaultAbiCoder.decode([ethers.utils.ParamType.from("string[]")], responseParsed); reverseRecord = _reverseRecord[0][0]; } catch (e) { console.error(e); // throw "Error contacting ethereum node. \nCause: '" + e + "'. \nResponse: " + response; } - let allDomains = await fetchEns(address); + const allDomains = await fetchEns(address); if (reverseRecord == "") { reverseRecord = null; @@ -45,12 +45,10 @@ export async function ensLookup(__address: string) { reverseRecord = null; } - let response = { + return { reverseRecord: reverseRecord, domains: allDomains, }; - - return response; // new Response(JSON.stringify(response), { // headers: { // "Content-Type": "application/json;charset=UTF-8", diff --git a/static/scripts/rewards/helpers.ts b/static/scripts/rewards/helpers.ts index 77123684..334f62ea 100644 --- a/static/scripts/rewards/helpers.ts +++ b/static/scripts/rewards/helpers.ts @@ -1,9 +1,7 @@ import axios from "axios"; -import { NetworkIds, networkRpcs } from "./constants"; import { Contract, ethers } from "ethers"; import { erc20Abi } from "./abis"; -import { Type as T, StaticDecode } from "@sinclair/typebox"; -import { Value } from "@sinclair/typebox/value"; +import { networkRpcs } from "./constants"; type DataType = { jsonrpc: string; @@ -39,8 +37,7 @@ const RPC_HEADER = { export const getErc20Contract = async (contractAddress: string, networkId: number): Promise => { const providerUrl = await getOptimalRPC(networkId); const provider = new ethers.providers.JsonRpcProvider(providerUrl); - const contractInstance = new ethers.Contract(contractAddress, erc20Abi, provider); - return contractInstance; + return new ethers.Contract(contractAddress, erc20Abi, provider); }; export const getOptimalRPC = async (networkId: number): Promise => { diff --git a/static/scripts/rewards/render-transaction/index.ts b/static/scripts/rewards/render-transaction/index.ts index bbc74f47..2502849d 100644 --- a/static/scripts/rewards/render-transaction/index.ts +++ b/static/scripts/rewards/render-transaction/index.ts @@ -1,4 +1,4 @@ -import { networkRpcs, networkExplorers } from "../constants"; +import { networkExplorers } from "../constants"; import { getOptimalRPC } from "../helpers"; import { ClaimTx } from "./tx-type"; diff --git a/static/scripts/rewards/render-transaction/insert-table-data.ts b/static/scripts/rewards/render-transaction/insert-table-data.ts index 9d49bbc1..70c3878f 100644 --- a/static/scripts/rewards/render-transaction/insert-table-data.ts +++ b/static/scripts/rewards/render-transaction/insert-table-data.ts @@ -1,6 +1,6 @@ import { BigNumber, ethers } from "ethers"; import { app } from "."; -import { Erc721Permit, Erc20Permit } from "./tx-type"; +import { Erc20Permit, Erc721Permit } from "./tx-type"; export const shortenAddress = (address: string): string => { return `${address.slice(0, 10)}...${address.slice(-8)}`; diff --git a/static/scripts/rewards/render-transaction/render-transaction.ts b/static/scripts/rewards/render-transaction/render-transaction.ts index 8d3c37c8..a64eeaf6 100644 --- a/static/scripts/rewards/render-transaction/render-transaction.ts +++ b/static/scripts/rewards/render-transaction/render-transaction.ts @@ -1,16 +1,16 @@ +import { Type } from "@sinclair/typebox"; +import { Value } from "@sinclair/typebox/value"; +import { networkExplorers } from "../constants"; +import { claimButton, hideClaimButton, resetClaimButton } from "../toaster"; +import { claimErc20PermitHandler, fetchTreasury, generateInvalidatePermitAdminControl } from "../web3/erc20-permit"; +import { claimErc721PermitHandler } from "../web3/erc721-permit"; +import { handleNetwork } from "../web3/wallet"; import { app } from "./index"; -import { insertErc721PermitTableData, insertErc20PermitTableData } from "./insert-table-data"; +import { insertErc20PermitTableData, insertErc721PermitTableData } from "./insert-table-data"; import { renderEnsName } from "./render-ens-name"; import { renderNftSymbol, renderTokenSymbol } from "./render-token-symbol"; import { setClaimMessage } from "./set-claim-message"; -import { networkExplorers } from "../constants"; -import { claimButton, hideClaimButton, resetClaimButton } from "../toaster"; -import { Value } from "@sinclair/typebox/value"; -import { Type } from "@sinclair/typebox"; import { ClaimTx } from "./tx-type"; -import { handleNetwork } from "../web3/wallet"; -import { claimErc721PermitHandler } from "../web3/erc721-permit"; -import { claimErc20PermitHandler, fetchTreasury, generateInvalidatePermitAdminControl } from "../web3/erc20-permit"; import { removeAllEventListeners } from "./utils"; export async function init() { diff --git a/static/scripts/rewards/render-transaction/tx-type.ts b/static/scripts/rewards/render-transaction/tx-type.ts index afe0ef9a..71e4be8f 100644 --- a/static/scripts/rewards/render-transaction/tx-type.ts +++ b/static/scripts/rewards/render-transaction/tx-type.ts @@ -1,4 +1,4 @@ -import { Type as T, StaticDecode } from "@sinclair/typebox"; +import { StaticDecode, Type as T } from "@sinclair/typebox"; import { BigNumber } from "ethers"; const TBigNumber = T.Transform(T.Union([T.RegExp(/^\d+$/), T.Number()])) diff --git a/static/scripts/rewards/the-grid.ts b/static/scripts/rewards/the-grid.ts index af6589f8..063cb26e 100644 --- a/static/scripts/rewards/the-grid.ts +++ b/static/scripts/rewards/the-grid.ts @@ -98,8 +98,8 @@ export function grid(node = document.body) { // Resize function function resizeCanvasToDisplaySize(canvas: HTMLCanvasElement) { // Lookup the size the browser is displaying the canvas. - var displayWidth = window.innerWidth; - var displayHeight = window.innerHeight; + const displayWidth = window.innerWidth; + const displayHeight = window.innerHeight; // Check if the canvas is not the same size. if (canvas.width != displayWidth || canvas.height != displayHeight) { diff --git a/static/scripts/rewards/toaster.ts b/static/scripts/rewards/toaster.ts index 702783c2..8a1c3f48 100644 --- a/static/scripts/rewards/toaster.ts +++ b/static/scripts/rewards/toaster.ts @@ -75,7 +75,7 @@ export function hideClaimButton() { export function errorToast(error: any, errorMessage?: string) { delete error.stack; - let ErrorData = JSON.stringify(error, null, 2); + const ErrorData = JSON.stringify(error, null, 2); if (errorMessage) { toaster.create("error", errorMessage); } else if (error?.reason) { diff --git a/static/scripts/rewards/web3/erc20-permit.ts b/static/scripts/rewards/web3/erc20-permit.ts index 8c5bd202..1fdaf0fc 100644 --- a/static/scripts/rewards/web3/erc20-permit.ts +++ b/static/scripts/rewards/web3/erc20-permit.ts @@ -2,11 +2,11 @@ import { BigNumber, BigNumberish, ethers } from "ethers"; import { erc20Abi, permit2Abi } from "../abis"; import { permit2Address } from "../constants"; import { getOptimalRPC } from "../helpers"; -import { Erc20Permit } from "../render-transaction/tx-type"; -import { toaster, resetClaimButton, errorToast, loadingClaimButton, claimButton } from "../toaster"; +import invalidateButton from "../invalidate-component"; import { renderTransaction } from "../render-transaction/render-transaction"; +import { Erc20Permit } from "../render-transaction/tx-type"; +import { claimButton, errorToast, loadingClaimButton, resetClaimButton, toaster } from "../toaster"; import { connectWallet } from "./wallet"; -import invalidateButton from "../invalidate-component"; export async function fetchTreasury(permit: Erc20Permit): Promise<{ balance: BigNumber; allowance: BigNumber; decimals: number; symbol: string }> { try { diff --git a/static/scripts/rewards/web3/wallet.ts b/static/scripts/rewards/web3/wallet.ts index 9c23a9ba..9b38d15f 100644 --- a/static/scripts/rewards/web3/wallet.ts +++ b/static/scripts/rewards/web3/wallet.ts @@ -1,8 +1,8 @@ +import { JsonRpcSigner } from "@ethersproject/providers"; import { ethers } from "ethers"; -import { claimButton, loadingClaimButton, resetClaimButton, toaster } from "../toaster"; import { getNetworkName, networkCurrencies, networkExplorers, networkRpcs } from "../constants"; import invalidateButton from "../invalidate-component"; -import { JsonRpcSigner } from "@ethersproject/providers"; +import { claimButton, loadingClaimButton, resetClaimButton, toaster } from "../toaster"; export async function connectWallet(): Promise { try { From 5defbd82966e0b04c6a6f5f3bcc8c0f568f8b03f Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 16:17:17 +0000 Subject: [PATCH 59/85] fix: restore css and rename to get opt provider --- static/scripts/rewards/helpers.ts | 2 +- .../rewards/render-transaction/index.ts | 10 ++-- .../render-transaction/render-transaction.ts | 4 +- static/scripts/rewards/web3/erc20-permit.ts | 11 ++-- static/styles/rewards/claim-table.css | 31 +++++++++-- static/styles/rewards/media-queries.css | 6 ++- static/styles/rewards/pay.css | 18 ++++++- static/styles/rewards/rewards.css | 4 +- static/styles/rewards/usedFa.css | 53 ------------------- 9 files changed, 64 insertions(+), 75 deletions(-) delete mode 100644 static/styles/rewards/usedFa.css diff --git a/static/scripts/rewards/helpers.ts b/static/scripts/rewards/helpers.ts index 7ed0cdb7..9841e04b 100644 --- a/static/scripts/rewards/helpers.ts +++ b/static/scripts/rewards/helpers.ts @@ -40,7 +40,7 @@ export const getErc20Contract = async (contractAddress: string, provider: JsonRp return contractInstance; }; -export const getOptimalRPC = async (networkId: number) => { +export const getOptimalProvider = async (networkId: number) => { const promises = networkRpcs[networkId].map(async (baseURL: string) => { try { const startTime = performance.now(); diff --git a/static/scripts/rewards/render-transaction/index.ts b/static/scripts/rewards/render-transaction/index.ts index e84e6f3c..2c89a54a 100644 --- a/static/scripts/rewards/render-transaction/index.ts +++ b/static/scripts/rewards/render-transaction/index.ts @@ -1,6 +1,6 @@ import { JsonRpcProvider } from "@ethersproject/providers"; -import { networkRpcs, networkExplorers } from "../constants"; -import { getOptimalRPC } from "../helpers"; +import { networkExplorers } from "../constants"; +import { getOptimalProvider } from "../helpers"; import { ClaimTx } from "./tx-type"; class AppState { @@ -15,11 +15,11 @@ class AppState { return this.currentIndex < this.claimTxs.length ? this.claimTxs[this.currentIndex] : null; } - async currentNetworkRpc(): Promise { + async currentNetworkRpc(): Promise { if (!this.currentTx) { - return getOptimalRPC(1); + return (await getOptimalProvider(1)).connection.url; } - return getOptimalRPC(this.currentTx.networkId); + return (await getOptimalProvider(this.currentTx.networkId)).connection.url; } get currentExplorerUrl(): string { diff --git a/static/scripts/rewards/render-transaction/render-transaction.ts b/static/scripts/rewards/render-transaction/render-transaction.ts index bde0207a..78ef3884 100644 --- a/static/scripts/rewards/render-transaction/render-transaction.ts +++ b/static/scripts/rewards/render-transaction/render-transaction.ts @@ -12,7 +12,7 @@ import { handleNetwork } from "../web3/wallet"; import { claimErc721PermitHandler } from "../web3/erc721-permit"; import { claimErc20PermitHandler, fetchTreasury, generateInvalidatePermitAdminControl } from "../web3/erc20-permit"; import { removeAllEventListeners } from "./utils"; -import { getOptimalRPC } from "../helpers"; +import { getOptimalProvider } from "../helpers"; import { JsonRpcProvider } from "@ethersproject/providers"; let optimalRPC: JsonRpcProvider; @@ -33,7 +33,7 @@ export async function init() { try { const claimTxs = Value.Decode(Type.Array(ClaimTx), JSON.parse(atob(base64encodedTxData))); app.claimTxs = claimTxs; - optimalRPC = await getOptimalRPC(app.currentTx?.networkId ?? app.claimTxs[0].networkId); + optimalRPC = await getOptimalProvider(app.currentTx?.networkId ?? app.claimTxs[0].networkId); handleNetwork(app.currentTx?.networkId ?? app.claimTxs[0].networkId, optimalRPC); } catch (error) { diff --git a/static/scripts/rewards/web3/erc20-permit.ts b/static/scripts/rewards/web3/erc20-permit.ts index ed838f72..4b71ef4b 100644 --- a/static/scripts/rewards/web3/erc20-permit.ts +++ b/static/scripts/rewards/web3/erc20-permit.ts @@ -1,7 +1,7 @@ import { BigNumber, BigNumberish, ethers } from "ethers"; import { erc20Abi, permit2Abi } from "../abis"; import { permit2Address } from "../constants"; -import { getOptimalRPC } from "../helpers"; +import { getErc20Contract, getOptimalProvider } from "../helpers"; import { Erc20Permit } from "../render-transaction/tx-type"; import { toaster, resetClaimButton, errorToast, loadingClaimButton, claimButton } from "../toaster"; import { renderTransaction } from "../render-transaction/render-transaction"; @@ -12,15 +12,16 @@ import { tokens } from "../render-transaction/render-token-symbol"; export async function fetchTreasury( permit: Erc20Permit, - providerUrl: JsonRpcProvider, + provider: JsonRpcProvider, ): Promise<{ balance: BigNumber; allowance: BigNumber; decimals: number; symbol: string }> { try { - const tokenAddress = permit.permit.permitted.token; - const tokenContract = new ethers.Contract(tokenAddress, erc20Abi, providerUrl); + const tokenAddress = permit.permit.permitted.token.toLowerCase(); + const tokenContract = await getErc20Contract(tokenAddress, provider); if (tokenAddress === tokens[0].address || tokenAddress === tokens[1].address) { const decimals = tokenAddress === tokens[0].address ? 18 : tokenAddress === tokens[1].address ? 18 : -1; const symbol = tokenAddress === tokens[0].address ? tokens[0].name : tokenAddress === tokens[1].address ? tokens[1].name : ""; + const [balance, allowance] = await Promise.all([tokenContract.balanceOf(permit.owner), tokenContract.allowance(permit.owner, permit2Address)]); return { balance, allowance, decimals, symbol }; @@ -145,7 +146,7 @@ export async function generateInvalidatePermitAdminControl(permit: Erc20Permit) //mimics https://github.com/Uniswap/permit2/blob/a7cd186948b44f9096a35035226d7d70b9e24eaf/src/SignatureTransfer.sol#L150 export async function isNonceClaimed(permit: Erc20Permit): Promise { - const provider = await getOptimalRPC(permit.networkId); + const provider = await getOptimalProvider(permit.networkId); const permit2Contract = new ethers.Contract(permit2Address, permit2Abi, provider); diff --git a/static/styles/rewards/claim-table.css b/static/styles/rewards/claim-table.css index 53f7615f..ed98f04e 100644 --- a/static/styles/rewards/claim-table.css +++ b/static/styles/rewards/claim-table.css @@ -29,6 +29,10 @@ table { background-color: var(--background-color-default); border: 1px solid var(--border-color); } +table tr { + /* width: 100%; */ + /* border: 1px solid; */ +} table a:hover, table a:hover > div { @@ -118,7 +122,11 @@ table tr#additional-details-border > * { padding: 0; margin: 0; } - +table[data-claim-rendered] { + /* border: 1px solid #80808020; */ + /* border-right: 0; */ + /* border-left: 0; */ +} table[data-claim-rendered] #controls { display: flex; } @@ -151,7 +159,9 @@ table[data-claim-rendered] button#additionalDetails { color: #fff; /* opacity: 0.25; */ } - +table[data-claim-rendered] button#additionalDetails:hover { + /* opacity: 1; */ +} table[data-claim-rendered] tr { background-color: #80808000; transition: 125ms ease-in-out opacity; @@ -174,7 +184,9 @@ table[data-details-visible="false"] #additionalDetailsTable tr { pointer-events: none; display: none; } - +table[data-details-visible="false"] { + /* border-bottom: 1px solid #80808000; */ +} table[data-details-visible="true"] #additionalDetailsTable tr { opacity: 1; pointer-events: unset; @@ -183,7 +195,9 @@ table[data-details-visible="true"] #additionalDetailsTable tr { /* -webkit-backdrop-filter: blur(4px); */ /* backdrop-filter: blur(4px); */ } - +table[data-details-visible="true"] { + /* border-bottom: 1px solid #80808020; */ +} table[data-contract-loaded] #Token { display: none; } @@ -284,6 +298,9 @@ table[data-claim-rendered="true"][data-claim="none"][data-contract-loaded="true" display: none; } +#additionalDetails svg { + /* display: none; */ +} table[data-details-visible="true"] #additionalDetails svg.opener { display: none; } @@ -298,6 +315,10 @@ table[data-details-visible="false"] #additionalDetails svg.closer { display: none; } +table .full { + /* word-break: break-all; */ +} + td#owner > a { word-break: break-all; } @@ -307,4 +328,4 @@ table td { } table th { padding-left: 16px; -} +} \ No newline at end of file diff --git a/static/styles/rewards/media-queries.css b/static/styles/rewards/media-queries.css index 86cc1e08..f1f64881 100644 --- a/static/styles/rewards/media-queries.css +++ b/static/styles/rewards/media-queries.css @@ -1,3 +1,7 @@ +header span:first-child::after { + /* content: " | "; */ +} + @media screen and (max-width: 640px) { table { border-left-width: 0px; @@ -33,4 +37,4 @@ padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); } -} +} \ No newline at end of file diff --git a/static/styles/rewards/pay.css b/static/styles/rewards/pay.css index 9278ec09..7e5b9511 100644 --- a/static/styles/rewards/pay.css +++ b/static/styles/rewards/pay.css @@ -14,6 +14,11 @@ a { color: #808080; } +body { + /* min-height: 100vh; */ + /* height: calc(100 * var(--vh)); */ +} + body, main { max-width: 100vw; @@ -114,7 +119,18 @@ main { height: 100vh; /* adjust this according to your needs */ } +header { + /* height: 140px; */ + /* width: 100%; */ +} + +footer { + /* height: 108px; */ + /* width: 100%; */ + /* padding-bottom: env(safe-area-inset-bottom); */ +} + canvas { width: 100vw; height: 100vh; -} +} \ No newline at end of file diff --git a/static/styles/rewards/rewards.css b/static/styles/rewards/rewards.css index a3f6df2e..361b34a8 100644 --- a/static/styles/rewards/rewards.css +++ b/static/styles/rewards/rewards.css @@ -4,5 +4,5 @@ @import url("media-queries.css"); @import url("../proxima.css"); @import url("../toast.css"); -@import url("usedFa.css"); -@import url("light-mode.css"); +@import url("../fa.css"); +@import url("light-mode.css"); \ No newline at end of file diff --git a/static/styles/rewards/usedFa.css b/static/styles/rewards/usedFa.css deleted file mode 100644 index 67dfe6a5..00000000 --- a/static/styles/rewards/usedFa.css +++ /dev/null @@ -1,53 +0,0 @@ -.fa-circle-check { - color: var(--toast-success); -} - -.fa-circle-xmark { - color: var(--toast-error); -} - -.fa-triangle-exclamation { - color: var(--toast-warning); -} - -.fa-circle-info { - color: var(--toast-info); -} - -.fa-solid, - -.fa-check-circle:before, -.fa-circle-check:before { - content: "\f058"; -} - -.fa-exclamation-triangle:before, -.fa-triangle-exclamation:before, - -.fa-circle-info:before, -.fa-info-circle:before { - content: "\f05a"; -} - -.fa-circle-xmark:before, -.fa-xmark-circle:before { - content: "\f057"; -} - -.fa-solid, - -.fa-xmarks-lines:before { - content: "\e59a"; -} - -.fa-xmark:before { - content: "\f00d"; -} - -.fa-xmark-square:before { - content: "\f2d3"; -} - -.fa-xmark-circle:before { - content: "\f057"; -} \ No newline at end of file From 0b5bbcbbba69153d1cf1373a7a58803fe4dad506 Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 17:27:47 +0000 Subject: [PATCH 60/85] chore: audit.ts lint --- .eslintrc | 147 +++++++++-- static/scripts/audit-report/audit.ts | 340 +++++++++++++------------ static/scripts/audit-report/helpers.ts | 2 +- 3 files changed, 312 insertions(+), 177 deletions(-) diff --git a/.eslintrc b/.eslintrc index 5996f048..edd1e6fe 100644 --- a/.eslintrc +++ b/.eslintrc @@ -2,20 +2,47 @@ "root": true, "parser": "@typescript-eslint/parser", "parserOptions": { - "project": ["./tsconfig.json"] + "project": [ + "./tsconfig.json" + ] }, - "plugins": ["@typescript-eslint", "sonarjs"], - "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:sonarjs/recommended"], - "ignorePatterns": ["**/*.js"], + "plugins": [ + "@typescript-eslint", + "sonarjs" + ], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:sonarjs/recommended" + ], + "ignorePatterns": [ + "**/*.js" + ], "rules": { - "prefer-arrow-callback": ["warn", { "allowNamedFunctions": true }], - "func-style": ["warn", "declaration", { "allowArrowFunctions": false }], + "prefer-arrow-callback": [ + "warn", + { + "allowNamedFunctions": true + } + ], + "func-style": [ + "warn", + "declaration", + { + "allowArrowFunctions": false + } + ], "@typescript-eslint/no-floating-promises": "error", "@typescript-eslint/no-non-null-assertion": "error", "constructor-super": "error", "no-invalid-this": "off", - "@typescript-eslint/no-invalid-this": ["error"], - "no-restricted-syntax": ["error", "ForInStatement"], + "@typescript-eslint/no-invalid-this": [ + "error" + ], + "no-restricted-syntax": [ + "error", + "ForInStatement" + ], "use-isnan": "error", "@typescript-eslint/no-unused-vars": [ "error", @@ -38,16 +65,98 @@ "sonarjs/no-identical-expressions": "error", "@typescript-eslint/naming-convention": [ "error", - { "selector": "interface", "format": ["PascalCase"], "custom": { "regex": "^I[A-Z]", "match": false } }, - { "selector": "memberLike", "modifiers": ["private"], "format": ["camelCase"], "leadingUnderscore": "require" }, - { "selector": "typeLike", "format": ["PascalCase"] }, - { "selector": "typeParameter", "format": ["PascalCase"], "prefix": ["T"] }, - { "selector": "variable", "format": ["camelCase", "UPPER_CASE"], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, - { "selector": "variable", "format": ["camelCase"], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, - { "selector": "variable", "modifiers": ["destructured"], "format": null }, - { "selector": "variable", "types": ["boolean"], "format": ["PascalCase"], "prefix": ["is", "should", "has", "can", "did", "will", "does"] }, - { "selector": "variableLike", "format": ["camelCase"] }, - { "selector": ["function", "variable"], "format": ["camelCase"] } + { + "selector": "interface", + "format": [ + "PascalCase" + ], + "custom": { + "regex": "^I[A-Z]", + "match": false + } + }, + { + "selector": "memberLike", + "modifiers": [ + "private" + ], + "format": [ + "camelCase" + ], + "leadingUnderscore": "require" + }, + { + "selector": "typeLike", + "format": [ + "PascalCase" + ] + }, + { + "selector": "typeParameter", + "format": [ + "PascalCase" + ], + "prefix": [ + "T" + ] + }, + { + "selector": "variable", + "format": [ + "camelCase", + "UPPER_CASE" + ], + "leadingUnderscore": "allow", + "trailingUnderscore": "allow" + }, + { + "selector": "variable", + "format": [ + "camelCase" + ], + "leadingUnderscore": "allow", + "trailingUnderscore": "allow" + }, + { + "selector": "variable", + "modifiers": [ + "destructured" + ], + "format": null + }, + { + "selector": "variable", + "types": [ + "boolean" + ], + "format": [ + "PascalCase" + ], + "prefix": [ + "is", + "should", + "has", + "can", + "did", + "will", + "does" + ] + }, + { + "selector": "variableLike", + "format": [ + "camelCase" + ] + }, + { + "selector": [ + "function", + "variable" + ], + "format": [ + "camelCase" + ] + } ] } -} +} \ No newline at end of file diff --git a/static/scripts/audit-report/audit.ts b/static/scripts/audit-report/audit.ts index 8c763196..64998c6f 100644 --- a/static/scripts/audit-report/audit.ts +++ b/static/scripts/audit-report/audit.ts @@ -17,7 +17,19 @@ import { primaryRateLimitHandler, secondaryRateLimitHandler, } from "./helpers"; -import { ChainScanResult, ElemInterface, GitHubUrlParts, GoDBSchema, ObserverKeys, QuickImport, SavedData, StandardInterface, TxData } from "./types"; +import { + ChainScanResult, + ElemInterface, + EtherInterface, + GitHubUrlParts, + GitInterface, + GoDBSchema, + ObserverKeys, + QuickImport, + SavedData, + StandardInterface, + TxData, +} from "./types"; import { getTxInfo } from "./utils/getTransaction"; const rateOctokit = Octokit.plugin(throttling); @@ -40,7 +52,9 @@ let isCache = true; let isComment = true; let commentPageNumber = 1; -const issueList: any[] = []; + +type ListForRepoData = ReturnType; +const issueList: ListForRepoData[] = []; const GIT_INTERVAL = 100; let isGit = true; @@ -115,7 +129,11 @@ async function updateDB(storeHash: string) { const storeTable = cacheDB.table(storeHash); const metaData = { - id: storeHash as any, + // unknown as number because the only time it receives a string is initiating the db + // and it is always a number after that according to the schema definition + // [NULL_HASH]: id: storeHash + // [STORE_HASH]: id: storeHash + id: storeHash as unknown as number, hash: lastEtherHash !== etherHash ? (lastEtherHash as string) : (etherHash as string), issue: lastGitID !== gitID ? (lastGitID as number) : (gitID as number), }; @@ -136,8 +154,7 @@ async function updateDB(storeHash: string) { }); } } - await cacheDB.close(); - return; + return cacheDB.close(); } async function readDB(storeHash: string) { @@ -145,7 +162,7 @@ async function readDB(storeHash: string) { const cacheDB = new GoDB(DatabaseName, schema); const storeTable = cacheDB.table(storeHash); const tableData = await storeTable.getAll(); - await cacheDB.close(); + cacheDB.close(); return tableData; } @@ -154,7 +171,7 @@ async function readMeta(storeHash: string) { const cacheDB = new GoDB(DatabaseName, schema); const metaTable = cacheDB.table(NULL_HASH); const metaData = await metaTable.get({ id: storeHash }); - await cacheDB.close(); + cacheDB.close(); return metaData; } @@ -164,54 +181,54 @@ function toggleLoader(type: "none" | "block") { } class QueueObserver { - private readonly queueObject: { + private readonly _queueObject: { isRPC: boolean; isComment: boolean; isGit: boolean; isEther: boolean; }; - private isException; + private _isException; constructor() { - this.queueObject = { + this._queueObject = { isRPC: false, isComment: false, isGit: false, isEther: false, }; - this.isException = false; + this._isException = false; } - private databaseCallback() { + private _databaseCallback() { const storeHash = ethers.utils.keccak256(ethers.utils.toUtf8Bytes(`${REPOSITORY_URL}_${BOT_WALLET_ADDRESS}`)); - updateDB(storeHash); + updateDB(storeHash).catch((error) => console.error(error)); } - private callback() { + private _callback() { toggleLoader("none"); - if (!this.isException) { - this.databaseCallback(); + if (!this._isException) { + this._databaseCallback(); } } mutate(key: ObserverKeys, value: boolean) { - this.queueObject[key] = value; - const { isRPC: _isRPC, isComment: _isComment, isGit: _isGit, isEther: _isEther } = this.queueObject; - const isUpdateFinished = _isRPC && _isComment && _isGit && _isEther; + this._queueObject[key] = value; + const { isRPC, isComment, isGit, isEther } = this._queueObject; + const isUpdateFinished = isRPC && isComment && isGit && isEther; if (isUpdateFinished) { - this.callback(); + this._callback(); } } clearQueue() { - this.queueObject.isComment = false; - this.queueObject.isEther = false; - this.queueObject.isGit = false; - this.queueObject.isRPC = false; + this._queueObject.isComment = false; + this._queueObject.isEther = false; + this._queueObject.isGit = false; + this._queueObject.isRPC = false; } raise() { - this.isException = true; + this._isException = true; } } @@ -227,7 +244,7 @@ class SmartQueue { add(key: string, value: StandardInterface) { if (this._queue.has(key)) { const queueValue = this._queue.get(key) as StandardInterface; - queueValue.s[value.t] = value.s[value.t] as any; + queueValue.s[value.t] = value.s[value.t] as object extends GitInterface ? GitInterface : object extends EtherInterface ? EtherInterface : never; const { s: { ether, git, network }, c: { amount }, @@ -236,13 +253,13 @@ class SmartQueue { // check for undefined if (git?.issue_number) { elemList.push({ - id: git?.issue_number!, - tx: ether?.txHash!, - amount: ethers.utils.formatEther(amount)!, - title: git?.issue_title!, - bounty_hunter: git?.bounty_hunter, - owner: git?.owner, - repo: git?.repo, + id: git.issue_number, + tx: ether?.txHash || "N/A", // @TODO - handle this better + amount: ethers.utils.formatEther(amount), + title: git.issue_title, + bounty_hunter: git.bounty_hunter, + owner: git.owner, + repo: git.repo, network, }); if (elemList.length > 0) { @@ -258,41 +275,44 @@ class SmartQueue { } } } +type QueueItem = { hash: string; chain: string }; +type Queue = QueueItem extends string ? string[] : QueueItem[]; class QueueSet { - private readonly queue: any[]; - private readonly set: Set; + private readonly _queue: Queue; + private readonly _set: Set>; constructor() { - this.queue = []; - this.set = new Set(); + this._queue = []; + this._set = new Set(); } - add(item: any) { - if (!this.set.has(item)) { - this.set.add(item); - this.queue.push(item); + add(item: NonNullable) { + if (!this._set.has(item)) { + this._set.add(item); + this._queue.push(item as QueueItem); } } remove() { - const v = this.queue.shift(); - this.set.delete(v); + const v = this._queue.shift(); + if (v) this._set.delete(v); } - read() { - return this.queue[0]; + read(): NonNullable { + return this._queue[0]; } isEmpty() { - return this.queue.length === 0; + return this._queue.length === 0; } } const updateQueue = new SmartQueue(); const rpcQueue = new QueueSet(); -const commentFetcher = async () => { +// @TODO - Sonar 83/15 +async function commentFetcher() { if (isComment) { const commentIntervalID = setInterval(async () => { clearInterval(commentIntervalID); @@ -321,7 +341,7 @@ const commentFetcher = async () => { commentPageNumber = 1; await issueList.shift(); if (issueList.length > 0) { - commentFetcher(); + await commentFetcher(); } else { isComment = false; finishedQueue.mutate("isComment", true); @@ -347,7 +367,7 @@ const commentFetcher = async () => { }, transferDetails: { to }, } = JSON.parse(window.atob(base64Payload)) as TxData; - await updateQueue.add(signature, { + updateQueue.add(signature, { k: signature, t: "git", c: { @@ -390,7 +410,7 @@ const commentFetcher = async () => { } if (issueList.length > 0) { - commentFetcher(); + await commentFetcher(); } else { isComment = false; finishedQueue.mutate("isComment", true); @@ -405,7 +425,7 @@ const commentFetcher = async () => { finishedQueue.raise(); await issueList.shift(); if (issueList.length > 0) { - commentFetcher(); + await commentFetcher(); } else { isComment = false; finishedQueue.mutate("isComment", true); @@ -413,69 +433,9 @@ const commentFetcher = async () => { } }, GIT_INTERVAL); } -}; - -const gitFetcher = async (repoUrls: GitHubUrlParts[]) => { +} +async function gitFetcher(repoUrls: GitHubUrlParts[]) { if (isGit) { - const octokit = new rateOctokit({ - auth: GITHUB_PAT, - throttle: { - onRateLimit: (retryAfter, options) => { - return primaryRateLimitHandler(retryAfter, options as RateLimitOptions); - }, - onSecondaryRateLimit: (retryAfter, options) => { - return secondaryRateLimitHandler(retryAfter, options as RateLimitOptions); - }, - }, - }); - - const getIssuesForRepo = async (owner: string, repo: string) => { - const issueList: any[] = []; - - while (true) { - try { - const { data } = await octokit.rest.issues.listForRepo({ - owner, - repo, - state: "closed", - per_page: offset, - page: gitPageNumber, - }); - - if (data.length === 0) break; - - const issues = data.filter((issue) => !issue.pull_request && issue.comments > 0); - if (issues.length > 0) { - if (!lastGitID) { - lastGitID = issues[0].number; - } - let iEF = true; - for (const i of issues) { - if (i.number !== gitID) { - await issueList.push(i); - } else { - iEF = false; - break; - } - } - - if (iEF) { - gitPageNumber++; - } else { - break; - } - } else { - break; - } - } catch (error: any) { - console.error(error); - throw error; - } - } - - return issueList; - }; - try { const issuesPromises = repoUrls.map((repoUrl) => getIssuesForRepo(repoUrl.owner, repoUrl.repo)); const allIssues = await Promise.all(issuesPromises); @@ -488,24 +448,87 @@ const gitFetcher = async (repoUrls: GitHubUrlParts[]) => { isGit = false; finishedQueue.mutate("isGit", true); - commentFetcher(); - } catch (error: any) { + await commentFetcher(); + } catch (error: unknown) { console.error("Error fetching issues:", error); } } -}; +} + +// @TODO - Sonar 24/15 +async function getIssuesForRepo(owner: string, repo: string) { + const issueList: ListForRepoData[] = []; + + const octokit = new rateOctokit({ + auth: GITHUB_PAT, + throttle: { + onRateLimit: (retryAfter, options) => { + return primaryRateLimitHandler(retryAfter, options as RateLimitOptions); + }, + onSecondaryRateLimit: (retryAfter, options) => { + return secondaryRateLimitHandler(retryAfter, options as RateLimitOptions); + }, + }, + }); + + let isIEF = true; + + while (isIEF) { + try { + const { data } = await octokit.rest.issues.listForRepo({ + owner, + repo, + state: "closed", + per_page: offset, + page: gitPageNumber, + }); + + if (data.length === 0) break; + + const issues = data.filter((issue) => !issue.pull_request && issue.comments > 0); + if (issues.length > 0) { + if (!lastGitID) { + lastGitID = issues[0].number; + } + for (const i of issues) { + if (i.number !== gitID) { + issueList.push(i); + } else { + isIEF = false; + break; + } + } + + if (isIEF) { + gitPageNumber++; + } else { + break; + } + } else { + isIEF = false; + break; + } + } catch (error: unknown) { + console.error(error); + throw error; + } + } -const fetchDataFromChainScanAPI = async (url: string, chain: string) => { + return issueList; +} + +async function fetchDataFromChainScanAPI(url: string, chain: string) { try { const { data } = await axios.get(url); - return data.result.map((item: any) => ({ ...item, chain })); - } catch (error: any) { + return data.result.map((item: NonNullable) => ({ ...item, chain })); + } catch (error: unknown) { console.error(error); throw error; } -}; +} -const etherFetcher = async () => { +// @TODO - Sonar 27/15 +async function etherFetcher() { const ethereumURL = `https://api.${ChainScan.Ethereum}/api?module=account&action=tokentx&address=${BOT_WALLET_ADDRESS}&apikey=${getRandomAPIKey( Chain.Ethereum )}&page=${etherPageNumber}&offset=${offset}&sort=desc`; @@ -528,19 +551,19 @@ const etherFetcher = async () => { if (!lastEtherHash) { lastEtherHash = combinedData[0].hash; } - let iEF = true; + let isIEF = true; for (const e of combinedData) { if (e.hash !== etherHash) { - await rpcQueue.add({ hash: e.hash, chain: e.chain }); + rpcQueue.add({ hash: e.hash, chain: e.chain }); } else { - iEF = false; + isIEF = false; break; } } - if (iEF) { + if (isIEF) { etherPageNumber++; - etherFetcher(); + await etherFetcher(); } else { isEther = false; finishedQueue.mutate("isEther", true); @@ -549,7 +572,7 @@ const etherFetcher = async () => { isEther = false; finishedQueue.mutate("isEther", true); } - } catch (error: any) { + } catch (error: unknown) { console.error(error); finishedQueue.raise(); isEther = false; @@ -557,19 +580,20 @@ const etherFetcher = async () => { } }, ETHER_INTERVAL); } -}; +} -const rpcFetcher = async () => { +// @TODO: Sonar 22/15 +async function rpcFetcher() { if (isRPC) { const rpcIntervalID = setInterval(async () => { clearInterval(rpcIntervalID); try { - const data = await rpcQueue.read(); + const data = rpcQueue.read(); if (data) { - const { hash, chain } = data; + const { hash, chain } = data as { hash: string; chain: string }; - const providerUrl = await getOptimalRPC(chain); - const txInfo = await getTxInfo(hash, providerUrl, chain); + const providerUrl = await getOptimalRPC(chain as Chain); + const txInfo = await getTxInfo(hash, providerUrl, chain as Chain); if (txInfo.input.startsWith(permitTransferFromSelector)) { const decodedFunctionData = permit2Interface.decodeFunctionData(permitFunctionName, txInfo.input); @@ -607,19 +631,19 @@ const rpcFetcher = async () => { }); } } - await rpcQueue.remove(); + rpcQueue.remove(); if (isEther || !rpcQueue.isEmpty()) { - rpcFetcher(); + await rpcFetcher(); } else { isRPC = false; finishedQueue.mutate("isRPC", true); } - } catch (error: any) { + } catch (error: unknown) { console.error(error); finishedQueue.raise(); - await rpcQueue.remove(); + rpcQueue.remove(); if (isEther || !rpcQueue.isEmpty()) { - rpcFetcher(); + await rpcFetcher(); } else { isRPC = false; finishedQueue.mutate("isRPC", true); @@ -627,9 +651,9 @@ const rpcFetcher = async () => { } }, RPC_INTERVAL); } -}; +} -const dbInit = async () => { +async function dbInit() { if (isCache) { const storeHash = ethers.utils.keccak256(ethers.utils.toUtf8Bytes(`${REPOSITORY_URL}_${BOT_WALLET_ADDRESS}`)); const metaData = await readMeta(storeHash); @@ -660,9 +684,9 @@ const dbInit = async () => { } } } -}; +} -const resetInit = () => { +async function resetInit() { isComment = true; commentPageNumber = 1; issueList.splice(0, issueList.length); @@ -678,20 +702,20 @@ const resetInit = () => { lastEtherHash = false; repoArray.splice(0, repoArray.length); finishedQueue.clearQueue(); -}; +} -const asyncInit = async () => { +async function asyncInit() { await resetInit(); await dbInit(); -}; +} -const tabInit = (repoUrls: GitHubUrlParts[]) => { - etherFetcher(); - gitFetcher(repoUrls); - rpcFetcher(); -}; +function tabInit(repoUrls: GitHubUrlParts[]) { + etherFetcher().catch((error) => console.error(error)); + gitFetcher(repoUrls).catch((error) => console.error(error)); + rpcFetcher().catch((error) => console.error(error)); +} -const auditInit = () => { +function auditInit() { tgBtnInput.checked = true; getReportElem.addEventListener("click", async () => { isCache = tgBtnInput.checked; @@ -716,12 +740,12 @@ const auditInit = () => { if (BOT_WALLET_ADDRESS !== "" && REPOSITORY_URL !== "" && GITHUB_PAT !== "" && REPOS.length > 0) { await asyncInit(); - await tabInit(REPOS); + tabInit(REPOS); } else { toggleLoader("none"); } }); -}; +} /** * @@ -731,7 +755,7 @@ const auditInit = () => { // Function to filter the table based on search input function filterTable() { - const input = document.getElementById("searchInput")! as HTMLInputElement; + const input = document.getElementById("searchInput") as HTMLInputElement; const value = input.value.toLowerCase(); const filteredData = elemList.filter( (row) => @@ -771,10 +795,12 @@ function updateSortArrow() { sortArrow.textContent = sortDirection === 1 ? "\u2191" : "\u2193"; } -// Add event listener for the search button -document.getElementById("searchInput")!.addEventListener("keyup", filterTable); +const searchInput = document.getElementById("searchInput") as HTMLInputElement; +const amountHeader = document.getElementById("amountHeader") as HTMLTableCellElement; +// Add event listener for the search button +searchInput.addEventListener("keyup", filterTable); // Add event listener for the "Amount" column header -document.getElementById("amountHeader")!.addEventListener("click", sortTableByAmount); +amountHeader.addEventListener("click", sortTableByAmount); auditInit(); diff --git a/static/scripts/audit-report/helpers.ts b/static/scripts/audit-report/helpers.ts index b52c9b61..b62c78b4 100644 --- a/static/scripts/audit-report/helpers.ts +++ b/static/scripts/audit-report/helpers.ts @@ -50,7 +50,7 @@ export const populateTable = ( txHash: string, issue_title: string, amount: string, - bounty_hunter: BountyHunter, + bounty_hunter: BountyHunter ) => { if (!txHash) return; // permit not claimed const issue_url = `https://github.com/${owner}/${repo}/issues/${issue_number}`; From a082c2c4168ec461b3007b190e82f7347154edbe Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 17:30:07 +0000 Subject: [PATCH 61/85] chore: constants.ts lint --- static/scripts/audit-report/audit.ts | 8 ++++---- static/scripts/audit-report/constants.ts | 4 ++-- static/scripts/audit-report/utils/blockInfo.ts | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/static/scripts/audit-report/audit.ts b/static/scripts/audit-report/audit.ts index 64998c6f..39de0b96 100644 --- a/static/scripts/audit-report/audit.ts +++ b/static/scripts/audit-report/audit.ts @@ -4,7 +4,7 @@ import axios from "axios"; import { ethers } from "ethers"; import GoDB from "godb"; import { permit2Abi } from "../rewards/abis"; -import { Chain, ChainScan, DatabaseName, NULL_HASH, NULL_ID } from "./constants"; +import { Chain, ChainScan, DATABASE_NAME, NULL_HASH, NULL_ID } from "./constants"; import { RateLimitOptions, getCurrency, @@ -124,7 +124,7 @@ function parseAndAddUrls(input: string): void { async function updateDB(storeHash: string) { const schema = getDataSchema(storeHash); - const cacheDB = new GoDB(DatabaseName, schema); + const cacheDB = new GoDB(DATABASE_NAME, schema); const metaTable = cacheDB.table(NULL_HASH); const storeTable = cacheDB.table(storeHash); @@ -159,7 +159,7 @@ async function updateDB(storeHash: string) { async function readDB(storeHash: string) { const schema = getDataSchema(storeHash); - const cacheDB = new GoDB(DatabaseName, schema); + const cacheDB = new GoDB(DATABASE_NAME, schema); const storeTable = cacheDB.table(storeHash); const tableData = await storeTable.getAll(); cacheDB.close(); @@ -168,7 +168,7 @@ async function readDB(storeHash: string) { async function readMeta(storeHash: string) { const schema = getDataSchema(storeHash); - const cacheDB = new GoDB(DatabaseName, schema); + const cacheDB = new GoDB(DATABASE_NAME, schema); const metaTable = cacheDB.table(NULL_HASH); const metaData = await metaTable.get({ id: storeHash }); cacheDB.close(); diff --git a/static/scripts/audit-report/constants.ts b/static/scripts/audit-report/constants.ts index 256f678b..4938ff66 100644 --- a/static/scripts/audit-report/constants.ts +++ b/static/scripts/audit-report/constants.ts @@ -8,14 +8,14 @@ export enum Chain { Gnosis = "Gnosis", } -export const ChainMap = { +export const CHAIN_MAP = { Ethereum: 1, Gnosis: 100, }; export const NULL_ID = 0; export const NULL_HASH = "0x0000000000000000000000000000000000000000"; -export const DatabaseName = "file_cache"; +export const DATABASE_NAME = "file_cache"; // hardcoded values export const API_KEYS = { diff --git a/static/scripts/audit-report/utils/blockInfo.ts b/static/scripts/audit-report/utils/blockInfo.ts index 1a87709c..7388713d 100644 --- a/static/scripts/audit-report/utils/blockInfo.ts +++ b/static/scripts/audit-report/utils/blockInfo.ts @@ -1,9 +1,9 @@ -import { Chain, ChainMap } from "../constants"; +import { Chain, CHAIN_MAP } from "../constants"; export const getBlockInfo = async (blockNumber: string, chain: Chain) => { - return await localStorage.getItem(`${ChainMap[chain]}:${blockNumber}`); + return await localStorage.getItem(`${CHAIN_MAP[chain]}:${blockNumber}`); }; export const updateBlockInfo = async (blockNumber: string, timestamp: string, chain: Chain) => { - await localStorage.setItem(`${ChainMap[chain]}:${blockNumber}`, timestamp); + await localStorage.setItem(`${CHAIN_MAP[chain]}:${blockNumber}`, timestamp); }; From c7b982bbd0c60ddeeefa001e81277c043c20323c Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 17:44:21 +0000 Subject: [PATCH 62/85] chore: helpers.ts lint and esnext target --- package.json | 2 +- static/scripts/audit-report/helpers.ts | 74 +++++++++++++------------- tsconfig.json | 12 +---- 3 files changed, 40 insertions(+), 48 deletions(-) diff --git a/package.json b/package.json index 335ef419..77644075 100644 --- a/package.json +++ b/package.json @@ -89,4 +89,4 @@ "@commitlint/config-conventional" ] } -} +} \ No newline at end of file diff --git a/static/scripts/audit-report/helpers.ts b/static/scripts/audit-report/helpers.ts index b62c78b4..7aa98b45 100644 --- a/static/scripts/audit-report/helpers.ts +++ b/static/scripts/audit-report/helpers.ts @@ -31,7 +31,7 @@ const RPC_HEADER = { "Content-Type": "application/json", }; -export const shortenTransactionHash = (hash: string | undefined, length = 8): string => { +export function shortenTransactionHash(hash: string | undefined, length = 8): string { if (!hash) return ""; const prefixLength = Math.floor(length / 2); const suffixLength = length - prefixLength; @@ -40,40 +40,40 @@ export const shortenTransactionHash = (hash: string | undefined, length = 8): st const suffix = hash.slice(-suffixLength); return prefix + "..." + suffix; -}; +} -export const populateTable = ( +export function populateTable( owner: string, repo: string, - issue_number: number, + issueNumber: number, network: string, txHash: string, - issue_title: string, + issueTitle: string, amount: string, - bounty_hunter: BountyHunter -) => { + bountyHunter: BountyHunter +) { if (!txHash) return; // permit not claimed - const issue_url = `https://github.com/${owner}/${repo}/issues/${issue_number}`; - const tx_url = `https://${getChainScan(network)}/tx/${txHash}`; + const issueUrl = `https://github.com/${owner}/${repo}/issues/${issueNumber}`; + const txUrl = `https://${getChainScan(network)}/tx/${txHash}`; const rows = ` ${owner}/${repo} - #${issue_number} - ${issue_title} - ${bounty_hunter?.name} - ${ethers.BigNumber.isBigNumber(amount) ? ethers.utils.formatEther(amount) : amount} ${ + #${issueNumber} - ${issueTitle} + ${bountyHunter?.name} + ${ethers.BigNumber.isBigNumber(amount) ? ethers.utils.formatEther(amount) : amount} ${ network === Chain.Ethereum ? "DAI" : "WXDAI" } - ${shortenTransactionHash(txHash)} + ${shortenTransactionHash(txHash)} `; resultTableTbodyElem.insertAdjacentHTML("beforeend", rows); -}; +} -export const getChainScan = (chain: string) => { +export function getChainScan(chain: string) { return chain === Chain.Ethereum ? ChainScan.Ethereum : ChainScan.Gnosis; -}; +} -export const getRandomAPIKey = (chain: Chain): string => { +export function getRandomAPIKey(chain: Chain): string { const keys = API_KEYS[chain]; if (!keys || keys.length === 0) { throw new Error(`No API Keys found for chain: ${chain}`); @@ -81,9 +81,9 @@ export const getRandomAPIKey = (chain: Chain): string => { const randomIndex = Math.floor(Math.random() * keys.length); return keys[randomIndex]; -}; +} -export const getRandomRpcUrl = (chain: Chain): string => { +export function getRandomRpcUrl(chain: Chain): string { const urls = RPC_URLS[chain]; if (!urls || urls.length === 0) { throw new Error(`No RPC URLs found for chain: ${chain}`); @@ -91,9 +91,9 @@ export const getRandomRpcUrl = (chain: Chain): string => { const randomIndex = Math.floor(Math.random() * urls.length); return urls[randomIndex]; -}; +} -const verifyBlock = (data: DataType) => { +function verifyBlock(data: DataType) { try { const { jsonrpc, id, result } = data; const { number, timestamp, hash } = result; @@ -101,9 +101,9 @@ const verifyBlock = (data: DataType) => { } catch (error) { return false; } -}; +} -export const getOptimalRPC = async (chain: Chain): Promise => { +export async function getOptimalRPC(chain: Chain): Promise { const promises = RPC_URLS[chain].map(async (baseURL: string) => { try { const startTime = performance.now(); @@ -115,7 +115,7 @@ export const getOptimalRPC = async (chain: Chain): Promise => { const { data } = await API.post("", RPC_BODY); const endTime = performance.now(); const latency = endTime - startTime; - if (await verifyBlock(data)) { + if (verifyBlock(data)) { return Promise.resolve({ latency, baseURL, @@ -130,9 +130,9 @@ export const getOptimalRPC = async (chain: Chain): Promise => { const { baseURL: optimalRPC } = await Promise.any(promises); return optimalRPC; -}; +} -export const parseRepoUrl = (issueUrl: string): [string, string] => { +export function parseRepoUrl(issueUrl: string): [string, string] { const match = issueUrl.match(/github\.com\/([^/]+)\/([^/]+)\/issues\/\d+/i); if (match) { const owner = match[1]; @@ -141,9 +141,9 @@ export const parseRepoUrl = (issueUrl: string): [string, string] => { } else { throw new Error("Invalid GitHub issue URL format"); } -}; +} -export const getGitHubUrlPartsArray = (urls: string[]): GitHubUrlParts[] => { +export function getGitHubUrlPartsArray(urls: string[]): GitHubUrlParts[] { const githubUrlPartsArray: GitHubUrlParts[] = []; for (const url of urls) { @@ -157,31 +157,31 @@ export const getGitHubUrlPartsArray = (urls: string[]): GitHubUrlParts[] => { } return githubUrlPartsArray; -}; +} -export const primaryRateLimitHandler = (retryAfter: number, options: RateLimitOptions) => { +export function primaryRateLimitHandler(retryAfter: number, options: RateLimitOptions) { console.warn(`Request quota exhausted for request ${options.method} ${options.url}\nRetrying after ${retryAfter} seconds!`); return true; -}; +} -export const secondaryRateLimitHandler = (retryAfter: number, options: RateLimitOptions) => { +export function secondaryRateLimitHandler(retryAfter: number, options: RateLimitOptions) { console.warn(`Secondary quota detected for request ${options.method} ${options.url}\nRetrying after ${retryAfter} seconds!`); return true; -}; +} -export const isValidUrl = (urlString: string) => { +export function isValidUrl(urlString: string) { try { return Boolean(new URL(urlString)); } catch (e) { return false; } -}; +} -export const getCurrency = (comment: string) => { +export function getCurrency(comment: string) { if (comment.includes("WXDAI")) { return Chain.Gnosis; } else if (comment.includes("DAI")) { return Chain.Ethereum; } return null; -}; +} diff --git a/tsconfig.json b/tsconfig.json index bb2f7f66..7e218583 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,6 @@ { "compilerOptions": { /* Visit https://aka.ms/tsconfig to read more about this file */ - /* Projects */ // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ @@ -9,9 +8,8 @@ // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - /* Language and Environment */ - "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + "target": "ESNext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ @@ -23,7 +21,6 @@ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - /* Modules */ "module": "commonjs" /* Specify what module code is generated. */, // "rootDir": "./", /* Specify the root folder within your source files. */ @@ -42,12 +39,10 @@ // "resolveJsonModule": true, /* Enable importing .json files. */ // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - /* JavaScript Support */ // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ @@ -72,7 +67,6 @@ // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ @@ -80,7 +74,6 @@ "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - /* Type Checking */ "strict": true /* Enable all strict type-checking options. */, // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ @@ -101,9 +94,8 @@ // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - /* Completeness */ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */ } -} +} \ No newline at end of file From 7f11857c10e59b072ebc60d4a8c2d83c1d0cc01f Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 17:48:31 +0000 Subject: [PATCH 63/85] chore: getTransaction.ts lint --- static/scripts/audit-report/types/audit.d.ts | 14 +++++++++++++- static/scripts/audit-report/types/transaction.ts | 2 +- .../scripts/audit-report/utils/getTransaction.ts | 10 +++++----- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/static/scripts/audit-report/types/audit.d.ts b/static/scripts/audit-report/types/audit.d.ts index f5d0382c..f4cf5bd8 100644 --- a/static/scripts/audit-report/types/audit.d.ts +++ b/static/scripts/audit-report/types/audit.d.ts @@ -119,7 +119,19 @@ interface TableIndex { type: TableIndexTypes; multiEntry?: boolean; unique?: boolean; - default?: any; + default?: NonNullable extends string + ? string + : NonNullable extends number + ? number + : NonNullable extends boolean + ? boolean + : NonNullable extends Date + ? Date + : NonNullable extends object + ? object + : NonNullable extends Array + ? Array + : never; ref?: string; } interface GoDBTableSchema { diff --git a/static/scripts/audit-report/types/transaction.ts b/static/scripts/audit-report/types/transaction.ts index d6eee244..0d2cd07e 100644 --- a/static/scripts/audit-report/types/transaction.ts +++ b/static/scripts/audit-report/types/transaction.ts @@ -1,4 +1,4 @@ -export interface ITransaction { +export interface Transaction { input: string; hash: string; blockNumber: string; diff --git a/static/scripts/audit-report/utils/getTransaction.ts b/static/scripts/audit-report/utils/getTransaction.ts index c9a23c9d..e165e21b 100644 --- a/static/scripts/audit-report/utils/getTransaction.ts +++ b/static/scripts/audit-report/utils/getTransaction.ts @@ -1,9 +1,9 @@ import axios from "axios"; import { Chain } from "../constants"; -import { ITransaction } from "../types/transaction"; +import { Transaction } from "../types/transaction"; import { getBlockInfo, updateBlockInfo } from "./blockInfo"; -export const getTxInfo = async (hash: string, url: string, chain: Chain): Promise => { +export async function getTxInfo(hash: string, url: string, chain: Chain): Promise { try { const transactionResponse = await axios.post(url, { jsonrpc: "2.0", @@ -11,7 +11,7 @@ export const getTxInfo = async (hash: string, url: string, chain: Chain): Promis method: "eth_getTransactionByHash", params: [hash], }); - const transaction = transactionResponse.data.result as ITransaction; + const transaction = transactionResponse.data.result as Transaction; const timestamp = await getBlockInfo(transaction.blockNumber, chain); if (timestamp !== null) { @@ -24,7 +24,7 @@ export const getTxInfo = async (hash: string, url: string, chain: Chain): Promis params: [transaction.blockNumber, false], }); transaction.timestamp = blockResponse.data.result.timestamp; - updateBlockInfo(transaction.blockNumber, transaction.timestamp, chain); + await updateBlockInfo(transaction.blockNumber, transaction.timestamp, chain); } return transaction; @@ -32,4 +32,4 @@ export const getTxInfo = async (hash: string, url: string, chain: Chain): Promis console.error(error); throw error; } -}; +} From 9be690849313f28473259989be6cea447b37c228 Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 17:49:58 +0000 Subject: [PATCH 64/85] chore: blockinfo.ts lint --- static/scripts/audit-report/utils/blockInfo.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/static/scripts/audit-report/utils/blockInfo.ts b/static/scripts/audit-report/utils/blockInfo.ts index 7388713d..ee008c6c 100644 --- a/static/scripts/audit-report/utils/blockInfo.ts +++ b/static/scripts/audit-report/utils/blockInfo.ts @@ -1,9 +1,9 @@ import { Chain, CHAIN_MAP } from "../constants"; -export const getBlockInfo = async (blockNumber: string, chain: Chain) => { - return await localStorage.getItem(`${CHAIN_MAP[chain]}:${blockNumber}`); -}; +export async function getBlockInfo(blockNumber: string, chain: Chain) { + return localStorage.getItem(`${CHAIN_MAP[chain]}:${blockNumber}`); +} -export const updateBlockInfo = async (blockNumber: string, timestamp: string, chain: Chain) => { - await localStorage.setItem(`${CHAIN_MAP[chain]}:${blockNumber}`, timestamp); -}; +export async function updateBlockInfo(blockNumber: string, timestamp: string, chain: Chain) { + localStorage.setItem(`${CHAIN_MAP[chain]}:${blockNumber}`, timestamp); +} From c25ca940c885c690c640732bc71c15d76da12fc4 Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 17:55:52 +0000 Subject: [PATCH 65/85] chore: keygen.ts lint --- static/scripts/key-generator/keygen.ts | 63 +++++++++++++++++--------- 1 file changed, 41 insertions(+), 22 deletions(-) diff --git a/static/scripts/key-generator/keygen.ts b/static/scripts/key-generator/keygen.ts index a5ed2ca7..6853de7c 100644 --- a/static/scripts/key-generator/keygen.ts +++ b/static/scripts/key-generator/keygen.ts @@ -1,23 +1,24 @@ import _sodium from "libsodium-wrappers"; const classes = ["error", "warning", "success"]; +const CYPHER_KEY = "#cipherKey"; -const statusToggle = (target: "error" | "warning" | "success", value: string) => { +function statusToggle(target: "error" | "warning" | "success", value: string) { const statusKey = document.querySelector("#statusKey") as HTMLInputElement; - classes.forEach(e => { + classes.forEach((e) => { if (e !== target) { statusKey.classList.remove(e); } }); statusKey.classList.add(target); statusKey.value = value; -}; +} -const sodiumKeyBox = async () => { +async function sodiumKeyBox() { const privKey = document.querySelector("#privKey") as HTMLInputElement; const pubKey = document.querySelector("#pubKey") as HTMLInputElement; - const cipherKey = document.querySelector("#cipherKey") as HTMLInputElement; + const cipherKey = document.querySelector(CYPHER_KEY) as HTMLInputElement; cipherKey.value = ""; try { await _sodium.ready; @@ -27,16 +28,20 @@ const sodiumKeyBox = async () => { privKey.value = privateKey; pubKey.value = publicKey; statusToggle("success", `Success: Key Generation is ok.`); - } catch (error: any) { - statusToggle("error", `Error: ${error.message}`); + } catch (error: unknown) { + if (error instanceof Error) { + statusToggle("error", `Error: ${error.message}`); + } else { + statusToggle("error", `Error: ${JSON.stringify(error)}`); + } } -}; +} -const sodiumEncryptedSeal = async () => { +async function sodiumEncryptedSeal() { const pubKey = document.querySelector("#pubKey") as HTMLInputElement; const privKey = document.querySelector("#privKey") as HTMLInputElement; const plainKey = document.querySelector("#plainKey") as HTMLInputElement; - const cipherKey = document.querySelector("#cipherKey") as HTMLInputElement; + const cipherKey = document.querySelector(CYPHER_KEY) as HTMLInputElement; try { await _sodium.ready; const sodium = _sodium; @@ -58,12 +63,16 @@ const sodiumEncryptedSeal = async () => { const output = sodium.to_base64(encBytes, sodium.base64_variants.URLSAFE_NO_PADDING); cipherKey.value = output; statusToggle("success", `Success: Key Encryption is ok.`); - } catch (error: any) { - statusToggle("error", `Error: ${error.message}`); + } catch (error: unknown) { + if (error instanceof Error) { + statusToggle("error", `Error: ${error.message}`); + } else { + statusToggle("error", `Error: ${JSON.stringify(error)}`); + } } -}; +} -const sodiumOpenSeal = async () => { +async function sodiumOpenSeal() { const pubKey = document.querySelector("#pubKey") as HTMLInputElement; const privKey = document.querySelector("#privKey") as HTMLInputElement; const cipherKey = document.querySelector("#cipherKey") as HTMLInputElement; @@ -89,27 +98,37 @@ const sodiumOpenSeal = async () => { const outText = sodium.crypto_box_seal_open(binCipher, binPub, binPriv, "text"); plainKey.value = outText; statusToggle("success", `Success: Key Decryption is ok.`); - } catch (error: any) { - statusToggle("error", `Error: ${error.message}`); + } catch (error: unknown) { + if (error instanceof Error) { + statusToggle("error", `Error: ${error.message}`); + } else { + statusToggle("error", `Error: ${JSON.stringify(error)}`); + } } -}; +} -const init = () => { +function init() { const genBtn = document.querySelector("#genBtn") as HTMLButtonElement; const encryptBtn = document.querySelector("#encryptBtn") as HTMLButtonElement; const decryptBtn = document.querySelector("#decryptBtn") as HTMLButtonElement; genBtn.addEventListener("click", () => { - sodiumKeyBox(); + sodiumKeyBox().catch((error) => { + statusToggle("error", `Error: ${error.message}`); + }); }); encryptBtn.addEventListener("click", () => { - sodiumEncryptedSeal(); + sodiumEncryptedSeal().catch((error) => { + statusToggle("error", `Error: ${error.message}`); + }); }); decryptBtn.addEventListener("click", () => { - sodiumOpenSeal(); + sodiumOpenSeal().catch((error) => { + statusToggle("error", `Error: ${error.message}`); + }); }); -}; +} init(); From bc98983f261c716944f818a983fd281eb968a5dd Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 18:21:09 +0000 Subject: [PATCH 66/85] chore: onboarding.ts lint --- static/scripts/onboarding/onboarding.ts | 235 +++++++++++++----------- 1 file changed, 127 insertions(+), 108 deletions(-) diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index 93d61028..9e67efee 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -30,6 +30,9 @@ const DEFAULT_PATH = "ubiquibot-config-default.json"; const KEY_NAME = "private-key-encrypted"; const KEY_PREFIX = "HSK_"; const X25519_KEY = "5ghIlfGjz_ChcYlBDOG7dzmgAgBPuTahpvTMBipSH00"; +const SAFE_ADDRESS = "safe-address"; +const EVM_NETWORK_ID = "evm-network-id"; +const STATUS_LOG = ".status-log"; let encryptedValue = ""; @@ -42,7 +45,7 @@ interface CommandLabel { enabled: boolean; } -interface IIncentive { +interface Incentive { comment: { elements: Record; totals: { @@ -51,12 +54,12 @@ interface IIncentive { }; } -interface IControl { +interface Control { label: boolean; organization: boolean; } -interface IConf { +interface Configuration { "private-key-encrypted"?: string; "safe-address"?: string; "base-multiplier"?: number; @@ -78,11 +81,11 @@ interface IConf { "time-labels"?: ConfLabel[]; "priority-labels"?: ConfLabel[]; "command-settings"?: CommandLabel[]; - incentives?: IIncentive; - "enable-access-control"?: IControl; + incentives?: Incentive; + "enable-access-control"?: Control; } -let defaultConf: IConf = { +let defaultConf: Configuration = { "private-key-encrypted": "", "safe-address": "", "base-multiplier": 1, @@ -117,8 +120,8 @@ let defaultConf: IConf = { organization: true, }, }; - -export const parseYAML = async (data: any): Promise => { +// // a cheaky way to get around the any type that parse returns +export async function parseYAML(data: string): Promise | undefined> { try { const parsedData = await YAML.parse(data); if (parsedData !== null) { @@ -129,19 +132,21 @@ export const parseYAML = async (data: any): Promise => { } catch (error) { return undefined; } -}; +} -export const parseJSON = async (data: any): Promise => { +export async function parseJSON(data: NonNullable): Promise | undefined> { try { return await JSON.parse(data); } catch (error) { return undefined; } -}; +} -export const YAMLStringify = (value: any) => YAML.stringify(value, { defaultKeyType: "PLAIN", defaultStringType: "QUOTE_DOUBLE", lineWidth: 0 }); +export function stringifyYAML(value: Configuration): string { + return YAML.stringify(value, { defaultKeyType: "PLAIN", defaultStringType: "QUOTE_DOUBLE", lineWidth: 0 }); +} -export const getConf = async (initial: boolean = false): Promise => { +export async function getConf(initial: boolean = false): Promise { try { const octokit = new Octokit({ auth: githubPAT.value }); const { data } = await octokit.rest.repos.getContent({ @@ -153,48 +158,48 @@ export const getConf = async (initial: boolean = false): Promise { +function getTextBox(text: string) { const strLen = text.split("\n").length * 22; return `${strLen > 140 ? strLen : 140}px`; -}; +} -const resetToggle = () => { - (walletPrivateKey.parentNode?.querySelector(".status-log") as HTMLElement).innerHTML = ""; - (githubPAT.parentNode?.querySelector(".status-log") as HTMLElement).innerHTML = ""; - (orgName.parentNode?.querySelector(".status-log") as HTMLElement).innerHTML = ""; -}; +function resetToggle() { + (walletPrivateKey.parentNode?.querySelector(STATUS_LOG) as HTMLElement).innerHTML = ""; + (githubPAT.parentNode?.querySelector(STATUS_LOG) as HTMLElement).innerHTML = ""; + (orgName.parentNode?.querySelector(STATUS_LOG) as HTMLElement).innerHTML = ""; +} -const classListToggle = (targetElem: HTMLElement, target: "error" | "warn" | "success", inputElem?: HTMLInputElement | HTMLTextAreaElement) => { - classes.forEach(className => targetElem.classList.remove(className)); +function classListToggle(targetElem: HTMLElement, target: "error" | "warn" | "success", inputElem?: HTMLInputElement | HTMLTextAreaElement) { + classes.forEach((className) => targetElem.classList.remove(className)); targetElem.classList.add(target); if (inputElem) { - inputClasses.forEach(className => inputElem.classList.remove(className)); + inputClasses.forEach((className) => inputElem.classList.remove(className)); inputElem.classList.add(`input-${target}`); } -}; +} -const statusToggle = (type: "error" | "warn" | "success", message: string) => { +function statusToggle(type: "error" | "warn" | "success", message: string) { resetToggle(); const statusKey = document.getElementById("statusKey") as HTMLInputElement; classListToggle(statusKey, type); statusKey.value = message; -}; +} -const focusToggle = (targetElem: HTMLInputElement | HTMLTextAreaElement, type: "error" | "warn" | "success", message: string) => { +function focusToggle(targetElem: HTMLInputElement | HTMLTextAreaElement, type: "error" | "warn" | "success", message: string) { resetToggle(); - const infoElem = targetElem.parentNode?.querySelector(".status-log") as HTMLElement; + const infoElem = targetElem.parentNode?.querySelector(STATUS_LOG) as HTMLElement; infoElem.innerHTML = message; classListToggle(infoElem, type, targetElem); targetElem.focus(); -}; +} -const toggleLoader = (state: "start" | "end") => { +function toggleLoader(state: "start" | "end") { if (state === "start") { setBtn.disabled = true; loader.style.display = "flex"; @@ -202,9 +207,9 @@ const toggleLoader = (state: "start" | "end") => { setBtn.disabled = false; loader.style.display = "none"; } -}; +} -const singleToggle = (type: "error" | "warn" | "success", message: string, focusElem?: HTMLInputElement | HTMLTextAreaElement) => { +function singleToggle(type: "error" | "warn" | "success", message: string, focusElem?: HTMLInputElement | HTMLTextAreaElement) { statusToggle(type, message); if (focusElem) { @@ -212,9 +217,9 @@ const singleToggle = (type: "error" | "warn" | "success", message: string, focus } toggleLoader("end"); -}; +} -const sodiumEncryptedSeal = async (publicKey: string, secret: string) => { +async function sodiumEncryptedSeal(publicKey: string, secret: string) { outKey.value = ""; encryptedValue = ""; try { @@ -226,18 +231,22 @@ const sodiumEncryptedSeal = async (publicKey: string, secret: string) => { const encBytes = sodium.crypto_box_seal(binsec, binkey); const output = sodium.to_base64(encBytes, sodium.base64_variants.URLSAFE_NO_PADDING); defaultConf[KEY_NAME] = output; - defaultConf["evm-network-id"] = Number(chainIdSelect.value); - defaultConf["safe-address"] = safeAddressInput.value; - outKey.value = YAMLStringify(defaultConf); + defaultConf[EVM_NETWORK_ID] = Number(chainIdSelect.value); + defaultConf[SAFE_ADDRESS] = safeAddressInput.value; + outKey.value = stringifyYAML(defaultConf); outKey.style.height = getTextBox(outKey.value); encryptedValue = output; singleToggle("success", `Success: Key Encryption is ok.`); - } catch (error: any) { - singleToggle("error", `Error: ${error.message}`); + } catch (error: unknown) { + if (error instanceof Error) { + console.error(error); + singleToggle("error", `Error: ${error.message}`); + } } -}; +} -const setConfig = async () => { +// @TODO = Sonar 27/15 +async function setConfig() { try { toggleLoader("start"); const pluginKit = Octokit.plugin(createOrUpdateTextFile); @@ -246,13 +255,13 @@ const setConfig = async () => { username: orgName.value, }); if (userInfo.type === "Organization") { - let repository_id: number | null = null; + let repositoryId: number | null = null; try { - const { data: repository_info } = await octokit.rest.repos.get({ + const { data: repositoryInfo } = await octokit.rest.repos.get({ owner: orgName.value, repo: REPO_NAME, }); - repository_id = repository_info.id; + repositoryId = repositoryInfo.id; } catch (error) { if (!(error instanceof Error)) { return console.error(error); @@ -260,7 +269,7 @@ const setConfig = async () => { console.error(error.message); try { - const { data: repo_res } = await octokit.rest.repos.createInOrg({ + const { data: repoRes } = await octokit.rest.repos.createInOrg({ org: orgName.value, name: REPO_NAME, auto_init: true, @@ -268,7 +277,7 @@ const setConfig = async () => { visibility: "private", has_downloads: true, }); - repository_id = repo_res.id; + repositoryId = repoRes.id; } catch (error) { if (!(error instanceof Error)) { return console.error(error); @@ -283,36 +292,36 @@ const setConfig = async () => { org: orgName.value, per_page: 100, }); - const ins = appInstallations.installations.filter(installation => installation.app_id === APP_ID); + const ins = appInstallations.installations.filter((installation) => installation.app_id === APP_ID); if (ins.length > 0) { - const installation_id = ins[0].id; - const { data: installed_repos } = await octokit.rest.apps.listInstallationReposForAuthenticatedUser({ - installation_id: installation_id, + const installationId = ins[0].id; + const { data: installedRepos } = await octokit.rest.apps.listInstallationReposForAuthenticatedUser({ + installation_id: installationId, }); - const irs = installed_repos.repositories.filter(installed_repo => installed_repo.id === repository_id); + const irs = installedRepos.repositories.filter((installedRepo) => installedRepo.id === repositoryId); if (irs.length === 0) { await octokit.rest.apps.addRepoToInstallationForAuthenticatedUser({ - installation_id: installation_id, - repository_id: repository_id, + installation_id: installationId, + repository_id: repositoryId, }); } const conf = await getConf(); const updatedConf = defaultConf; - const parsedConf: IConf | undefined = await parseYAML(conf); + const parsedConf: Configuration | undefined = await parseYAML(conf); updatedConf[KEY_NAME] = encryptedValue; - updatedConf["evm-network-id"] = Number(chainIdSelect.value); - updatedConf["safe-address"] = safeAddressInput.value; + updatedConf[EVM_NETWORK_ID] = Number(chainIdSelect.value); + updatedConf[SAFE_ADDRESS] = safeAddressInput.value; // combine configs (default + remote org wide) const combinedConf = Object.assign(updatedConf, parsedConf); - const stringified = YAMLStringify(combinedConf); + const stringified = stringifyYAML(combinedConf); outKey.value = stringified; - const { updated } = await octokit.createOrUpdateTextFile({ + const { updated: isUpdated } = await octokit.createOrUpdateTextFile({ owner: orgName.value, repo: REPO_NAME, path: KEY_PATH, @@ -320,7 +329,7 @@ const setConfig = async () => { message: `${crypto.randomUUID()}`, }); - if (updated) { + if (isUpdated) { singleToggle("success", `Success: private key is updated.`); } else { singleToggle("success", `Success: private key is upto date.`); @@ -340,23 +349,23 @@ const setConfig = async () => { console.error(error); singleToggle("error", `Error: ${error.message}`); } -}; +} -const setInputListeners = () => { +function setInputListeners() { const inputs = document.querySelectorAll("input") as NodeListOf; - inputs.forEach(input => { - input.addEventListener("input", e => { - inputClasses.forEach(className => (e.target as HTMLInputElement).classList.remove(className)); - (((e.target as HTMLInputElement).parentNode as HTMLElement).querySelector(".status-log") as HTMLElement).innerHTML = ""; + inputs.forEach((input) => { + input.addEventListener("input", (e) => { + inputClasses.forEach((className) => (e.target as HTMLInputElement).classList.remove(className)); + (((e.target as HTMLInputElement).parentNode as HTMLElement).querySelector(STATUS_LOG) as HTMLElement).innerHTML = ""; }); }); -}; +} let currentStep = 1; let signer: JsonRpcSigner | undefined = undefined; -const nextStep = async () => { +async function nextStep() { const configChainId = Number(chainIdSelect.value); const tokenNameSpan = document.getElementById("allowance + span"); @@ -400,33 +409,37 @@ const nextStep = async () => { } } - // watch for chain changes - window.ethereum.on("chainChanged", async (currentChainId: string) => { - if (configChainId === parseInt(currentChainId, 16)) { + // watch for chain changes making this generic suppresses the unknown comparison + window.ethereum.on("chainChanged", async (currentChainId: T | string) => { + if (configChainId === parseInt(currentChainId as string, 16)) { singleToggle("success", ``); } else { singleToggle("error", `Error: Please connect to ${getNetworkName(configChainId)}.`); - switchNetwork(provider, configChainId); + switchNetwork(provider, configChainId).catch((error) => { + console.error(error); + }); } }); -}; +} -const connectWallet = async (): Promise => { +async function connectWallet(): Promise { try { const provider = new ethers.providers.Web3Provider(window.ethereum, "any"); await provider.send("eth_requestAccounts", []); return provider.getSigner(); - } catch (error: any) { - if (error?.message?.includes("missing provider")) { - singleToggle("error", "Error: Please install MetaMask."); - } else { - singleToggle("error", "Error: Please connect your wallet."); + } catch (error: unknown) { + if (error instanceof Error) { + if (error?.message?.includes("missing provider")) { + singleToggle("error", "Error: Please install MetaMask."); + } else { + singleToggle("error", "Error: Please connect your wallet."); + } + return undefined; } - return undefined; } -}; +} -const switchNetwork = async (provider: ethers.providers.Web3Provider, chainId: string | number): Promise => { +async function switchNetwork(provider: ethers.providers.Web3Provider, chainId: string | number): Promise { try { // if chainId is a number then convert it to hex if (typeof chainId === "number") { @@ -438,17 +451,17 @@ const switchNetwork = async (provider: ethers.providers.Web3Provider, chainId: s } await provider.send("wallet_switchEthereumChain", [{ chainId: chainId }]); return true; - } catch (error: any) { + } catch (error: unknown) { return false; } -}; +} -const isHex = (str: string): boolean => { +function isHex(str: string): boolean { const regexp = /^[0-9a-fA-F]+$/; return regexp.test(str); -}; +} -const step1Handler = async () => { +async function step1Handler() { if (walletPrivateKey.value === "") { singleToggle("warn", `Warn: Private_Key is not set.`, walletPrivateKey); return; @@ -483,10 +496,12 @@ const step1Handler = async () => { } await sodiumEncryptedSeal(X25519_KEY, `${KEY_PREFIX}${walletPrivateKey.value}`); - setConfig(); -}; + setConfig().catch((error) => { + console.error(error); + }); +} -const step2Handler = async () => { +async function step2Handler() { try { if (!window.ethereum) { singleToggle("error", `Error: Please install MetaMask or any other Ethereum wallet.`); @@ -507,20 +522,20 @@ const step2Handler = async () => { const walletChainId = await signer.getChainId(); const configChainId = Number(chainIdSelect.value); - window.ethereum.on("chainChanged", async (currentChainId: string) => { - if (configChainId === parseInt(currentChainId, 16)) { + window.ethereum.on("chainChanged", async (currentChainId: T | string) => { + if (configChainId === parseInt(currentChainId as string, 16)) { singleToggle("success", ``); } else { singleToggle("error", `Error: Please connect to ${chainIdSelect.value}.`); - switchNetwork(provider, configChainId); + switchNetwork(provider, configChainId).catch((error) => { + console.error(error); + }); } }); - if (walletChainId !== configChainId) { - if (!(await switchNetwork(provider, configChainId))) { - singleToggle("error", `Error: Switch to the correct chain.`); - return; - } + if (walletChainId !== configChainId && !(await switchNetwork(provider, configChainId))) { + singleToggle("error", `Error: Switch to the correct chain.`); + return; } // load token contract @@ -540,19 +555,21 @@ const step2Handler = async () => { await erc20.approve(PERMIT2_ADDRESS, parseUnits(allowance.toString(), decimals)); singleToggle("success", `Success`); - } catch (error: any) { - console.error(error); - singleToggle("error", `Error: ${error.reason}`); + } catch (error: unknown) { + if (error instanceof Error) { + console.error(error); + singleToggle("error", `Error: ${error.message}`); + } } -}; +} -const init = async () => { +async function init() { let conf = await getConf(true); if (conf !== undefined) { try { conf = JSON.parse(conf); - defaultConf = conf as IConf; - defaultConf["private-key-encrypted"] = ""; + defaultConf = conf as Configuration; + defaultConf[KEY_NAME] = ""; setInputListeners(); setBtn.addEventListener("click", async () => { @@ -568,6 +585,8 @@ const init = async () => { } else { throw new Error("Default config fetch failed"); } -}; +} -init(); +init().catch((error) => { + console.error(error); +}); From 71844c7fbae3f72a08c4fe7c3ccd3298d57bb691 Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 18:26:43 +0000 Subject: [PATCH 67/85] chore: one err fixes in various --- static/scripts/rewards/abis/nftRewardAbi.ts | 1 + static/scripts/rewards/cirip/ens-lookup.ts | 6 +++--- static/scripts/rewards/cirip/query-reverse-ens.ts | 4 ++-- static/scripts/rewards/helpers.ts | 14 +++++++------- static/scripts/rewards/index.ts | 4 ++-- static/scripts/rewards/invalidate-component.ts | 4 ++-- .../render-transaction/insert-table-data.ts | 6 +++--- 7 files changed, 20 insertions(+), 19 deletions(-) diff --git a/static/scripts/rewards/abis/nftRewardAbi.ts b/static/scripts/rewards/abis/nftRewardAbi.ts index a8097ed5..eb89aac1 100644 --- a/static/scripts/rewards/abis/nftRewardAbi.ts +++ b/static/scripts/rewards/abis/nftRewardAbi.ts @@ -1,3 +1,4 @@ +/* eslint-disable sonarjs/no-duplicate-string */ export const nftRewardAbi = [ { inputs: [ diff --git a/static/scripts/rewards/cirip/ens-lookup.ts b/static/scripts/rewards/cirip/ens-lookup.ts index 496313c1..67a772fd 100644 --- a/static/scripts/rewards/cirip/ens-lookup.ts +++ b/static/scripts/rewards/cirip/ens-lookup.ts @@ -4,14 +4,14 @@ import { fetchEns } from "./fetch-ens"; import { queryReverseEns } from "./query-reverse-ens"; export const UBIQUITY_RPC_ENDPOINT = "https://rpc-pay.ubq.fi/v1/mainnet"; -export const ReverseEnsInterface = new ethers.utils.Interface(abi); +export const reverseEnsInterface = new ethers.utils.Interface(abi); // addEventListener("fetch", event => { // event.respondWith(handleRequest(event.request).catch(err => new Response(err.stack, { status: 500 }))); // }); -export async function ensLookup(__address: string) { - const _address = "/".concat(__address); // quick adapter +export async function ensLookup(addr: string) { + const _address = "/".concat(addr); // quick adapter // try { const start = _address.indexOf("/0x"); diff --git a/static/scripts/rewards/cirip/query-reverse-ens.ts b/static/scripts/rewards/cirip/query-reverse-ens.ts index 4c3ad21f..5b14fd76 100644 --- a/static/scripts/rewards/cirip/query-reverse-ens.ts +++ b/static/scripts/rewards/cirip/query-reverse-ens.ts @@ -1,7 +1,7 @@ -import { ReverseEnsInterface, UBIQUITY_RPC_ENDPOINT } from "./ens-lookup"; +import { reverseEnsInterface, UBIQUITY_RPC_ENDPOINT } from "./ens-lookup"; export async function queryReverseEns(address: string) { - const data = ReverseEnsInterface.encodeFunctionData("getNames", [[address.substring(2)]]); + const data = reverseEnsInterface.encodeFunctionData("getNames", [[address.substring(2)]]); const response = await fetch(UBIQUITY_RPC_ENDPOINT, { method: "POST", diff --git a/static/scripts/rewards/helpers.ts b/static/scripts/rewards/helpers.ts index 334f62ea..29e3d52c 100644 --- a/static/scripts/rewards/helpers.ts +++ b/static/scripts/rewards/helpers.ts @@ -13,7 +13,7 @@ type DataType = { }; }; -const verifyBlock = (data: DataType) => { +function verifyBlock(data: DataType) { try { const { jsonrpc, id, result } = data; const { number, timestamp, hash } = result; @@ -21,7 +21,7 @@ const verifyBlock = (data: DataType) => { } catch (error) { return false; } -}; +} const RPC_BODY = JSON.stringify({ jsonrpc: "2.0", @@ -34,13 +34,13 @@ const RPC_HEADER = { "Content-Type": "application/json", }; -export const getErc20Contract = async (contractAddress: string, networkId: number): Promise => { +export async function getErc20Contract(contractAddress: string, networkId: number): Promise { const providerUrl = await getOptimalRPC(networkId); const provider = new ethers.providers.JsonRpcProvider(providerUrl); return new ethers.Contract(contractAddress, erc20Abi, provider); -}; +} -export const getOptimalRPC = async (networkId: number): Promise => { +export async function getOptimalRPC(networkId: number): Promise { const promises = networkRpcs[networkId].map(async (baseURL: string) => { try { const startTime = performance.now(); @@ -52,7 +52,7 @@ export const getOptimalRPC = async (networkId: number): Promise => { const { data } = await API.post("", RPC_BODY); const endTime = performance.now(); const latency = endTime - startTime; - if (await verifyBlock(data)) { + if (verifyBlock(data)) { return Promise.resolve({ latency, baseURL, @@ -67,4 +67,4 @@ export const getOptimalRPC = async (networkId: number): Promise => { const { baseURL: optimalRPC } = await Promise.any(promises); return optimalRPC; -}; +} diff --git a/static/scripts/rewards/index.ts b/static/scripts/rewards/index.ts index ae360c10..9aa754c4 100644 --- a/static/scripts/rewards/index.ts +++ b/static/scripts/rewards/index.ts @@ -11,10 +11,10 @@ import { grid } from "./the-grid"; buildElement.innerHTML = commitHash; buildElement.href = `https://github.com/ubiquity/pay.ubq.fi/commit/${commitHash}`; } - init(); + init().catch(console.error); } catch (error) { console.error(error); } -})(); +})().catch(console.error); grid(document.getElementById("grid") as HTMLElement); diff --git a/static/scripts/rewards/invalidate-component.ts b/static/scripts/rewards/invalidate-component.ts index f469bdc9..8687d329 100644 --- a/static/scripts/rewards/invalidate-component.ts +++ b/static/scripts/rewards/invalidate-component.ts @@ -2,11 +2,11 @@ const invalidateBtnInnerHTML = `
Void
`; // parse string and turn into an html entity -const parseHtml = (html: string) => { +function parseHtml(html: string) { const button = document.createElement("button"); button.id = "invalidateBtn"; button.innerHTML = html; return button.cloneNode(true) as HTMLButtonElement; -}; +} export default parseHtml(invalidateBtnInnerHTML); diff --git a/static/scripts/rewards/render-transaction/insert-table-data.ts b/static/scripts/rewards/render-transaction/insert-table-data.ts index 70c3878f..565bc1ce 100644 --- a/static/scripts/rewards/render-transaction/insert-table-data.ts +++ b/static/scripts/rewards/render-transaction/insert-table-data.ts @@ -2,14 +2,14 @@ import { BigNumber, ethers } from "ethers"; import { app } from "."; import { Erc20Permit, Erc721Permit } from "./tx-type"; -export const shortenAddress = (address: string): string => { +export function shortenAddress(address: string): string { return `${address.slice(0, 10)}...${address.slice(-8)}`; -}; +} export function insertErc20PermitTableData( permit: Erc20Permit, table: Element, - treasury: { balance: BigNumber; allowance: BigNumber; decimals: number; symbol: string }, + treasury: { balance: BigNumber; allowance: BigNumber; decimals: number; symbol: string } ): Element { const requestedAmountElement = document.getElementById("rewardAmount") as Element; renderToFields(permit.transferDetails.to, app.currentExplorerUrl); From 3e5dfff6a1200b1408f05f1685035b2daf260712 Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 18:29:09 +0000 Subject: [PATCH 68/85] chore: rendertrans.ts lint --- .../render-transaction/render-transaction.ts | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/static/scripts/rewards/render-transaction/render-transaction.ts b/static/scripts/rewards/render-transaction/render-transaction.ts index a64eeaf6..b358931e 100644 --- a/static/scripts/rewards/render-transaction/render-transaction.ts +++ b/static/scripts/rewards/render-transaction/render-transaction.ts @@ -36,14 +36,14 @@ export async function init() { return false; } - let detailsVisible = false; + let isDetailsVisible = false; - table.setAttribute(`data-details-visible`, detailsVisible.toString()); + table.setAttribute(`data-details-visible`, isDetailsVisible.toString()); const additionalDetails = document.getElementById(`additionalDetails`) as Element; additionalDetails.addEventListener("click", () => { - detailsVisible = !detailsVisible; - table.setAttribute(`data-details-visible`, detailsVisible.toString()); + isDetailsVisible = !isDetailsVisible; + table.setAttribute(`data-details-visible`, isDetailsVisible.toString()); }); const rewardsCount = document.getElementById("rewardsCount"); @@ -60,7 +60,7 @@ export async function init() { app.nextTx(); rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; table.setAttribute(`data-claim`, "none"); - renderTransaction(); + renderTransaction().catch(console.error); }); } @@ -71,7 +71,7 @@ export async function init() { app.previousTx(); rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; table.setAttribute(`data-claim`, "none"); - renderTransaction(); + renderTransaction().catch(console.error); }); } @@ -79,16 +79,17 @@ export async function init() { } } - renderTransaction(); + renderTransaction().catch(console.error); } function setPagination(nextTxButton: Element | null, prevTxButton: Element | null) { + if (!nextTxButton || !prevTxButton) return; if (app.claimTxs.length > 1) { - prevTxButton!.classList.remove("hide-pagination"); - nextTxButton!.classList.remove("hide-pagination"); + prevTxButton.classList.remove("hide-pagination"); + nextTxButton.classList.remove("hide-pagination"); - prevTxButton!.classList.add("show-pagination"); - nextTxButton!.classList.add("show-pagination"); + prevTxButton.classList.add("show-pagination"); + nextTxButton.classList.add("show-pagination"); } } @@ -115,7 +116,7 @@ export async function renderTransaction(nextTx?: boolean): Promise { return false; } - handleNetwork(app.currentTx.networkId); + handleNetwork(app.currentTx.networkId).catch(console.error); if (app.currentTx.type === "erc20-permit") { const treasury = await fetchTreasury(app.currentTx); @@ -135,9 +136,9 @@ export async function renderTransaction(nextTx?: boolean): Promise { }).catch(console.error); const toElement = document.getElementById(`rewardRecipient`) as Element; - renderEnsName({ element: toElement, address: app.currentTx.transferDetails.to }); + renderEnsName({ element: toElement, address: app.currentTx.transferDetails.to }).catch(console.error); - generateInvalidatePermitAdminControl(app.currentTx); + generateInvalidatePermitAdminControl(app.currentTx).catch(console.error); claimButton.element.addEventListener("click", claimErc20PermitHandler(app.currentTx)); } else if (app.currentTx.type === "erc721-permit") { @@ -153,7 +154,7 @@ export async function renderTransaction(nextTx?: boolean): Promise { }).catch(console.error); const toElement = document.getElementById(`rewardRecipient`) as Element; - renderEnsName({ element: toElement, address: app.currentTx.request.beneficiary }); + renderEnsName({ element: toElement, address: app.currentTx.request.beneficiary }).catch(console.error); claimButton.element.addEventListener("click", claimErc721PermitHandler(app.currentTx)); } From d948ae34dc2d391a858038c4c357c3cbe209291c Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 18:32:08 +0000 Subject: [PATCH 69/85] chore: tx-type.ts lint --- .../rewards/render-transaction/tx-type.ts | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/static/scripts/rewards/render-transaction/tx-type.ts b/static/scripts/rewards/render-transaction/tx-type.ts index 71e4be8f..54a0332a 100644 --- a/static/scripts/rewards/render-transaction/tx-type.ts +++ b/static/scripts/rewards/render-transaction/tx-type.ts @@ -1,52 +1,52 @@ import { StaticDecode, Type as T } from "@sinclair/typebox"; import { BigNumber } from "ethers"; -const TBigNumber = T.Transform(T.Union([T.RegExp(/^\d+$/), T.Number()])) - .Decode(value => BigNumber.from(value)) - .Encode(value => value.toString()); +const bigNumberT = T.Transform(T.Union([T.RegExp(/^\d+$/), T.Number()])) + .Decode((value) => BigNumber.from(value)) + .Encode((value) => value.toString()); -// const TNetworkId = T.Transform(T.Union([T.RegExp(/^0x\d+$/), T.Number()])) +// const networkIdT = T.Transform(T.Union([T.RegExp(/^0x\d+$/), T.Number()])) // .Decode(value => (typeof value === "number" ? "0x" + value.toString(16) : value)) // .Encode(value => value); -const TNetworkId = T.Number(); +const networkIdT = T.Number(); -const TAddress = T.Transform(T.RegExp(/^0x[a-fA-F0-9]{40}$/)) - .Decode(value => value.toLowerCase()) - .Encode(value => value); +const addressT = T.Transform(T.RegExp(/^0x[a-fA-F0-9]{40}$/)) + .Decode((value) => value.toLowerCase()) + .Encode((value) => value); -const TSignature = T.Transform(T.RegExp(/^0x[a-fA-F0-9]+$/)) - .Decode(value => value.toLowerCase()) - .Encode(value => value); +const signatureT = T.Transform(T.RegExp(/^0x[a-fA-F0-9]+$/)) + .Decode((value) => value.toLowerCase()) + .Encode((value) => value); -const Erc20Permit = T.Object({ +const erc20PermitT = T.Object({ type: T.Literal("erc20-permit"), permit: T.Object({ permitted: T.Object({ - token: TAddress, - amount: TBigNumber, + token: addressT, + amount: bigNumberT, }), - nonce: TBigNumber, - deadline: TBigNumber, + nonce: bigNumberT, + deadline: bigNumberT, }), transferDetails: T.Object({ - to: TAddress, - requestedAmount: TBigNumber, + to: addressT, + requestedAmount: bigNumberT, }), - owner: TAddress, - signature: TSignature, - networkId: TNetworkId, + owner: addressT, + signature: signatureT, + networkId: networkIdT, }); -export type Erc20Permit = StaticDecode; +export type Erc20Permit = StaticDecode; -const Erc721Permit = T.Object({ +const erc721Permit = T.Object({ type: T.Literal("erc721-permit"), request: T.Object({ - beneficiary: TAddress, - deadline: TBigNumber, + beneficiary: addressT, + deadline: bigNumberT, keys: T.Array(T.String()), - nonce: TBigNumber, + nonce: bigNumberT, values: T.Array(T.String()), }), nftMetadata: T.Object({ @@ -56,13 +56,13 @@ const Erc721Permit = T.Object({ GITHUB_USERNAME: T.String(), GITHUB_CONTRIBUTION_TYPE: T.String(), }), - nftAddress: TAddress, - networkId: TNetworkId, - signature: TSignature, + nfaddressT: addressT, + networkId: networkIdT, + signature: signatureT, }); -export type Erc721Permit = StaticDecode; +export type Erc721Permit = StaticDecode; -export const ClaimTx = T.Union([Erc20Permit, Erc721Permit]); +export const claimTxT = T.Union([erc20PermitT, erc721Permit]); -export type ClaimTx = StaticDecode; +export type ClaimTx = StaticDecode; From b86120a0d4eed437b5d0331d2ac5eb0ad356330a Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 18:41:57 +0000 Subject: [PATCH 70/85] chore: erc20permit.ts lint --- static/scripts/rewards/toaster.ts | 8 +++++--- static/scripts/rewards/web3/erc20-permit.ts | 14 ++++++++------ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/static/scripts/rewards/toaster.ts b/static/scripts/rewards/toaster.ts index 8a1c3f48..7f7e0a6e 100644 --- a/static/scripts/rewards/toaster.ts +++ b/static/scripts/rewards/toaster.ts @@ -73,14 +73,16 @@ export function hideClaimButton() { claimButton.element.classList.remove("show-cl"); } -export function errorToast(error: any, errorMessage?: string) { +type Err = { stack: unknown; reason: string } extends Error ? Error : { stack: unknown; reason: string }; + +export function errorToast(error: Err, errorMessage?: string) { delete error.stack; - const ErrorData = JSON.stringify(error, null, 2); + const errorData = JSON.stringify(error, null, 2); if (errorMessage) { toaster.create("error", errorMessage); } else if (error?.reason) { // parse error data to get error message - const parsedError = JSON.parse(ErrorData); + const parsedError = JSON.parse(errorData); const _errorMessage = parsedError?.error?.message ?? parsedError?.reason; toaster.create("error", _errorMessage); } diff --git a/static/scripts/rewards/web3/erc20-permit.ts b/static/scripts/rewards/web3/erc20-permit.ts index 1fdaf0fc..43dc306f 100644 --- a/static/scripts/rewards/web3/erc20-permit.ts +++ b/static/scripts/rewards/web3/erc20-permit.ts @@ -19,7 +19,7 @@ export async function fetchTreasury(permit: Erc20Permit): Promise<{ balance: Big const decimals = await tokenContract.decimals(); const symbol = await tokenContract.symbol(); return { balance, allowance, decimals, symbol }; - } catch (error: any) { + } catch (error: unknown) { return { balance: BigNumber.from(-1), allowance: BigNumber.from(-1), decimals: -1, symbol: "" }; } } @@ -45,11 +45,13 @@ export function claimErc20PermitHandler(permit: Erc20Permit) { console.log(receipt.transactionHash); // @TODO: post to database claimButton.element.removeEventListener("click", handler); - renderTransaction(true); - } catch (error: any) { - console.log(error); - errorToast(error, error.message); - resetClaimButton(); + renderTransaction(true).catch(console.error); + } catch (error: unknown) { + if (error instanceof Error) { + console.log(error); + errorToast(error, error.message); + resetClaimButton(); + } } }; } From 0f071c725689f9eb6adbb4c9fdac723f23e3a00f Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 18:46:30 +0000 Subject: [PATCH 71/85] chore: erc20permit.ts missed a spot --- static/scripts/rewards/toaster.ts | 2 +- static/scripts/rewards/web3/erc20-permit.ts | 25 ++++++++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/static/scripts/rewards/toaster.ts b/static/scripts/rewards/toaster.ts index 7f7e0a6e..9294e720 100644 --- a/static/scripts/rewards/toaster.ts +++ b/static/scripts/rewards/toaster.ts @@ -73,7 +73,7 @@ export function hideClaimButton() { claimButton.element.classList.remove("show-cl"); } -type Err = { stack: unknown; reason: string } extends Error ? Error : { stack: unknown; reason: string }; +type Err = { stack?: unknown; reason?: string } extends Error ? Error : { stack?: unknown; reason?: string }; export function errorToast(error: Err, errorMessage?: string) { delete error.stack; diff --git a/static/scripts/rewards/web3/erc20-permit.ts b/static/scripts/rewards/web3/erc20-permit.ts index 43dc306f..959b9232 100644 --- a/static/scripts/rewards/web3/erc20-permit.ts +++ b/static/scripts/rewards/web3/erc20-permit.ts @@ -57,8 +57,8 @@ export function claimErc20PermitHandler(permit: Erc20Permit) { } export async function checkPermitClaimable(permit: Erc20Permit, signer: ethers.providers.JsonRpcSigner | null) { - const claimed = await isNonceClaimed(permit); - if (claimed) { + const isClaimed = await isNonceClaimed(permit); + if (isClaimed) { toaster.create("error", `Your reward for this task has already been claimed or invalidated.`); return false; } @@ -70,14 +70,14 @@ export async function checkPermitClaimable(permit: Erc20Permit, signer: ethers.p const { balance, allowance } = await fetchTreasury(permit); const permitted = BigNumber.from(permit.permit.permitted.amount); - const solvent = balance.gte(permitted); - const allowed = allowance.gte(permitted); + const isSolvent = balance.gte(permitted); + const isAllowed = allowance.gte(permitted); - if (!solvent) { + if (!isSolvent) { toaster.create("error", `Not enough funds on funding wallet to collect this reward. Please let the funder know.`); return false; } - if (!allowed) { + if (!isAllowed) { toaster.create("error", `Not enough allowance on the funding wallet to collect this reward. Please let the funder know.`); return false; } @@ -115,15 +115,18 @@ export async function generateInvalidatePermitAdminControl(permit: Erc20Permit) if (!signer) { return; } - const claimed = await isNonceClaimed(permit); - if (claimed) { + const isClaimed = await isNonceClaimed(permit); + if (isClaimed) { toaster.create("error", `This reward has already been claimed or invalidated.`); return; } await invalidateNonce(signer, permit.permit.nonce); - } catch (error: any) { - toaster.create("error", `${error.reason ?? error.message ?? "Unknown error"}`); - return; + } catch (error: unknown) { + if (error instanceof Error) { + console.log(error); + errorToast(error, error.message); + return; + } } toaster.create("info", "Nonce invalidation transaction sent"); }); From 7424fe0aefdf48539b07315e654fc68a94039a47 Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 18:58:02 +0000 Subject: [PATCH 72/85] chore: wallet.ts lint --- static/scripts/rewards/web3/wallet.ts | 33 ++++++++++++++++----------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/static/scripts/rewards/web3/wallet.ts b/static/scripts/rewards/web3/wallet.ts index 9b38d15f..00d775a7 100644 --- a/static/scripts/rewards/web3/wallet.ts +++ b/static/scripts/rewards/web3/wallet.ts @@ -11,13 +11,16 @@ export async function connectWallet(): Promise { const signer = provider.getSigner(); resetClaimButton(); return signer; - } catch (error: any) { - if (error?.message?.includes("missing provider")) { - toaster.create("info", "Please use a web3 enabled browser to collect this reward."); - claimButton.element.disabled = true; - } else { - toaster.create("info", "Please connect your wallet to collect this reward."); - claimButton.element.disabled = true; + } catch (error: unknown) { + if (error instanceof Error) { + if (error?.message?.includes("missing provider")) { + toaster.create("info", "Please use a web3 enabled browser to collect this reward."); + claimButton.element.disabled = true; + } else { + toaster.create("info", "Please connect your wallet to collect this reward."); + claimButton.element.disabled = true; + } + return null; } return null; } @@ -31,10 +34,10 @@ export async function handleNetwork(desiredNetworkId: number) { invalidateButton.disabled = true; } - const currentNetworkId = parseInt(await web3provider.provider.request!({ method: "eth_chainId" }), 16); + const currentNetworkId = parseInt(String(web3provider.network.chainId), 16); // watch for network changes - window.ethereum.on("chainChanged", newNetworkId => handleIfOnCorrectNetwork(parseInt(newNetworkId, 16), desiredNetworkId)); + window.ethereum.on("chainChanged", (newNetworkId: T | string) => handleIfOnCorrectNetwork(parseInt(newNetworkId as string, 16), desiredNetworkId)); // if its not on ethereum mainnet, gnosis, or goerli, display error notOnCorrectNetwork(currentNetworkId, desiredNetworkId, web3provider); @@ -51,7 +54,10 @@ function notOnCorrectNetwork(currentNetworkId: number, desiredNetworkId: number, } loadingClaimButton(false); invalidateButton.disabled = true; - switchNetwork(web3provider, desiredNetworkId); + switchNetwork(web3provider, desiredNetworkId).catch((error) => { + console.error(error); + toaster.create("error", `Please switch to the ${networkName} network to claim this reward.`); + }); } } @@ -70,9 +76,10 @@ export async function switchNetwork(provider: ethers.providers.Web3Provider, net try { await provider.send("wallet_switchEthereumChain", [{ chainId: "0x" + networkId.toString(16) }]); return true; - } catch (error: any) { + } catch (error: unknown) { // Add network if it doesn't exist. - if (error.code == 4902) { + const code = (error as { code: number }).code; + if (code == 4902) { return await addNetwork(provider, networkId); } return false; @@ -91,7 +98,7 @@ export async function addNetwork(provider: ethers.providers.Web3Provider, networ }, ]); return true; - } catch (error: any) { + } catch (error: unknown) { return false; } } From c027d927caaed894c173b23943958505b343185a Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 19:02:59 +0000 Subject: [PATCH 73/85] chore: erc721Permits.ts lint --- .../render-transaction/render-transaction.ts | 4 ++-- .../rewards/render-transaction/tx-type.ts | 2 +- static/scripts/rewards/web3/erc721-permit.ts | 19 ++++++++++++------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/static/scripts/rewards/render-transaction/render-transaction.ts b/static/scripts/rewards/render-transaction/render-transaction.ts index b358931e..c08594c1 100644 --- a/static/scripts/rewards/render-transaction/render-transaction.ts +++ b/static/scripts/rewards/render-transaction/render-transaction.ts @@ -10,7 +10,7 @@ import { insertErc20PermitTableData, insertErc721PermitTableData } from "./inser import { renderEnsName } from "./render-ens-name"; import { renderNftSymbol, renderTokenSymbol } from "./render-token-symbol"; import { setClaimMessage } from "./set-claim-message"; -import { ClaimTx } from "./tx-type"; +import { claimTxT } from "./tx-type"; import { removeAllEventListeners } from "./utils"; export async function init() { @@ -27,7 +27,7 @@ export async function init() { } try { - const claimTxs = Value.Decode(Type.Array(ClaimTx), JSON.parse(atob(base64encodedTxData))); + const claimTxs = Value.Decode(Type.Array(claimTxT), JSON.parse(atob(base64encodedTxData))); app.claimTxs = claimTxs; } catch (error) { console.error(error); diff --git a/static/scripts/rewards/render-transaction/tx-type.ts b/static/scripts/rewards/render-transaction/tx-type.ts index 54a0332a..8bfff130 100644 --- a/static/scripts/rewards/render-transaction/tx-type.ts +++ b/static/scripts/rewards/render-transaction/tx-type.ts @@ -56,7 +56,7 @@ const erc721Permit = T.Object({ GITHUB_USERNAME: T.String(), GITHUB_CONTRIBUTION_TYPE: T.String(), }), - nfaddressT: addressT, + nftaddress: addressT, networkId: networkIdT, signature: signatureT, }); diff --git a/static/scripts/rewards/web3/erc721-permit.ts b/static/scripts/rewards/web3/erc721-permit.ts index 77d39090..fce91c14 100644 --- a/static/scripts/rewards/web3/erc721-permit.ts +++ b/static/scripts/rewards/web3/erc721-permit.ts @@ -26,8 +26,8 @@ export function claimErc721PermitHandler(permit: Erc721Permit) { return; } - const reedemed = await isNonceRedeemed(permit); - if (reedemed) { + const isReedemed = await isNonceRedeemed(permit); + if (isReedemed) { toaster.create("error", `This NFT has already been redeemed.`); resetClaimButton(); return; @@ -45,11 +45,16 @@ export function claimErc721PermitHandler(permit: Erc721Permit) { claimButton.element.removeEventListener("click", claimButtonHandler); - renderTransaction(true); - } catch (error: any) { - console.error(error); - errorToast(error, error.message ?? error); - resetClaimButton(); + renderTransaction(true).catch((error) => { + console.error(error); + toaster.create("error", `Error rendering transaction: ${error.message}`); + }); + } catch (error: unknown) { + if (error instanceof Error) { + console.error(error); + errorToast(error, error.message ?? error); + resetClaimButton(); + } } }; } From 576f706941c853c69036cddd732d422c9ff5a623 Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 19:08:10 +0000 Subject: [PATCH 74/85] chore: sonar only left to do --- static/scripts/onboarding/onboarding.ts | 73 ++++++++++++++----------- 1 file changed, 40 insertions(+), 33 deletions(-) diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index 9e67efee..94437cb9 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -245,7 +245,6 @@ async function sodiumEncryptedSeal(publicKey: string, secret: string) { } } -// @TODO = Sonar 27/15 async function setConfig() { try { toggleLoader("start"); @@ -255,38 +254,7 @@ async function setConfig() { username: orgName.value, }); if (userInfo.type === "Organization") { - let repositoryId: number | null = null; - try { - const { data: repositoryInfo } = await octokit.rest.repos.get({ - owner: orgName.value, - repo: REPO_NAME, - }); - repositoryId = repositoryInfo.id; - } catch (error) { - if (!(error instanceof Error)) { - return console.error(error); - } - - console.error(error.message); - try { - const { data: repoRes } = await octokit.rest.repos.createInOrg({ - org: orgName.value, - name: REPO_NAME, - auto_init: true, - private: true, - visibility: "private", - has_downloads: true, - }); - repositoryId = repoRes.id; - } catch (error) { - if (!(error instanceof Error)) { - return console.error(error); - } - console.error(error.message); - singleToggle("error", `Error: Repo initialization failed, try again later.`); - return; - } - } + const repositoryId = await getRepoID(octokit, orgName.value, REPO_NAME); const { data: appInstallations } = await octokit.rest.orgs.listAppInstallations({ org: orgName.value, @@ -351,6 +319,45 @@ async function setConfig() { } } +async function getRepoID(octokit: Octokit, orgName: string, repoName: string): Promise { + let repositoryId: number | null = null; + + try { + const { data: repositoryInfo } = await octokit.rest.repos.get({ + owner: orgName, + repo: repoName, + }); + repositoryId = repositoryInfo.id; + } catch (error) { + if (!(error instanceof Error)) { + console.error(error); + return null; + } + + console.error(error.message); + try { + const { data: repoRes } = await octokit.rest.repos.createInOrg({ + org: orgName, + name: repoName, + auto_init: true, + private: true, + visibility: "private", + has_downloads: true, + }); + repositoryId = repoRes.id; + } catch (error) { + if (!(error instanceof Error)) { + console.error(error); + return null; + } + console.error(error.message); + singleToggle("error", `Error: Repo initialization failed, try again later.`); + return null; + } + } + return repositoryId; +} + function setInputListeners() { const inputs = document.querySelectorAll("input") as NodeListOf; From 7b3a763e8b22d1dff47f2b58c901ff40146dda35 Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Sat, 17 Feb 2024 20:51:41 +0000 Subject: [PATCH 75/85] chore: function splitting lint passing --- .gitignore | 2 +- static/scripts/audit-report/audit.ts | 396 ++++++++++-------- static/scripts/onboarding/onboarding.ts | 108 +++-- .../rewards/render-transaction/tx-type.ts | 2 +- 4 files changed, 284 insertions(+), 224 deletions(-) diff --git a/.gitignore b/.gitignore index 44e98ac6..d01f79ae 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,4 @@ commit.txt # yarn2 .pnp.cjs .pnp.loader.mjs -static/dist +static/dist \ No newline at end of file diff --git a/static/scripts/audit-report/audit.ts b/static/scripts/audit-report/audit.ts index 39de0b96..a7305f35 100644 --- a/static/scripts/audit-report/audit.ts +++ b/static/scripts/audit-report/audit.ts @@ -34,6 +34,8 @@ import { getTxInfo } from "./utils/getTransaction"; const rateOctokit = Octokit.plugin(throttling); +let octokit: Octokit; + let BOT_WALLET_ADDRESS = ""; let REPOSITORY_URL = ""; let GITHUB_PAT = ""; @@ -53,8 +55,10 @@ let isCache = true; let isComment = true; let commentPageNumber = 1; -type ListForRepoData = ReturnType; -const issueList: ListForRepoData[] = []; +type ListForRepoDataItem = Awaited>["data"][0]; +type ListCommentsDataItem = Awaited>["data"][0]; + +const issueList: ListForRepoDataItem[] = []; const GIT_INTERVAL = 100; let isGit = true; @@ -275,7 +279,7 @@ class SmartQueue { } } } -type QueueItem = { hash: string; chain: string }; +type QueueItem = ChainScanResult; type Queue = QueueItem extends string ? string[] : QueueItem[]; class QueueSet { @@ -299,7 +303,7 @@ class QueueSet { if (v) this._set.delete(v); } - read(): NonNullable { + read(): ChainScanResult { return this._queue[0]; } @@ -311,7 +315,6 @@ class QueueSet { const updateQueue = new SmartQueue(); const rpcQueue = new QueueSet(); -// @TODO - Sonar 83/15 async function commentFetcher() { if (isComment) { const commentIntervalID = setInterval(async () => { @@ -329,7 +332,9 @@ async function commentFetcher() { }, }, }); + const [owner, repo] = parseRepoUrl(issueList[0].html_url); + const { data } = await octokit.rest.issues.listComments({ owner, repo, @@ -337,85 +342,8 @@ async function commentFetcher() { per_page: offset, page: commentPageNumber, }); - if (data.length === 0) { - commentPageNumber = 1; - await issueList.shift(); - if (issueList.length > 0) { - await commentFetcher(); - } else { - isComment = false; - finishedQueue.mutate("isComment", true); - } - } else { - let isFound = false; - for (const comment of data) { - if (comment.user && comment.user.node_id === botNodeId && comment.body) { - const match = comment.body.match(urlRegex); - if (match && isValidUrl(match[1])) { - const url = new URL(match[1]); - const params = new URLSearchParams(url.search); - const base64Payload = params.get("claim"); - const network = getCurrency(comment.body); // Might change it to `const claimNetwork = params.get("network");` later because previous permits are missing network query - if (base64Payload) { - const { - owner: ownerAddress, - signature, - permit: { - deadline, - nonce, - permitted: { amount, token }, - }, - transferDetails: { to }, - } = JSON.parse(window.atob(base64Payload)) as TxData; - updateQueue.add(signature, { - k: signature, - t: "git", - c: { - nonce, - owner: ownerAddress, - token, - amount, - to, - deadline, - signature, - }, - s: { - git: { - issue_title: issueList[0].title, - issue_number: issueList[0].number, - owner, - repo, - bounty_hunter: { - name: issueList[0].assignee ? issueList[0].assignee.login : issueList[0].assignees[0]?.login, - url: issueList[0].assignee ? issueList[0].assignee.html_url : issueList[0].assignees[0]?.html_url, - }, - }, - ether: undefined, - network: network as string, - }, - }); - isFound = true; - } - } else { - console.log("URL not found, skipping"); - } - } - } - - if (isFound) { - commentPageNumber = 1; - await issueList.shift(); - } else { - commentPageNumber++; - } - - if (issueList.length > 0) { - await commentFetcher(); - } else { - isComment = false; - finishedQueue.mutate("isComment", true); - } - } + + await fetchComment(owner, repo, data); } else { isComment = false; finishedQueue.mutate("isComment", true); @@ -423,7 +351,7 @@ async function commentFetcher() { } catch (error) { console.error(error); finishedQueue.raise(); - await issueList.shift(); + issueList.shift(); if (issueList.length > 0) { await commentFetcher(); } else { @@ -434,6 +362,108 @@ async function commentFetcher() { }, GIT_INTERVAL); } } + +async function fetchComment(owner: string, repo: string, data: ListCommentsDataItem[]) { + let isFound = false; + if (data.length === 0) { + commentPageNumber = 1; + issueList.shift(); + if (issueList.length > 0) { + await commentFetcher(); + } else { + isComment = false; + finishedQueue.mutate("isComment", true); + } + } else { + isFound = await processComments(owner, repo, data); + + if (isFound) { + commentPageNumber = 1; + issueList.shift(); + } else { + commentPageNumber++; + } + + if (issueList.length > 0) { + commentFetcher().catch((error) => console.error(error)); + } else { + isComment = false; + finishedQueue.mutate("isComment", true); + } + } +} + +async function processComments(owner: string, repo: string, comments: ListCommentsDataItem[]) { + let isFound = false; + + for (const comment of comments) { + if (comment.user && comment.user.node_id === botNodeId && comment.body) { + isFound = await processComment(owner, repo, comment); + if (isFound) { + break; + } + } + } + return isFound; +} + +async function processComment(owner: string, repo: string, comment: ListCommentsDataItem) { + let isFound = false; + + if (!comment.body) return isFound; + + const match = comment.body.match(urlRegex); + if (match && isValidUrl(match[1])) { + const params = new URLSearchParams(new URL(match[1]).search); + const base64Payload = params.get("claim"); + const network = getCurrency(comment.body); // Might change it to `const claimNetwork = params.get("network");` later because previous permits are missing network query + if (base64Payload) { + const { + owner: ownerAddress, + signature, + permit: { + deadline, + nonce, + permitted: { amount, token }, + }, + transferDetails: { to }, + } = JSON.parse(window.atob(base64Payload)) as TxData; + updateQueue.add(signature, { + k: signature, + t: "git", + c: { + nonce, + owner: ownerAddress, + token, + amount, + to, + deadline, + signature, + }, + s: { + git: { + issue_title: issueList[0].title, + issue_number: issueList[0].number, + owner, + repo, + bounty_hunter: { + name: issueList[0].assignee ? issueList[0].assignee.login : issueList[0].assignees?.[0].login || "", + url: issueList[0].assignee ? issueList[0].assignee.html_url : issueList[0].assignees?.[0].html_url || "", + }, + }, + ether: undefined, + network: network as string, + }, + }); + isFound = true; + } + } else { + console.log("URL not found, skipping"); + } + + return isFound; +} + async function gitFetcher(repoUrls: GitHubUrlParts[]) { if (isGit) { try { @@ -455,9 +485,8 @@ async function gitFetcher(repoUrls: GitHubUrlParts[]) { } } -// @TODO - Sonar 24/15 async function getIssuesForRepo(owner: string, repo: string) { - const issueList: ListForRepoData[] = []; + const issueList: ListForRepoDataItem[] = []; const octokit = new rateOctokit({ auth: GITHUB_PAT, @@ -471,7 +500,7 @@ async function getIssuesForRepo(owner: string, repo: string) { }, }); - let isIEF = true; + const isIEF = true; while (isIEF) { try { @@ -486,26 +515,11 @@ async function getIssuesForRepo(owner: string, repo: string) { if (data.length === 0) break; const issues = data.filter((issue) => !issue.pull_request && issue.comments > 0); - if (issues.length > 0) { - if (!lastGitID) { - lastGitID = issues[0].number; - } - for (const i of issues) { - if (i.number !== gitID) { - issueList.push(i); - } else { - isIEF = false; - break; - } - } + const { isIEF: isIEF2, issueList: processed } = await processIssues(isIEF, issueList, issues); - if (isIEF) { - gitPageNumber++; - } else { - break; - } - } else { - isIEF = false; + issueList.push(...processed); + + if (!isIEF2) { break; } } catch (error: unknown) { @@ -517,6 +531,30 @@ async function getIssuesForRepo(owner: string, repo: string) { return issueList; } +async function processIssues(isIEF: boolean, issueList: ListForRepoDataItem[], issues: ListForRepoDataItem[]) { + if (issues.length > 0) { + if (!lastGitID) { + lastGitID = issues[0].number; + } + for (const i of issues) { + if (i.number !== gitID) { + issueList.push(i); + } else { + isIEF = false; + break; + } + } + + if (isIEF) { + gitPageNumber++; + } else { + isIEF = false; + } + } + + return { isIEF, issueList }; +} + async function fetchDataFromChainScanAPI(url: string, chain: string) { try { const { data } = await axios.get(url); @@ -527,7 +565,6 @@ async function fetchDataFromChainScanAPI(url: string, chain: string) { } } -// @TODO - Sonar 27/15 async function etherFetcher() { const ethereumURL = `https://api.${ChainScan.Ethereum}/api?module=account&action=tokentx&address=${BOT_WALLET_ADDRESS}&apikey=${getRandomAPIKey( Chain.Ethereum @@ -547,31 +584,7 @@ async function etherFetcher() { ]); const combinedData: ChainScanResult[] = [...ethereumData, ...gnosisData]; - if (combinedData.length > 0) { - if (!lastEtherHash) { - lastEtherHash = combinedData[0].hash; - } - let isIEF = true; - for (const e of combinedData) { - if (e.hash !== etherHash) { - rpcQueue.add({ hash: e.hash, chain: e.chain }); - } else { - isIEF = false; - break; - } - } - - if (isIEF) { - etherPageNumber++; - await etherFetcher(); - } else { - isEther = false; - finishedQueue.mutate("isEther", true); - } - } else { - isEther = false; - finishedQueue.mutate("isEther", true); - } + await handleCombinedData(combinedData); } catch (error: unknown) { console.error(error); finishedQueue.raise(); @@ -582,55 +595,41 @@ async function etherFetcher() { } } -// @TODO: Sonar 22/15 +async function handleCombinedData(combinedData: ChainScanResult[]) { + if (combinedData.length > 0) { + if (!lastEtherHash) { + lastEtherHash = combinedData[0].hash; + } + let isIEF = true; + for (const e of combinedData) { + if (e.hash !== etherHash) { + rpcQueue.add({ hash: e.hash, chain: e.chain }); + } else { + isIEF = false; + break; + } + } + + if (isIEF) { + etherPageNumber++; + await etherFetcher(); + } else { + isEther = false; + finishedQueue.mutate("isEther", true); + } + } else { + isEther = false; + finishedQueue.mutate("isEther", true); + } +} + async function rpcFetcher() { if (isRPC) { const rpcIntervalID = setInterval(async () => { clearInterval(rpcIntervalID); try { const data = rpcQueue.read(); - if (data) { - const { hash, chain } = data as { hash: string; chain: string }; - - const providerUrl = await getOptimalRPC(chain as Chain); - const txInfo = await getTxInfo(hash, providerUrl, chain as Chain); - - if (txInfo.input.startsWith(permitTransferFromSelector)) { - const decodedFunctionData = permit2Interface.decodeFunctionData(permitFunctionName, txInfo.input); - const { - permit: { - permitted: { token, amount }, - nonce, - deadline, - }, - transferDetails: { to }, - owner, - signature, - } = decodedFunctionData as unknown as TxData; - updateQueue.add(signature, { - k: signature, - t: "ether", - c: { - nonce, - owner, - token, - amount, - to, - deadline, - signature, - }, - s: { - ether: { - txHash: txInfo.hash, - timestamp: parseInt(txInfo.timestamp, 16), - block_number: parseInt(txInfo.blockNumber, 16), - }, - git: undefined, - network: chain as string, - }, - }); - } - } + await handleRPCData(data); rpcQueue.remove(); if (isEther || !rpcQueue.isEmpty()) { await rpcFetcher(); @@ -653,6 +652,51 @@ async function rpcFetcher() { } } +async function handleRPCData(data: ChainScanResult) { + if (data) { + const { hash, chain } = data as { hash: string; chain: string }; + + const providerUrl = await getOptimalRPC(chain as Chain); + const txInfo = await getTxInfo(hash, providerUrl, chain as Chain); + + if (txInfo.input.startsWith(permitTransferFromSelector)) { + const decodedFunctionData = permit2Interface.decodeFunctionData(permitFunctionName, txInfo.input); + const { + permit: { + permitted: { token, amount }, + nonce, + deadline, + }, + transferDetails: { to }, + owner, + signature, + } = decodedFunctionData as unknown as TxData; + updateQueue.add(signature, { + k: signature, + t: "ether", + c: { + nonce, + owner, + token, + amount, + to, + deadline, + signature, + }, + s: { + ether: { + txHash: txInfo.hash, + timestamp: parseInt(txInfo.timestamp, 16), + block_number: parseInt(txInfo.blockNumber, 16), + }, + git: undefined, + network: chain as string, + }, + }); + } + } +} + async function dbInit() { if (isCache) { const storeHash = ethers.utils.keccak256(ethers.utils.toUtf8Bytes(`${REPOSITORY_URL}_${BOT_WALLET_ADDRESS}`)); diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index 94437cb9..250a81d0 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -121,7 +121,8 @@ let defaultConf: Configuration = { }, }; // // a cheaky way to get around the any type that parse returns -export async function parseYAML(data: string): Promise | undefined> { +export async function parseYAML(data: string | undefined): Promise | undefined> { + if (!data) return undefined; try { const parsedData = await YAML.parse(data); if (parsedData !== null) { @@ -262,51 +263,7 @@ async function setConfig() { }); const ins = appInstallations.installations.filter((installation) => installation.app_id === APP_ID); - if (ins.length > 0) { - const installationId = ins[0].id; - const { data: installedRepos } = await octokit.rest.apps.listInstallationReposForAuthenticatedUser({ - installation_id: installationId, - }); - const irs = installedRepos.repositories.filter((installedRepo) => installedRepo.id === repositoryId); - - if (irs.length === 0) { - await octokit.rest.apps.addRepoToInstallationForAuthenticatedUser({ - installation_id: installationId, - repository_id: repositoryId, - }); - } - - const conf = await getConf(); - - const updatedConf = defaultConf; - const parsedConf: Configuration | undefined = await parseYAML(conf); - updatedConf[KEY_NAME] = encryptedValue; - updatedConf[EVM_NETWORK_ID] = Number(chainIdSelect.value); - updatedConf[SAFE_ADDRESS] = safeAddressInput.value; - - // combine configs (default + remote org wide) - const combinedConf = Object.assign(updatedConf, parsedConf); - - const stringified = stringifyYAML(combinedConf); - outKey.value = stringified; - const { updated: isUpdated } = await octokit.createOrUpdateTextFile({ - owner: orgName.value, - repo: REPO_NAME, - path: KEY_PATH, - content: stringified, - message: `${crypto.randomUUID()}`, - }); - - if (isUpdated) { - singleToggle("success", `Success: private key is updated.`); - } else { - singleToggle("success", `Success: private key is upto date.`); - } - - await nextStep(); - } else { - singleToggle("warn", `Warn: Please install the app first.`); - } + await handleInstall(octokit, orgName, repositoryId, ins, chainIdSelect, safeAddressInput); } else { singleToggle("error", `Error: Not an organization.`, orgName); } @@ -319,6 +276,65 @@ async function setConfig() { } } +async function handleInstall( + octokit: Octokit, + orgName: HTMLInputElement, + repositoryId: number | null, + ins: { id: number }[], + chainIdSelect: HTMLSelectElement, + safeAddressInput: HTMLInputElement +) { + if (ins.length > 0) { + const installationId = ins[0].id; + const { data: installedRepos } = await octokit.rest.apps.listInstallationReposForAuthenticatedUser({ + installation_id: installationId, + }); + const irs = installedRepos.repositories.filter((installedRepo) => installedRepo.id === repositoryId); + + if (irs.length === 0) { + if (!repositoryId) { + singleToggle("error", `Error: Repo initialization failed, try again later.`); + return; + } + await octokit.rest.apps.addRepoToInstallationForAuthenticatedUser({ + installation_id: installationId, + repository_id: repositoryId, + }); + } + + const conf = await getConf(); + + const updatedConf = defaultConf; + const parsedConf: Configuration | undefined = await parseYAML(conf); + updatedConf[KEY_NAME] = encryptedValue; + updatedConf[EVM_NETWORK_ID] = Number(chainIdSelect.value); + updatedConf[SAFE_ADDRESS] = safeAddressInput.value; + + // combine configs (default + remote org wide) + const combinedConf = Object.assign(updatedConf, parsedConf); + + const stringified = stringifyYAML(combinedConf); + outKey.value = stringified; + const { status } = await octokit.repos.createOrUpdateFileContents({ + owner: orgName.value, + repo: REPO_NAME, + path: KEY_PATH, + content: stringified, + message: `${crypto.randomUUID()}`, + }); + + if (status === 201 || status === 200) { + singleToggle("success", `Success: private key is updated.`); + } else { + singleToggle("success", `Success: private key is upto date.`); + } + + await nextStep(); + } else { + singleToggle("warn", `Warn: Please install the app first.`); + } +} + async function getRepoID(octokit: Octokit, orgName: string, repoName: string): Promise { let repositoryId: number | null = null; diff --git a/static/scripts/rewards/render-transaction/tx-type.ts b/static/scripts/rewards/render-transaction/tx-type.ts index 8bfff130..23df1341 100644 --- a/static/scripts/rewards/render-transaction/tx-type.ts +++ b/static/scripts/rewards/render-transaction/tx-type.ts @@ -56,7 +56,7 @@ const erc721Permit = T.Object({ GITHUB_USERNAME: T.String(), GITHUB_CONTRIBUTION_TYPE: T.String(), }), - nftaddress: addressT, + nftAddress: addressT, networkId: networkIdT, signature: signatureT, }); From fb372e32a89b4cb10577f44769707f6a5ca8de07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sun, 18 Feb 2024 14:25:22 +0900 Subject: [PATCH 76/85] refactor: fix formatting --- .cspell.json | 33 +- .eslintrc | 98 +--- build/plugins/invert-colors.ts | 4 +- package.json | 8 +- scripts/typescript/generate-permit2-url.ts | 4 +- static/audit.html | 2 +- static/index.html | 2 +- static/keygen.html | 2 +- static/onboarding.html | 2 +- static/scripts/audit-report/constants.ts | 1 + static/scripts/audit-report/helpers.ts | 4 +- static/scripts/audit-report/types/audit.d.ts | 14 +- static/scripts/onboarding/onboarding.ts | 4 +- static/scripts/rewards/abis/permit2Abi.ts | 1 + static/scripts/rewards/cirip/fetch-ens.ts | 4 +- static/scripts/rewards/cirip/query-graph.ts | 2 +- .../render-transaction/render-token-symbol.ts | 2 +- static/scripts/rewards/the-grid.ts | 18 + static/scripts/rewards/web3/erc20-permit.ts | 4 +- static/scripts/rewards/web3/erc721-permit.ts | 4 +- static/scripts/rewards/web3/wallet.ts | 4 +- static/styles/fa.css | 40 +- static/styles/proxima.css | 20 +- static/styles/rewards/pay.css | 13 +- tsconfig.json | 4 +- yarn.lock | 506 +++++++----------- 26 files changed, 355 insertions(+), 445 deletions(-) diff --git a/.cspell.json b/.cspell.json index dfd6093e..220cabe4 100644 --- a/.cspell.json +++ b/.cspell.json @@ -4,8 +4,37 @@ "ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log"], "useGitignore": true, "language": "en", - "words": ["dataurl", "devpool", "outdir", "servedir"], - "dictionaries": ["typescript", "node", "software-terms"], + "words": [ + "binkey", + "binsec", + "cirip", + "dataurl", + "devpool", + "ethersproject", + "fract", + "gnosisscan", + "godb", + "greyscale", + "IERC", + "keccak", + "keypair", + "libsodium", + "Numberish", + "outdir", + "Rpcs", + "scalarmult", + "servedir", + "sonarjs", + "typebox", + "TYPEHASH", + "ubiquibot", + "UBIQUIBOT", + "URLSAFE", + "WXDAI", + "XDAI", + "xmark" + ], + "dictionaries": ["typescript", "node", "software-terms", "html"], "import": ["@cspell/dict-typescript/cspell-ext.json", "@cspell/dict-node/cspell-ext.json", "@cspell/dict-software-terms"], "ignoreRegExpList": ["[0-9a-fA-F]{6}"] } diff --git a/.eslintrc b/.eslintrc index edd1e6fe..22340c8a 100644 --- a/.eslintrc +++ b/.eslintrc @@ -2,22 +2,11 @@ "root": true, "parser": "@typescript-eslint/parser", "parserOptions": { - "project": [ - "./tsconfig.json" - ] + "project": ["./tsconfig.json"] }, - "plugins": [ - "@typescript-eslint", - "sonarjs" - ], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:sonarjs/recommended" - ], - "ignorePatterns": [ - "**/*.js" - ], + "plugins": ["@typescript-eslint", "sonarjs"], + "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:sonarjs/recommended"], + "ignorePatterns": ["**/*.js"], "rules": { "prefer-arrow-callback": [ "warn", @@ -36,13 +25,8 @@ "@typescript-eslint/no-non-null-assertion": "error", "constructor-super": "error", "no-invalid-this": "off", - "@typescript-eslint/no-invalid-this": [ - "error" - ], - "no-restricted-syntax": [ - "error", - "ForInStatement" - ], + "@typescript-eslint/no-invalid-this": ["error"], + "no-restricted-syntax": ["error", "ForInStatement"], "use-isnan": "error", "@typescript-eslint/no-unused-vars": [ "error", @@ -67,9 +51,7 @@ "error", { "selector": "interface", - "format": [ - "PascalCase" - ], + "format": ["PascalCase"], "custom": { "regex": "^I[A-Z]", "match": false @@ -77,86 +59,50 @@ }, { "selector": "memberLike", - "modifiers": [ - "private" - ], - "format": [ - "camelCase" - ], + "modifiers": ["private"], + "format": ["camelCase"], "leadingUnderscore": "require" }, { "selector": "typeLike", - "format": [ - "PascalCase" - ] + "format": ["PascalCase"] }, { "selector": "typeParameter", - "format": [ - "PascalCase" - ], - "prefix": [ - "T" - ] + "format": ["PascalCase"], + "prefix": ["T"] }, { "selector": "variable", - "format": [ - "camelCase", - "UPPER_CASE" - ], + "format": ["camelCase", "UPPER_CASE"], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, { "selector": "variable", - "format": [ - "camelCase" - ], + "format": ["camelCase"], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, { "selector": "variable", - "modifiers": [ - "destructured" - ], + "modifiers": ["destructured"], "format": null }, { "selector": "variable", - "types": [ - "boolean" - ], - "format": [ - "PascalCase" - ], - "prefix": [ - "is", - "should", - "has", - "can", - "did", - "will", - "does" - ] + "types": ["boolean"], + "format": ["PascalCase"], + "prefix": ["is", "should", "has", "can", "did", "will", "does"] }, { "selector": "variableLike", - "format": [ - "camelCase" - ] + "format": ["camelCase"] }, { - "selector": [ - "function", - "variable" - ], - "format": [ - "camelCase" - ] + "selector": ["function", "variable"], + "format": ["camelCase"] } ] } -} \ No newline at end of file +} diff --git a/build/plugins/invert-colors.ts b/build/plugins/invert-colors.ts index 9270c27e..88af8b76 100644 --- a/build/plugins/invert-colors.ts +++ b/build/plugins/invert-colors.ts @@ -5,10 +5,10 @@ import path, { basename, dirname } from "path"; export const invertColors: esbuild.Plugin = { name: "invert-colors", setup(build) { - build.onEnd(async result => { + build.onEnd(async (result) => { console.log(result); }); - build.onLoad({ filter: /\.css$/ }, async args => { + build.onLoad({ filter: /\.css$/ }, async (args) => { const contents = await fs.promises.readFile(args.path, "utf8"); const updatedContents = contents.replace(/prefers-color-scheme: dark/g, "prefers-color-scheme: light"); diff --git a/package.json b/package.json index 77644075..1e5b30a6 100644 --- a/package.json +++ b/package.json @@ -37,19 +37,14 @@ "@octokit/rest": "^19.0.7", "@sinclair/typebox": "^0.31.28", "@types/libsodium-wrappers": "^0.7.10", - "@types/node": "^18.15.11", "@uniswap/permit2-sdk": "^1.2.0", "axios": "^1.3.5", "dotenv": "^16.0.3", - "esbuild": "^0.17.15", "ethers": "^5.7.2", "godb": "^0.6.2", "libsodium-wrappers": "^0.7.11", "npm-run-all": "^4.1.5", - "prettier": "^2.8.7", "retry-axios": "^3.0.0", - "tsx": "^3.12.6", - "typescript": "^5.1.6", "yaml": "^2.2.2" }, "devDependencies": { @@ -62,6 +57,7 @@ "@typescript-eslint/eslint-plugin": "^6.13.1", "@typescript-eslint/parser": "^6.13.1", "cspell": "^8.3.2", + "cspell-dict-html": "^1.2.5", "esbuild": "^0.19.8", "eslint": "^8.54.0", "eslint-config-prettier": "^9.0.0", @@ -89,4 +85,4 @@ "@commitlint/config-conventional" ] } -} \ No newline at end of file +} diff --git a/scripts/typescript/generate-permit2-url.ts b/scripts/typescript/generate-permit2-url.ts index f686585a..7abf435d 100644 --- a/scripts/typescript/generate-permit2-url.ts +++ b/scripts/typescript/generate-permit2-url.ts @@ -7,7 +7,7 @@ dotenv.config(); const PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3"; // same on all chains -generate().catch(error => { +generate().catch((error) => { console.error(error); verifyEnvironmentVariables(); process.exitCode = 1; @@ -34,7 +34,7 @@ async function generate() { const { domain, types, values } = SignatureTransfer.getPermitData( permitTransferFromData, PERMIT2_ADDRESS, - process.env.CHAIN_ID ? Number(process.env.CHAIN_ID) : 1, + process.env.CHAIN_ID ? Number(process.env.CHAIN_ID) : 1 ); const signature = await myWallet._signTypedData(domain, types, values); const txData = [ diff --git a/static/audit.html b/static/audit.html index 192f814e..bf505dc1 100644 --- a/static/audit.html +++ b/static/audit.html @@ -1,4 +1,4 @@ - + Audit report diff --git a/static/index.html b/static/index.html index 6fefad1c..d839f159 100644 --- a/static/index.html +++ b/static/index.html @@ -1,4 +1,4 @@ - + diff --git a/static/keygen.html b/static/keygen.html index 95a66745..331f075d 100644 --- a/static/keygen.html +++ b/static/keygen.html @@ -1,4 +1,4 @@ - + Key Generator diff --git a/static/onboarding.html b/static/onboarding.html index 9ab078a9..ad1990d4 100644 --- a/static/onboarding.html +++ b/static/onboarding.html @@ -1,4 +1,4 @@ - + Onboarding diff --git a/static/scripts/audit-report/constants.ts b/static/scripts/audit-report/constants.ts index 4938ff66..b8282685 100644 --- a/static/scripts/audit-report/constants.ts +++ b/static/scripts/audit-report/constants.ts @@ -18,6 +18,7 @@ export const NULL_HASH = "0x0000000000000000000000000000000000000000"; export const DATABASE_NAME = "file_cache"; // hardcoded values +// cspell:ignore 35G6PRE7U54QWZMXYGUSI3YWU27TP2TTBK R75N38X1Y5KP8CRPPDWBRT3EM5VDJ73MUK export const API_KEYS = { [Chain.Ethereum]: ["35G6PRE7U54QWZMXYGUSI3YWU27TP2TTBK"], [Chain.Gnosis]: ["R75N38X1Y5KP8CRPPDWBRT3EM5VDJ73MUK"], diff --git a/static/scripts/audit-report/helpers.ts b/static/scripts/audit-report/helpers.ts index 7aa98b45..797ae00a 100644 --- a/static/scripts/audit-report/helpers.ts +++ b/static/scripts/audit-report/helpers.ts @@ -61,8 +61,8 @@ export function populateTable( #${issueNumber} - ${issueTitle} ${bountyHunter?.name} ${ethers.BigNumber.isBigNumber(amount) ? ethers.utils.formatEther(amount) : amount} ${ - network === Chain.Ethereum ? "DAI" : "WXDAI" - } + network === Chain.Ethereum ? "DAI" : "WXDAI" + } ${shortenTransactionHash(txHash)} `; diff --git a/static/scripts/audit-report/types/audit.d.ts b/static/scripts/audit-report/types/audit.d.ts index f4cf5bd8..86c3b64c 100644 --- a/static/scripts/audit-report/types/audit.d.ts +++ b/static/scripts/audit-report/types/audit.d.ts @@ -119,19 +119,7 @@ interface TableIndex { type: TableIndexTypes; multiEntry?: boolean; unique?: boolean; - default?: NonNullable extends string - ? string - : NonNullable extends number - ? number - : NonNullable extends boolean - ? boolean - : NonNullable extends Date - ? Date - : NonNullable extends object - ? object - : NonNullable extends Array - ? Array - : never; + default?: NonNullable; ref?: string; } interface GoDBTableSchema { diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index 250a81d0..c9754db7 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -15,6 +15,7 @@ const outKey = document.getElementById("outKey") as HTMLInputElement; const githubPAT = document.getElementById("githubPat") as HTMLInputElement; const orgName = document.getElementById("orgName") as HTMLInputElement; const walletPrivateKey = document.getElementById("walletPrivateKey") as HTMLInputElement; +// cspell: word ress // weird cspell bug seperating add and ress const safeAddressInput = document.getElementById("safeAddress") as HTMLInputElement; const setBtn = document.getElementById("setBtn") as HTMLButtonElement; const allowanceInput = document.getElementById("allowance") as HTMLInputElement; @@ -29,6 +30,7 @@ const KEY_PATH = ".github/ubiquibot-config.yml"; const DEFAULT_PATH = "ubiquibot-config-default.json"; const KEY_NAME = "private-key-encrypted"; const KEY_PREFIX = "HSK_"; +// cspell:disable-next-line const X25519_KEY = "5ghIlfGjz_ChcYlBDOG7dzmgAgBPuTahpvTMBipSH00"; const SAFE_ADDRESS = "safe-address"; const EVM_NETWORK_ID = "evm-network-id"; @@ -120,7 +122,7 @@ let defaultConf: Configuration = { organization: true, }, }; -// // a cheaky way to get around the any type that parse returns +// // a cheeky way to get around the any type that parse returns export async function parseYAML(data: string | undefined): Promise | undefined> { if (!data) return undefined; try { diff --git a/static/scripts/rewards/abis/permit2Abi.ts b/static/scripts/rewards/abis/permit2Abi.ts index 3714e250..5d170507 100644 --- a/static/scripts/rewards/abis/permit2Abi.ts +++ b/static/scripts/rewards/abis/permit2Abi.ts @@ -1,3 +1,4 @@ +// cspell: word lockdown export const permit2Abi = [ { inputs: [{ internalType: "uint256", name: "deadline", type: "uint256" }], name: "AllowanceExpired", type: "error" }, { inputs: [], name: "ExcessiveInvalidation", type: "error" }, diff --git a/static/scripts/rewards/cirip/fetch-ens.ts b/static/scripts/rewards/cirip/fetch-ens.ts index 6a30d000..ba3ba46c 100644 --- a/static/scripts/rewards/cirip/fetch-ens.ts +++ b/static/scripts/rewards/cirip/fetch-ens.ts @@ -1,6 +1,6 @@ import { queryGraph } from "./query-graph"; -export async function fetchEns(address) { +export async function fetchEns(address: string) { const endpoint = "https://api.thegraph.com/subgraphs/name/ensdomains/ens"; const query = `{ domains(where:{owner:"${address.toLowerCase()}"}) { @@ -8,5 +8,5 @@ export async function fetchEns(address) { } }`; const res = await queryGraph(endpoint, query); - return res.data.domains.map(d => d.name); + return res.data.domains.map((domain: { name: string }) => domain.name); } diff --git a/static/scripts/rewards/cirip/query-graph.ts b/static/scripts/rewards/cirip/query-graph.ts index e485b54a..8df99d5d 100644 --- a/static/scripts/rewards/cirip/query-graph.ts +++ b/static/scripts/rewards/cirip/query-graph.ts @@ -1,4 +1,4 @@ -export async function queryGraph(endpoint, query) { +export async function queryGraph(endpoint: string | URL | Request, query: string) { const response = await fetch(endpoint, { method: "POST", headers: { diff --git a/static/scripts/rewards/render-transaction/render-token-symbol.ts b/static/scripts/rewards/render-transaction/render-token-symbol.ts index f92fbe49..7461b8d6 100644 --- a/static/scripts/rewards/render-transaction/render-token-symbol.ts +++ b/static/scripts/rewards/render-transaction/render-token-symbol.ts @@ -24,7 +24,7 @@ export async function renderTokenSymbol({ table.setAttribute(`data-contract-loaded`, "true"); requestedAmountElement.innerHTML = `${utils.formatUnits( amount, - decimals, + decimals )} ${symbol}`; } diff --git a/static/scripts/rewards/the-grid.ts b/static/scripts/rewards/the-grid.ts index 063cb26e..bd9832eb 100644 --- a/static/scripts/rewards/the-grid.ts +++ b/static/scripts/rewards/the-grid.ts @@ -21,6 +21,7 @@ export function grid(node = document.body) { } `; + // cspell:ignore mediump const fragmentShaderSource = ` precision mediump float; @@ -53,6 +54,10 @@ export function grid(node = document.body) { // Define shader creation function function createShader(gl: WebGLRenderingContext, type: number, source: string) { const shader = gl.createShader(type); + if (!shader) { + console.error("An error occurred creating the shaders"); + return null; + } gl.shaderSource(shader, source); gl.compileShader(shader); if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { @@ -65,10 +70,23 @@ export function grid(node = document.body) { // Create vertex and fragment shaders const vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexShaderSource); + if (!vertexShader) { + console.error("An error occurred creating the vertex shader"); + return; + } const fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentShaderSource); + if (!fragmentShader) { + console.error("An error occurred creating the fragment shader"); + return; + } // Create program, attach shaders, and link const program = gl.createProgram(); + if (!program) { + console.error("An error occurred creating the program"); + return; + } + gl.attachShader(program, vertexShader); gl.attachShader(program, fragmentShader); gl.linkProgram(program); diff --git a/static/scripts/rewards/web3/erc20-permit.ts b/static/scripts/rewards/web3/erc20-permit.ts index 959b9232..b7145345 100644 --- a/static/scripts/rewards/web3/erc20-permit.ts +++ b/static/scripts/rewards/web3/erc20-permit.ts @@ -74,11 +74,11 @@ export async function checkPermitClaimable(permit: Erc20Permit, signer: ethers.p const isAllowed = allowance.gte(permitted); if (!isSolvent) { - toaster.create("error", `Not enough funds on funding wallet to collect this reward. Please let the funder know.`); + toaster.create("error", `Not enough funds on funding wallet to collect this reward. Please let the financier know.`); return false; } if (!isAllowed) { - toaster.create("error", `Not enough allowance on the funding wallet to collect this reward. Please let the funder know.`); + toaster.create("error", `Not enough allowance on the funding wallet to collect this reward. Please let the financier know.`); return false; } diff --git a/static/scripts/rewards/web3/erc721-permit.ts b/static/scripts/rewards/web3/erc721-permit.ts index fce91c14..263647a9 100644 --- a/static/scripts/rewards/web3/erc721-permit.ts +++ b/static/scripts/rewards/web3/erc721-permit.ts @@ -26,8 +26,8 @@ export function claimErc721PermitHandler(permit: Erc721Permit) { return; } - const isReedemed = await isNonceRedeemed(permit); - if (isReedemed) { + const isRedeemed = await isNonceRedeemed(permit); + if (isRedeemed) { toaster.create("error", `This NFT has already been redeemed.`); resetClaimButton(); return; diff --git a/static/scripts/rewards/web3/wallet.ts b/static/scripts/rewards/web3/wallet.ts index 00d775a7..56ce5e73 100644 --- a/static/scripts/rewards/web3/wallet.ts +++ b/static/scripts/rewards/web3/wallet.ts @@ -20,7 +20,6 @@ export async function connectWallet(): Promise { toaster.create("info", "Please connect your wallet to collect this reward."); claimButton.element.disabled = true; } - return null; } return null; } @@ -34,7 +33,8 @@ export async function handleNetwork(desiredNetworkId: number) { invalidateButton.disabled = true; } - const currentNetworkId = parseInt(String(web3provider.network.chainId), 16); + const chainIdHex = String(web3provider.network.chainId); + const currentNetworkId = parseInt(chainIdHex, 16); // watch for network changes window.ethereum.on("chainChanged", (newNetworkId: T | string) => handleIfOnCorrectNetwork(parseInt(newNetworkId as string, 16), desiredNetworkId)); diff --git a/static/styles/fa.css b/static/styles/fa.css index 6b768402..4568cf75 100644 --- a/static/styles/fa.css +++ b/static/styles/fa.css @@ -6786,7 +6786,9 @@ font-style: normal; font-weight: 400; font-display: block; - src: url(./webfonts/fa-brands-400.woff2) format("woff2"), url(./webfonts/fa-brands-400.ttf) format("truetype"); + src: + url(./webfonts/fa-brands-400.woff2) format("woff2"), + url(./webfonts/fa-brands-400.ttf) format("truetype"); } .fa-brands, @@ -8698,7 +8700,9 @@ font-style: normal; font-weight: 400; font-display: block; - src: url(./webfonts/fa-regular-400.woff2) format("woff2"), url(./webfonts/fa-regular-400.ttf) format("truetype"); + src: + url(./webfonts/fa-regular-400.woff2) format("woff2"), + url(./webfonts/fa-regular-400.ttf) format("truetype"); } .fa-regular, @@ -8717,7 +8721,9 @@ font-style: normal; font-weight: 900; font-display: block; - src: url(./webfonts/fa-solid-900.woff2) format("woff2"), url(./webfonts/fa-solid-900.ttf) format("truetype"); + src: + url(./webfonts/fa-solid-900.woff2) format("woff2"), + url(./webfonts/fa-solid-900.ttf) format("truetype"); } .fa-solid, @@ -8729,39 +8735,51 @@ font-family: "Font Awesome 5 Brands"; font-display: block; font-weight: 400; - src: url(./webfonts/fa-brands-400.woff2) format("woff2"), url(./webfonts/fa-brands-400.ttf) format("truetype"); + src: + url(./webfonts/fa-brands-400.woff2) format("woff2"), + url(./webfonts/fa-brands-400.ttf) format("truetype"); } @font-face { font-family: "Font Awesome 5 Free"; font-display: block; font-weight: 900; - src: url(./webfonts/fa-solid-900.woff2) format("woff2"), url(./webfonts/fa-solid-900.ttf) format("truetype"); + src: + url(./webfonts/fa-solid-900.woff2) format("woff2"), + url(./webfonts/fa-solid-900.ttf) format("truetype"); } @font-face { font-family: "Font Awesome 5 Free"; font-display: block; font-weight: 400; - src: url(./webfonts/fa-regular-400.woff2) format("woff2"), url(./webfonts/fa-regular-400.ttf) format("truetype"); + src: + url(./webfonts/fa-regular-400.woff2) format("woff2"), + url(./webfonts/fa-regular-400.ttf) format("truetype"); } @font-face { font-family: "FontAwesome"; font-display: block; - src: url(./webfonts/fa-solid-900.woff2) format("woff2"), url(./webfonts/fa-solid-900.ttf) format("truetype"); + src: + url(./webfonts/fa-solid-900.woff2) format("woff2"), + url(./webfonts/fa-solid-900.ttf) format("truetype"); } @font-face { font-family: "FontAwesome"; font-display: block; - src: url(./webfonts/fa-brands-400.woff2) format("woff2"), url(./webfonts/fa-brands-400.ttf) format("truetype"); + src: + url(./webfonts/fa-brands-400.woff2) format("woff2"), + url(./webfonts/fa-brands-400.ttf) format("truetype"); } @font-face { font-family: "FontAwesome"; font-display: block; - src: url(./webfonts/fa-regular-400.woff2) format("woff2"), url(./webfonts/fa-regular-400.ttf) format("truetype"); + src: + url(./webfonts/fa-regular-400.woff2) format("woff2"), + url(./webfonts/fa-regular-400.ttf) format("truetype"); unicode-range: u+f003, u+f006, u+f014, u+f016-f017, u+f01a-f01b, u+f01d, u+f022, u+f03e, u+f044, u+f046, u+f05c-f05d, u+f06e, u+f070, u+f087-f088, u+f08a, u+f094, u+f096-f097, u+f09d, u+f0a0, u+f0a2, u+f0a4-f0a7, u+f0c5, u+f0c7, u+f0e5-f0e6, u+f0eb, u+f0f6-f0f8, u+f10c, u+f114-f115, u+f118-f11a, u+f11c-f11d, u+f133, u+f147, u+f14e, u+f150-f152, u+f185-f186, u+f18e, u+f190-f192, u+f196, u+f1c1-f1c9, u+f1d9, u+f1db, u+f1e3, u+f1ea, u+f1f7, u+f1f9, u+f20a, @@ -8772,7 +8790,9 @@ @font-face { font-family: "FontAwesome"; font-display: block; - src: url(./webfonts/fa-v4compatibility.woff2) format("woff2"), url(./webfonts/fa-v4compatibility.ttf) format("truetype"); + src: + url(./webfonts/fa-v4compatibility.woff2) format("woff2"), + url(./webfonts/fa-v4compatibility.ttf) format("truetype"); unicode-range: u+f041, u+f047, u+f065-f066, u+f07d-f07e, u+f080, u+f08b, u+f08e, u+f090, u+f09a, u+f0ac, u+f0ae, u+f0b2, u+f0d0, u+f0d6, u+f0e4, u+f0ec, u+f10a-f10b, u+f123, u+f13e, u+f148-f149, u+f14c, u+f156, u+f15e, u+f160-f161, u+f163, u+f175-f178, u+f195, u+f1f8, u+f219, u+f27a; } diff --git a/static/styles/proxima.css b/static/styles/proxima.css index 2715698f..123ae363 100644 --- a/static/styles/proxima.css +++ b/static/styles/proxima.css @@ -3,7 +3,9 @@ font-style: normal; font-weight: 100; src: url(./proxima/2B04A9_A_0.eot); - src: url(./proxima/2B04A9_A_0.eot#iefix) format("embedded-opentype"), url(./proxima/2B04A9_A_0.woff) format("woff"), + src: + url(./proxima/2B04A9_A_0.eot#iefix) format("embedded-opentype"), + url(./proxima/2B04A9_A_0.woff) format("woff"), url(./proxima/2B04A9_A_0.ttf) format("truetype"); } @@ -12,7 +14,9 @@ font-style: normal; font-weight: 200; src: url(./proxima/2B04A9_B_0.eot); - src: url(./proxima/2B04A9_B_0.eot#iefix) format("embedded-opentype"), url(./proxima/2B04A9_B_0.woff) format("woff"), + src: + url(./proxima/2B04A9_B_0.eot#iefix) format("embedded-opentype"), + url(./proxima/2B04A9_B_0.woff) format("woff"), url(./proxima/2B04A9_B_0.ttf) format("truetype"); } @@ -21,7 +25,9 @@ font-style: normal; font-weight: 400; src: url(./proxima/2B04A9_E_0.eot); - src: url(./proxima/2B04A9_E_0.eot#iefix) format("embedded-opentype"), url(./proxima/2B04A9_E_0.woff) format("woff"), + src: + url(./proxima/2B04A9_E_0.eot#iefix) format("embedded-opentype"), + url(./proxima/2B04A9_E_0.woff) format("woff"), url(./proxima/2B04A9_E_0.ttf) format("truetype"); } @@ -30,7 +36,9 @@ font-style: italic; font-weight: 400; src: url(./proxima/2B04A9_C_0.eot); - src: url(./proxima/2B04A9_C_0.eot#iefix) format("embedded-opentype"), url(./proxima/2B04A9_C_0.woff) format("woff"), + src: + url(./proxima/2B04A9_C_0.eot#iefix) format("embedded-opentype"), + url(./proxima/2B04A9_C_0.woff) format("woff"), url(./proxima/2B04A9_C_0.ttf) format("truetype"); } @@ -39,6 +47,8 @@ font-style: normal; font-weight: 700; src: url(./proxima/2B04A9_D_0.eot); - src: url(./proxima/2B04A9_D_0.eot#iefix) format("embedded-opentype"), url(./proxima/2B04A9_D_0.woff) format("woff"), + src: + url(./proxima/2B04A9_D_0.eot#iefix) format("embedded-opentype"), + url(./proxima/2B04A9_D_0.woff) format("woff"), url(./proxima/2B04A9_D_0.ttf) format("truetype"); } diff --git a/static/styles/rewards/pay.css b/static/styles/rewards/pay.css index 7289c096..76cf477b 100644 --- a/static/styles/rewards/pay.css +++ b/static/styles/rewards/pay.css @@ -1,6 +1,17 @@ * { -webkit-text-size-adjust: 100%; - font-family: "Ubiquity Nova", FT Base, -apple-system, system-ui, BlinkMacSystemFont, SF Pro Text, Segoe UI, Roboto, Helvetica, Arial, sans-serif; + font-family: + "Ubiquity Nova", + FT Base, + -apple-system, + system-ui, + BlinkMacSystemFont, + SF Pro Text, + Segoe UI, + Roboto, + Helvetica, + Arial, + sans-serif; line-height: 1; padding: 0; margin: 0; diff --git a/tsconfig.json b/tsconfig.json index 7e218583..01640a19 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -36,7 +36,7 @@ // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ + "resolveJsonModule": true /* Enable importing .json files. */, // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ @@ -98,4 +98,4 @@ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */ } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 9848d9b9..e53f031c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -400,6 +400,11 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz#4d86ac18a4a11fdb61dfb6f5929acd768a52564f" integrity sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw== +"@cspell/dict-html@^1.1.9": + version "1.1.9" + resolved "https://registry.yarnpkg.com/@cspell/dict-html/-/dict-html-1.1.9.tgz#e506ca550ffcdad820ba0aa157a48be869f23bf2" + integrity sha512-vvnYia0tyIS5Fdoz+gEQm77MGZZE66kOJjuNpIYyRHCXFAhWdYz3SmkRm6YKJSWSvuO+WBJYTKDvkOxSh3Fx/w== + "@cspell/dict-html@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@cspell/dict-html/-/dict-html-4.0.5.tgz#03a5182148d80e6c25f71339dbb2b7c5b9894ef8" @@ -554,225 +559,120 @@ to-pascal-case "^1.0.0" unescape-js "^1.0.5" -"@esbuild/android-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" - integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== - -"@esbuild/android-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" - integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== - -"@esbuild/android-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" - integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== - -"@esbuild/android-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" - integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== - -"@esbuild/android-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" - integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== - -"@esbuild/android-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" - integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== - -"@esbuild/darwin-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" - integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== - -"@esbuild/darwin-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" - integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== - -"@esbuild/darwin-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" - integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== - -"@esbuild/darwin-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" - integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== - -"@esbuild/freebsd-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" - integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== - -"@esbuild/freebsd-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" - integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== - -"@esbuild/freebsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" - integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== - -"@esbuild/freebsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" - integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== - -"@esbuild/linux-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" - integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== - -"@esbuild/linux-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" - integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== - -"@esbuild/linux-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" - integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== - -"@esbuild/linux-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" - integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== - -"@esbuild/linux-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" - integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== - -"@esbuild/linux-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" - integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== - -"@esbuild/linux-loong64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" - integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== - -"@esbuild/linux-loong64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" - integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== - -"@esbuild/linux-mips64el@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" - integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== - -"@esbuild/linux-mips64el@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" - integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== - -"@esbuild/linux-ppc64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" - integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== - -"@esbuild/linux-ppc64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" - integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== - -"@esbuild/linux-riscv64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" - integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== - -"@esbuild/linux-riscv64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" - integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== - -"@esbuild/linux-s390x@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" - integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== - -"@esbuild/linux-s390x@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" - integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== - -"@esbuild/linux-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" - integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== - -"@esbuild/linux-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" - integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== - -"@esbuild/netbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" - integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== - -"@esbuild/netbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" - integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== - -"@esbuild/openbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" - integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== - -"@esbuild/openbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" - integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== - -"@esbuild/sunos-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" - integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== - -"@esbuild/sunos-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" - integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== - -"@esbuild/win32-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" - integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== - -"@esbuild/win32-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" - integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== - -"@esbuild/win32-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" - integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== - -"@esbuild/win32-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" - integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== - -"@esbuild/win32-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" - integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== - -"@esbuild/win32-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" - integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -1527,10 +1427,10 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== -"@types/node@^18.15.11": - version "18.19.17" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.17.tgz#a581a9fb4b2cfdbc61f008804f4436b2d5c40354" - integrity sha512-SzyGKgwPzuWp2SHhlpXKzCX0pIOfcI4V2eF37nNBJOhwlegQ83omtVQ1XxZpDE06V/d6AQvfQdPfnw0tRC//Ng== +"@types/node@^20.10.0": + version "20.11.19" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.19.tgz#b466de054e9cb5b3831bee38938de64ac7f81195" + integrity sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ== dependencies: undici-types "~5.26.4" @@ -1890,11 +1790,6 @@ brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - builtins@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" @@ -2080,6 +1975,18 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +configstore@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + configstore@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" @@ -2178,6 +2085,14 @@ cspell-config-lib@8.3.2: comment-json "^4.2.3" yaml "^2.3.4" +cspell-dict-html@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/cspell-dict-html/-/cspell-dict-html-1.2.5.tgz#e670859986d7d2ea8feed29875cb8a411ad7c005" + integrity sha512-UgenFUHqMOZCH634DipKVWeSixlLTVJnmDGaPevLQuGPp057ucAb0QwDQlLRAAZh9RDfiBGvotX2hImFVN/l0Q== + dependencies: + "@cspell/dict-html" "^1.1.9" + configstore "^5.0.0" + cspell-dictionary@8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/cspell-dictionary/-/cspell-dictionary-8.3.2.tgz#6627a94501811a143f3b638e0e77f7262335dbd4" @@ -2368,7 +2283,7 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dot-prop@^5.1.0: +dot-prop@^5.1.0, dot-prop@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== @@ -2525,61 +2440,34 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.17.15: - version "0.17.19" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" - integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== - optionalDependencies: - "@esbuild/android-arm" "0.17.19" - "@esbuild/android-arm64" "0.17.19" - "@esbuild/android-x64" "0.17.19" - "@esbuild/darwin-arm64" "0.17.19" - "@esbuild/darwin-x64" "0.17.19" - "@esbuild/freebsd-arm64" "0.17.19" - "@esbuild/freebsd-x64" "0.17.19" - "@esbuild/linux-arm" "0.17.19" - "@esbuild/linux-arm64" "0.17.19" - "@esbuild/linux-ia32" "0.17.19" - "@esbuild/linux-loong64" "0.17.19" - "@esbuild/linux-mips64el" "0.17.19" - "@esbuild/linux-ppc64" "0.17.19" - "@esbuild/linux-riscv64" "0.17.19" - "@esbuild/linux-s390x" "0.17.19" - "@esbuild/linux-x64" "0.17.19" - "@esbuild/netbsd-x64" "0.17.19" - "@esbuild/openbsd-x64" "0.17.19" - "@esbuild/sunos-x64" "0.17.19" - "@esbuild/win32-arm64" "0.17.19" - "@esbuild/win32-ia32" "0.17.19" - "@esbuild/win32-x64" "0.17.19" - -esbuild@~0.18.20: - version "0.18.20" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" - integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== +esbuild@^0.19.8, esbuild@~0.19.10: + version "0.19.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== optionalDependencies: - "@esbuild/android-arm" "0.18.20" - "@esbuild/android-arm64" "0.18.20" - "@esbuild/android-x64" "0.18.20" - "@esbuild/darwin-arm64" "0.18.20" - "@esbuild/darwin-x64" "0.18.20" - "@esbuild/freebsd-arm64" "0.18.20" - "@esbuild/freebsd-x64" "0.18.20" - "@esbuild/linux-arm" "0.18.20" - "@esbuild/linux-arm64" "0.18.20" - "@esbuild/linux-ia32" "0.18.20" - "@esbuild/linux-loong64" "0.18.20" - "@esbuild/linux-mips64el" "0.18.20" - "@esbuild/linux-ppc64" "0.18.20" - "@esbuild/linux-riscv64" "0.18.20" - "@esbuild/linux-s390x" "0.18.20" - "@esbuild/linux-x64" "0.18.20" - "@esbuild/netbsd-x64" "0.18.20" - "@esbuild/openbsd-x64" "0.18.20" - "@esbuild/sunos-x64" "0.18.20" - "@esbuild/win32-arm64" "0.18.20" - "@esbuild/win32-ia32" "0.18.20" - "@esbuild/win32-x64" "0.18.20" + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" escalade@^3.1.1: version "3.1.2" @@ -3850,6 +3738,13 @@ magic-string@^0.16.0: dependencies: vlq "^0.2.1" +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + map-age-cleaner@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -4404,10 +4299,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.8.7: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@^3.1.0: + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== pretty-ms@8.0.0: version "8.0.0" @@ -4671,7 +4566,7 @@ semver@7.6.0, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver dependencies: lru-cache "^6.0.0" -semver@^6.1.0: +semver@^6.0.0, semver@^6.1.0: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -4777,19 +4672,6 @@ slice-ansi@^7.0.0: ansi-styles "^6.2.1" is-fullwidth-code-point "^5.0.0" -source-map-support@^0.5.21: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - spdx-correct@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" @@ -4841,6 +4723,7 @@ string-argv@0.3.2: integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + name string-width-cjs version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -5071,14 +4954,13 @@ tslib@^2.6.2: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tsx@^3.12.6: - version "3.14.0" - resolved "https://registry.yarnpkg.com/tsx/-/tsx-3.14.0.tgz#be6e2176b6f210fe8f48124fb6e22e0f075e927b" - integrity sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg== +tsx@^4.6.0: + version "4.7.1" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.7.1.tgz#27af6cbf4e1cdfcb9b5425b1c61bb7e668eb5e84" + integrity sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g== dependencies: - esbuild "~0.18.20" + esbuild "~0.19.10" get-tsconfig "^4.7.2" - source-map-support "^0.5.21" optionalDependencies: fsevents "~2.3.3" @@ -5165,7 +5047,7 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^5.1.6: +typescript@^5.3.2: version "5.3.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== @@ -5341,6 +5223,7 @@ which@^4.0.0: isexe "^3.1.1" "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + name wrap-ansi-cjs version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -5372,7 +5255,7 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^3.0.3: +write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== @@ -5387,6 +5270,11 @@ ws@7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + xdg-basedir@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" From 382a7466e263d920fdfac5acd745e3c9401103af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sun, 18 Feb 2024 14:29:34 +0900 Subject: [PATCH 77/85] chore: upgrade dependencies --- package.json | 59 ++--- yarn.lock | 707 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 463 insertions(+), 303 deletions(-) diff --git a/package.json b/package.json index 1e5b30a6..a49d95ef 100644 --- a/package.json +++ b/package.json @@ -31,45 +31,46 @@ ], "dependencies": { "@ethersproject/providers": "^5.7.2", - "@octokit/core": "^4.2.0", - "@octokit/plugin-create-or-update-text-file": "^2.0.4", - "@octokit/plugin-throttling": "^5.1.0", - "@octokit/rest": "^19.0.7", - "@sinclair/typebox": "^0.31.28", - "@types/libsodium-wrappers": "^0.7.10", + "@octokit/core": "^5.1.0", + "@octokit/plugin-create-or-update-text-file": "^4.0.1", + "@octokit/plugin-throttling": "^8.1.3", + "@octokit/rest": "^20.0.2", + "@sinclair/typebox": "^0.32.14", + "@types/libsodium-wrappers": "^0.7.13", "@uniswap/permit2-sdk": "^1.2.0", - "axios": "^1.3.5", - "dotenv": "^16.0.3", - "ethers": "^5.7.2", + "axios": "^1.6.7", + "dotenv": "^16.4.4", + "ethers": "^6.11.1", "godb": "^0.6.2", - "libsodium-wrappers": "^0.7.11", + "libsodium-wrappers": "^0.7.13", "npm-run-all": "^4.1.5", - "retry-axios": "^3.0.0", - "yaml": "^2.2.2" + "retry-axios": "^3.1.3", + "yaml": "^2.3.4" }, "devDependencies": { - "@commitlint/cli": "^18.4.3", - "@commitlint/config-conventional": "^18.4.3", + "@commitlint/cli": "^18.6.1", + "@commitlint/config-conventional": "^18.6.2", "@cspell/dict-node": "^4.0.3", - "@cspell/dict-software-terms": "^3.3.17", + "@cspell/dict-software-terms": "^3.3.18", "@cspell/dict-typescript": "^3.1.2", - "@types/node": "^20.10.0", - "@typescript-eslint/eslint-plugin": "^6.13.1", - "@typescript-eslint/parser": "^6.13.1", + "@types/node": "^20.11.19", + "@typescript-eslint/eslint-plugin": "^7.0.1", + "@typescript-eslint/parser": "^7.0.1", "cspell": "^8.3.2", "cspell-dict-html": "^1.2.5", - "esbuild": "^0.19.8", - "eslint": "^8.54.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-prettier": "^5.0.1", - "eslint-plugin-sonarjs": "^0.23.0", - "husky": "^8.0.3", - "knip": "^3.3.0", - "lint-staged": "^15.1.0", + "esbuild": "^0.20.0", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-sonarjs": "^0.24.0", + "husky": "^9.0.11", + "knip": "^5.0.1", + "lint-staged": "^15.2.2", "npm-run-all": "^4.1.5", - "prettier": "^3.1.0", - "tsx": "^4.6.0", - "typescript": "^5.3.2" + "prettier": "^3.2.5", + "tsx": "^4.7.1", + "typescript": "^5.3.3", + "yarn-upgrade-all": "^0.7.2" }, "lint-staged": { "*.ts": [ diff --git a/yarn.lock b/yarn.lock index e53f031c..40be0646 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,6 +7,11 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== +"@adraffy/ens-normalize@1.10.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" + integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== + "@babel/code-frame@^7.0.0": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" @@ -29,7 +34,7 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@commitlint/cli@^18.4.3": +"@commitlint/cli@^18.6.1": version "18.6.1" resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-18.6.1.tgz#78bffdfa00d6f01425d53096954993d83f2b343d" integrity sha512-5IDE0a+lWGdkOvKH892HHAZgbAjcj1mT5QrfA/SVbLJV/BbBMGyKN0W5mhgjekPJJwEQdVNvhl9PwUacY58Usw== @@ -45,7 +50,7 @@ resolve-global "1.0.0" yargs "^17.0.0" -"@commitlint/config-conventional@^18.4.3": +"@commitlint/config-conventional@^18.6.2": version "18.6.2" resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-18.6.2.tgz#617f3ee761578040cade530631058699642cbd78" integrity sha512-PcgSYg1AKGQIwDQKbaHtJsfqYy4uJTC7crLVZ83lfjcPaec4Pry2vLeaWej7ao2KsT20l9dWoMPpEGg8LWdUuA== @@ -492,7 +497,7 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-scala/-/dict-scala-5.0.0.tgz#b64365ad559110a36d44ccd90edf7151ea648022" integrity sha512-ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ== -"@cspell/dict-software-terms@^3.3.15", "@cspell/dict-software-terms@^3.3.17": +"@cspell/dict-software-terms@^3.3.15", "@cspell/dict-software-terms@^3.3.18": version "3.3.18" resolved "https://registry.yarnpkg.com/@cspell/dict-software-terms/-/dict-software-terms-3.3.18.tgz#f25863c316eea195d74b170d41711e2c7402e9ca" integrity sha512-LJZGGMGqS8KzgXJrSMs3T+6GoqHG9z8Bc+rqLzLzbtoR3FbsMasE9U8oP2PmS3q7jJLFjQkzmg508DrcuZuo2g== @@ -564,116 +569,231 @@ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== +"@esbuild/aix-ppc64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.0.tgz#509621cca4e67caf0d18561a0c56f8b70237472f" + integrity sha512-fGFDEctNh0CcSwsiRPxiaqX0P5rq+AqE0SRhYGZ4PX46Lg1FNR6oCxJghf8YgY0WQEgQuh3lErUFE4KxLeRmmw== + "@esbuild/android-arm64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== +"@esbuild/android-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.0.tgz#109a6fdc4a2783fc26193d2687827045d8fef5ab" + integrity sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q== + "@esbuild/android-arm@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== +"@esbuild/android-arm@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.0.tgz#1397a2c54c476c4799f9b9073550ede496c94ba5" + integrity sha512-3bMAfInvByLHfJwYPJRlpTeaQA75n8C/QKpEaiS4HrFWFiJlNI0vzq/zCjBrhAYcPyVPG7Eo9dMrcQXuqmNk5g== + "@esbuild/android-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== +"@esbuild/android-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.0.tgz#2b615abefb50dc0a70ac313971102f4ce2fdb3ca" + integrity sha512-uK7wAnlRvjkCPzh8jJ+QejFyrP8ObKuR5cBIsQZ+qbMunwR8sbd8krmMbxTLSrDhiPZaJYKQAU5Y3iMDcZPhyQ== + "@esbuild/darwin-arm64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== +"@esbuild/darwin-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.0.tgz#5c122ed799eb0c35b9d571097f77254964c276a2" + integrity sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ== + "@esbuild/darwin-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== +"@esbuild/darwin-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.0.tgz#9561d277002ba8caf1524f209de2b22e93d170c1" + integrity sha512-bsgTPoyYDnPv8ER0HqnJggXK6RyFy4PH4rtsId0V7Efa90u2+EifxytE9pZnsDgExgkARy24WUQGv9irVbTvIw== + "@esbuild/freebsd-arm64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== +"@esbuild/freebsd-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.0.tgz#84178986a3138e8500d17cc380044868176dd821" + integrity sha512-kQ7jYdlKS335mpGbMW5tEe3IrQFIok9r84EM3PXB8qBFJPSc6dpWfrtsC/y1pyrz82xfUIn5ZrnSHQQsd6jebQ== + "@esbuild/freebsd-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== +"@esbuild/freebsd-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.0.tgz#3f9ce53344af2f08d178551cd475629147324a83" + integrity sha512-uG8B0WSepMRsBNVXAQcHf9+Ko/Tr+XqmK7Ptel9HVmnykupXdS4J7ovSQUIi0tQGIndhbqWLaIL/qO/cWhXKyQ== + "@esbuild/linux-arm64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== +"@esbuild/linux-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.0.tgz#24efa685515689df4ecbc13031fa0a9dda910a11" + integrity sha512-uTtyYAP5veqi2z9b6Gr0NUoNv9F/rOzI8tOD5jKcCvRUn7T60Bb+42NDBCWNhMjkQzI0qqwXkQGo1SY41G52nw== + "@esbuild/linux-arm@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== +"@esbuild/linux-arm@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.0.tgz#6b586a488e02e9b073a75a957f2952b3b6e87b4c" + integrity sha512-2ezuhdiZw8vuHf1HKSf4TIk80naTbP9At7sOqZmdVwvvMyuoDiZB49YZKLsLOfKIr77+I40dWpHVeY5JHpIEIg== + "@esbuild/linux-ia32@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== +"@esbuild/linux-ia32@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.0.tgz#84ce7864f762708dcebc1b123898a397dea13624" + integrity sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w== + "@esbuild/linux-loong64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== +"@esbuild/linux-loong64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.0.tgz#1922f571f4cae1958e3ad29439c563f7d4fd9037" + integrity sha512-lR2rr/128/6svngnVta6JN4gxSXle/yZEZL3o4XZ6esOqhyR4wsKyfu6qXAL04S4S5CgGfG+GYZnjFd4YiG3Aw== + "@esbuild/linux-mips64el@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== +"@esbuild/linux-mips64el@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.0.tgz#7ca1bd9df3f874d18dbf46af009aebdb881188fe" + integrity sha512-9Sycc+1uUsDnJCelDf6ZNqgZQoK1mJvFtqf2MUz4ujTxGhvCWw+4chYfDLPepMEvVL9PDwn6HrXad5yOrNzIsQ== + "@esbuild/linux-ppc64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== +"@esbuild/linux-ppc64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.0.tgz#8f95baf05f9486343bceeb683703875d698708a4" + integrity sha512-CoWSaaAXOZd+CjbUTdXIJE/t7Oz+4g90A3VBCHLbfuc5yUQU/nFDLOzQsN0cdxgXd97lYW/psIIBdjzQIwTBGw== + "@esbuild/linux-riscv64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== +"@esbuild/linux-riscv64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.0.tgz#ca63b921d5fe315e28610deb0c195e79b1a262ca" + integrity sha512-mlb1hg/eYRJUpv8h/x+4ShgoNLL8wgZ64SUr26KwglTYnwAWjkhR2GpoKftDbPOCnodA9t4Y/b68H4J9XmmPzA== + "@esbuild/linux-s390x@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== +"@esbuild/linux-s390x@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.0.tgz#cb3d069f47dc202f785c997175f2307531371ef8" + integrity sha512-fgf9ubb53xSnOBqyvWEY6ukBNRl1mVX1srPNu06B6mNsNK20JfH6xV6jECzrQ69/VMiTLvHMicQR/PgTOgqJUQ== + "@esbuild/linux-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== +"@esbuild/linux-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.0.tgz#ac617e0dc14e9758d3d7efd70288c14122557dc7" + integrity sha512-H9Eu6MGse++204XZcYsse1yFHmRXEWgadk2N58O/xd50P9EvFMLJTQLg+lB4E1cF2xhLZU5luSWtGTb0l9UeSg== + "@esbuild/netbsd-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== +"@esbuild/netbsd-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.0.tgz#6cc778567f1513da6e08060e0aeb41f82eb0f53c" + integrity sha512-lCT675rTN1v8Fo+RGrE5KjSnfY0x9Og4RN7t7lVrN3vMSjy34/+3na0q7RIfWDAj0e0rCh0OL+P88lu3Rt21MQ== + "@esbuild/openbsd-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== +"@esbuild/openbsd-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.0.tgz#76848bcf76b4372574fb4d06cd0ed1fb29ec0fbe" + integrity sha512-HKoUGXz/TOVXKQ+67NhxyHv+aDSZf44QpWLa3I1lLvAwGq8x1k0T+e2HHSRvxWhfJrFxaaqre1+YyzQ99KixoA== + "@esbuild/sunos-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== +"@esbuild/sunos-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.0.tgz#ea4cd0639bf294ad51bc08ffbb2dac297e9b4706" + integrity sha512-GDwAqgHQm1mVoPppGsoq4WJwT3vhnz/2N62CzhvApFD1eJyTroob30FPpOZabN+FgCjhG+AgcZyOPIkR8dfD7g== + "@esbuild/win32-arm64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== +"@esbuild/win32-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.0.tgz#a5c171e4a7f7e4e8be0e9947a65812c1535a7cf0" + integrity sha512-0vYsP8aC4TvMlOQYozoksiaxjlvUcQrac+muDqj1Fxy6jh9l9CZJzj7zmh8JGfiV49cYLTorFLxg7593pGldwQ== + "@esbuild/win32-ia32@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== +"@esbuild/win32-ia32@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.0.tgz#f8ac5650c412d33ea62d7551e0caf82da52b7f85" + integrity sha512-p98u4rIgfh4gdpV00IqknBD5pC84LCub+4a3MO+zjqvU5MVXOc3hqR2UgT2jI2nh3h8s9EQxmOsVI3tyzv1iFg== + "@esbuild/win32-x64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== +"@esbuild/win32-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.0.tgz#2efddf82828aac85e64cef62482af61c29561bee" + integrity sha512-NgJnesu1RtWihtTtXGFMU5YSE6JyyHPMxCwBZK7a6/8d31GuSo9l0Ss7w1Jw5QnKUawG6UEehs883kcXf5fYwg== + "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -1079,6 +1199,18 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" +"@noble/curves@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + +"@noble/hashes@1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1087,11 +1219,32 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" +"@nodelib/fs.scandir@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-3.0.0.tgz#91c0a33e1aeaedcd4bab2bf31be5d1962a55d2a7" + integrity sha512-ktI9+PxfHYtKjF3cLTUAh2N+b8MijCRPNwKJNqTVdL0gB0QxLU2rIRaZ1t71oEa3YBDE6bukH1sR0+CDnpp/Mg== + dependencies: + "@nodelib/fs.stat" "3.0.0" + run-parallel "^1.2.0" + "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== +"@nodelib/fs.stat@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-3.0.0.tgz#ef6c829f2b05f42595d88854ebd777d4335ff0a9" + integrity sha512-2tQOI38s19P9i7X/Drt0v8iMA+KMsgdhB/dyPER+e+2Y8L1Z7QvnuRdW/uLuf5YRFUYmnj4bMA6qCuZHFI1GDQ== + +"@nodelib/fs.walk@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-2.0.0.tgz#10499ac2210f6399770b465ba728adafc7d44bb1" + integrity sha512-54voNDBobGdMl3BUXSu7UaDh1P85PGHWlJ5e0XhPugo1JulOyCtp2I+5ri4wplGDJ8QGwPEQW7/x3yTLU7yF1A== + dependencies: + "@nodelib/fs.scandir" "3.0.0" + fastq "^1.15.0" + "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" @@ -1149,134 +1302,118 @@ dependencies: which "^4.0.0" -"@octokit/auth-token@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db" - integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== - -"@octokit/core@^4.2.0", "@octokit/core@^4.2.1": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907" - integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== - dependencies: - "@octokit/auth-token" "^3.0.0" - "@octokit/graphql" "^5.0.0" - "@octokit/request" "^6.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" +"@octokit/auth-token@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7" + integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== + +"@octokit/core@^5.0.0", "@octokit/core@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.1.0.tgz#81dacf0197ed7855e6413f128bd6dd9e121e7d2f" + integrity sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g== + dependencies: + "@octokit/auth-token" "^4.0.0" + "@octokit/graphql" "^7.0.0" + "@octokit/request" "^8.0.2" + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" before-after-hook "^2.2.0" universal-user-agent "^6.0.0" -"@octokit/endpoint@^7.0.0": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2" - integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg== +"@octokit/endpoint@^9.0.0": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.4.tgz#8afda5ad1ffc3073d08f2b450964c610b821d1ea" + integrity sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw== dependencies: - "@octokit/types" "^9.0.0" - is-plain-object "^5.0.0" + "@octokit/types" "^12.0.0" universal-user-agent "^6.0.0" -"@octokit/graphql@^5.0.0": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248" - integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw== +"@octokit/graphql@^7.0.0": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.0.2.tgz#3df14b9968192f9060d94ed9e3aa9780a76e7f99" + integrity sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q== dependencies: - "@octokit/request" "^6.0.0" - "@octokit/types" "^9.0.0" + "@octokit/request" "^8.0.1" + "@octokit/types" "^12.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^18.0.0": - version "18.1.1" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009" - integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw== +"@octokit/openapi-types@^19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-19.1.0.tgz#75ec7e64743870fc73e1ab4bc6ec252ecdd624dc" + integrity sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw== -"@octokit/plugin-create-or-update-text-file@^2.0.4": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@octokit/plugin-create-or-update-text-file/-/plugin-create-or-update-text-file-2.0.5.tgz#39352f6adc86cc30fc2f655ad643d6b02bc4270f" - integrity sha512-83KUB4siozRx3S+ZZ3MgDLdDgeuot8kTpEyQyd8mjNbeoHbq5hzTQcKMjDhtg5WQS+nGAAu6vi2VlOUl9XrL0g== +"@octokit/plugin-create-or-update-text-file@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-create-or-update-text-file/-/plugin-create-or-update-text-file-4.0.1.tgz#fc4785fba989288286cb2e0de05e99e626c6316c" + integrity sha512-r0kY7MrV+QTTPeVzNmjeAuuPraF8i6cQ2ff2/W+C2monXTAyx21jLd/2jczrC2e+ohnXQvDT3acqpBhtBcqXYQ== dependencies: - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" -"@octokit/plugin-paginate-rest@^6.1.2": - version "6.1.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz#f86456a7a1fe9e58fec6385a85cf1b34072341f8" - integrity sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ== +"@octokit/plugin-paginate-rest@^9.0.0": + version "9.1.5" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz#1705bcef4dcde1f4015ee58a63dc61b68648f480" + integrity sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg== dependencies: - "@octokit/tsconfig" "^1.0.2" - "@octokit/types" "^9.2.3" + "@octokit/types" "^12.4.0" -"@octokit/plugin-request-log@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" - integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== +"@octokit/plugin-request-log@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-4.0.0.tgz#260fa6970aa97bbcbd91f99f3cd812e2b285c9f1" + integrity sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA== -"@octokit/plugin-rest-endpoint-methods@^7.1.2": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz#37a84b171a6cb6658816c82c4082ac3512021797" - integrity sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA== +"@octokit/plugin-rest-endpoint-methods@^10.0.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.3.0.tgz#cba45a365ebc5dbeeca2db95466a514e69c5aa75" + integrity sha512-c/fjpoHispRvBZuRoTVt/uALg7pXa9RQbXWJiDMk6NDkGNomuAZG7YuYYpZoxeoXv+kVRjIDTsO0e1z0pei+PQ== dependencies: - "@octokit/types" "^10.0.0" + "@octokit/types" "^12.4.0" -"@octokit/plugin-throttling@^5.1.0": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-throttling/-/plugin-throttling-5.2.3.tgz#9f552a14dcee5c7326dd9dee64a71ea76b108814" - integrity sha512-C9CFg9mrf6cugneKiaI841iG8DOv6P5XXkjmiNNut+swePxQ7RWEdAZRp5rJoE1hjsIqiYcKa/ZkOQ+ujPI39Q== +"@octokit/plugin-throttling@^8.1.3": + version "8.1.3" + resolved "https://registry.yarnpkg.com/@octokit/plugin-throttling/-/plugin-throttling-8.1.3.tgz#7fb0e001c0cb9383c6be07740b8ec326ed990f6b" + integrity sha512-pfyqaqpc0EXh5Cn4HX9lWYsZ4gGbjnSmUILeu4u2gnuM50K/wIk9s1Pxt3lVeVwekmITgN/nJdoh43Ka+vye8A== dependencies: - "@octokit/types" "^9.0.0" + "@octokit/types" "^12.2.0" bottleneck "^2.15.3" -"@octokit/request-error@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69" - integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== +"@octokit/request-error@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.0.1.tgz#277e3ce3b540b41525e07ba24c5ef5e868a72db9" + integrity sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ== dependencies: - "@octokit/types" "^9.0.0" + "@octokit/types" "^12.0.0" deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^6.0.0": - version "6.2.8" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb" - integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw== +"@octokit/request@^8.0.1", "@octokit/request@^8.0.2": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.2.0.tgz#125c547bc3f4c0e2dfa38c6829a1cf00027fbd98" + integrity sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ== dependencies: - "@octokit/endpoint" "^7.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" - is-plain-object "^5.0.0" - node-fetch "^2.6.7" + "@octokit/endpoint" "^9.0.0" + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" universal-user-agent "^6.0.0" -"@octokit/rest@^19.0.7": - version "19.0.13" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.13.tgz#e799393264edc6d3c67eeda9e5bd7832dcf974e4" - integrity sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA== +"@octokit/rest@^20.0.2": + version "20.0.2" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-20.0.2.tgz#5cc8871ba01b14604439049e5f06c74b45c99594" + integrity sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ== dependencies: - "@octokit/core" "^4.2.1" - "@octokit/plugin-paginate-rest" "^6.1.2" - "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^7.1.2" - -"@octokit/tsconfig@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@octokit/tsconfig/-/tsconfig-1.0.2.tgz#59b024d6f3c0ed82f00d08ead5b3750469125af7" - integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA== + "@octokit/core" "^5.0.0" + "@octokit/plugin-paginate-rest" "^9.0.0" + "@octokit/plugin-request-log" "^4.0.0" + "@octokit/plugin-rest-endpoint-methods" "^10.0.0" -"@octokit/types@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-10.0.0.tgz#7ee19c464ea4ada306c43f1a45d444000f419a4a" - integrity sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg== +"@octokit/types@^12.0.0", "@octokit/types@^12.2.0", "@octokit/types@^12.4.0": + version "12.5.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-12.5.0.tgz#a60003ad6bb073e5cac936f6ecf47c834f87c058" + integrity sha512-YJEKcb0KkJlIUNU/zjnZwHEP8AoVh/OoIcP/1IyR4UHxExz7fzpe/a8IG4wBtQi7QDEqiomVLX88S6FpxxAJtg== dependencies: - "@octokit/openapi-types" "^18.0.0" + "@octokit/openapi-types" "^19.1.0" -"@octokit/types@^9.0.0", "@octokit/types@^9.2.3": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" - integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== - dependencies: - "@octokit/openapi-types" "^18.0.0" - -"@pkgjs/parseargs@0.11.0", "@pkgjs/parseargs@^0.11.0": +"@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== @@ -1383,7 +1520,7 @@ resolved "https://registry.yarnpkg.com/@pnpm/types/-/types-9.4.2.tgz#0a34c3c41d5452461d8d8958374a727f9c46cfb2" integrity sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA== -"@pnpm/workspace.pkgs-graph@^2.0.13": +"@pnpm/workspace.pkgs-graph@^2.0.14": version "2.0.14" resolved "https://registry.yarnpkg.com/@pnpm/workspace.pkgs-graph/-/workspace.pkgs-graph-2.0.14.tgz#3ea12b8d95987e64bc98876422ea7ad578cd022a" integrity sha512-SBXXyWDkPEoaLTjLRyQzRHoBYH+P0NLcIjX1yPUxuJiMTvGOMzjpLWTuxYNVe/P0V0VQMrjpJFaJPjlViNLhzg== @@ -1393,15 +1530,10 @@ "@pnpm/resolve-workspace-range" "5.0.1" ramda "npm:@pnpm/ramda@0.28.1" -"@sinclair/typebox@^0.31.28": - version "0.31.28" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.31.28.tgz#b68831e7bc7d09daac26968ea32f42bedc968ede" - integrity sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ== - -"@sindresorhus/merge-streams@^2.1.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.2.1.tgz#82b5e1e135ef62ef8b522d6e7f43ad360a69f294" - integrity sha512-255V7MMIKw6aQ43Wbqp9HZ+VHn6acddERTLiiLnlcPLU9PdTq9Aijl12oklAgUEblLWye+vHLzmqBx6f2TGcZw== +"@sinclair/typebox@^0.32.14": + version "0.32.14" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.32.14.tgz#ef0a4ed981515fd430cadfb65cb6c2719a0b5539" + integrity sha512-EC77Mw8huT2z9YlYbWfpIQgN6shZE1tH4NP4/Trig8UBel9FZNMZRJ42ubJI8PLor2uIU+waLml1dce5ReCOPg== "@snyk/github-codeowners@1.1.0": version "1.1.0" @@ -1417,7 +1549,7 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/libsodium-wrappers@^0.7.10": +"@types/libsodium-wrappers@^0.7.13": version "0.7.13" resolved "https://registry.yarnpkg.com/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#769c4ea01de96bb297207586a70777ebf066dcb4" integrity sha512-KeAKtlObirLJk/na6jHBFEdTDjDfFS6Vcr0eG2FjiHKn3Nw8axJFfIu0Y9TpwaauRldQBj/pZm/MHtK76r6OWg== @@ -1427,7 +1559,12 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== -"@types/node@^20.10.0": +"@types/node@18.15.13": + version "18.15.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" + integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== + +"@types/node@^20.11.19": version "20.11.19" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.19.tgz#b466de054e9cb5b3831bee38938de64ac7f81195" integrity sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ== @@ -1439,21 +1576,26 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== +"@types/picomatch@2.3.3": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@types/picomatch/-/picomatch-2.3.3.tgz#be60498568c19e989e43fb39aa84be1ed3655e92" + integrity sha512-Yll76ZHikRFCyz/pffKGjrCwe/le2CDwOP5F210KQo27kpRE46U2rDnzikNlVn6/ezH3Mhn46bJMTfeVTtcYMg== + "@types/semver@^7.5.0": version "7.5.7" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.7.tgz#326f5fdda70d13580777bcaa1bc6fa772a5aef0e" integrity sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg== -"@typescript-eslint/eslint-plugin@^6.13.1": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" - integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== +"@typescript-eslint/eslint-plugin@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.1.tgz#407daffe09d964d57aceaf3ac51846359fbe61b0" + integrity sha512-OLvgeBv3vXlnnJGIAgCLYKjgMEU+wBGj07MQ/nxAaON+3mLzX7mJbhRYrVGiVvFiXtwFlkcBa/TtmglHy0UbzQ== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/type-utils" "6.21.0" - "@typescript-eslint/utils" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/scope-manager" "7.0.1" + "@typescript-eslint/type-utils" "7.0.1" + "@typescript-eslint/utils" "7.0.1" + "@typescript-eslint/visitor-keys" "7.0.1" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -1461,47 +1603,47 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.13.1": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" - integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== +"@typescript-eslint/parser@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.0.1.tgz#e9c61d9a5e32242477d92756d36086dc40322eed" + integrity sha512-8GcRRZNzaHxKzBPU3tKtFNing571/GwPBeCvmAUw0yBtfE2XVd0zFKJIMSWkHJcPQi0ekxjIts6L/rrZq5cxGQ== dependencies: - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/scope-manager" "7.0.1" + "@typescript-eslint/types" "7.0.1" + "@typescript-eslint/typescript-estree" "7.0.1" + "@typescript-eslint/visitor-keys" "7.0.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" - integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== +"@typescript-eslint/scope-manager@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.0.1.tgz#611ec8e78c70439b152a805e1b10aaac36de7c00" + integrity sha512-v7/T7As10g3bcWOOPAcbnMDuvctHzCFYCG/8R4bK4iYzdFqsZTbXGln0cZNVcwQcwewsYU2BJLay8j0/4zOk4w== dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/types" "7.0.1" + "@typescript-eslint/visitor-keys" "7.0.1" -"@typescript-eslint/type-utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" - integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== +"@typescript-eslint/type-utils@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.0.1.tgz#0fba92c1f81cad561d7b3adc812aa1cc0e35cdae" + integrity sha512-YtT9UcstTG5Yqy4xtLiClm1ZpM/pWVGFnkAa90UfdkkZsR1eP2mR/1jbHeYp8Ay1l1JHPyGvoUYR6o3On5Nhmw== dependencies: - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/utils" "6.21.0" + "@typescript-eslint/typescript-estree" "7.0.1" + "@typescript-eslint/utils" "7.0.1" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" - integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== +"@typescript-eslint/types@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.0.1.tgz#dcfabce192db5b8bf77ea3c82cfaabe6e6a3c901" + integrity sha512-uJDfmirz4FHib6ENju/7cz9SdMSkeVvJDK3VcMFvf/hAShg8C74FW+06MaQPODHfDJp/z/zHfgawIJRjlu0RLg== -"@typescript-eslint/typescript-estree@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" - integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== +"@typescript-eslint/typescript-estree@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.1.tgz#1d52ac03da541693fa5bcdc13ad655def5046faf" + integrity sha512-SO9wHb6ph0/FN5OJxH4MiPscGah5wjOd0RRpaLvuBv9g8565Fgu0uMySFEPqwPHiQU90yzJ2FjRYKGrAhS1xig== dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/types" "7.0.1" + "@typescript-eslint/visitor-keys" "7.0.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -1509,25 +1651,25 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" - integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== +"@typescript-eslint/utils@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.0.1.tgz#b8ceac0ba5fef362b4a03a33c0e1fedeea3734ed" + integrity sha512-oe4his30JgPbnv+9Vef1h48jm0S6ft4mNwi9wj7bX10joGn07QRfqIqFHoMiajrtoU88cIhXf8ahwgrcbNLgPA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/scope-manager" "7.0.1" + "@typescript-eslint/types" "7.0.1" + "@typescript-eslint/typescript-estree" "7.0.1" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" - integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== +"@typescript-eslint/visitor-keys@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.1.tgz#864680ac5a8010ec4814f8a818e57595f79f464e" + integrity sha512-hwAgrOyk++RTXrP4KzCg7zB2U0xt7RUU0ZdMSCsqF3eKUwkdXUMyTb0qdCuji7VIbcpG62kKTU9M1J1c9UpFBw== dependencies: - "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/types" "7.0.1" eslint-visitor-keys "^3.4.1" "@ungap/structured-clone@^1.2.0": @@ -1578,6 +1720,11 @@ aes-js@3.0.0: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== +aes-js@4.0.0-beta.5: + version "4.0.0-beta.5" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" + integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -1706,12 +1853,12 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: +available-typed-arrays@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== -axios@^1.3.5: +axios@^1.6.7: version "1.6.7" resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== @@ -2297,7 +2444,7 @@ dot-prop@^6.0.1: dependencies: is-obj "^2.0.0" -dotenv@^16.0.3: +dotenv@^16.4.4: version "16.4.4" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.4.tgz#a26e7bb95ebd36272ebb56edb80b826aecf224c1" integrity sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg== @@ -2440,7 +2587,36 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.19.8, esbuild@~0.19.10: +esbuild@^0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.0.tgz#a7170b63447286cd2ff1f01579f09970e6965da4" + integrity sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA== + optionalDependencies: + "@esbuild/aix-ppc64" "0.20.0" + "@esbuild/android-arm" "0.20.0" + "@esbuild/android-arm64" "0.20.0" + "@esbuild/android-x64" "0.20.0" + "@esbuild/darwin-arm64" "0.20.0" + "@esbuild/darwin-x64" "0.20.0" + "@esbuild/freebsd-arm64" "0.20.0" + "@esbuild/freebsd-x64" "0.20.0" + "@esbuild/linux-arm" "0.20.0" + "@esbuild/linux-arm64" "0.20.0" + "@esbuild/linux-ia32" "0.20.0" + "@esbuild/linux-loong64" "0.20.0" + "@esbuild/linux-mips64el" "0.20.0" + "@esbuild/linux-ppc64" "0.20.0" + "@esbuild/linux-riscv64" "0.20.0" + "@esbuild/linux-s390x" "0.20.0" + "@esbuild/linux-x64" "0.20.0" + "@esbuild/netbsd-x64" "0.20.0" + "@esbuild/openbsd-x64" "0.20.0" + "@esbuild/sunos-x64" "0.20.0" + "@esbuild/win32-arm64" "0.20.0" + "@esbuild/win32-ia32" "0.20.0" + "@esbuild/win32-x64" "0.20.0" + +esbuild@~0.19.10: version "0.19.12" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== @@ -2484,12 +2660,12 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-prettier@^9.0.0: +eslint-config-prettier@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== -eslint-plugin-prettier@^5.0.1: +eslint-plugin-prettier@^5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== @@ -2497,10 +2673,10 @@ eslint-plugin-prettier@^5.0.1: prettier-linter-helpers "^1.0.0" synckit "^0.8.6" -eslint-plugin-sonarjs@^0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.23.0.tgz#0265bad801ea210951672ee3cafbcf5d456ada96" - integrity sha512-z44T3PBf9W7qQ/aR+NmofOTyg6HLhSEZOPD4zhStqBpLoMp8GYhFksuUBnCxbnf1nfISpKBVkQhiBLFI/F4Wlg== +eslint-plugin-sonarjs@^0.24.0: + version "0.24.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.24.0.tgz#b594ccb9b1d6123edd3c3fe3a45b4392e14932d7" + integrity sha512-87zp50mbbNrSTuoEOebdRQBPa0mdejA5UEjyuScyIw8hEpEjfWP89Qhkq5xVZfVyVSRQKZc9alVm7yRKQvvUmg== eslint-scope@^7.2.2: version "7.2.2" @@ -2515,7 +2691,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.54.0: +eslint@^8.56.0: version "8.56.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== @@ -2597,7 +2773,7 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -ethers@^5.3.1, ethers@^5.7.2: +ethers@^5.3.1: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -2633,6 +2809,19 @@ ethers@^5.3.1, ethers@^5.7.2: "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" +ethers@^6.11.1: + version "6.11.1" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.11.1.tgz#96aae00b627c2e35f9b0a4d65c7ab658259ee6af" + integrity sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.5.0" + eventemitter3@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" @@ -2709,7 +2898,7 @@ fast-safe-stringify@^2.0.7: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== -fastq@^1.6.0: +fastq@^1.15.0, fastq@^1.6.0: version "1.17.1" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== @@ -3009,18 +3198,6 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -globby@^14.0.0: - version "14.0.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.1.tgz#a1b44841aa7f4c6d8af2bc39951109d77301959b" - integrity sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ== - dependencies: - "@sindresorhus/merge-streams" "^2.1.0" - fast-glob "^3.3.2" - ignore "^5.2.4" - path-type "^5.0.0" - slash "^5.1.0" - unicorn-magic "^0.1.0" - godb@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/godb/-/godb-0.6.2.tgz#0c380310558a7c9114f49aa70c1a1da67313120e" @@ -3150,10 +3327,10 @@ human-signals@^5.0.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== -husky@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" - integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== +husky@^9.0.11: + version "9.0.11" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.11.tgz#fc91df4c756050de41b3e478b2158b87c1e79af9" + integrity sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw== identity-function@^1.0.0: version "1.0.0" @@ -3343,11 +3520,6 @@ is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -3530,31 +3702,34 @@ kind-of@^6.0.3: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -knip@^3.3.0: - version "3.13.2" - resolved "https://registry.yarnpkg.com/knip/-/knip-3.13.2.tgz#34f347a9b3ff1d45f3be7fed6bd3bb1ee5fbbaaa" - integrity sha512-izf5dvW+7fG0OfeZKyJTdhmrgQE1ltoxhPnNxYUKnPEBUMDEb61N2LD6SESKEpt4b6Mmbj4h9Tr4/14zcb7PSA== +knip@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/knip/-/knip-5.0.1.tgz#8967bf4ba179f2c3227e87610ca9a73dd97212f4" + integrity sha512-rvZbe2JIpx+3i+ZC3XpLpKPp6oII9f5w1MOMsXwS1JnuYVuNd4R2i4eon2hFds9a+pf8F10DC1Gvt1W8SIBw3A== dependencies: "@ericcornelissen/bash-parser" "0.5.2" + "@nodelib/fs.walk" "2.0.0" "@npmcli/map-workspaces" "3.0.4" "@npmcli/package-json" "5.0.0" - "@pkgjs/parseargs" "0.11.0" "@pnpm/logger" "5.0.0" - "@pnpm/workspace.pkgs-graph" "^2.0.13" + "@pnpm/workspace.pkgs-graph" "^2.0.14" "@snyk/github-codeowners" "1.1.0" + "@types/picomatch" "2.3.3" easy-table "1.2.0" fast-glob "3.3.2" - globby "^14.0.0" jiti "1.21.0" js-yaml "4.1.0" micromatch "4.0.5" minimist "1.2.8" picocolors "1.0.0" - pretty-ms "8.0.0" + picomatch "4.0.1" + pretty-ms "9.0.0" + semver "7.6.0" + smol-toml "1.1.4" strip-json-comments "5.0.1" summary "2.1.0" zod "3.22.4" - zod-validation-error "2.1.0" + zod-validation-error "3.0.0" levn@^0.4.1: version "0.4.1" @@ -3564,7 +3739,7 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -libsodium-wrappers@^0.7.11: +libsodium-wrappers@^0.7.13: version "0.7.13" resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" integrity sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw== @@ -3586,7 +3761,7 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -lint-staged@^15.1.0: +lint-staged@^15.2.2: version "15.2.2" resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.2.tgz#ad7cbb5b3ab70e043fa05bff82a09ed286bc4c5f" integrity sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw== @@ -3937,13 +4112,6 @@ node-fetch@3.0.0-beta.9: data-uri-to-buffer "^3.0.1" fetch-blob "^2.1.1" -node-fetch@^2.6.7: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -4188,10 +4356,10 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-ms@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-3.0.0.tgz#3ea24a934913345fcc3656deda72df921da3a70e" - integrity sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw== +parse-ms@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-4.0.0.tgz#c0c058edd47c2a590151a718990533fd62803df4" + integrity sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw== parse-npm-tarball-url@^3.0.0: version "3.0.0" @@ -4257,16 +4425,16 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -path-type@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" - integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== - picocolors@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picomatch@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.1.tgz#68c26c8837399e5819edce48590412ea07f17a07" + integrity sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg== + picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" @@ -4299,17 +4467,17 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^3.1.0: +prettier@^3.2.5: version "3.2.5" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== -pretty-ms@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-8.0.0.tgz#a35563b2a02df01e595538f86d7de54ca23194a3" - integrity sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q== +pretty-ms@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-9.0.0.tgz#53c57f81171c53be7ce3fd20bdd4265422bc5929" + integrity sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng== dependencies: - parse-ms "^3.0.0" + parse-ms "^4.0.0" proc-log@^3.0.0: version "3.0.0" @@ -4479,7 +4647,7 @@ restore-cursor@^4.0.0: onetime "^5.1.0" signal-exit "^3.0.2" -retry-axios@^3.0.0: +retry-axios@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/retry-axios/-/retry-axios-3.1.3.tgz#c263313e5148e8747b13d4861e3f8316f49088ed" integrity sha512-uwnlAjqg6twTcQB7RvH3OSgAqjqBDS9GFUOT+BhgADDYjoxsB7KfvS6SqYHOPjxM/Z/jVwSwGYdJnPE8at1PoA== @@ -4518,7 +4686,7 @@ rimraf@^5.0.5: dependencies: glob "^10.3.7" -run-parallel@^1.1.9: +run-parallel@^1.1.9, run-parallel@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== @@ -4651,11 +4819,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slash@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" - integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== - slice-ansi@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" @@ -4672,6 +4835,11 @@ slice-ansi@^7.0.0: ansi-styles "^6.2.1" is-fullwidth-code-point "^5.0.0" +smol-toml@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/smol-toml/-/smol-toml-1.1.4.tgz#08c23b105f56f17e57b0a77c7edcb10b75a62c5c" + integrity sha512-Y0OT8HezWsTNeEOSVxDnKOW/AyNXHQ4BwJNbAXlLTF5wWsBvrcHhIkE5Rf8kQMLmgf7nDX3PVOlgC6/Aiggu3Q== + spdx-correct@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" @@ -4723,7 +4891,6 @@ string-argv@0.3.2: integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - name string-width-cjs version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -4934,11 +5101,6 @@ to-space-case@^1.0.0: dependencies: to-no-case "^1.0.0" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - trim-newlines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" @@ -4949,12 +5111,17 @@ ts-api-utils@^1.0.1: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz#f716c7e027494629485b21c0df6180f4d08f5e8b" integrity sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA== +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tsx@^4.6.0: +tsx@^4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.7.1.tgz#27af6cbf4e1cdfcb9b5425b1c61bb7e668eb5e84" integrity sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g== @@ -5021,15 +5188,16 @@ typed-array-byte-length@^1.0.0: is-typed-array "^1.1.10" typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.1.tgz#5e2bcc1d93e1a332d50e8b363a48604a134692f8" + integrity sha512-tcqKMrTRXjqvHN9S3553NPCaGL0VPgFI92lXszmrE8DMhiDPLBYLlvo8Uu4WZAAX/aGqp/T1sbA4ph8EWjDF9Q== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + available-typed-arrays "^1.0.6" + call-bind "^1.0.7" for-each "^0.3.3" + gopd "^1.0.1" has-proto "^1.0.1" - is-typed-array "^1.1.10" + is-typed-array "^1.1.13" typed-array-length@^1.0.4: version "1.0.4" @@ -5047,7 +5215,7 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^5.3.2: +typescript@^5.3.3: version "5.3.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== @@ -5074,11 +5242,6 @@ unescape-js@^1.0.5: dependencies: string.fromcodepoint "^0.2.1" -unicorn-magic@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" - integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== - unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -5166,19 +5329,6 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -5223,7 +5373,6 @@ which@^4.0.0: isexe "^3.1.1" "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - name wrap-ansi-cjs version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -5270,6 +5419,11 @@ ws@7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== +ws@8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== + xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" @@ -5290,7 +5444,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@2.3.4, yaml@^2.2.2, yaml@^2.3.4: +yaml@2.3.4, yaml@^2.3.4: version "2.3.4" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== @@ -5318,15 +5472,20 @@ yargs@^17.0.0: y18n "^5.0.5" yargs-parser "^21.1.1" +yarn-upgrade-all@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/yarn-upgrade-all/-/yarn-upgrade-all-0.7.2.tgz#5d2afa9230661c55f22d3f848f22258db732ae20" + integrity sha512-iVxmoBuNdpxeahAIehJ039Pp6S8zQ/qTENQRMV5hp7x/2tLGUzytCODIKZFjfUwcRRKT3boGgHheUEWC7+VlQw== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -zod-validation-error@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-2.1.0.tgz#208eac75237dfed47c0018d2fe8fd03501bfc9ac" - integrity sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ== +zod-validation-error@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-3.0.0.tgz#69dee45a03ccf9739456bddb50b4d27f121c6f45" + integrity sha512-x+agsJJG9rvC7axF0xqTEdZhJkLHyIZkdOAWDJSmwGPzxNHMHwtU6w2yDOAAP6yuSfTAUhAMJRBfhVGY64ySEQ== zod@3.22.4: version "3.22.4" From 3c552c8264c1ff50c9d8bcc5e3e4bb63725f57f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Sun, 18 Feb 2024 14:33:18 +0900 Subject: [PATCH 78/85] revert: downgrade ethers --- package.json | 2 +- yarn.lock | 52 +--------------------------------------------------- 2 files changed, 2 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index a49d95ef..cd83b821 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@uniswap/permit2-sdk": "^1.2.0", "axios": "^1.6.7", "dotenv": "^16.4.4", - "ethers": "^6.11.1", + "ethers": "^5.7.2", "godb": "^0.6.2", "libsodium-wrappers": "^0.7.13", "npm-run-all": "^4.1.5", diff --git a/yarn.lock b/yarn.lock index 40be0646..6fb179ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,11 +7,6 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@adraffy/ens-normalize@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" - integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== - "@babel/code-frame@^7.0.0": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" @@ -1199,18 +1194,6 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" -"@noble/curves@1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" - integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== - dependencies: - "@noble/hashes" "1.3.2" - -"@noble/hashes@1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" - integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1559,11 +1542,6 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== -"@types/node@18.15.13": - version "18.15.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" - integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== - "@types/node@^20.11.19": version "20.11.19" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.19.tgz#b466de054e9cb5b3831bee38938de64ac7f81195" @@ -1720,11 +1698,6 @@ aes-js@3.0.0: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== -aes-js@4.0.0-beta.5: - version "4.0.0-beta.5" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" - integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== - aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -2773,7 +2746,7 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -ethers@^5.3.1: +ethers@^5.3.1, ethers@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -2809,19 +2782,6 @@ ethers@^5.3.1: "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" -ethers@^6.11.1: - version "6.11.1" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.11.1.tgz#96aae00b627c2e35f9b0a4d65c7ab658259ee6af" - integrity sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg== - dependencies: - "@adraffy/ens-normalize" "1.10.1" - "@noble/curves" "1.2.0" - "@noble/hashes" "1.3.2" - "@types/node" "18.15.13" - aes-js "4.0.0-beta.5" - tslib "2.4.0" - ws "8.5.0" - eventemitter3@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" @@ -5111,11 +5071,6 @@ ts-api-utils@^1.0.1: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz#f716c7e027494629485b21c0df6180f4d08f5e8b" integrity sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA== -tslib@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -5419,11 +5374,6 @@ ws@7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== -ws@8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" - integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== - xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" From f131a70dbcc94b42724508bda35cfdad8196263a Mon Sep 17 00:00:00 2001 From: Fernando Date: Mon, 19 Feb 2024 18:53:04 +0900 Subject: [PATCH 79/85] chore: fixed merge --- static/scripts/onboarding/onboarding.ts | 375 +++++++++++++----------- 1 file changed, 205 insertions(+), 170 deletions(-) diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index 69e3947e..478f3266 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -17,7 +17,7 @@ const outKey = document.getElementById("outKey") as HTMLInputElement; const githubPAT = document.getElementById("githubPat") as HTMLInputElement; const orgName = document.getElementById("orgName") as HTMLInputElement; const walletPrivateKey = document.getElementById("walletPrivateKey") as HTMLInputElement; -const safeAddressInput = document.getElementById("safeAddress") as HTMLInputElement; +// cspell: word ress // weird cspell bug seperating add and ress const setBtn = document.getElementById("setBtn") as HTMLButtonElement; const allowanceInput = document.getElementById("allowance") as HTMLInputElement; const chainIdSelect = document.getElementById("chainId") as HTMLSelectElement; @@ -29,13 +29,15 @@ const KEY_PATH = ".github/ubiquibot-config.yml"; const PRIVATE_ENCRYPTED_KEY_NAME = "privateKeyEncrypted"; const EVM_NETWORK_KEY_NAME = "evmNetworkId"; const KEY_PREFIX = "HSK_"; +// cspell:disable-next-line const X25519_KEY = "5ghIlfGjz_ChcYlBDOG7dzmgAgBPuTahpvTMBipSH00"; +const STATUS_LOG = ".status-log"; let encryptedValue = ""; -let defaultConf = DefaultConfig; +const defaultConf = DefaultConfig; -export const parseYAML = async (data: string | undefined) => { +export async function parseYAML(data: string | undefined) { if (!data) return undefined; try { const parsedData = await YAML.parse(data); @@ -47,20 +49,22 @@ export const parseYAML = async (data: string | undefined) => { } catch (error) { return undefined; } -}; +} -export const parseJSON = async (data: string) => { +export async function parseJSON(data: string) { try { const parsedData = await JSON.parse(data); return parsedData as T; } catch (error) { return undefined; } -}; +} -export const YAMLStringify = (value: any) => YAML.stringify(value, { defaultKeyType: "PLAIN", defaultStringType: "QUOTE_DOUBLE", lineWidth: 0 }); +export function stringifyYAML(value: MergedConfig): string { + return YAML.stringify(value, { defaultKeyType: "PLAIN", defaultStringType: "QUOTE_DOUBLE", lineWidth: 0 }); +} -export const getConf = async (): Promise => { +export async function getConf(): Promise { try { const octokit = new Octokit({ auth: githubPAT.value }); const { data } = await octokit.rest.repos.getContent({ @@ -72,49 +76,48 @@ export const getConf = async (): Promise => { }, }); return data as unknown as string; - } catch (error: any) { + } catch (error: unknown) { return undefined; } -}; +} -const getTextBox = (text: string) => { +function getTextBox(text: string) { const strLen = text.split("\n").length * 22; - const strPx = `${strLen > 140 ? strLen : 140}px`; - return strPx; -}; - -const resetToggle = () => { - (walletPrivateKey.parentNode?.querySelector(".status-log") as HTMLElement).innerHTML = ""; - (githubPAT.parentNode?.querySelector(".status-log") as HTMLElement).innerHTML = ""; - (orgName.parentNode?.querySelector(".status-log") as HTMLElement).innerHTML = ""; -}; - -const classListToggle = (targetElem: HTMLElement, target: "error" | "warn" | "success", inputElem?: HTMLInputElement | HTMLTextAreaElement) => { - classes.forEach(className => targetElem.classList.remove(className)); + return `${strLen > 140 ? strLen : 140}px`; +} + +function resetToggle() { + (walletPrivateKey.parentNode?.querySelector(STATUS_LOG) as HTMLElement).innerHTML = ""; + (githubPAT.parentNode?.querySelector(STATUS_LOG) as HTMLElement).innerHTML = ""; + (orgName.parentNode?.querySelector(STATUS_LOG) as HTMLElement).innerHTML = ""; +} + +function classListToggle(targetElem: HTMLElement, target: "error" | "warn" | "success", inputElem?: HTMLInputElement | HTMLTextAreaElement) { + classes.forEach((className) => targetElem.classList.remove(className)); targetElem.classList.add(target); if (inputElem) { - inputClasses.forEach(className => inputElem.classList.remove(className)); + inputClasses.forEach((className) => inputElem.classList.remove(className)); inputElem.classList.add(`input-${target}`); } -}; +} -const statusToggle = (type: "error" | "warn" | "success", message: string) => { +function statusToggle(type: "error" | "warn" | "success", message: string) { resetToggle(); const statusKey = document.getElementById("statusKey") as HTMLInputElement; classListToggle(statusKey, type); statusKey.value = message; -}; +} -const focusToggle = (targetElem: HTMLInputElement | HTMLTextAreaElement, type: "error" | "warn" | "success", message: string) => { +function focusToggle(targetElem: HTMLInputElement | HTMLTextAreaElement, type: "error" | "warn" | "success", message: string) { resetToggle(); - const infoElem = targetElem.parentNode?.querySelector(".status-log") as HTMLElement; + const infoElem = targetElem.parentNode?.querySelector(STATUS_LOG) as HTMLElement; infoElem.innerHTML = message; classListToggle(infoElem, type, targetElem); targetElem.focus(); -}; +} -const toggleLoader = (state: "start" | "end") => { +function toggleLoader(state: "start" | "end") { if (state === "start") { setBtn.disabled = true; loader.style.display = "flex"; @@ -122,9 +125,9 @@ const toggleLoader = (state: "start" | "end") => { setBtn.disabled = false; loader.style.display = "none"; } -}; +} -const singleToggle = (type: "error" | "warn" | "success", message: string, focusElem?: HTMLInputElement | HTMLTextAreaElement) => { +function singleToggle(type: "error" | "warn" | "success", message: string, focusElem?: HTMLInputElement | HTMLTextAreaElement) { statusToggle(type, message); if (focusElem) { @@ -132,9 +135,9 @@ const singleToggle = (type: "error" | "warn" | "success", message: string, focus } toggleLoader("end"); -}; +} -const sodiumEncryptedSeal = async (publicKey: string, secret: string) => { +async function sodiumEncryptedSeal(publicKey: string, secret: string) { outKey.value = ""; encryptedValue = ""; try { @@ -147,16 +150,19 @@ const sodiumEncryptedSeal = async (publicKey: string, secret: string) => { const output = sodium.to_base64(encBytes, sodium.base64_variants.URLSAFE_NO_PADDING); defaultConf[PRIVATE_ENCRYPTED_KEY_NAME] = output; defaultConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); - outKey.value = YAMLStringify(defaultConf); + outKey.value = stringifyYAML(defaultConf); outKey.style.height = getTextBox(outKey.value); encryptedValue = output; singleToggle("success", `Success: Key Encryption is ok.`); - } catch (error: any) { - singleToggle("error", `Error: ${error.message}`); + } catch (error: unknown) { + if (error instanceof Error) { + console.error(error); + singleToggle("error", `Error: ${error.message}`); + } } -}; +} -const setConfig = async () => { +async function setConfig() { try { toggleLoader("start"); const pluginKit = Octokit.plugin(createOrUpdateTextFile); @@ -165,124 +171,145 @@ const setConfig = async () => { username: orgName.value, }); if (userInfo.type === "Organization") { - let repository_id: number | null = null; - try { - const { data: repository_info } = await octokit.rest.repos.get({ - owner: orgName.value, - repo: REPO_NAME, - }); - repository_id = repository_info.id; - } catch (error) { - if (!(error instanceof Error)) { - return console.error(error); - } - - console.error(error.message); - try { - const { data: repo_res } = await octokit.rest.repos.createInOrg({ - org: orgName.value, - name: REPO_NAME, - auto_init: true, - private: true, - visibility: "private", - has_downloads: true, - }); - repository_id = repo_res.id; - } catch (error) { - if (!(error instanceof Error)) { - return console.error(error); - } - console.error(error.message); - singleToggle("error", `Error: Repo initialization failed, try again later.`); - return; - } - } + const repositoryId = await getRepoID(octokit, orgName.value, REPO_NAME); const { data: appInstallations } = await octokit.rest.orgs.listAppInstallations({ org: orgName.value, per_page: 100, }); - const ins = appInstallations.installations.filter(installation => installation.app_id === APP_ID); - - if (ins.length > 0) { - const installation_id = ins[0].id; - const { data: installed_repos } = await octokit.rest.apps.listInstallationReposForAuthenticatedUser({ - installation_id: installation_id, - }); - const irs = installed_repos.repositories.filter(installed_repo => installed_repo.id === repository_id); + const ins = appInstallations.installations.filter((installation) => installation.app_id === APP_ID); - if (irs.length === 0) { - await octokit.rest.apps.addRepoToInstallationForAuthenticatedUser({ - installation_id: installation_id, - repository_id: repository_id, - }); - } + await handleInstall(octokit, orgName, repositoryId, ins, chainIdSelect); + } else { + singleToggle("error", `Error: Not an organization.`, orgName); + } + } catch (error) { + if (!(error instanceof Error)) { + return console.error(error); + } + console.error(error); + singleToggle("error", `Error: ${error.message}`); + } +} + +async function handleInstall( + octokit: Octokit, + orgName: HTMLInputElement, + repositoryId: number | null, + ins: { id: number }[], + chainIdSelect: HTMLSelectElement +) { + if (ins.length > 0) { + const installationId = ins[0].id; + const { data: installedRepos } = await octokit.rest.apps.listInstallationReposForAuthenticatedUser({ + installation_id: installationId, + }); + const irs = installedRepos.repositories.filter((installedRepo) => installedRepo.id === repositoryId); - const conf = await getConf(); + if (irs.length === 0) { + if (!repositoryId) { + singleToggle("error", `Error: Repo initialization failed, try again later.`); + return; + } + await octokit.rest.apps.addRepoToInstallationForAuthenticatedUser({ + installation_id: installationId, + repository_id: repositoryId, + }); + } - const updatedConf = defaultConf; - const parsedConf = await parseYAML(conf); - updatedConf[PRIVATE_ENCRYPTED_KEY_NAME] = encryptedValue; - updatedConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); + const conf = await getConf(); - // combine configs (default + remote org wide) - const combinedConf = Object.assign(updatedConf, parsedConf); + const updatedConf = defaultConf; + const parsedConf = await parseYAML(conf); + updatedConf[PRIVATE_ENCRYPTED_KEY_NAME] = encryptedValue; + updatedConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); - const stringified = YAMLStringify(combinedConf); - outKey.value = stringified; - const { updated } = await octokit.createOrUpdateTextFile({ - owner: orgName.value, - repo: REPO_NAME, - path: KEY_PATH, - content: stringified, - message: `${crypto.randomUUID()}`, - }); + // combine configs (default + remote org wide) + const combinedConf = Object.assign(updatedConf, parsedConf); - if (updated) { - singleToggle("success", `Success: private key is updated.`); - } else { - singleToggle("success", `Success: private key is upto date.`); - } + const stringified = stringifyYAML(combinedConf); + outKey.value = stringified; + const { status } = await octokit.repos.createOrUpdateFileContents({ + owner: orgName.value, + repo: REPO_NAME, + path: KEY_PATH, + content: stringified, + message: `${crypto.randomUUID()}`, + }); - await nextStep(); - } else { - singleToggle("warn", `Warn: Please install the app first.`); - } + if (status === 201 || status === 200) { + singleToggle("success", `Success: private key is updated.`); } else { - singleToggle("error", `Error: Not an organization.`, orgName); + singleToggle("success", `Success: private key is upto date.`); } + + await nextStep(); + } else { + singleToggle("warn", `Warn: Please install the app first.`); + } +} + +async function getRepoID(octokit: Octokit, orgName: string, repoName: string): Promise { + let repositoryId: number | null = null; + + try { + const { data: repositoryInfo } = await octokit.rest.repos.get({ + owner: orgName, + repo: repoName, + }); + repositoryId = repositoryInfo.id; } catch (error) { if (!(error instanceof Error)) { - return console.error(error); + console.error(error); + return null; + } + + console.error(error.message); + try { + const { data: repoRes } = await octokit.rest.repos.createInOrg({ + org: orgName, + name: repoName, + auto_init: true, + private: true, + visibility: "private", + has_downloads: true, + }); + repositoryId = repoRes.id; + } catch (error) { + if (!(error instanceof Error)) { + console.error(error); + return null; + } + console.error(error.message); + singleToggle("error", `Error: Repo initialization failed, try again later.`); + return null; } - console.error(error); - singleToggle("error", `Error: ${error.message}`); } -}; + return repositoryId; +} -const setInputListeners = () => { +function setInputListeners() { const inputs = document.querySelectorAll("input") as NodeListOf; - inputs.forEach(input => { - input.addEventListener("input", e => { - inputClasses.forEach(className => (e.target as HTMLInputElement).classList.remove(className)); - (((e.target as HTMLInputElement).parentNode as HTMLElement).querySelector(".status-log") as HTMLElement).innerHTML = ""; + inputs.forEach((input) => { + input.addEventListener("input", (e) => { + inputClasses.forEach((className) => (e.target as HTMLInputElement).classList.remove(className)); + (((e.target as HTMLInputElement).parentNode as HTMLElement).querySelector(STATUS_LOG) as HTMLElement).innerHTML = ""; }); }); -}; +} let currentStep = 1; let signer: JsonRpcSigner | undefined = undefined; -const nextStep = async () => { +async function nextStep() { const configChainId = Number(chainIdSelect.value); - const configChainIdHex = `0x${configChainId.toString(16)}`; const tokenNameSpan = document.getElementById("allowance + span"); if (tokenNameSpan) { - if (configChainIdHex === NetworkIds.Mainnet) { + if (configChainId === NetworkIds.Mainnet) { tokenNameSpan.innerHTML = "DAI"; - } else if (configChainIdHex === NetworkIds.Gnosis) { + } else if (configChainId === NetworkIds.Gnosis) { tokenNameSpan.innerHTML = "WXDAI"; } } @@ -313,40 +340,43 @@ const nextStep = async () => { const currentChainId = await signer.getChainId(); if (configChainId !== currentChainId) { - singleToggle("error", `Error: Please connect to ${getNetworkName(configChainIdHex)}.`); + singleToggle("error", `Error: Please connect to ${getNetworkName(configChainId)}.`); if (await switchNetwork(provider, configChainId)) { singleToggle("success", ``); } } - // watch for chain changes - window.ethereum.on("chainChanged", async (currentChainId: string) => { - if (configChainIdHex === currentChainId) { + // watch for chain changes making this generic suppresses the unknown comparison + window.ethereum.on("chainChanged", async (currentChainId: T | string) => { + if (configChainId === parseInt(currentChainId as string, 16)) { singleToggle("success", ``); } else { - singleToggle("error", `Error: Please connect to ${getNetworkName(configChainIdHex)}.`); - switchNetwork(provider, configChainId); + singleToggle("error", `Error: Please connect to ${getNetworkName(configChainId)}.`); + switchNetwork(provider, configChainId).catch((error) => { + console.error(error); + }); } }); -}; +} -const connectWallet = async (): Promise => { +async function connectWallet(): Promise { try { const provider = new ethers.providers.Web3Provider(window.ethereum, "any"); await provider.send("eth_requestAccounts", []); - const signer = provider.getSigner(); - return signer; - } catch (error: any) { - if (error?.message?.includes("missing provider")) { - singleToggle("error", "Error: Please install MetaMask."); - } else { - singleToggle("error", "Error: Please connect your wallet."); + return provider.getSigner(); + } catch (error: unknown) { + if (error instanceof Error) { + if (error?.message?.includes("missing provider")) { + singleToggle("error", "Error: Please install MetaMask."); + } else { + singleToggle("error", "Error: Please connect your wallet."); + } + return undefined; } - return undefined; } -}; +} -const switchNetwork = async (provider: ethers.providers.Web3Provider, chainId: string | number): Promise => { +async function switchNetwork(provider: ethers.providers.Web3Provider, chainId: string | number): Promise { try { // if chainId is a number then convert it to hex if (typeof chainId === "number") { @@ -358,17 +388,17 @@ const switchNetwork = async (provider: ethers.providers.Web3Provider, chainId: s } await provider.send("wallet_switchEthereumChain", [{ chainId: chainId }]); return true; - } catch (error: any) { + } catch (error: unknown) { return false; } -}; +} -const isHex = (str: string): boolean => { +function isHex(str: string): boolean { const regexp = /^[0-9a-fA-F]+$/; return regexp.test(str); -}; +} -const step1Handler = async () => { +async function step1Handler() { if (walletPrivateKey.value === "") { singleToggle("warn", `Warn: Private_Key is not set.`, walletPrivateKey); return; @@ -391,10 +421,12 @@ const step1Handler = async () => { } await sodiumEncryptedSeal(X25519_KEY, `${KEY_PREFIX}${walletPrivateKey.value}`); - setConfig(); -}; + setConfig().catch((error) => { + console.error(error); + }); +} -const step2Handler = async () => { +async function step2Handler() { try { if (!window.ethereum) { singleToggle("error", `Error: Please install MetaMask or any other Ethereum wallet.`); @@ -414,29 +446,28 @@ const step2Handler = async () => { const walletChainId = await signer.getChainId(); const configChainId = Number(chainIdSelect.value); - const configChainIdHex = `0x${configChainId.toString(16)}`; - window.ethereum.on("chainChanged", async (currentChainId: string) => { - if (configChainIdHex === currentChainId) { + window.ethereum.on("chainChanged", async (currentChainId: T | string) => { + if (configChainId === parseInt(currentChainId as string, 16)) { singleToggle("success", ``); } else { singleToggle("error", `Error: Please connect to ${chainIdSelect.value}.`); - switchNetwork(provider, configChainId); + switchNetwork(provider, configChainId).catch((error) => { + console.error(error); + }); } }); - if (walletChainId !== configChainId) { - if (!(await switchNetwork(provider, configChainId))) { - singleToggle("error", `Error: Switch to the correct chain.`); - return; - } + if (walletChainId !== configChainId && !(await switchNetwork(provider, configChainId))) { + singleToggle("error", `Error: Switch to the correct chain.`); + return; } // load token contract let token = ""; - if (configChainIdHex === NetworkIds.Mainnet) { + if (configChainId === NetworkIds.Mainnet) { token = Tokens.DAI; - } else if (configChainIdHex === NetworkIds.Gnosis) { + } else if (configChainId === NetworkIds.Gnosis) { token = Tokens.WXDAI; } const erc20 = new ethers.Contract(token, erc20Abi, signer); @@ -449,13 +480,15 @@ const step2Handler = async () => { await erc20.approve(PERMIT2_ADDRESS, parseUnits(allowance.toString(), decimals)); singleToggle("success", `Success`); - } catch (error: any) { - console.error(error); - singleToggle("error", `Error: ${error.reason}`); + } catch (error: unknown) { + if (error instanceof Error) { + console.error(error); + singleToggle("error", `Error: ${error.message}`); + } } -}; +} -const init = async () => { +async function init() { if (defaultConf !== undefined) { try { defaultConf[PRIVATE_ENCRYPTED_KEY_NAME] = undefined; @@ -474,6 +507,8 @@ const init = async () => { } else { throw new Error("Default config fetch failed"); } -}; +} -init(); +init().catch((error) => { + console.error(error); +}); From 32e523d2e1fb4b21b5905059c53b84847d0298fb Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Mon, 19 Feb 2024 11:25:35 +0000 Subject: [PATCH 80/85] Merge branch 'ubiquity:development' into improve-page-load --- .cspell.json | 39 +- .eslintrc | 108 + .github/pull_request_template.md | 6 + .github/workflows/cloudflare-deploy.yml | 31 + .github/workflows/conventional-commits.yml | 12 + .github/workflows/cspell.yml | 24 + .gitignore | 6 + .husky/commit-msg | 4 + .husky/pre-commit | 4 + .prettierrc | 12 +- build/esbuild-build.ts | 36 +- build/esbuild-config.ts | 27 - build/esbuild-server.ts | 17 +- build/index.ts | 4 + build/plugins/invert-colors.ts | 4 +- globals.d.ts | 6 +- package.json | 92 +- scripts/typescript/generate-permit2-url.ts | 6 +- static/audit.html | 2 +- static/fonts/ubiquity-nova-standard.eot | Bin 0 -> 56807 bytes static/fonts/ubiquity-nova-standard.ttf | Bin 0 -> 187128 bytes static/fonts/ubiquity-nova-standard.woff | Bin 0 -> 77756 bytes static/index.html | 2 +- static/keygen.html | 2 +- static/main.ts | 10 + static/onboarding.html | 2 +- static/scripts/audit-report/audit.ts | 728 +-- static/scripts/audit-report/constants.ts | 5 +- static/scripts/audit-report/helpers.ts | 80 +- static/scripts/audit-report/types/audit.d.ts | 2 +- .../scripts/audit-report/types/transaction.ts | 2 +- .../scripts/audit-report/utils/blockInfo.ts | 14 +- .../audit-report/utils/getTransaction.ts | 14 +- static/scripts/key-generator/keygen.ts | 63 +- static/scripts/onboarding/onboarding.ts | 363 +- static/scripts/rewards/abis/nftRewardAbi.ts | 1 + static/scripts/rewards/abis/permit2Abi.ts | 1 + static/scripts/rewards/cirip/ens-lookup.ts | 16 +- static/scripts/rewards/cirip/fetch-ens.ts | 4 +- static/scripts/rewards/cirip/query-graph.ts | 2 +- .../rewards/cirip/query-reverse-ens.ts | 4 +- static/scripts/rewards/helpers.ts | 21 +- static/scripts/rewards/index.ts | 4 +- .../scripts/rewards/invalidate-component.ts | 4 +- .../rewards/render-transaction/index.ts | 3 +- .../render-transaction/insert-table-data.ts | 8 +- .../render-transaction/render-token-symbol.ts | 4 +- .../render-transaction/render-transaction.ts | 53 +- .../rewards/render-transaction/tx-type.ts | 66 +- static/scripts/rewards/the-grid.ts | 22 +- static/scripts/rewards/toaster.ts | 8 +- static/scripts/rewards/web3/erc20-permit.ts | 47 +- static/scripts/rewards/web3/erc721-permit.ts | 19 +- static/scripts/rewards/web3/wallet.ts | 38 +- static/style.css | 16 + static/styles/fa.css | 40 +- static/styles/proxima.css | 20 +- static/styles/rewards/pay.css | 13 +- tsconfig.json | 94 +- yarn.lock | 4748 ++++++++++++++--- 60 files changed, 5563 insertions(+), 1420 deletions(-) create mode 100644 .eslintrc create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/cloudflare-deploy.yml create mode 100644 .github/workflows/conventional-commits.yml create mode 100644 .github/workflows/cspell.yml create mode 100644 .husky/commit-msg create mode 100644 .husky/pre-commit delete mode 100644 build/esbuild-config.ts create mode 100644 build/index.ts create mode 100644 static/fonts/ubiquity-nova-standard.eot create mode 100644 static/fonts/ubiquity-nova-standard.ttf create mode 100644 static/fonts/ubiquity-nova-standard.woff create mode 100644 static/main.ts create mode 100644 static/style.css diff --git a/.cspell.json b/.cspell.json index d0b404cf..220cabe4 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,3 +1,40 @@ { - "words": ["WXDAI"] + "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", + "version": "0.2", + "ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log"], + "useGitignore": true, + "language": "en", + "words": [ + "binkey", + "binsec", + "cirip", + "dataurl", + "devpool", + "ethersproject", + "fract", + "gnosisscan", + "godb", + "greyscale", + "IERC", + "keccak", + "keypair", + "libsodium", + "Numberish", + "outdir", + "Rpcs", + "scalarmult", + "servedir", + "sonarjs", + "typebox", + "TYPEHASH", + "ubiquibot", + "UBIQUIBOT", + "URLSAFE", + "WXDAI", + "XDAI", + "xmark" + ], + "dictionaries": ["typescript", "node", "software-terms", "html"], + "import": ["@cspell/dict-typescript/cspell-ext.json", "@cspell/dict-node/cspell-ext.json", "@cspell/dict-software-terms"], + "ignoreRegExpList": ["[0-9a-fA-F]{6}"] } diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 00000000..22340c8a --- /dev/null +++ b/.eslintrc @@ -0,0 +1,108 @@ +{ + "root": true, + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": ["./tsconfig.json"] + }, + "plugins": ["@typescript-eslint", "sonarjs"], + "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:sonarjs/recommended"], + "ignorePatterns": ["**/*.js"], + "rules": { + "prefer-arrow-callback": [ + "warn", + { + "allowNamedFunctions": true + } + ], + "func-style": [ + "warn", + "declaration", + { + "allowArrowFunctions": false + } + ], + "@typescript-eslint/no-floating-promises": "error", + "@typescript-eslint/no-non-null-assertion": "error", + "constructor-super": "error", + "no-invalid-this": "off", + "@typescript-eslint/no-invalid-this": ["error"], + "no-restricted-syntax": ["error", "ForInStatement"], + "use-isnan": "error", + "@typescript-eslint/no-unused-vars": [ + "error", + { + "args": "after-used", + "ignoreRestSiblings": true, + "vars": "all", + "varsIgnorePattern": "^_", + "argsIgnorePattern": "^_" + } + ], + "@typescript-eslint/await-thenable": "error", + "@typescript-eslint/no-misused-new": "error", + "@typescript-eslint/restrict-plus-operands": "error", + "sonarjs/no-all-duplicated-branches": "error", + "sonarjs/no-collection-size-mischeck": "error", + "sonarjs/no-duplicated-branches": "error", + "sonarjs/no-element-overwrite": "error", + "sonarjs/no-identical-conditions": "error", + "sonarjs/no-identical-expressions": "error", + "@typescript-eslint/naming-convention": [ + "error", + { + "selector": "interface", + "format": ["PascalCase"], + "custom": { + "regex": "^I[A-Z]", + "match": false + } + }, + { + "selector": "memberLike", + "modifiers": ["private"], + "format": ["camelCase"], + "leadingUnderscore": "require" + }, + { + "selector": "typeLike", + "format": ["PascalCase"] + }, + { + "selector": "typeParameter", + "format": ["PascalCase"], + "prefix": ["T"] + }, + { + "selector": "variable", + "format": ["camelCase", "UPPER_CASE"], + "leadingUnderscore": "allow", + "trailingUnderscore": "allow" + }, + { + "selector": "variable", + "format": ["camelCase"], + "leadingUnderscore": "allow", + "trailingUnderscore": "allow" + }, + { + "selector": "variable", + "modifiers": ["destructured"], + "format": null + }, + { + "selector": "variable", + "types": ["boolean"], + "format": ["PascalCase"], + "prefix": ["is", "should", "has", "can", "did", "will", "does"] + }, + { + "selector": "variableLike", + "format": ["camelCase"] + }, + { + "selector": ["function", "variable"], + "format": ["camelCase"] + } + ] + } +} diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..cde98436 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,6 @@ +Resolves # + + diff --git a/.github/workflows/cloudflare-deploy.yml b/.github/workflows/cloudflare-deploy.yml new file mode 100644 index 00000000..9301cefa --- /dev/null +++ b/.github/workflows/cloudflare-deploy.yml @@ -0,0 +1,31 @@ +name: Deploy to Cloudflare Pages + +on: + push: + +jobs: + deploy-to-cloudflare: + name: Deploy to Cloudflare Pages + runs-on: ubuntu-22.04 + permissions: + contents: read + + steps: + - name: Check Cloudflare API Token + run: | + if [[ -z "${{ secrets.CLOUDFLARE_API_TOKEN }}" ]]; then + echo "CLOUDFLARE_API_TOKEN secret must be set" >&2 + exit 1 + fi + - name: Deploy to Cloudflare + uses: ubiquity/cloudflare-deploy-action@main + with: + cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }} + repository: ${{ github.repository }} + production_branch: ${{ github.event.repository.default_branch }} + output_directory: "static" + is_production: ${{ github.event_name == 'push' && github.ref == 'refs/heads/${{ github.event.repository.default_branch }}' }} + # env: + # Add any environment variables you need to pass along here + # SUPABASE_URL: ${{ secrets.SUPABASE_URL }} + # SUPABASE_KEY: ${{ secrets.SUPABASE_KEY }} diff --git a/.github/workflows/conventional-commits.yml b/.github/workflows/conventional-commits.yml new file mode 100644 index 00000000..6b3066e5 --- /dev/null +++ b/.github/workflows/conventional-commits.yml @@ -0,0 +1,12 @@ +name: Conventional Commits + +on: + push: + +jobs: + conventional-commits: + name: Conventional Commits + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: ubiquity/action-conventional-commits@master diff --git a/.github/workflows/cspell.yml b/.github/workflows/cspell.yml new file mode 100644 index 00000000..c81c97a0 --- /dev/null +++ b/.github/workflows/cspell.yml @@ -0,0 +1,24 @@ +name: Spell Check + +on: + push: + +jobs: + spellcheck: + name: Check for spelling errors + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "20.10.0" + + - name: Install cspell + run: yarn add cspell + + - name: Run cspell + run: yarn format:cspell diff --git a/.gitignore b/.gitignore index 22c821ee..d01f79ae 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,9 @@ out .yarn .DS_Store commit.txt +# macOS +# node +# yarn2 +.pnp.cjs +.pnp.loader.mjs +static/dist \ No newline at end of file diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100644 index 00000000..b78bacbd --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +yarn commitlint --edit "$1" \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 00000000..5a182ef1 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +yarn lint-staged diff --git a/.prettierrc b/.prettierrc index 9bdce37f..816d7f8c 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,12 +1,10 @@ { - "useTabs": false, + "trailingComma": "es5", + "tabWidth": 2, "semi": true, - "trailingComma": "all", - "bracketSpacing": true, - "arrowParens": "avoid", + "singleQuote": false, "printWidth": 160, - "proseWrap": "preserve", - "tabWidth": 2, "htmlWhitespaceSensitivity": "strict", - "singleQuote": false + "plugins": [], + "useTabs": false } diff --git a/build/esbuild-build.ts b/build/esbuild-build.ts index bd358a93..7453b667 100644 --- a/build/esbuild-build.ts +++ b/build/esbuild-build.ts @@ -1,3 +1,35 @@ import esbuild from "esbuild"; -import { esBuildContext } from "./esbuild-config"; -esbuild.build(esBuildContext); +const typescriptEntries = [ + "static/scripts/rewards/index.ts", + "static/scripts/audit-report/audit.ts", + "static/scripts/onboarding/onboarding.ts", + "static/scripts/key-generator/keygen.ts", +]; +const cssEntries = ["static/styles/rewards/rewards.css", "static/styles/audit-report/audit.css", "static/styles/onboarding/onboarding.css"]; +export const entries = [...typescriptEntries, ...cssEntries]; + +export const esBuildContext: esbuild.BuildOptions = { + sourcemap: true, + entryPoints: entries, + bundle: true, + minify: false, + loader: { + ".png": "dataurl", + ".woff": "dataurl", + ".woff2": "dataurl", + ".eot": "dataurl", + ".ttf": "dataurl", + ".svg": "dataurl", + }, + outdir: "static/out", +}; + +esbuild + .build(esBuildContext) + .then(() => { + console.log("\tesbuild complete"); + }) + .catch((err) => { + console.error(err); + process.exit(1); + }); diff --git a/build/esbuild-config.ts b/build/esbuild-config.ts deleted file mode 100644 index 6c60cd65..00000000 --- a/build/esbuild-config.ts +++ /dev/null @@ -1,27 +0,0 @@ -import esbuild from "esbuild"; -import { invertColors } from "./plugins/invert-colors"; -const typescriptEntries = [ - "static/scripts/rewards/index.ts", - "static/scripts/audit-report/audit.ts", - "static/scripts/onboarding/onboarding.ts", - "static/scripts/key-generator/keygen.ts", -]; -const CSSEntries = ["static/styles/rewards/rewards.css", "static/styles/audit-report/audit.css", "static/styles/onboarding/onboarding.css"]; -export const entries = [...typescriptEntries, ...CSSEntries]; - -export let esBuildContext = { - sourcemap: true, - entryPoints: entries, - //plugins: [invertColors], - bundle: true, - minify: true, - loader: { - ".png": "dataurl", - ".woff": "dataurl", - ".woff2": "dataurl", - ".eot": "dataurl", - ".ttf": "dataurl", - ".svg": "dataurl", - }, - outdir: "static/out", -} as esbuild.BuildOptions; diff --git a/build/esbuild-server.ts b/build/esbuild-server.ts index fd7654e9..bb992aee 100644 --- a/build/esbuild-server.ts +++ b/build/esbuild-server.ts @@ -1,11 +1,18 @@ import esbuild from "esbuild"; -import { esBuildContext } from "./esbuild-config"; +import { esBuildContext } from "./esbuild-build"; -async function server() { - const ctx = await esbuild.context(esBuildContext); - const { host, port } = await ctx.serve({ +(async () => { + await server(); +})().catch((error) => { + console.error("Unhandled error:", error); + process.exit(1); +}); + +export async function server() { + const _context = await esbuild.context(esBuildContext); + const { port } = await _context.serve({ servedir: "static", port: 8080, }); + console.log(`http://localhost:${port}`); } -server(); diff --git a/build/index.ts b/build/index.ts new file mode 100644 index 00000000..e1cf0b87 --- /dev/null +++ b/build/index.ts @@ -0,0 +1,4 @@ +import * as dotenv from "dotenv"; +// load environment variables (if you have them) +dotenv.config(); +console.log("Welcome to ts-template"); diff --git a/build/plugins/invert-colors.ts b/build/plugins/invert-colors.ts index 9270c27e..88af8b76 100644 --- a/build/plugins/invert-colors.ts +++ b/build/plugins/invert-colors.ts @@ -5,10 +5,10 @@ import path, { basename, dirname } from "path"; export const invertColors: esbuild.Plugin = { name: "invert-colors", setup(build) { - build.onEnd(async result => { + build.onEnd(async (result) => { console.log(result); }); - build.onLoad({ filter: /\.css$/ }, async args => { + build.onLoad({ filter: /\.css$/ }, async (args) => { const contents = await fs.promises.readFile(args.path, "utf8"); const updatedContents = contents.replace(/prefers-color-scheme: dark/g, "prefers-color-scheme: light"); diff --git a/globals.d.ts b/globals.d.ts index 2f29226d..4ab599ac 100644 --- a/globals.d.ts +++ b/globals.d.ts @@ -4,10 +4,10 @@ export interface EthereumIsh { isMetaMask?: boolean; isStatus?: boolean; networkVersion: string; - selectedAddress: any; + selectedAddress: string; - on(event: "close" | "accountsChanged" | "chainChanged" | "networkChanged", callback: (payload: any) => void): void; - once(event: "close" | "accountsChanged" | "chainChanged" | "networkChanged", callback: (payload: any) => void): void; + on(event: "close" | "accountsChanged" | "chainChanged" | "networkChanged", callback: (payload: unknown) => void): void; + once(event: "close" | "accountsChanged" | "chainChanged" | "networkChanged", callback: (payload: unknown) => void): void; } declare global { diff --git a/package.json b/package.json index 991069d6..cd83b821 100644 --- a/package.json +++ b/package.json @@ -1,39 +1,89 @@ { + "name": "pay.ubq.fi", + "version": "1.0.0", + "description": "Claim your DevPool rewards.", + "main": "build/index.ts", + "author": "Ubiquity DAO", "license": "MIT", + "engines": { + "node": ">=20.10.0" + }, "scripts": { "start": "run-s utils:hash start:sign start:ui", - "format": "prettier --write .", + "format": "run-s format:lint format:prettier format:cspell", "build": "run-s utils:hash utils:build", "start:ui": "tsx build/esbuild-server.ts", "start:sign": "tsx scripts/typescript/generate-permit2-url.ts", "utils:build": "tsx build/esbuild-build.ts", "utils:hash": "git rev-parse --short HEAD > static/commit.txt", - "utils:get-invalidate-params": "forge script --via-ir scripts/solidity/GetInvalidateNonceParams.s.sol" + "utils:get-invalidate-params": "forge script --via-ir scripts/solidity/GetInvalidateNonceParams.s.sol", + "format:lint": "eslint --fix .", + "format:prettier": "prettier --write .", + "format:cspell": "cspell **/*", + "prepare": "husky install" }, + "keywords": [ + "typescript", + "template", + "dao", + "ubiquity", + "open-source" + ], "dependencies": { "@ethersproject/providers": "^5.7.2", - "@octokit/core": "^4.2.0", - "@octokit/plugin-create-or-update-text-file": "^2.0.4", - "@octokit/plugin-throttling": "^5.1.0", - "@octokit/rest": "^19.0.7", - "@sinclair/typebox": "^0.31.28", - "@types/libsodium-wrappers": "^0.7.10", - "@types/node": "^18.15.11", + "@octokit/core": "^5.1.0", + "@octokit/plugin-create-or-update-text-file": "^4.0.1", + "@octokit/plugin-throttling": "^8.1.3", + "@octokit/rest": "^20.0.2", + "@sinclair/typebox": "^0.32.14", + "@types/libsodium-wrappers": "^0.7.13", "@uniswap/permit2-sdk": "^1.2.0", - "axios": "^1.3.5", - "dotenv": "^16.0.3", - "esbuild": "^0.17.15", + "axios": "^1.6.7", + "dotenv": "^16.4.4", "ethers": "^5.7.2", "godb": "^0.6.2", - "libsodium-wrappers": "^0.7.11", + "libsodium-wrappers": "^0.7.13", "npm-run-all": "^4.1.5", - "prettier": "^2.8.7", - "retry-axios": "^3.0.0", - "tsx": "^3.12.6", - "typescript": "^5.1.6", - "yaml": "^2.2.2" + "retry-axios": "^3.1.3", + "yaml": "^2.3.4" }, - "engines": { - "node": ">=20.10.0" + "devDependencies": { + "@commitlint/cli": "^18.6.1", + "@commitlint/config-conventional": "^18.6.2", + "@cspell/dict-node": "^4.0.3", + "@cspell/dict-software-terms": "^3.3.18", + "@cspell/dict-typescript": "^3.1.2", + "@types/node": "^20.11.19", + "@typescript-eslint/eslint-plugin": "^7.0.1", + "@typescript-eslint/parser": "^7.0.1", + "cspell": "^8.3.2", + "cspell-dict-html": "^1.2.5", + "esbuild": "^0.20.0", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-sonarjs": "^0.24.0", + "husky": "^9.0.11", + "knip": "^5.0.1", + "lint-staged": "^15.2.2", + "npm-run-all": "^4.1.5", + "prettier": "^3.2.5", + "tsx": "^4.7.1", + "typescript": "^5.3.3", + "yarn-upgrade-all": "^0.7.2" + }, + "lint-staged": { + "*.ts": [ + "yarn prettier --write", + "eslint --fix" + ], + "src/**.{ts,json}": [ + "cspell" + ] + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] } -} \ No newline at end of file +} diff --git a/scripts/typescript/generate-permit2-url.ts b/scripts/typescript/generate-permit2-url.ts index 81f7a3ff..7abf435d 100644 --- a/scripts/typescript/generate-permit2-url.ts +++ b/scripts/typescript/generate-permit2-url.ts @@ -2,12 +2,12 @@ import { MaxUint256, PermitTransferFrom, SignatureTransfer } from "@uniswap/perm import { randomBytes } from "crypto"; import * as dotenv from "dotenv"; import { BigNumber, ethers } from "ethers"; -import { verifyEnvironmentVariables, log, colorizeText } from "./utils"; +import { log, verifyEnvironmentVariables } from "./utils"; dotenv.config(); const PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3"; // same on all chains -generate().catch(error => { +generate().catch((error) => { console.error(error); verifyEnvironmentVariables(); process.exitCode = 1; @@ -34,7 +34,7 @@ async function generate() { const { domain, types, values } = SignatureTransfer.getPermitData( permitTransferFromData, PERMIT2_ADDRESS, - process.env.CHAIN_ID ? Number(process.env.CHAIN_ID) : 1, + process.env.CHAIN_ID ? Number(process.env.CHAIN_ID) : 1 ); const signature = await myWallet._signTypedData(domain, types, values); const txData = [ diff --git a/static/audit.html b/static/audit.html index 192f814e..bf505dc1 100644 --- a/static/audit.html +++ b/static/audit.html @@ -1,4 +1,4 @@ - + Audit report diff --git a/static/fonts/ubiquity-nova-standard.eot b/static/fonts/ubiquity-nova-standard.eot new file mode 100644 index 0000000000000000000000000000000000000000..1e46099c15e2689320d5364ce9efe044a746c4d2 GIT binary patch literal 56807 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

+B!4@fPXK=MbH20b9;y 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 literal 0 HcmV?d00001 diff --git a/static/fonts/ubiquity-nova-standard.ttf b/static/fonts/ubiquity-nova-standard.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d95348697ee4708a002df1f2d5f7651779a32347 GIT binary patch literal 187128 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�o)%n5Ro>)+X{RQp&#yU;IxEBgJqng`uq=ux+O zJU9OXo$K6rzb#f6iC7iBA^jfYyT({F-<=Xc8n|9S-?duHhE^JrNZ|`)+ zF}(X9plb=Bd|KPRNoaK*=1*lCU8$d#s5@?lCZvCP-- z>1PBjN*ZlQ)2G!U(kwjLrCPV);o@Gh;@L+L{VRAh2_;)eiv$|4;8R=}#aQkp5YRcN zwbwFd!OC+vz}c`fNdD=0@(>?7d;9jY^EXKvYWqLZH}YRPUunPNzyTJ*;O&wAN&AV<)84Ikx^BOn7HR)adgb-_T+15sJ?-D7 ze^o&7^b;EAR6ESnvhG*1M2~X^dFy1HFVOypg8Lq#McN-@oK!$~y6%4)EyB~gPHeWG zVeRYfT?_DBvqO(_|5q2~azFhZ1|A2#3_J(?7*O2qRD&pP_jY>T3OH{OuU5LNowF26 zB2~8+7F?8``;~X={^ndT)9~+C7a;rqKll{z1n@NQJn$31@bBdZG5os*{>=#hIl_GI zjFFvC7qbC>#&G4TvkjYex7!k1YuK||`)66Rx`6Oey=F&FJS%HSL2%3ZOhEXqw3j+} z#i#&D``n2+>wd+jJ)F>d8awMdSYtB|H5&h2^&mA5>ctc>K~RYIg+tC zWH_EdF1L zmi+#Qt^ZThU+dC8E@~IqdI)|e>sC0vw7*xZu1nhSXmD<`KIgVu0sWlhrq=ZqkLY@f zan>&bmg{VOXI?LH1v{)Hi^k^lLH1?G0JHCkqnXFi%;TsMafC@6%{-1~9!E2eqnXFi z%q97sE+P_E8IWse(IuAr+KR^O-$$Y%G%J$kek_hw9Hasnd%+-1(G+P!y>3RWYDT?o zM!jxEy>3RmZU!6!-2$J^Y`#lwJX#aFPN+Jjok_6)ekZKqXAQE%so4@qDMyc71?iiMB4xY~MVzr?Y-TUv^58wWrVSsN2vpzE-X!VS861|McjC ziFUgyvaVe+x0i?O<1?uv=Sb%E`r6jDsoT$$OO?ER-8CKgv)b*dwfj5lN2;pH<9>2{ z{#F4#i)_&Ne8l>e!RI;2dG58}VQ*0~K;yZ{4Bh`OyHn}vx?StqFBRzI-}H3yLj2bK ze&XrmG8Q_yHSFo+dOWR@FYR}i{og#DT=&yD`OBV8uE#rK{gbDYXVA$tJ!|@OpZ^Yf z?zmgO{0q+0$hHY5v%rQ!SDabk3^-`@>0RlATpRq1w}msnL|5 zbjL_S`APNvDF2=X>;?7%*8}eY?gk9yC!u^P2djOY2W1S2B^bnpFepnb#=t?0frA(W z2iZXlVhkL_7&wSAa1dkQAjZH!^pQaZTpS0G&5pYJX`LWv5#;<9Ak|uJc#jHX5szI)kQ9tuD%V#E>CVFP%gv93j32{9ELk^{<+Y+p1ZMe|kcu}Q7E*uW=$BpWw#9r9BvwO?s6O)&3>E5+d;g#sMy=p(XLE+UM z*1sxwBJD#O57E*^ui51F*X?)8DWBhtzAH5uMBn{eMsoYB+5={se^LGM#RYHu_B-LY zGS1TW!+tyZapJ^`s$sC*xqbmXAqbI+4Kjx^FK03fsNF#o0-;#-FZOgsGJAGe>s^KG zw8F_?Ut(60OqB^B3v34V09OJBfJ4Ahz%chwnENPO~A#27|m z3>%5z?o~|EZi_d++xi=+VRe6ZUvGdkfs}rEVE;s>NTRPtJDoaLe z8f|xa-SeOXbSkw#gib%H=(LdT#Gb|9V$Tvj0Nusl15#(A%DPq@Xk`FX79w;gJoj7#Ky&h%l*e&tO!6!ggh``_a*(Qk&wQd+bE| zr(3uFG@XA29-^L2@s>MTCE+2P6>o|0j`Ga%jvwQJU$I@@QSm^2uipJTng_C{e52-F zXw5SIS(*o`cG*+%x7t&FVoCqQ#uiZ6U+*cOE*eKv!_S(gk zr~BWA`s1F@NS%%@`)_nz1j$7$nP68T%jAmc9O7TvJ0teJFia*4lL^CQ!pvA0CKI-< z1P%a)fTO_uz{9}fz?XsNfFA?KzPJ1!#=aNEz9%jz#~{`Yvwf80YCRrzGD6&!>P5~u zabZUBg48!YIvIAAlpaZwo*WuKvqB5eQP{?`W@)x-PZ9Uyp%nr#xrH9QvK(o9*oz1huyjRz&J1moCjPD1mEJSnMLSkT!MXs^v%tZA}|2I zkynsn3Yf=1iSAs?F(=UZ#D zRI%CQ*R+ZDnEgi$8sb;d=hWvPmy$M%%iLruN1E;Mn(9bg*=rSFk-dUm*SqYXKDSfr zr~PIWpR;w{bG@$G<^^Z6N*A>cgEwk~CGFsi^n))RvG5`^cq911`I*8PcN|b4@Or~v ze?#FPryKP5+Yj3#MeT}@8XN4Q{=Ao*j<7c>@PE8o?U{%Yrv0F8splz!-_y?X9EQgU zU*~)7tJ^i7{)?h^;nRAYL)LrMIJl=d4f^@5|E>COQ{(vUcUm7VY8M$xKc43f3yqlj z8XpR$)Vh~;UE^Bn_sI$PW0HeRdrA8>uI1ER&gC5KS#er<5yUl8;=iQ!mSmLEbwUa= z^A>q~o3J~dKzx2IbRSSMM$Z4-<7*M;4bQ3|n>sJtyda6e{MnBdRrI?)HYO$gvavg# zogE)PE6@C>dN|IfnK#L`Drag>>3QZH<1yz>(_ZS_zK^d@(*H2B$Zx;R8|PN*Hw)U` z@k^aUmllrm2537FFb(sYMp>9fS(rvyn6|D24giOM zqk!3wOryU{qgcBfwq2xiVRAd4p&I$!Ej_x8{4OX@>+eu}e_T;$9PvlP+ZH)*weyC; zN%a-ZK)ip8YXv^7P&tjdDOdidxM2$IBE?=K1@`yCHByjw3i+Qx z{-==tDdc|&`JZx+4VNFp92=&X#T3F%pWtNNx<(mpp5f*hZjPTRuou`5To1epxEpu? z_!RI2@HFr|@DsqCSuQ__xp{`0b4$@XTniXc;fS39$F+kmu5je3B3`KoRqE)tIob>^ zSMtaxDBtlaAGv3r%T+)!+RFRALP#E6f5)TWck})}T|ey6>5=PP`kj+HT3-JlZD|1O(tmG^#m@B4$+KUf<$=e_;BANbz~vflSR--&GF<_gu7FHeK&C4o(-n{@ zN733Iu>x&l1rK?QjdZ!<(2{q^vNov6=w@8S(_(v;Otb$Tb_2o3pLa!I}2#d9k^v z^n82!j+;KTErKuX*i41N<$xZ~TM&{)eqUD(Zh5bK6_YUHL*{<2O6~&{onKb1D}wMakyIr7ZEo)FCe7ClL@mk!8o52c1sh={jlc zq*Xk!5?o7LFQ4*vAD?|GCFF;pv|%W17)l!k%ZH(~VJK}FN*jjKhM_dEfni#`kBf%@ zU&tqfpb`ZH)g}$6OndITTpBf?$V<~~#gu{nm*|QqdEhJ5A>c8q(_D#v+@p|>VE|n) zfG$?23kJ{y1L%SQbin|+U;te(fG!w7m&*XUU;tf;OG$F~luMo|$P*PnlV=L@OwlU^ zd8Q!G6y%wLJX4To3i3=ro+$=AxjQJrdog)t2=3K23C$VSi;HXp&5glR*0U=#8W0$? zq`ciZi>urDc>Epk{@v{UmeP;NXu*4tSw{@s&q-}Vul)||`$|S@x)K?!``=}KLCI*^ zoht&Am_+&ty$SvPHaJ@<{S+NBo}ypz<&^jv{rfwtf0uDjd>0x0V!`kA_sHn)Y8kEW z8=z>E8Q=Z=U3Rj7PV;hKc5fTZ`0#_bX&J45pVhxdI=jC=f-dnJ9-WJfm*+x8A5b#- zZ6c%fJBy5#??gub4=tnLre(AqyMPV@V~P4JQs zK8af$>IReLMEN@}&`^eVk?@rPuGTBQB7Q^xEsLqsPG^ZW%>tW&J;0T~0pJjD6fhj3 z91c;guv|uv40-MFpmkh#BI^^}aX<+?X-V^~d~W4aV!*d~lDk9L2*Dkmpe_>SG3gO2 z=uvcXu&IoL0#AQ1pu$>Ve=NQZEjwag1toyvPJnyXgyt6#-EYCa3^Um_T zvpnxC&pXTW&hosoJnyVxK%I+O%Zg&=BU!H{%RoT^G*KZsb+MwL-LR;5CK-B`Fr&u3 z>oO<-`J0?bAJx%zMB8I~N6$JxY){)YNPJZzZE@AP(Zww4vh-SAI!)^f@$U8gA9pnZ zm!1PRiB4}D+k#D^bZALp)I;h_Ukw>oP>mpuLY+= zkg)h#9AkH=$9TjVgFJmVlA?qP#unu7+>5AjNQiGp6W_?M#@V8Tm9@E4a9WlA#6{v! zEGve4^g)+>OkE#z*#}+rL6?2dWgm3e2VM3-mspAPexMJ!6z?SMeRlF-vXd0o^p6zd zi;ooR(>upnPhNC0lA8#rGsM3vI76H+>Djn1bCN=wZT%%Z>c9}xHgZYh{9)_&T%7mX zk07sv2DCkMasNA)_9w1V`3u|MRQ|%d_?^!GG={yinQS7r=xibqhamDmdqkopaxJd? z@+m$j5_uqXZOIRAT4Q{QX}6LO1&g9!Q4}nSf<;lVC<+!u!J;Tw z6a|YUg*^)S{aic@$SJoZ%;<2j`Lu#0#U*8l0_i7w_e?$~uMYa*59c;*Iz@%hcc#xd zCw=^d#q8R{uNM`s6?_mp(msvwT4#mfwck;AhXGdO9qpp$h(Q+p=1qKf?XsskY<;k( zzut=-EovA1m2u?0aCCnhZ~Q}|KY8t957zg+Z9na1k0v!vQ`Ut2oLItjHQ)s{_p2aq zkptp?nC42Iz_!9uTVchmu;Nx&aVxC2)w&Wm02~620`~(C1CIk=2A%_c444zxE`>4IZ!@rglRz>@0bM35cV0#?QLLt8>YTCOr33*I@>UHwqfdQ!_?X4nmU&s#F#pD!XTLrNs+1) zDRCbhLG=;c2$r#uiw2+z7z4Hd`+%!}8-T;WJ-}l3!A085$&PAYx#H`H@F>p~7t$XSs#-U_Cq)IuPF~(NSEwnUh+)h4}97wV)^2YiT;T%X-Y)Yprl( z&!*dtSij-X!G&fICF9E;>?XAbQ};RXHKAMc{XKl|(#xT*d3!9ruUB*`Wog{;@3JWe z;68sKtG_=Xdnot*?=X8P-oxzigwEaXpM6Af-@AobKp5On^MZZ6P@%PNn=0)FMu=slv+T8&i@2Jjw z&3#k6_m9lHYn#@&X1%0c_%VMAKmIj7)H+JL@K;?7%*8}eY?gosKGR|_0DCimaE zqVc*m$F^;!I@(O-p4OkSY_4;8|F+tu%2e2n)U0Wa{-2kA<}$kIhxi=W|Ag)vw_euS z6U5V6vL}dw*g!xe^}JCRC6|JDSWCr3Q7ap)RSLBvR#&nig!ydYQ;u%^tO%wQhksyi ze6D<4^MmJ%_G(J8DwBy6W`|z6y*N9cdG>z7fq6vHctw40ReEp}=L`MA_n3;iIll<+rcJrubHX>dMR)DOTD)OVGkI+I58fK~*8|$m<9#R)rSJ;BUHmZk zTk$1{+|xOsk5Z50R5_vjsq?iXlM_0ps^@awG430IPbQp$T$bAJ#a8XmS1YLuMTFZP)J;c9a5L&5cd<;OCiE4>1bdny%)nh#q}mAs=8Aq zY_Y7sdBFD-Fv#pj1M5^>awaLKAHRCB!GVJE%wKR1({sjDKVfP$yJzNtXGQ~b-scu? z29LhP`d5m+X4d}*4TA4od^{@pooWwaS8i1L-CE*?sZ$Ld?4^gu=W(S!twlZ` z8~!HW+o~qC(1)u1%OWbv*0Rgv8-#Qe>CYv{d1+)C3hwk%&q7qR)b6AXu@YR#&Ltj$8nI%4< zt2ev+MDekM@D|}?=c{+vkpBUEfcS3b{Q-FcTJ^i}BBLfQ`@PD}qWcR!oRR*jr^H{2 z_O0WuYiVC??H66Fj3%Lz!uV^yE?rUlwRv~-W+iN*-1uwvYL(Zv+FZf$P2@FfKDg@A z+$ERfF12H$1YJL$oywBouxV8Ab_`of)7z39DtKLNq-HQsycD^piftU0HZd{ih^#g3f)cSQ}qf(qa9J8H6J092IVK>>Oc`rk4WKbd`H9**x{WPHHs`~EYO)_(olFfRH)b} zJDo2a!7+gKb~i;8vmDl2rg3 zoSXxlnWiK!sh*9iT+0XI!68oC&@7mW2`xn~R3fslkL639j?Mv_bUhB_` z?yGztIM7s2!?)_(Qq|0ka0s8WALY~#9XST1!2vf@4JlT&-B(V`66$}6lidvL0j>lN z0Ed91fLb^)5j+IQK?nO!Rq-90>VqK8F+f>`WEa{9bOYnS9B>|RHE<(v1o!|T4l}aB zlY9+=1Z$L%Q^_|{kWR|v!X(rck!z+%-JplRMwjs=iqU2Kh9Zelh|psA?sYd+y=SA$ z?yaxTl1~<1-`|tj9f@*~P~8^+84w+t@plZA{U` ziLVRI6@2f}#@Bt@ScS2T$?v`KZ9K)?=L~4u*gYr2Hs(I>&7N({rBSiXx!@5Tj<7O=Sk?hBluDCeOPNHmhoi-y=M3P9ph0W^!J^XtmZ~!<290iO_ z*^ErttdxNiBk%Hfe344hBRWb?fzndsi|RYD$fG;ViXh%=;elF>i;ng%=`>eT^!`!a z5B;YCMLmn)$ilp{2#zd*Ba7hROVM{e%7yeqK8h1d7BP}VjATihL0H>WT-ZhvnsHHk zh96L3^rD$EzMtVoGyG_VAI(@L5-7Kliw2+z7z4Hd`+!mg68D^(OJ_NxNe;5hp_b)P z%W|k?In=ToYFQ4oEQeY~P`Fmha;RlF?z-58b-+n33AaX> z{wE!smrkZ;hvL+&Pi^dXX{Ucvx^?BsSbAgc=$@(8Ieb&5v~S9e`tHd@Vye5ozI!T> znC!0qYTI;wQ!F~zk!b2k*VU$bnq6Xw_M~fS(mm0|UaKvMjhU8~%*I4wRz7DH{p3z; zaYD+jeu<(JiPaU^Ao}?=hTaYfWszM=+9zq>M0>)ylS|dA`=hsy+W#v1C^iIsyQ)EN z#`#k<&Sk2<+s-(bN`G3Hv>*1{(evXcW>hWvjn3~ZKx<{913`l`qBpCnF+-Q&)Gs=t zvXFY4_Kp!r(}co@z!TvitfCR<2F8Io;5^`J;6~sG@Bu({rd~ch51T=l#2`#!5CRy4 z0}P^g4#Fe`VG@Hdi9wizBp=~z@8jYjKorj@^Bmg4X4YdDCbrd=LPi7h&u5D~Y$k=F zOll9CwP=~Y0*RX^A>Ia;cu%X6kjyfAl+q58jCQ7(p2Gfy$|P=#c(ESq0!QY+gh_-U- zkm+yEB$%l{g#1sm%i&W4-O6MBTQ`_*n0{+`8WSSRz)x zrn!AhLw9UVu4(YBzP9!0Xnk9vtzLcqu4uNap}Z~{8gA|$jzwGRs#`LBO&Mj4^tM^7`O)zH;s%sMH-ewlfvbsFobNnSm zKdZ0{wmSR4$Ztq}>@rkJc~6O&2tK7hC0Rv1f6H!PKC8X=FLJ9ng~ym!9m&<8Mi=KT z%9rxu;`0^)#NSP9u#(PJ5@bkjT{$?T+=+HoZUko=!P%dwto^sx%*>LdShWDheGZsa344Jc8 zZ8Nk!qHKnjE8Sofyi4X1-qj(zi`G-O%iJqpFzG2gZC?4^!qbfH(X~~+UX7#M#a6}N zVyn7BkMH+CY`sUmk?%!EQsZb_)g49cVyn{Q9J*%FIHo=5ycgdBe;n}z)BSG~6Q|<6 zo1Hq&54!D}7T712p&+c#bvTOplPK^H(15Xr?a4RRJ zR_b&K7c?S4UbhO|r~)^tz>O+!qYB)p0ynC_jVf@X3fvGWz?9t2#lwK8+ja0;8O?Qd zU5pV+(r(mAb`JY}i;<$P+2L4TnMqoQ`igKO9qO&uMv<1@`EdRQcg=-=iM>#8L2MhJ zR`x=@<|+YS;Zzb%Dp;mQ zqJKG#0spA?cs83q_~Vsoe82rLIW3m9Yrgq>QM>R>e$RUy!skk8BET8X^J3#cE=&7C z3ulC)_EP8YTlm^*m)s1}ztp+)y25sM9Bf6BI)nb33ngh}&~1ds}fyvxVHuW4TvtrcKwmI5PvPoP+A!TX-}aYzaud-a;cN z-vw)ym_DyMuqIK{9UYInp?Xi(>|nDPL9_eTwZ$fPrBn0q=G{Z@xp%4YvuU`zp?vL{ zL~Xh|(Y}4pr6XgP%qBZGoIf&r{)W!(^w8Oz>++kUL+d-*X9lAZ&D^nmD5}<9+iE_9 z3tgvu0a3WDz2tLAu>LDp{}q_KOIR7vEYr^ zBk=ABygLH#mTY%=g*7Hn7Qr~sh|bu?J;c2x>6sOZ(ry*`)tI&Q?F|0W(=kzntx~n3 zE6tUzq|EaMS=ca;1V(|gfW5$e;CkR)z}#pqm-#O5occF zX4yoQ2J7nU?eU>=qPbjTPbR%%ytQ?F$HtC{uDZIeiH`mqwY59S`?~Wd0%xBfV7h(g z;>pR2H?(hT9>UnYX{fnB_DpO*(|Hi09&!Fn&UH9H8UoX=RrIghAA|n+TlCO34HdLY z|HIaYiu!++_FI{hu_fdDn>Ws(w-=7{5#+&bSDU*k{0b5u{ziJ6T8okZU+w3`qE?L_ zz+POR;=H=O_(%D{qrj8ESAiFRmjQE%v-}{U2MEIXwH6K5_+>6l`XFCFHGZvrLt)sr z;wonE1S*OHS1Fq@*@($j3DrnfSbTNa=wGW!WXGV$N_A94>aH3u8;WtiaLX>%geh9L z{d-Gv%bHC7xuJdEOTC>4-{a3LQ7vz{!Ab1Szu@DHIwO3y^_P;te$pF1W8Mo5>Fw7G#l1P1c%YR8i}sAR0YT{HF6~9RZ)#Zp9p+jiV|Ot@kj~IH4HDlSEBuwBFP2W zrRsZ7*#%_pU%{1VuI<64H4=aOE8EVqFR?$I|AO6<|FS)p|IJT+Qjlu)zS&RC+FumZ zlK0ckulSe!7U4&BUbW}YcaA#?yxAM*DEiBH)LO|ocUtp1yIJus6f?&0+wZjg(QW79 zQ{?GQQx|+vva%<62OS5CBRKz?)8$`$c3#TNA+wZ`^EBgNB}ayg@rX6f0#AG5)WpFS zEwC>=i>&k+*~w?Ll|G9Q{S~m%zZP+@8PM|=76+^S|Gk=u=PWVHk6*T>tAEF}YjfAN zuWQ^r*groWkB`sy51tcV-+uX~lbPfPa#u{Pzj|BGx}o-t-q^&>bZX~Bysy1IJ!MSs zi*Ww1kMmx;(2i_cpdEZQgwL&m&-E$Vxs%L(BDLT6B25s2R4ey-=I564Dxy}h}y_$NkOe&mcPe)LAek6u=DDtzimqksK_np1*5nQPrH zd|QG+;rHijy~*!?Cr5Cy28I2#j5}P^F8lFYkv2>F%Noo0!XLj>_&nZy552DNz8~@0 zZ#$cIW;BPsCi0`je!I4z>yuF8Ie0X~AAiv`vL#JNrDtd~`vD&Ppv#dsM8VT77$U(Mb>RgHHiZ08azY13v+jS{mdc3?zY3;4EM- zupcnNpG~a2_%jvexht%k=qYlJ(=h&Ny>MuM%7py=*^c8U|-iJSn(e@V)!{ zLr-eGOO0#vF8RH8U%S%B)qvKk4zWn?_ebDcqF3qn@M*&R{tm0~eGuzl|CbeQyxG$Q zvQ#8YSYphPdeZl+`-zT_b!0E2+Ygh^PWWPq{M=cp1-R|+C*IrDDYA;@b$^$S$~c#* z@qcac_>6NYx`y~2GXnF(_cFffuixYUQ_or0E;OviQR5qae2`Wt@%B}Tx&qGuiLG+I zO9P6B$_8ioI*7t$Uv(WspS+Bxr{8c&6|t7L)O=ZdJ|&C#tFDAdaS1o7s<0BG{r&u> z=5x7udv1Q~*7^LWUV6#?Q2GM?OXsh!r!N-wLctAWmevCgbLJ|1@vQ~zGN=5lWM8RT z<8g4c2|i5>)VTD18{aa{iNB@2O|7N0z^DIqNVR{Szy3_&if%vjdENd4+Fw@V9R5M! zIP5{}Rmwhk>-P)VC6S=@2MUMuICo6wasHbAJ&xKx|FzejnT!z|^^ZI~8P4@-xSZ06 znWNS?BnGh1=!|M|9#ikJNyGC_v23R}e)**pmqk>2yslu=irwS`OLnWP=9lbHWz)*! zvW8z_E~_2kUwV#@d_~Q%^3(XVBm7Rc-_`t}!jW0xjQ&XRM`;(?Ii>j{bh?h-N$c&} z7gv42TS zkvQh}Qy-B%B703U4*m5w2h}*HU5z8VLNyNYF+aeLspDe=!%clccgI&4A5&DH(8miu z#8To!+$w~H^$AOtsZTgcluVtePe^3PzWGZou~+9G*!QE1ZT)|vTSgzB{YJ*TztgYg z>!2M_^L3*;FQ)xYq^DrLX=fh$&HF#0-oLQFtSf&rk4LQE=T|CTL-lX4ULu4O&M5T; z8;62McpAUK_qsKDM^SvA z;gsyPbck6McQ$Fb#2oqROhd*T=@%;G2t*}k7e^L-wJ1T)$f8PxZ|=`UJJ*bKWT*2B z^SkYt9ns9}WAXO!aC~j1(*CpjIZh&fp?&Z1$NM+*)fw5eU*YOaYK{-uYdl%GU-3oV zemj}Nm8^tD3i}_%p5eF4xrpw6tMynxyU1MKeuyl2et*CHz1BY$w2Pjq``?C>n%`e= zLAM{lw`d5qD6(}wGPemT8MJ?0SBjGQg;FU>XX_EK=+)x3;U<-0{}O;ylemS>;L*Va zxgYp_aVn~yc8>GYPrY`P45f0WU&%1z;b9Tl8LOm!OxZ8{_5OmBcVm_GF||ly`v;kz zE`-pG@~bT5XISe{UO`vU)F^rCiiH6kPNCu{>|9?iR=csccc3eG)lARUSk1=X{&aWl zs`Uf8Y_z56MCv`+6XB6)DmM}>udQjCOulKu^wrz@YS%<2l5bX*v+>Ctsr1fh{=VjC zE}62=uc(Yq>=gc^aRS_OHZQ^HIl&bVhwiXz72ntW|ITZ_%X;y|$IUpuqw3oV&WUyM z32+X6ZhzFef$z%%_lmyf%&zPP#qZR(fh}fS|Mz#1+s(u2z*Pm`e-08CKKJKJ{}q37 zpVs8}&>G+0Vb@~=)Mt6OIG2IB6ZYpNc0&Bf#9G(JRdLP1pCxGF7&^u;wcOy(p~T?H z=wkupAq{h<)XnH~RW$#bUh6RPBjsrpIOgqsNc)TID(Ggsxhgp}rfEm2*kOL0it zL`P&ztxHwWY;Hj4DLRrX@7sR$w9wP|U}bWRTMDpqrY@H2k!D3(Vse6{QmGx2s$PfS z^DQDPoE=N(YH@oZkH5u%u1xm0OHLQVWn`CP;b7$|k0wD4()5Q8GZhN|)#MA`)B~Vceo!&hPql7O~nQ zcD;zzib36H#tUfmrI^M9*`!7+dnX=L(2gtvvRUKmOtb%qOUjvAJ&SU#xitXeb+(R3 z@Tvd?WBb=r<|Uat>x#AO_s5itLd^Z?{BM;fhsIh`+XUUVrPf~2aQS%FMY`<*(BNc)Rgr?kES7c8~j>FSiG{Z8v(VLN_)FTz3$B*Jh8J*T8?T7t#wNIO2oFQx0IlO@Jd^NsM!g)8M zP-_d?1Z|QTTX{hJ;!hYltO+?`kXV8!Mq5e9r;hNKuS9esosIw>0Kk4B6-l<4LA+#; zEg2#RGDHw$tSf;7z#-r$U`QoH1Oc@haA{i0WXRpg@&*B(<*7D(qPX-GC@v<$TM=VE z#bL#?j4`bbE7t#N99B$2a%UD&@Q5V|=+dH;iF0w9BX9EC$r`NWq5U|E~zY%!$I{`hUtW zjIcOq{XgTCjKxZMBtQ1Hw>@b8@t+{-NR(`q{+BbmvvVLvArVB*Ht& zGvjm2M)p;-t9O)lml5RMA5!|F_~vyO-j!Fp>o+tHRPAE#3bKn@+%9`EJ829IU$uiKA^=aOol6Fl?U@31Y;Z~1-By;j2BEcGW{{OjOK zux>%JBcOZ<-{^o}gz#6cX6Gc~r%GDa;-^&W`YF}2L#V~)trnlRT72GW@p-Go=dBi_ zR4oFt7J*p{)2@YS*W#yCi=R?0eoD3YDb>1uO3M!-eo8SOqRW$##v$$$cvzH1%~vtc zJk5*Pn4(H}OS-js4EnOQr@)Fhs#7*4%Y}F)m$tVT}(nK3RxIf-gxp?Fr>wqsNhR@gFMN*l(%+2klJ??@T-W53|U^Klz^L*X?2h z)BSISLkXTP9p{ksMb$2TPtE4No>Ai*RO9&V5-TF(7q)A@eS1;6@NN3>wui3K_U|Ne zy>JM>rzzo zQddPUWm-$&IHhnL$@VF!z{H(g%;lwUoKiSWDH`9SvPjI1oC`|q#TrhA%H4|hr&%FG z&XgMEEhNay4>PM`_%gn#!?%L;4j$zP3$E>!=9-#jfiE=G)HXF?v~w=hpYGpHJn_#m zf5}YvqaU6BUFMGo{2AuG_;+?0>s4x{WSV&~C_TOp;Snd1p>9c|KR2bR-jG z5{qUg{N=NEW-i%snbUX8HS#3-S$gboM>LYZ)hj6!AS>b8oL8EvN8*kw^^cfU_WEKF zFp;15s!ML}73P-W#8OTQ%9%Ll1m%odjy0kj2ZC}O2+DCFD93@IoRgq(w7YVAbj!)S zR?ay}IabMXBxN~X2<3Pol)GLC%MW6_5Ok#!@j|G9!Q+-(*Dj%nDjI1dQ(O9#rdUJ$ zn%d_6!E{qB99CCOPqZ!C-9MQ#A9^mP>}#DjFnbluqHSI&Jy^{NFJDZh)9#$T+I|uH z5^_aXs_|B-brE{9l_|`GrH+Q}OIj|-W-n;%Y}nl2cUHL5`L*s;syh}>CfZ_Zjmn%} z>q@x%YKxhc=p{jDwIvQfZvmIy0?G#1O~W`a2b>374crJE0X_hTACr(kg|lQ|{rkD60a*{D*WIjGF;T1PYMQWE~F>W@<5@v`pms-}+G+K#5G@$SZWys@FJ z&1oI)rXdvKi|+AcdqZPeTVq4J!UgNZjP*akgoxdfNt=KZOeM6<^XjLcFVws%fgj`bo%1iCO{;FFlJ-~{u7^sd)C-Z z3xeKYwAp7?fKwG9b_IxC0b*Bx*cBjl1&Cb%Vpo9J6(Dv6h+P3TgU&O$tK2!0=e--qD$A^3d=ejkG0hv4@i_ubYi zqsH{g{IZUoER{8LS8;_}yA>>ulBNFI$(ofYS(*utW`dVpmJw;niXlw(nCr+J`oIbC z=DclzmQ`Sfv6}|ri7M~8PbGo z3cLWk448yD%X*y<$CKLM@Yvk6#|>iN?cm3AS9*5UH(;-PV0peWYrz-nJW2 zcnqI$b|CU@VVIN3!X2(GlzgFo5RgoocZxV!MR)Vg6}+=x(2Tru1@BzJJ6G_|6})o= z?_9w@>TslVs>d!70_LkC-`$TGG1|PJr(v-+|0s_qThUB4 zhY{8D_CxuPI3L=2{NoJi-j^Pw`1}|;JH>d~PmQtcjBN+vWp?>~yCVOYC+$0(4;{b4 znazt%_VXH-c{20BJn6irs7FqNnkRxu&G$E{zbAN(fR$mN`=oO}S7EEy-XUC*X6zVA z@VbmS6wlotW_zREoW8;Tw9dvvm3YMJ_e7dGBlB0%KN1t|P-{-`1hkF@)>Qc+oK_|t z_r#1b#B6?A^|C;AwA6rCK~{T=CtY`Olb-G|yrZ|?v^SmJd(&3;bL{-}?d|K&9~--1 zeOuf53+(jPt@+1>FS>c_)|)RHc0adv&s{z-@%k;@-CJHiF>(1^w^?8757qikdh5MK z{XNaXsvP`6M_}`M7n{u#`g2-H9cou$@&RMomM~W+OG)r}AkYq$J3Zh0<|PWvo!R3H zg5@rreNEk$$N+ z;Ou$>UTgsm$_>#T3>Pqaty9dKk;lxN4kQ3Uc~G3OiQbG?JIVY_XA?BB>-fjjtaHR9fPxvVqXM)JwXtVlkYRqAH&pt|@-O_E88+rRZa`%U@&=by9x zG5@>v-u#c4mGYl%-74!7<315}U;JA5TlnqO>TfJEOaffi`4P|2NYA8QBRLC*)KdJR z(QsSMDI#itM5&UzG2%H_aYoU;GD1{W=8U6d#nH0jU{4$^D~^^GN6U(%WyR4y;%HfM z_sB5L!A6{I7>mUS9XyM0l5TJHO#Z=>t=^-=A<8UvJmt=(WFd^wCRQH#MqW)E0K{+< z<+BqVBt9|_kPXG?NTyClX9w$QhKbb8W;<)^!_}pw_SIY7y0f=;=Uca&z2&XDdV6=h zb;~!ezvi0jkAMH|*IxVfnH4>oFCHJec(!-N#*Hg_XD=Qbzj$-ciWz(R&a2AuHSKZD4_tsWl#FV-h)eMmCx5KpJpCS0&KtCa-S^C1UOQb(hlPnnk@ z3xYo{#x>DzFhO2^gU>G{m`{vWLZjjeDJg?0ASjuudNoH0or8k;knm+?_$6Z5zT)=Z zIs5Y0oqg$L=iGMtJ6FB$t#&B?AA7D`MJ!)`+5U6w%KQ)C{+`wEWMsiZkyrh8y(CNP zQ?d$W11CN4WwvOM#J*C)SYJt1XrbbuF!Iw*epk!*x`2b&V(OkfhH_P_b~1XG=~vM! zqRyho-(ERp?v-O^mx+mmtp*UXje%fFe@%vf|z22(Z%e-wEX>sy{^0oca6pm{UAP_j>gtrFg10-+E_HbHvWUH zU578*a^t?i!F@Mw89aMawsz~*l|38Cp?cX|Z|~e?U zrrxH+@bkiAtxC8K5(&sovZN~q32MFbM;9;#YytKGR{=Kwhk<(lRU}W_59MFZvy6w` zh(6XDU9q@$urs-`c6BOK+PF8H+A$s@Jwtl%oanZ2c-5->w-!|iUga^VAwFo>&*P6VUR8!5iu1S{EguXo@G4T4%aQ*ji6AcM5;(w0!x}A`LAC zHNnQEVO%@vaO@(|j`tg98QG?3rC;_l0X8uKtR4ZZ9s#T#0jwSYtR4ZZ9s#T#Vt9qs z%I4=`KybE`F_gcJDE&H3ltG0C{%imh8bE~xP@w@-XaE%&K!pZSp#fCD_NU%!wN

eJmE~9t?-G1Ff;qZGGc=n|?diw|O#_YN^^-8SQIn?rRCvP&4}YZ#uV3oRf_- z^l$9x$R@%iPJPeX-tJ9WairP3Z^0vOUX=2AdG~{5KSAbdn!IT-@h+Dm5#57 z47AtgBB>2skGyOCp4+bPk6(QCb%UK3UipU18k$YR%hK?&G`uVgFH6JA((tl0yi8o4z>E91cnA=;Gx2^- ztM^~cIZv$_QTv0^^+9eW+5ZgkugRWuFH4M6j zLDw+o8U|f)no;WUnbul2hxlX!LAx`o&t#yiZNUUs>5R%ci#1Trf7Uv7eC+&n@f~YB z20+W+b$iJoyEQ#D-ZHp$X6;~0YWZwczj$5CRJx@l#pYM?GrVX&XaAcuVmB_J4Qk9#SkMO+ z^nnF^U_l>P&<7UufdzeFK_6Jq2Nsyp)%S7n5Fl7k#k%(?EU1G2wL%&0o~$U4!e6-s zcv&g;5>#Bpr!WMpVyv8a=7KyQ z@$OBz3@^oUrXYh93@-)4OTq9`FuW8DF9pL(!SGTVvG3>NVZcFMbREJ+_2xw<4|O%g z49cTY8pSt5%(-^?@b2-J=AOa2x`9Mvd~(;|hRfQL(^s?%cT&${xaAFRh>dnPY@f+q z)YjQ?U3pz%xTU2xTImF;qdiTn>3DTd`@q`OwbAOjmfBU*D{ETo69e&Bx}z72mi4;a z{w#Z#4jXRX2_Lfb3AP1oLF-z+SkRUQZCTKk1#MZ-mIZBD(3S;lSf*J(u;YPCXb=4@T635%pk1Js43BM%055^?Lg5tJ!wV9u=i2rDR=owd#}8fTkdNoFu1GuOsyzqP4l z>axwr-uX9e%74ecdCP%w2AYTG`ZrF6>vmN~({)v?6T63}uDfhc=Z5i~^Dnz*Ldqa? zrz2CHktwE9V&b-_8b*Kj!F(ku^PzwAY&*^Qu11Eaf4MO3jfe7Vmx-S&)k`kOW47 zvw*$8e&BlGUBKOdQFCgcdVJ3y4GCgA^DJbpqU+l=N8>Gl8aPHUJ`k{5rp}*=M)}A6 zq&`56lm8p1HaXGVJ&~++>~&6UVxl~I@y%Pdyz}C0_TqPL*>dy6*^LRZ&5c~Jq0{N_ z+;HCT@Oc|hRTLh+Xng}+rP6wnoNI_V(6{j$L!pmb{_IKRL^EGy%vTxnRmOakF<)iO zR~hqF#(b4AUuDb}wf?kPSjK#nF<`uX9kueo)leBBVdY0|c#rq9b7zWSr3G9|HY3 zZ`0@>0{ugve+cvsf&L-TKLq-RK>rZv9|HY}>jwSBmM^2}bC~-2a7{Z_+?r$p9#R@i zua1?cx77c~?mzg$U7wFtv^ADBtaN_Aq{QwUIlf@uo`0MD{9J2YNr~nOP6uldx4y;B z5!^2aWCv-3*ET#s*Eka&1Tmgb6CR$>gdQnztLQx*)*IWhzi!J_gYq5si&CeV4T7?$ zNd72A8mAc%D}EKatX~|`mQ!PvUy|*KgCf>Fb0uhis}f3${ChN)o6OYpbhfN^@nUs4 zy)v>h)tg%Vi1VTRXQzhC>zb-aqH8c^psPL8T>Jm#ap<+0N1-#>$5dLo#UG~(xh#7^ z@u~@VxMofld|WHa+v_t8eG+D?_0I${HSP}O@1NXtZ!FVMn`=sM?51?()qR&=&5q=j zn{U80>FY3AdzYM{X&$veNNpMERP}BoVD&Sq(nC+{OiXkbwzi6nD%g$4xw4F?C5+Ut zHg}MH$uPRpu;vr;1dRX{#?hUI(Vd3Torck!hS8md(Vd3Tord8PoVYP>W8S=(Ks29Y z`O_p0&;LJrZvrRTRTg~Lt?GU6uBxuCuC=??uCCsyySjRt-e&8bo|!C@WR@(Gkad!v zKqSc!*`kmHjl60IiGqeDkwhVYB$;FsMHWF&f)x|G=h>gz8hoT9?@I$}qOs?((evQEMXJ5_S3E%p%2W6j-u zS7?Z%XY%Rb;^|R}M z=!>U)p-iZKr87D{u(;XCLjiv$^Z`1r_&;Z*HK;SmRNVyk0{GYJx>eIc@gub{i**cM z`;kOOl4)qw(o$u14f%Jl(wSYu52}U7MxLM#4G<}#0g$M`7BQ}4N|2%_Qu@St$B#D7 zbr;UH-cdeC+5gq@LEA=zO%Q>>Di9V<52ZersQ~!dj1VR@X?d&gwdgsb$XE z(?aE3i*7`gZbX)DM3!zumTp9rZbTOH)#cQ!CK`P}7VsE@#aSy&RaRPMs?e?xM{5%D zv9RgN?dinQ{^`{{;X>c0bY@dN5SiLOyt*9l?e305+Y+mn%}-ylB{QBJ9f*btTe4%@ z#sbxpLffYj&;{9Z19~<6TC4T50#XwgM$k+n2n+$Uz&fxWI0PI9?gH)ybX>O35y1xg z81WwTFF8<9uZ-d=QIxPK+H4eUHi|YIMVpPH%|_8?qiC~HwArX8un*FB46r?=&T1MR z)>%#C@K$oF=&-VyN0bj#&bk*B=WGu%u#bmPRwRgeZ*L=W+IV~rR751&9H^(lXTe&0<9bX!dgZiSAE9|d+ z>_ShmCSKQ@_1Oc}dPI#avl@pR7^9B*7sG-OULokB%PWzy9lq8MUu%c2wZqri;cM;i zwRZSgJAADjzDC@j)-H4`pcoOlU@6)lDjd#G@XEm?*4T9M5$l29tvZy%T7aT|!5m1! zj~SEXt9YOpA=j666mSNurCXfx)h`-l_Ca8$as2k@yk@#}*U#5G}<35tu ze&hPa`ipzzdBU+-uKlFZMkeVzhhyv zdoFtMVs^{aV4d|uYRjdi)apdkQ@*=yU}9O}V;eT3uPS-yVjEk`0Gu(OPWpDnY?MPT z=)fZh1g$<(zFw49kHmg@yw)A}+_UG&M=!YRt_vQ0>WI}{{+6|uQ`XDnKPW#;m((6v zbH821NSHIw?HGw>{;VV2n!$F_8zg4r^f3}OArUo0dl3hS**iuTag=`N{7Z?K5Tlwb zsYXhWzj&I+iQTuqe&h0e8~d)Mq1Cf}~Pt?9j5 zu6W-4eQ_vwy(^$t9NLDawQ*=I zp-4ap*beLkt_5xZ?f~8j7+M=ghlnc{H)1x0m`p22V=CLW?VKnQzhnFqhQ_$R-(T1^ zoGcB68=FEyrDT3vp}#ObJsj(bjYJ|N(XNfIs5D|-(R^uq;@{=m*#6v9C^VJp7e;j6 zFJ?!xH!KJPl9OX^yUlJb+`u1n{v9YtT;4JAxW7IEH;^b-(KC)e&vl=^PDC?NosvUo zuK!Zi^*QId>w{I-=k;}0K*f2g=l{MuXQk@-@2a|gL&8GQZvwpc&-Hb=-~Fg0Q1ITr z1CcsBtM0U%v`HS{8;*b5b%gt+|A*9di5KI#>jUb#=t=WDC*%G)j#hcn`_=Q6Z^m4I zox1)ZbzRw-&Glbb*B>|6vHj`({6L-pUa9^(3oq{^?=9_q!*{B$e~jxR>N$UX{A%?a zej)Zb;gjb1;wWfvf4u6tJ~M@hKIyv5+h5n4tLlDj|JCDqyWB5&pwSDzub*#u)pI_@ zzn1GNchU7xu9Md%$p@0`D0IfnP9d{TsGFpYVU{C|{VMOyId}1spA zkL&ZAw@Xbr;q5wFV@34*7M?-9JuOYPz|~ve>Md~f7Pxu~T)hRZ-U3%|fvdN`)yYzU ztBWDHj@YQD=o4u%YDdc%v|Vd~CO8+xBScws5KoSd0EG1nEx}MUyuEe%TE~z9PiVv?xS?5hIX)kjqZXG3&_wu7& z=8#h8z&fxWI0PI9?gH)yWDaG%u+l>JLKXgQght0=Vgi>Pa&I_9mm+{XK?iP%cU^+f zbp%ciEmG6`15QfmK)07KDsbL9UVi736T7Fw;o|N>`T0GMF08LF5V-zF@zVOx(0VD3 z;qkrYZL_o6m>ZdkO1!-JPP{yMxA%dHZfb+R!Tkht)ybd^Np?%C!ca+=YDIaG1(Z*H zHkJ1Ih+o6;?HGB*8L@M~vs7)BA<3!>%MmHsuZC7y^pv~6XjQ}B`A((WCUly ztNED_Q*C5cS}B6JC@y(J!V~I zZ7P4lnp5!6@;j~kXt_LE{({h%2=uLob1O^M#kzJ-8*8U1L>t)MW@C37*xd$pw}IVl zV0RnX-3E5If!%FjcN^H<26jKC?wM3{VTk<_wBsn*QG79bB}g;Kok5-!% zY;>H#7#E@lE>Yy7D3*vQmWU{ph$xnbD3*vQmI%?6pW-y$ZdLG8t0K-3rYFYqNM?_n z0dB&1tiJrNm5Hv2=#7i#><^AEr|-OTU_Rd;%+C$HeCKHTwsR-;uB5}cNfpkMT)m{N zJDLp?Glk7_v5|1cj`q+{B%F(Mo;Q`BuZrWzE@X4tCL^E{>n{6%_}v0iuKp7L!( zxPQ;xOa_ea*uUEQ^k&a2ng8G5_fl8pgX-){8Ao-#0=2W;5}%KKNYf(8Ns&ld$Vp`c zHMGZ3jhFy&BO7WAKl6sQfZhL-^BXF8HPEFK@(c`}Qhz6Q+5UYc&fnaBr~4u7$y4g@aps{CkI(u_ zJxJp5k;~p>>r*wkFlLaaS~p!YR-)3x(`dHR8G6XXTp>?VZc)7pn81=X>Ge(`8~$o; zTTh~AB_v9Utsb&*~^z*@JRo zt}s5Y@`*~XWDmksRZFx?;jCW6Sp}~H6}&c{0cSyt!Ns}Ygvgpf8l>nIL>ECq*`>}X z7*e`Lwu4$|ueL@p{segpD%_+vdG|RxbLYnQ>=`(Be17k2c#rkXUAx*^t%+k-Tk+%5h^VbYWI$|1au%TBO{2oWbkpI+jH~6o*zB0Mg#JRe01V? zknOAsn!%gmUq;s3RVIF=1fyXTPPE;KoXy$KgnGE z9^ve%Sfxb`j?SbeITX}Y1N0c>O)%fA+7q5R((jTKBQG2 z(y9b}iHxcYoV{TVyAKpXA=-U=Ao zVhGz}h|xg!>0ruUwG=vraj-Vg=mWCA46p|51Fi#Z1?~jy1N5q4mlQufqK30pCpelh zPP(ty{>r_RbvN(Xb4%m&MX%Vh<5l~{$M?Nz2l>K@#PY><-f-La1+Uy%CM~f1w<|9_ zH-GxXVf-O1q!+r_%_{yCREzbKoFJiI5@XOH-x(e}5L*%P2PPY?gTG7mnn=?D(G8`v z>*)(7-pt?L2;2)8n^6FpkwmR)gOF3aq=qv(>t^<2%@GNPBq-TOScY_zvkMh_Zl!}> zuAygpO{lY$_^qN8Cqlj%`_SOhcqBHnYZQI^jgMI4@1NhXW8UiWgvYmyjP59gk!zaE z-?Pp?j!9*^$TgyyNY3Se>uov)&ciGXG9!{z*@nEQ&n1)j(Wy$hE`OU#pZ@N|z?qIa zSX^T~7!Wowpfg@10ZL42x`dc4@7jQoybaaqu=}>g^MNUdK{z%7sRdd3RVTVd^6UU=QMB!Z8+Gkt&j;Q=P zvAvK6WmIjO2PN2pqH|leELTy!tE3g9hPw|a(avb&RdS2b%B>5un5X0xHIKdcw4Rl+ z5VkE-GR4H#FND9*Aex8Sl^rT6%04}>XBhh=p57==lBlnN3WutZWK6`9v)LWngduFz zN6ewafz7hnrK3WMh06q(O_^6D1+kzT)zp@ZRe=H7^=$ft9}CPI_k4V8eX_s5uw$(J zPf~Q?AE!5Oo<1sk!HSjtHafL6li4~IwF>3G*s(k{x$;lW{$4Zt`+Lfks%uEZK~|xA zLD#QotGdLxiB<4HrVA!N30+gR7G;~l`=)GDZ({V=*p9zm*`iuq zw^U=5Sjcsy6dS*UAJVt~0uDF^HG>0A-oukn1{tcyS?L4{U_!0yzwY^_(e|!>Ed`xT z9UKp0l4~#P!MX@f603p}mn{@T_z}IO)m-UijeVq=~0SJq@o2yC1~vwN-r|=kFg=ah1E&ckvTG zufAg$WG2M#)&}l*$#Z2Dh${yTWk=7@5>XC@@dynm`ek&rdhV!)GEy1{SO@k4hk(Pt zUBLZ-5=Y+11Mda+CBaQJdI2d2J`HRGE&{FrZU&lkl3*tSjQrv$EZOz08HM6Wm_G@K zp#3N>*CFpSEP|8dnh=JbsM7l;<-%l@L)@twAhgwZy!~7hZ1{ zlBo;HRI;C#1@X4xJEdnwT$8Mx#1klP+Japgqya&Otf`^3 zt*t4V>FcO#isp(je=6LKk9~6L(yc?H-@{6+e)_dr7DCJ2QkrAXH*|aX9NvEFU2XEtn5f*%yNPxoE>=-_9c?Gj=K)H z`W4;@xz$m55Ov-y2W+=hs#zqnmJ*n9mvyW)?uS5azipV}WOkta3&NN4UG3xY@} z5?gbkKT>)l{>TzGrW5>;J>8)|Ph-qFcV?sf>l?q*oanb=A6@kHWVcNJTlwH0;*Pv_ z>$!gGpiQsb^@?7d?|dgdLHv<#kukft&fIk{$R`<}@khcxSjr#ck95XT6K{07P%1}$ zt5GS8(!m|tIZ)$|^it{;LXUgio5(1CWMjvdo;mpR#?uGC^ySOnH@GqQKC9`gU;N@1 zzVOxZ_rEgu#1n&GVQ7pE+llpgm3P~IlxzfXGnic$fG(R9W%1($fgxZPSO@k4hk(Pt zUBLZ-NURg=ic)1)3<{+jtfG|FyP`*tZCj&1yJR3ODy#F%L<4X_eTW9-SgH#FoWg1N!um^-sliL9S9bLcmEt$vC^Z0j zQ&Z8aH)RH2vO00z{6H{0>i19N!qM6D+lG_l@qy8FZ_L}Ysl^xdcSn4!i=&BL_rQ28 zl#6tG+#QkOXml#=*J~tu_piXeX4jjKoW@^hM={nxm+FuroG8Z{-=TwIsg9m|l3PT0kjfox zim-Q7u-}Nt&Wyik(7kegR#RSe!HKogVL7@=ssttIme5+A`G$KT;bC~<+v~Qz`S$Q{ zZCrWJuU%!`R(^wmXUo4~T~jtbXd9_K5r;B zuAC?_*KocXidTbIj_x21LRoGpH>v8eQ-=kC*}t*zBmQqa`>9WrBVYcq#u*jIRh7qM zkKsk?!P#rns8-97pMQK8tMhnd1|*Ni&f6L2wtnqL8`iIB9$1bDo)e?orTSLkEf#qp z$jax^c?;s`vTg&PsCp~j3(X;IJBxXjgD2G!rX4N910_6Ms@^K+3W-DS`eo~?yG_QB z>^0Bv1(BzC=XJc(vQ&mn)O5Q(>2-#ALGpJohGB7w`4Ywfy&)`H?^vZ@lLCdz9c zR;eKOitkw23D2;ukUVQrYw8Q|lLbwZ<&8mL2$%)df&IWC;4p9(a6cdbv#!K9}9nx8dKCOD~W1_Y(n=-4fXFZ?(V9hx4(nu2?>t z*wop%$*Q-%4yv!;$`4uAak8MK4w58I<%i10E%ROKB5e*Awvtg*2#>`7cYL(`ODBBQ z`!D0D8*n<3^$;oP-wK`lOZK+kb*GLckeD8cC9o}lgoMx|F_Y?iLS1f83LN-U z&YW0Ds$&Uikhz9$I0CZlI$(?iO4WY1#<1kB_w~A4cHD>0--dAIxah9%z zeAe*Y6C(|TmfDG!I?_O`Znyhm$L`qp%*JO}+lals);mB!je{OH^J3x*be%4Vy=-O} zLQ$n$>#5@mWCV^3Q?s@;oi)){diTR8#@f1gpm2X(HR`7kV<4k!P6`<{FEXflDr%-9>;uV&mjp5UVr zPas9HW%Yz3+wla=s0*T${J#`W;H;~OCvYw}yP8#yP`GN7syOmGRmXG)fy{}-7wd{1 zSmy)wj7YuCdnwsHLLh6B3>!hD01$KO5*S3qAzWeXZ7jE4>J|5n) zI(=X%kytv=HlEC{?q6Toe&K39IiA^a$@KK4TQai#*lM3oOsfi14 z=H572oC}V+VD`nyt5Y2pU{>d>;sVU-oK;)^0y^Z%v8|pQ7hwI()YSlUe2OgR zR1_W(d)H8vtDr{COlW6wsHZy0<-PuHl?`Oa+IO2W z#yXH;Qh2xjzV_tERA}Rz9otePf&TV^z~D$%c&M*8mx{G+Y}vB$c6Z=aosqtdjdRLB zzqYHVXSTg(Xw-UXJlEeMHF?Uv?GB7zaKX5-EBzMd$VfcHA24SP9?9U6dJNBt-VJU4 z^P`|}GeU*%awoFa*12m$Y6mwZpP>PSmLH1H4q|F*eMW_x^lSy?8KU2b>KKG;1mPM% zxJD4J5rk_5;Tl1>Mi8zMw7G^pT*+Nk`;U1hv_axS&_<+CsVemspWZLzeZN#c7$4uY zb#L=`pKsc`edh$Ezb&)n(rI1!AisLy_LcShLi&YXU~}{2pcnl(w>~DjK*xd!hKrY7 z&XEf%`MdtCW5L8m2Kt<=zdIzpU$#YmRb4H|)2=lfsTnSw>uS56mr2!5b}{_g7CuKN zGN!(iEf^V_--oClgSa@CI&O@A)~At>azkPRbR;Bg3jFtq{HSCkHD4xHL9k1Et3-O# z`N^UWgew>)x>FsqDb5Q?r3>hJ3}Xo~#%Z}b2n+$Uz&fxWI0PI9?gH)yWCM!z(TP^m_TH{DU7^ z+dq_|Hkp|0J{8DJMyUQ7`0|&(d~Ys3Fw8ueJ^Q@bvwtRgR_d;CooN)>OdYmYsqe~; zB{pMa$HHdJF$c1@H;&(~Y{V)yo$5DS64~9h12|{AYA?E@F&d+)gKafb+1dPTSCPC= z$Vy>GbR~&;vA(HzKSXRi``>yulkhIv7!Xm1#T#Fn`wBMuY5n@L8?;|vT8>?^rl-{% z(|&!$42@s^-VLj9qx=Kw+1LCr^SHGbqFH!fs{rH0U-9B#cxRS_%SCf}k;H-~5*8e){T0&-!y3I#jTbOMLaXAW8Xm;(S zrL2QXklH1rg(akgC8UKVq=hA!l%1&~YS;1AdSD}U z0{K4&R#87fz7Si4sV%CEY+Fbl^B@K1-b_(V(C&o(G?!|_T~M#^TXlnfn03UU?CNWPIvbeBmJvWQft=w zQvX7vJsi&jQ|XTWq#&xt6*~SOoQG6k`c_=$xZQ$>l0ziew_1gVO&qIn)_AxI9q8CnNAK7u}GEoL!8FFLFd#6OBF~3(Np(z&_wQ;8x&H;6C6zz!Bh+ zz?Xr40=^HZJ~h$k1G2yjumgC%a`R-Jpe`c`!$Ak0zfo!KQ)s>i7>F{<1hGISGNOGhj z(iuTXO8EN;XdVGoQ$a1_dyA}&hMe~thV5mDV?DG|K zqYKvU{;|H6-u}2R8XFaSm!y7|dlnrfL@ear+my+u9N&^>*kN(>=EgavVwQ*IUBB{^}v%HO4Yp!ksFz5svetNcZ5 zxKesbB=Inx5)3(6N^q_&=Qk>tY@8&1VX`ryz{|(CHvR0v;->4nZ&t_}g7k*}8 z)216bU%L5cyI#Jq=Vw-b=CQ{fEB@)!x^t;sqUh$M$yYEAovid%r(^VAQ(!?y=wIzp=Z=-o}4pci*k%EOGoP z_rJJb1IfC?`mLjg5>m!RDD45(IjUMxmAy~3FhY^~Dw?_+x*=88AqTJG(whKtV&P9# zzw%*z@Fegl;48p4fFA(nl*ZFP1QIpCL@%;w7U{(zWP1^^y$IP}glsQDwih8^i;(R_ z!s`~{#fu!~xyWIji>~K@7XbB^1{%FU8kh#Q0T%(+0Ol~yMGo^^lz~ac!~yO;z}*M9 z`v7+z;O+z5eSlXU;FSk>-N{H?%u$3a@#f21<4J&T zNDGDnibyL#>q1%@QGB3)T?W2l`o+7aYunld{VB0zj`KV*_|JsFizTW=WloU*$fmF^ z-|}-8j<3G-f9>A>b9+Xjg~eEI%x(2wFurY1cJ;zM6t8{DtYw9KovDGq(2nbt*M8w8 zbHh8YU!1;psAufZa{mambR%`$!9;I*c|0_|ZT!NUR?mC$jf;hgZd#q+Hy@pdH>3&& z)~BexHyU3of2Y2+zQ4aGw{2?EbvtwOSKhvD;kuo}(f+kItC~i%T zFUfwccg2uL{{VT^3&R>_g4R8qN8wp=R)oyZR$6lAq113~LPn65L@-a#QY-f2p`mZ& z=6jW06(oL;h8-d*Cr3!-Rw*>1TioynuX+kF@v0H{eFT0Vp<59)PXvA+f!{~qjuE(H z1b#2(6V;Cr4=RBUp~jn=Xm)X zFQ4P(bG&?xm(TI?IbJ@;%jbCc950{a<#W7zj+f8z@;UqEr+|bT91^<7g|?WF3-#5`SR;} z(;TxsGC~1?yG(PYvp;2B5*%JgBsPr%gCm;~iG|@{`Q4J1+II3~>o8QZ1v5a(c)4PE zQCJ?;N%SGTQ8uQWFc4*9M%kEAHfEHK8D(Qe*_cr_W)!_omo)hlpI-sK0sH_kEbsIW z5o8}?ygo&fIK)e})W{2ryuio{jJ&|e3yi$L$P0|Tz{m@Xyuio{u)zXsu)xR*jJ&|e z3--uQ{}40s0wXWjBcEa9Gxo@582JpHn_=WLjC_WX&oJ^CMn1#HXBhbmBcFlU&%o?w z82Jn%pJC)P_Q+5F5ILS$%u`z{v@9odDCcs7HzV^p7qW6kw#uMrysb*aO@M9l3YChq zw24>_fLK8)V?qhiVgs*$hAW`q3LAKZ4ZOkzUSR{Tuz^?Dz$l4gy0aHNp*`;&!8q>%FaQ-$&qCtdgrcly;7?#X0| z#qxhDeYUq>0@kl*2_!(~v$|LOFz*G(p3qbs4SQ zsu@ojD|}udiswlLLC%x*o^oe%IiyMeIreo# zk{_LP(b_t>Wy@rN3eA6J8ikYYNSNzFUyx5c7gWn9LSO3Mc4`^LmQ1Rp6%5&6xu!HN z?3Di&xkU>RnlOnFA+7%zLWCOSPeuwKf&xAcd;)j|cn)|0_%B-w#4fTMQ3)EVg~XqX zhCa*>o&-Jxd7#7|Pi|RX-!jsd z33YUYGJSt~>E9nd{Oo0e<0>sE{aC+&DHv zo+}pr<*_i>#pZK zjqV1|n(F}HyZQbZ^?e-!q~*#UUv>SR`ysg4W(l;FY*^ zG4+exnoMm1Er>8x;ceNcUiZ2Wd#)-SYbmL*t-3y~-mzUGYMZbRiQQ5n9~=+231&Xk zyCk|<-XrNY@xH+X>~dI$(N$&mac(2!k1b`Pm)<<0Uy&&%`tIoXh4H)6EJ z1+Ig_WM-1O$C6(y-qoV2?F?(v3B$ePgh6=|h1j2~5&uODMN!2k)U&?dRqJ_f zWqpsU@8_xY9kkwH70~m#T?Zs;kP}tZ95nK&qXxyAk#uwBho=HP-|#Z?N8Q6N&LtnZ=uK zTFgvMWtVPJYZS1yyS`2TT3zU#Vztuyz)f$&cP71SuJp=uf?ny+KjK2vJ>p-hV>2`$ zdwT&NT%y8}-@T{rBx{(6tZ*RXd2t`DjAQe8*(c#B{Kiz#?- z@l2^KA($bb;*yf8ZHTqErF!U}%#JnWylp=#~y>j4}#hTXgK}8O5X=aTR%ooV2>Y z=K}q2puMZI^M+-k4Oc~mnh95GDYXh!V1sn9%Qb8|s9PL6O6M>FXp>L@ZCM%Ngs>H` z<`l5z6j1pKSaS-s9ZfU}0G(9`Gb856s?9Fyet_n&t*5o>MR*619nm82eoui|Kp9el^NfpuJ7>0v;LK_zU*WuJ8aG8R()MF z6NysF*Y1yWPJ~8Aa2NhTsvl|J-TrG1#tQ*R{K7QT%-6P`%K9q z&B!9n@T_KJk!EC(W@M3OWRYfMk!EC(W@Higjh024kwxUVQ=7Iq;Y)(~ri|7ZB`84N z<>)?Yj>+kKHwEJH0MMfTr6qAWjKO`g8biR9ur3lB*T`E%ua#O&Pylj-PFw^SBOWn>1deqnB>Os~ z?aUItPy7;LugxT_BGOg5-iAxgba` z2$Bnei#dv43GvRiZmQZRe`^{)4`AG%!+YYVf~E>Jkw2o5&dHqb_Jun`<= z1P2?z!A5Yf5gcp;2OGh`MsTo^{@HuFChNtdQ-FJtG-Nh;C!_9U)SZmFlTmjv>P|-8 z$*4OSbtj{iq#^qA5RJzH88zr7IYXrej>Ofw{rzK!RA1Ut*WwRF1Hp9P=()jI*Hq9Q z4)n%lE!>Rr7hLaGcoVfQ|7qZjR6g{$bR}@FK55U(jCt)D^D<*zX3Wcsd6_XUGv;N+ zyv&%F8S^q@Qa(^>Ff>7{CEHwLjHHf1yux{Fu&^fayZSh%p9WgWDI;Nffx;|Mm<0;6 zKw%ar%mRg3pfC#*W`V*ikOX+E1q!o35*mIYT6*opa#qX6&a_@NcT=5SHtXl@ZD0Pa zv2**PUB#f~jz9@y3DKR*8lpR0s@7D|0%FcQ;04&*4hAahl}ML%I8r+tsU42g4o7N- zBelbk+Tlp;aHMuPk~t#pK^l(%4o9ldDNV}0!d@xnul8&UlheZFv@kg>Oil}v)57Gm zFgYzuP79MGC9Txtv@kgc(}KO8Nl&AVxUi`Ux-RRAnSFZH`kQk6}w#$Kl<|3Mm$0nXUXP#xvTAy;PHLX*$vlttDz!70vFOz&6cJNCBP<9^6`UAa-Q zws>5PvFG>;)}!bS3D=l)wP?k5ZHu5iTG1oU=+q@8gT$GqIP(-|p5n|?oOy~fPjTic z&OF7Lr?@>&apoz`JUs290R*Zy=BGIeDm#`9%`MFC2p5ts zT^n7S3`K?u!;y~mY(O*CC%cCN1kA<;GNE*7BsD!&>dVc>)6==ZfmB~xsO7Khg%^B| zk;iwGy*x<$>fh8ns1JM=owb>8&$E%G6~~Uje+YopKGqogCkFqC!GB`#pBVfn2LFk{ ze`4^T82l&3!b=<^KT>9rG;5ug>dJz1d7eg?lzv*Cr{#HCo~Pw`TArund0L*Q<#}43 zr{&et26>)DRcdY9$&@v@gATnhoD6y+EYPfJ8#J{IJZpodwn0e|4OpUG59fU9XuharmcgO$LgtV z2o!YYOB$F4wgDFb*8n#IZv^fI%+nfqnuv*VES!Ft!k#lab=a03V?sb;RS_~7xd2w^ zGa56lnCf(lwU%rzUidH#`C_ps@HkG1Y&t@~K(K1LueV6^ZU^agFVs?3?@3l6qus#^e4~F_9JzRpBvFcl5<$NceJ zIyN>m=1Yv0uQ22Xe1LdNTW_-l!5bg=`;jBA9M*v_kb_E#&90HPMK;oFdq#4RTG2Di z{F9Q+gQ^PjaD`*k1aF!JhlLthddM`7&|8#~TWHJ^pycH#S>)Mdr_v`E&iMnm_8dRisFvfoG)yIioz)plXJ2 zsvg_x`%!Br{p)e1ti#y+SX(cUW_`s*=sFASL%Rg}+4;ISqf_4V?5KgglZ_3+kqv5s zVvOkJ$YPEmo1ux>!lc(acbF&{=YkQ>dn$*#ntEC4g3f|Avg{dVK_|pKEY33W(hA1B z1P>_HUYZ^iP1J1}ohJ2wd{24gdpH&drre#Q=LFGg`Yd$QSSEGCH}>+Z^(WT3YORx& z7i$jd+^E<0jBrsb6QW(Fz?FV*r5`(T9qAhS9CuEG(p13<#rHz-y-<8F6yFQQ_d@Z# zP<$^G-wVYTWfejoA!?5Sk{2L$^mJucJ63qJaDzg%2esK)jPXiy5?Xymm4PL%M4NP# z?(e9RjkbnaF$Y-Zjt$DJyPG`BdT%iOz=`$&_kLv{U=d^$;;e$$3yOWpUXW2VVa)od z>p`^+pVj_A@zW@Y`i!{aY4^jANB?T%K6_j~B_5BRG+ielsiu*C;`%)`AHOF#?c%R8 z^U(nAG=MvD0%ila(*W)?fIAJ~P6N2p0PZx{xYGdcNGTaPB9gRT*m&*C7(1jON;6Dd zOvOs|lnkC`n0hlzy&0z73{!80sW-#an_=qBFm*99%d@p*Mh#XQgTW2Tn##!v)2Uz} z7WR9Z+#YZwG3wr*${>J+Evv8C6$?tqL$Qllf8u&SyX_ zwi>)Y$qZIO^D4al|K_;FzV~|TTxG|s&`qf!BXrM}frJvO9ehSHu}TIy!_!D5JiABn z*k15R9~9%zO~*89=%!Q4@d!rgv$dB}U09psPqLX}jMrBjN_rChJa7_OIMJ+{G)7iU zL$m*bY{^mAl6AlJZrs$Zcu(X=Yl*1Q?63hQD{kf{<~)@lCp3^y|602rcwpm!2fnKQ zUHZ@mKJXy{p*3!tHzz(%QtGOoCt(rIvWAHgrLxJLCs8Q<7^*O7<5|esF`lTm8`c?lmm#(BH42P#vizoW+ z&#kVi{`?nzBmJv+6?&nSaKPSIa-}T&l zj;Lbk|0$m1sjq$x_sMf!tKPrh`Y`t0VKC`D#}|3#REjZ(0Z|;Y%vF`@`G~DtKCjFT z@i=o~-c4U#ug17w#pw$*IQae&=6B6?hZVOjL)hE@6tjT%HoOvoeg96tVd5dFDs}(FF85NO?ibzI9B%>mdQ4z_gh-6em zGAbe&6>Z6=h-6gcb-HhJ^ktB~ELEgyQvk=&q-s(k9Y4C^BaYQX9x4VNsm>(@B{d5g z=Ot1xXP)Z>1W;y!n7u$zA6q6HO$$sJzntiRChkvoC9sc*Sr%u*1t`sGb?$madLnZ1 zLV9C987u7?*|c;;su11CWp*y40+Z*?Z93{39PLkzN7~Du_73Fxr?<4$&kipQOgBE? z(m%8~npqi-crLlLVJy8Vo^JR`YdF6;F}OONs@re*`;z_Mrf2H{@sxGGKi1pR_?fyH z`i^1x_~X_W+&_n*W|Z^C*N!qI`)tir)mpbAD@qKJXerfeEi!?uwS1bj&a&27d#$sq zwU`OBtaX;P&a&27);h~tXIbkkYn@eVEl(KMYdywVkFnNcto0acJ;qv(vDRa(^%!eC z##)crYdywVlNx2#dWyctT07^Jo3(ZnT(j2B1ycaPv8L86z6p-g&VIG{4J^JyTj|Bm z^VU4tAjd$P6O9N6eK7=}ymF$11(Y-0?B)O4<(I^AeY+{mO z)v5UY%NE|XFkBihmpl3szFe`jek3v9Khp5=Cja1MIzBzr@7cViJ{vEEV)gH9?oE}3 zRxWN@`kQpR?XkvbYoII8-QMs(J=G=TES|SnpK}*o5zLlf(K@k2z{u>^GYYBxE^FLE zThKhDG~PD8NqGWUX$i`V+7VJwRw~L$MOmpRD-~s>qO4Sum5Q=bQC3RADU_}oWu+t# zL%(655*=VFTR8J?tQO9N>evcp#;9H)yDpw|Q6e&>E>fUo-*sz)gFhj4Z>WI%qp^+Y zNMw3rY<^~~zu=#WEe#d=*JkElyLn+@b92M+>P3YKYGXF6Z?7MXk47SO<+~eZMh8af z_gfcjyRyT&vEwByw#?^`n9sMW`TXGj9rNjkyhmj^SVN)LQjS6w`jVB@wl3J(*-g~m zhP*vdJJwE^sL{Fu*51lQ$vnN=J?_2%1Q?Q&w#BY0cqew%Q{i2>f_GBz!p6H8r(dne zkYeCn47`hhcQNoT2HwTMyBK&E1Mgzsoj7C^-o?N>aph>dOIGl%#yDmW(V-00Xr}Pa znOco$c+rq0>rXL>4!S|zyE{BqarW|UnasA!XXlnLk1zGE4h?PbEe{@Co_jnru{k3J zXj+9siGMmf5R_03t=LRg*XLq`%)ZZj@47-BT*OsB{%QjtKhORHOl*`cdW$5}c zbbT4Rz6@PohORF|*OwJtUuIJdLNCOfw(O#!4l$Q0o+~ZeUSTTNIQ)1)tX&J*>!~Jw zN-j)QU5LsB$WO&gxmhl3))fh|JYVW(9C2;t?QB!5c5?ol6p&^t57Uq@#un0pEu;r7 z)PpUg2VtlOTSyPKkREIyJ=j8eu!Tsxkj5WfvqnZUrE0dzXy9#(=7?*GcPIyl7`{*K z0BI1Mw7nm6puXY~QC}Qa$Ws*b*U!Z|F{v?37k$Ln+CjYz@Jf|_l!$VDG-#EJ&A4O5 z%a-t7-x2EVNNzfBbnBt;=JqY4k;!bJt1sMs@2fm@BeB*{M_+Pa&_6KQn)I)Z4-O~O z;r@kqba`u2N;^N=&Lm+HE;UK=-O!OdA4 zH)p}kS#Wb!{coLr_XCH3!@ym@{eZ0JEbAqdM$WjHRVTd4y6TpVo5rHx5QU;3TCoZh zN94kYT#zh-2I6If-UblL#Urg_fnDSoSlpyzoWu~(We4(h(Ivj<;#pn%rVCu`0vEf$ z#V&BM3ta317rVg4E^x7nK;AC8*F_+27lFK81oCzf$lGP-cAx$slG`1lgOcuW#5F=U zur&%v6&Gay$N*BBWIM1IxE8ntxC3}Aph&7@R6Gud>2atsC<&NcfEs!!L~R$K!9=JN zJgZPuas*C;sU6$BBztd8m-YwdJ4yqin+LsjTwmW93pBTLdTY2lkZ&36UPy-q!|^^} zA=p1X)!uTQ)z!Z#omj{R$A;svf!RWGJ~G}G?1)Zw)-|^__q3O~dt2IDdfKJ~bMfwY z7t27MN%tXQoqApGmfEnbPzYPLtz(_!yPU$SYgBbt_=Uj)hf0|!M(2XVFQl-huAU{; zDBa+K{RYq1^cyrLNDRJ|hN|aN%0h{jE;^J{3bklUou7ds#k~cHh4JzaM*$01T|fNc z51)DViqC%bif6w>^Hs$grmS7%KeMLGzdvfa*o|SpW5lU;N^SK6dd3-gogw9)0@hr(Zt4ea!0o z;SbB-8QVVoay3q=4fJ;MVP;*&DBejl`N}h+O0O_B7B)I8K4Ag2lfKj0=EEn0B;4%OtnI}TA^I1vCO|DMoD^x z1dEE=6X&zQ=OCY1-Z5qi3}dXlXqk}87pt9dD>vN<+y|(*y#^nXt=M!G$y4hyRh*i# z*GKtMgk?|q-|qJO=-Ywow@zFTSWexzF?q>)vAs0vc8^ZC7uPSD+IVSVDR}BkcYyyL;C~1B-vR!2Fb5sXL5ISB zvA7CJv&mV&3s#myVv%9XsHKFpCwR%0^G7=`TZxSLQa$nHbW84+e&dpNSiimHGuzJV z@@)!?=l^g^`3kkydyn5`9Y(h3b=@vC2RUjNl#seG&PkGHd|;GAiDm2k9~(~Z#^hqG zdwnsG_YQP~6UpZA^|x%?V(p&2W8<8To`s&N^s8sfA7nUmKjd1b-s7djC6!!%b;LD; zq%;J~Fe1scYSupMA!HmAfYnSR2+03L(pd-g1BZaaz+J%ofRG<4B_Bf8((aE*Tk4u* z_9o%slW0(rXi$@AP?Km-lW0)7-sio18Vza^4Qf(t8qpmc+e(eXWMT!>v?swLZ7P)W z9Y?_@ER=W-NvG4)kcFi|?6Daz^bY&Z^D%{kerpgS|UPcExt&avRZeM$hTxK5oa5mfMK!9NFmY z+Y%mM92{623x~%R2L>0%3DI_yuzCJ6HqQ~}W5M;2qjb0t!>aMijxt-L%+@G>9c8vg znXOS~Yn0gpG9+dw^{)}gq_Ac$jFtHoj*#(8D?Qc1CgSbzc=&!G0o#9vnHPPZZw^v0BQB1m2Y4)-d56`ZQ zoO8osefw}nB;p(HABit@2HwzV_yAPBW4Nm`+z}XVO~ziA+g^-Z-4X75Q%9sLoj$yK z`OwZ>YN)P#ZdZ6D(c4}AImHs-=7qYJhHchbVNb-m&6Akj^^K;sI_qr>O>U75NtkuF zBL{c8UN1t=iE^+OTqJu|1emsp6nwh8ZKeLy!J)Mvh=YR%Izq2D9E#Ok3%UBlD$Nxn zVN?lz-H0XXe`ke z3zJnB3~}hH*fF-r9ot-7kSawDuvZa%Voa<^Oh;VX=n+Nom`1Hd8jD6H7)vT%zK8;N z=}O}Xs-y=NA(BrY3oXg;A$ljOi41c_mA%v_k>^DU5Ir#u>gVZM9%hwC+R7ts<&n1X zNLzWNtvu3}L@#66c!O}Nq-X^7iS9#-R^TtzXj$-EM)#8)9fJk`XxE@` zbZE|Z3S&pzsBfTKY8J{~`V01w)EZ8}DTb^&w3V|9+!QOPjhk!>)=q>X*<11{)^!Q# z@~Xc`)nqSMCBjU!!7x)qRa2MPI^;gd3Y0K@`-WDOdmAlX6+xstG3ZA46i1PyU+5TEbL#p*=Q@+f znd_dbxGuX&s)3GD&UeaMu=#q;?A2iKk9X}lqSR4#%IQ&hh$%W1N(*8NDhtXAD$9K# zJ_Qvc=KHBpTJ99nfc!EI(mH4?S8`m*pMco5xj;}|JD(k-ALs6g%H7hZ0#_!@744gp zyVZthOo$GufDKVnAX=CLi!$u>Qj(n;yfmdKd&a$U^_{B+w%&A2Xk*jnOBUa^vUT~r zOP6d}+8Mg`m0QZ$EBf!T-h6rRo)6vGf5CHu+sf}vZvV(!#Mv-aTjt=w^0#ik{q{e) zp0260bll&-KGn{?`K6<1HO-)=a6GXQ*y=+wv{9~c8W$)bTu{(8Qt{{42y-36L_4aI z9%|^AQw3D`pQQbZ6xTsZBs(Ta&UvN02_Hm$c*s+$a`@-s8e{}cy`t>(|;^rIH zckF(2-TH;{AMM=0`1ZbQU+PZ3^xF47vU6t{s~h+}cKj9Y8NqALU%B-dQJvOBGAyw9 znDuFNa;b4!axGimJ1UM+{wL#?p z4{_h)z$X9#RT?Rp7Ii%bya0GEUE#n(8ofXomH`m$0?_bG0Gt}0}g zv`}fO;s2kmIXeutEmSDB6L)G<2ZKw>c9K9o6$7Z0`?G}cf~-=?RpLUPgnC(EnQZ&% zrvdbZlM8W4(G1(aGf8pgM#a5U+%1Jz0~tXlk-rNeV~6TmaTbHEFL zdFAOJVqUqzZjj=@Hp`n4+BPFc1{m}+4k^ca`XUHweq!VUrL#%C@36vCkp>Vfb>-s( zgiu(n7^M=(`3dCw1af`?IX{7%pFqw}Q297P<>LgEj}ufrPEh$cLFMCw9$X`h0FVJn zz;<9Sa4nz)cQcJQ0#Y}<$jdo@Ui`E6(eK75wt%T|0aN1wqh7$&xPYl~0aN1wip&D0 z#sy4`3;4uDC|JNJwt!D;0iW0cKCuPelO`H{Ko*z*)_{G$b$~8zb7Ga_nqBA|nSPQF zRup^p*QYOg_1gB=TsA#@*=x41z5250*u+JzSXp_+MHBYtgQ4{?Ib3OAX6NwOdVkQj zni$jusKMll&)Qx6V|iHhZ+XV~@j*80=;-d*cp}!tosXJkRa_*M< zg6bWLA=>Ov;;dK(Ax;0o_Ns8q5*(9b6g0<_6BkPm=Mo&V1jj7FF-vgF5~x>#W0v5U zB{*gYj#+|Zmf)BrIA#fsS<)EQOd|*k0kgn5upc-CNFmHIX#D(7!ZJ>=BR8?8Bmez7 zvXddqeN7CCbqGX1j!|W#G8CE?Qj;$1tJsumjn{0qv0FZ4g$r+5w$Xd}rV9(dK~!V# zWvRCWM-skNA^ozKr3=n}uzx8xR{ikaP%hH-KI<)A(cy49|4xa-Lze8e{>XY4vQ`^n z%?FQ)`$1W7bq%xzh56(=bE{O!Yvyll2ozd1?XAd?MwfDQVkh;`ELBbPs8K?klsS{V zWm4w&8OH;;VfY>-atbLZK}M^|5~(BpUonAMMZ|KX%t;Ki9IvQ!R=;(}M$<-kczJoa z{K@d*ebyhzDMw#>;DN9G$)Eg5Kf7PX-Dy2xJ>h-_<1Sba$ax$ssGzdXDIQ^@X)#dL z&cJ}00maLHvRu}Oc;w^2CxB;w=YSUg!^=+p5W~yb;boM+kX_h7KYIZ(++m-2*k>O0 znTLJmVV`;ULLQEtuNaX&LHiltIp77ryz=x9F|W+?N=#5}NzsX>D(h^F@D3aO@e4mB zoOj6OtaDl}q~(Iddsx`r^r^)@SECYI>p(=^YBsHtRym`h$|X`%bPZKZ4ZoOnixJ^d zXZ@zV`u~|9jtqD7v?lzKeqS^h^^GJ-p`Jk2A5z~OyqJ$AeO>-`Z*O;JS4&ezALsVP zy&+#$duMZVr^s{ajBo2HbdQKDXWfcD2n*E!AX2W_DcXn}BR5_+@gpG8Q-E@OHq!_K zL%=Ms4(taG0f&LRfcpXQIt?gAN}|5%K}(4tV;AuJA$CBnaz(1-4;(!2SFYc*>H1$ePd?w=GIDt9_S;5U z>aBmMv$oWKxTATzv}t;2y>#$(>+7#OSd!1?FL$(z7E5C-9e>auj!C-XI{vR#*8M0L zLjDdO5#>jgF_9-DP5?>D8K3YIbMwvlZ~ELHJ+|q;^1E(o_RN2C-u);)!)Iabvfd7F zk|12eM@%v*oCd1k@lgEOYaP7fj>U&(-^0y;@;9vA;vu$5tBbk*4Sy@3gUZ+Sog7?434y@0|W2B2r1fj2xTSEow6+%E8e(71EMXAue^IEtjmX)^)`S zsaU4Jt0&;?347b?X6m|Q6RB7>*xhZexbGRcaC0`CE9AoA$!)pDk&9Nd;o*s4`8Ld2 z?LPjmt~V&W@QWQvXS^tk5ELQ09HY?gl8q4Vs{0#VDd!iO;)&f~Z1fFJ^8|@sv7g{k zPbrmr)BX)Mq$@$e@x8OpiD zmX;hyIhpiZy|aJ($FqNImA?4Jsn33PN}g|(tY@qnYH-O5E=8;-tu^wGhT{TTTUX6hC3AmpPwF22{}%bz8hT6WE%&6~@|HB; z>4l8<@7xQ#rxOd{E35Lhg!?owXOiL!tNQ z$){`Sgj1$mP;A=(*TA{@EFJlRK-Hm#()*E0_!!B@Upqao^GP#hyv{+9Le z57}Sb9a0O!*WdpyQ&YbqO+e>;=^Qkj2d38Z0PDGhj!6|4H=iDaPl>RRGC|B!G3BqX zm#Ht`VI8)nieFuN;&C~^x#qVzCr}frI`!L9F_kLHZ*MK%X+3#h@$n~?zDn8?bNYGK z_*0CzksWEMjiJgu+0Yd4rVBPLmSWq|kpaI9UV5?}M7XC|{D{GYi0e|uu*eLaXFtst z5O|t-ype&`<0bS_ihoL+7AVU?h-HDoHV`5y87xAEIKD*aElCU%Fd#>MDg*RD>fv=#K$Hk8g3PkA*GoC_t#hNp7j`M%&h&HU6*Xd!Uwt5!#MS5I$GNBewtcTb?Fz2kd) z52)|@I`hM#bd#gCK`c_hHE@)Tr0dp0#n`C)U8WYc3t9^8qB6dCDMWr``yerPiyp3u zu2WNfagmzxd|pKbdG|%8l>D)WRfTnn^BZ06$B-8!qS36R2|RMNU&nExxtElgz&qlB zyc3LUSuel+H+%l#wf{0-e!<$lsc=sDqwZbDu2yvY5%*2j^DILNA^p2LPD3;eiPI1V zalMXe8-^+l+Z28nLOl$Hm%}}Wq42{{_+cpgFcf|m#2ALc;~Rm(ODXK2irkmv*Py~E zIUPh=n%r<2sEz^Iiki6<`FtyC=2q0qt*Dt>Q8TxqW^P5z+=`mHRVxe+(s&Gz@KCAC zw=Vh8GnHAFP(z7h)4_%<3_^q`@mfo$UY5@+101EjDwNHx2Q3~{9fhkZ;&VCE;o&%T zRW%QJKkBI$(M8T-l|$5?7@AA<^rYs7f+NXrOG`AF@6XQ5mHBLcJ{fIk2`5Lax{2xO z34byiXlx9GljX8M5$SDe>Ww7)P}D~vWAoAI!f2#Nr~me-@AG4o@5QBwiDjv-?a#)1 zmTts-%M;@(;FsiTJx^TFd!SvTRzIdJ1{DXyq*b+YaaJyFuUwqfh_iBWRxZxU#aX#H zD;H6OcIV~&-}v2r<9F2~B{Sh*Z4 zmt*B}tehkYLpUC!@faX0*GoU0T6qovi~q2pN(aHKr9)am?6eS=8Uj~CU~34KGK5MQ zLZu9$QilGY=FS7Yj^cRyTO>U_S-m~!$tq91+A5Z0NtSWL*v1B9gRv;4nPP)&urUM@ z2sMBqjSxyg2q{2-6o*g~YCt8M%oj^K`=-Xqx_4`txS+K7qJ-)`;}#8z9hfSutl`5JO$4U+mwyc$GPI)n4Z6t$UcO=gr%?2RO(H5L&+b z%e;MHomjx5MyF1!bZ|12sP=pxR%Mn+mCdm>=eL(!l6T1^$De-M>3SDF)c&sj8t#?- z&-6bn?P=Hn`?q?W`yN|rntXiE6$zr!f=q z78{t?2U~>=%KJmVGs)q3EdB7Acp@Vn8PjLtvJ5H_CY}f-O@xUj!o(9{;)yWvM3{IY zOgs@Lo(LW%!o(9{;)yWvM3{JDoQaQ}iOdY;11syT{K6v?9*Gwoq3{TWM<_f(;Smat zPWb|)GqP6gMywu}z$~g_UF_y!EeNM$K z&uMNfEvc_BDQz?jQ9n3Z*d&je3QHOrOG+C8U3Q(Gs(a0usM99sSw0Px5hyfRMp0Ns zBz~C>iydHNoZF494;`vh4QOT~G!xw@>ahX_jla{VjA)LO00kxgD)NtUAEc*&fz2Qm z1k*sL?kS?j{4F)p5hCU5w{J{|xC2{GAnWq@_r@I-JmxK7+oxIJ-);)3ss@pGA>d~C5Wc#tVuGsO3-_0O!SK?T+B^iA}fPRMSr z6yBIyTANqdo;|TFIw`Mk(yq~o6?xx^Hl?RGMPm&OdUi!_Bt2SF$X{9{r?a#?zo4ok zHQG?}Xi0ANdxeAqKT+5Q|dRcY-5gV41;PP9rEFRQN1gPP?uc9M!?v zde?n9bf0`B@R!nyl__LL=xPKf#z~@R+6lKO?oiyZxHE7U;I6>kfV&6x1a32K3ohuY zu`>y}%0EHXonjrxM(mQ1pC96gDc|ao6#^oM=RG>1qk}c9X=!c8cjtD-O51DlcH5zR za<)EVM*E~0McLoWiB{`tE{~3nH1t;QvS&$zokdkGZN4vUo=uw<`fV=bNm@>9xNRMGJA6Q4!h-7x0jZ6=60X& zI-z(%d%K?96e-zrm+Ibz$oS~x{kv30bH0~dG-Fb`Ofg*B9|A3lB78lG>YVm1!d27u zzC7vU8#6zarxsR6 z3#tm!wVqng&|6hLr70S1+MzPNehSAVM+$DvtQ?<{U0i{ku~t*`Y`w_g@k|VA1ygZi z)$4Nw(Je?T`X@8RcS=izy89nLa%Dy%QzlXWNPqiO&>i9?qbx5^7u1v$x1@Jsx4nl55UDZ@_I zK(3mcOncm+w(|#F3qw{e#>@JK^ig ztEH{Vg0_-@=@VHY8BzDSHr{qa8&M{D`Tn{l+VZYwX~BfluA;I?Q)+j2V($3z?8=7Z z^zQ1$33~R!#g#Oz4|R7_C?|7Vd0~E4OWSh;{d^{)n10R;`dQYvjo#0)`>5ztu#|N5 z&-;{q#+*?XR7*#9ceA2;N|T;_Z+)5cbazv3tfv_Q?vLA5v}F!7a|fShMyQE2fIn`L zk3Z+RTu57t)xi<}-%?hg6N8j>5JzOrX9CLl{||LQMFU;+(FSqj{;DbUkx2cNs%rmU z-P+O7+5%Ob8f}_V?vn%m-aNClWyXw_)|pP%EIf_=VJtp4Fm9eVXJGhHD%KBiJWr=> zjA+5pIm6A}i1e8%3L^+p-jwd#j8;;oU%87%5w*~Z4mBZUC!b%8307}A>kE_OY;AZ2N;10nZgZl>V zd|V*Q4(={gMHzLY@(lEn!Yvs4f(tZ-&t*dp`4B`t1d$Ix@3Qu$jTp|mz6ax zCAXrqu1oqZtf#7b&EtrXclr1rTiJ;`=*v8U7lY>y4jnVJjAIbQBaTc%h4_iuUfL}y z&SA4?w=CK%i+0PR-Lh!6EZQxLcFUsOvS_y~+AWKA%c9+~XtyldEsJ)`inrU?nFQ^Y zMNhLL-*MRL_I6p6AfL7>{23Oe6Y$uxQO~w_PoJKdF)k}HAvqzXSWm63zOP})l7>67 z@7naWbH@2NHI93qWqA$~XxOjYb3Bu}0yQd4| zJ6;f0L%jW6T0SZVVU5IF>cT<;Vbz2!b7>itLA)4gXS#T3EP}8);_dC?VI~xW4W?y@ zUJw@5%hd(;7|wWk6H?vj-XlWTc`od&fw1xVQe9;y67N4l!j`HP`gOwI9tbPYD|DY- zOV~RDVcBL6_H90uuy+T-V)`d)l}r2HV3>E9K1e6}ZR)M@+m!onIHA`CaVUY_0c>OMdQOr;014Lrrb3B6`}x3u#1hPyIh+G^y}$H1eo*ky z4HG9eRAfZ5l9RI{8IQJ~J$KI89hoJQr%bP|o<5~3(Dg;A*Lm@J$#)x(WE}4eGhYn$ zbPnT@)f08NF5FyPA8rNiINVvdi*SSIiUsozS1)%A*x+Hq=QTH!$7@yI(A+V1Lq}$D zSG-o49cR;CoDu7-&{Zf(3Yc{MWcZv)K1f@UTA&+A0o}-Vimhb+6Af*AW-3~IN9_w~ z<3gx?A=JJQYF`MoFNE3`LhTEo0fkWe!Z@`rWKLD+=2TL`c;RkNiA=+YuqUTj38|BU z6a^|w27;!Cc(}#S?7io^?WiuAdAc*U0D@;NCtj_4$ePgnV@`=PtG;axe7v z|EvN}t3URYBy zVXB?nl~|HrQI&jRQf9Qaq-}@9jw{9&C7+a7`9xts@-a3><7+y(1hv9^dI~vDKJxqX z8R6@}4!>e&B1jG`<1leOotC+V^tpZPj{c*!i*W<^fRHjt?*qxtdV$2U6}A)KdhRtWiGAoT|X>F+LUqYdKunIv9U zXll&+5MC-LMAYa`U*dM(A+CbDxXn&{-Qd{EwT>g=S-6XEaw4Ma)b7jO@y`kWt$Z!x zd{Dj~x|DaX(Z%uamJ~gGFx@dfLK??WrMcnVLn%7fR)ibZEYF>9$RrkEA zlCH*Rw6UwC)V~WZFvU{pH~Kp=Q<2G)Ki`UDK_E|Kyvk>&EIyaFWv!c0aYVbGv18Th z{v#zl%QcaQWDaw**bgWB(cqDi#{CGGPXA84wZ(bZOvGd?@HG_Sg>G`+Z~q@<^N zN|`J?)$AMnA+j8M^XlooeTkSTOqcgb19vf_@o_f|97%)hr$P49Ap2>M{WQpa8e~5W z+)V>_<=8`6;GGuO%FAhLac-0eG-@(L2%fV&6x1a32K3ogLiu`>xU*FRrU z);l&(2{D!y9Cpg?xMet>l*&Wx`K@lw$UlCE$=PaRKcM&AZFa}}+_K!>ipG{HjpVohsWdXDb=tzLXlX`zd2!CFw&~SH)rG~?W!0s+RTo#3##$<)m0hj*Wsx+i z(+Vnt2G!7+`-9ghH2<=p_ElniD7?{d7Y(EQpD{r9f|EYoqB2o6_}hO-oMcv!kTG;f zkO3ZKfCm}iK?Zn`0UpTtw{eOnVuhTsoEKo0 zFD6tByvsV3vemT#ozXO=b7TfA~L?Y@lhT&3D|NS3RL?%s{SYFfTJ z-tr={v*87<3pW?nhg*R=4kz~Y7vTn5zJr#J^CEwrU*Ra7qqe+olzi9nFB=k4swrc| zQd+2>q#|d0YgPV~j_Tq`S&X~NXnuKq>Ip^7m3gr)cCKQnU^KTrJFl>=y(lXsKYLtO zjGbBQN}@S6rJQ#s6GP-Vz)Z(~CX1P@n5+9{>tdwkTfZg`wCYf9AoibFfFicFRj?ad zEbm7%FaNtP*ZZ~9i~L_lzwb@Imtq&TgZ|MUR5!fIUzskmPmz~}oFgbvj*}m|>7;Ht zxtqCLH*>dc=5F20-MX2(b<=j;%-y;{0g&f1JlEmmt8*rKbi2A{`gqk0UNy(@su{d$ zrq5*`+-C5q8N6x+ubRQDX7H*RylN&>84h5q%SX=S;=`N!?;)ft!N*?ku@`*o z1s{9C$KE(Tj-5$>kG-^M?+ASCh;KcGy_w8N^7Cb}xL6`M`?H7~H;~R;MOItry$kCn zmy~wa7fz|Go*b>86pc=*k4~OYl;W3KQL8syh*TsB0VSjD0Y>BD^bFrPlmrw{Y#!~A$3 zj-5%+hxzm&MT%Z?$m$>Y!tH4JRMQ?YB>b&aC^2Qx%0+PZ?eLmN5NNPrJ z_4wB6fS{Pv2nTaPP;|CWQDpDC$+5ybp(wTO#hH1vnXwk1o>Z6l^hD-kbkr8+B{fbD z%9ff53Hqn>UMNB70_nye&a=bfB9)ttP>rL(03K9F)b}%;x!Vw3ss2B>3}3i8E2+K$Df)%|v-?ImHdsmib^H zabhtehX1kvWT+8;RivtlU0HQnYX4?kn5xqrJ>@TdKKXpfYY8h_-!u*6RV%w#`t$t3 zwDJ6d`6lcCL8VYmPEA(D-&`KLBvlvoZ%*w;r7QVOq;7MD*DauELEYp8BjF_2g+onY zc1RAfnnXP@wf|k6N@lyAa{kGGc6sed-QJ4V4HR+T3#4wmA!*}v3-Wh$)1B6`bVjd^ zS1x#AmtTkXnpt2LlfgK6fV88(PKL>LBw|+fKOkYmi44R+fA8WXqRfhHni9(tIOu~x?kBUcSk^?-W2S7qlPs9i_p4&|gO-&Oe%Z3vrMabse95r`>bdn* zKc2VQtkC@f@#5vjbX)%e=I}xjarvoM>}O9ia`NLq`GcH;kM3fjJ;YeRoHlXcs@|zb zESxxT;Sp1NS1p{Vi--QlQ$Jrt`CH6QXkFxV>QKP&rsmuHJ(&ZoZ|Ldx&bk5Z}xBm^^qKS4o%(YWUfv3sP;{=?@=W&`WCR+wdOb9;a zxcEf+4-Zh*!IqV?x26Aup8B!fER)u@v8-5=>FMh4(DzHTn^3>lmeAWt&$ z)q(;s)+Sl@AkD#R_D|k=mwtcu3CBEofBl8m^zRqcbIK2kpX&eW`!zS~ovE?lmQoe^ zJySq61XtoX$QfS|w&4D_;-im04*E*%ZE|=wIoB*c?9s;&Pe<;j3|%o{Z}K%oPRE~w z>2kd}${dC0l84w+2@W4?8fDa{z<`8TO%bWa`PSm|Wn!csWFO|(VjP+vfl!?UWUvHe zumtEw0y0VG-?NvgVl`%c_<=Pp%U#$BH8&%K%Z;lcg5 z0c;A^L=LWT+C`SR?4kw(j+B5SB|tRe398-oPai(aAL+9N_BU&tcxYxK9!e%WLPI;{^sas700t z#us|lN*SPxWGz4D(;p;zOlp$7tXlYYbq&hrt1?vrjIlcVeGse6dylC`3|OhkfmN!)dzV2futrq^YgHAHDY*9zZ(0Lv zP_@8D=5lXCXX}9zR0D7#+LZq=U1|chs0qMU2isWn@fN$YHv`*|yxxKUw0dtM0k;7s zt4Y8v)edBi=lz@gtU7`0rUUHd#L$1S-&Hqo2M4FA9@fxKS5ts9R4;I*nhKnycJN+j zfz34FY&9LYlbYfE6T|G8z`1G`aGu)Hdrj@^;CwY3{{poWa2GYldsXeK<^mV0dBEM& z&faFVNX-W>Rttc;vljOiwTIdjxI`@k?x}VIE(N{}$yfy3ODzWOt#^#Ko1djStrdwVZ%F5W)C#fJZsFmT!m8sdZ|l_pCZv9S&Tt zjsPCRx0+{|ajXV@MXdoIr;hZVhP)mH{Hj_D{F+(^JOTKWI#C@B{JL5XJV_nnJ*iGs z#{y4LUjd$~j$;M+Y3g|3>FTS%Z>X;U&rm0LPhbdtBJeErb>Ifz#GVq(~ z6z{L^Rj(3^<(ut;HBz3;7`=|fj?E}dk?CgIrwvR z0shO>h2ADO*+sxB)DM8aP(Sqk!l%=Vfmf*?0k2k<0Dq}|?EP8&N?i*4wfYJ0H^2wf zM)gzRZ`IF$*QlR+_p9Hj%YfIa%YoOaD}dLlUwHR1!@ClAqq+)sle*fw7jFJb;2+el zfHwp0QMagH18-Ho0p6xI0&iEp_3l=8sB3_KRKElMNnPvRrS4SM0q;`R1MgNhcy}^; zyb*Y>gOq^(e)W6rPwD~n2jHL8&A`8?Tf9H2P3l(QgX%WmL+WFRMqrKOi|g2HdRv3Vc;P?)@H~{RHrz>Tkf; z)sx;$>J9Z2@L%d_;J+PwQ$6F|sNPb~0{^3)1HP^P?%kl?QO^V4RsR6Kr(W=`M=E&{ zxJA7L{6M`7{7}8(U8g>B@MEo)F;fV*(%Z?*nb-;LTk{YEvb zSfp;d-!hg4>Bh3M9aqfSsQ2d|(?~#l44-W*o4wIi&0e&$qOWX2*@n5xHUo~*=dyU|#%Vf%gdhzfs*jB0#H=0n>s2T7o=ii5+j$ zCoLp1ZWXa238;uw#HeTAEXocy?!0*Ej?^^P*Cdm)2F8^}iZu;PtwV^-cy7ZZ2aGkr z1M}#+ zBx@N+W7H2)^Bd;R4<5CNj~uwkuWf!$k34e!xk&it zcg`X=T|R#nzaBly#q>eR5dToGpBo_*IPy0%{qSe;C+<8M_h@+Xfn5D$!ygW0H6m6J zK6)rkLW@Y0f#)&#Z`9xXiK7M&4UFe9tWSs#|3ChGXqv&IhlTb8X+}#TVe!TqmMHiq zUfj0N267unKHzbYN4%mm@j#Nn+-A*pKLW%jF$U6&4`R70fO6x<&z}!U^~{%Y@V4pB z9$t-9ZKGr?Q6xKgG>a5NUSw8J=lssj`MR@{N)fAE_XG&gGt0%3{DRs@>vZ-AF85F} zb)#4w4!r8b9x`)6i_CWqWg4D z4?lRVg!%DM+&P_uAw`+eWs6)~ndKOCy7>u7$V#SchJ=3;7I%zPB`>98L$--k#1*FVX7=#QGb@4X{+82u;DM}M-tp-9Uken^k( zKjpt6vzssB$1HZ6AA3plGq)S@BlIIb2;V5FMnwOFf9XGR8k&c99WA?s83@0j;lnc- z`^oTlqy6W-74IEpnC|Dj?67nM_6(*a#S37$qF-MgyVnQf5B2$Fc+U&YGLIbidB5TR zO~{`7M$3~{c$15s_FiXp@rC@D&;QSU%viST=iTc)={+MggVreTqyGlCne)2er@g25 zi1(Ub4y`OL{F!k$j{k$NC?kQ|%L>*pfAMnS_c0@m`oR0w$aKu0`T1`<^4X|aeCEJy zbA`HZ1(*N+nX}rC1kmey{Ak_--rq)IJ>y^#JmyYHf0Czna$V2Nao{&dr>Nm3V!i1- zhc4$+e{ouit_lk4MH@yJwP?El{PhUT{|ZpEK^m%`=U8+$*67rX*}kovxXhVo1MNl*BhqkZ|z zKfxVpID(D{pFvV^{B!8DIR6=53|Q;lkM|VmCg8Bc;|%^cm>*PUNV$GGzXT~6EEc*n zEVnVr|J<#MMn?^fzQHKM22?(0kqWYvCjO_kBjw zE$Bs+_cPo*;P{>1ZQf73Z!*R%gFf8lJuaz6|Bc3x$>k;7kg`Xn^=^QIIVyl&PI-^T zF=}MI?fD=5{C542vKb)~b@V!KS0*DO`LgDSz+wM_)lS0wG)_A#QSgu7KYmMs>-5gh zA0fh#ABQu4Lmz;P-$AdwCiGb-H@fFBesQ`!{IOuiC;jNp z7XtZ>oIh*(4vo)SJvFi<8SUgRP-KTUe9VFxZ}Ra5jjI1v@LKrY-+0e|NnG66Gmjw> z=3sfB`kqfxy5oFO@@J*8z6|S^MlHWh4gnVp!X6~#a>u!aXJ6_4Si-$?n6usCeA1sX zUe1B9pW&TMt6$9Ml(*)|=)cih;8Wl8$JEcK4#*9R)dxn;{nJBzdjCoByt`$7`sMt_ z#`7<#JUH$!jzMdkM|<7so%=h@(`opGKu>owkEhY`15{9S=amj ze|cpF`8%m=uu%_DMk3 zwsY3~dCKOE2HrD}cYg>DJ+M7AVI&THp7K9yn$KNk7hiwkznNHM)N<{>H8~zQ=Dn7= zWUX-XQDfBdklMy^B-dYh6(`go1`!7Xup$FMAh{WA&{*TRRd!G7d_`MY#`3-c~SCcj~% zRKLBcKP}!+$r4=s`KQH?KS!T%q4znK z&qC?9#UE*iPn!!4Z>*6cZTQnK{=fe*^>#1t$$b5@yd(Ta_~#9uC5^=W?D+Iq zOW3aXtG6rGmlLVt%gOeWa@`&t^-1YJ=d*mu#cDc1P9a#vSNJ6IN$1j7LuV4!irugr z%GHI{))cIPQ?UPCi0$+u?C*-P!0p2zY9B0CE3s7l0XD!tQa{JG_6AI`R$|+@2{WpP zuxLCQOU6gBef=xfu~;eo2Lr8lbc*`6PSw-Y6&#GTyLyJz;D@W1^lH6YeW2Ituc{CA z27L~dyFlNnt-f8~jiuAQdJ{|BAJQ+dsrgH~U(aWCN=P5duIXXD#$fBGk2JNWNuOg{ zOp89(w3$izd#1y5=4Z z|1g)BOE|ygQu7o2B5PSL(=VGV%oX|-bEWx}-fT9Sjrt99jk!ku%Uo-&)BiR%m|Ivk zb(^_OZ!ve6`}GHAlX=h>^N4xOB$y|;LgpFstVuS{n-@)r*=$}l>E?B=O!FpJmido) z-(;JQxe8eM=9xmPZL%3}Q*4TXliYdZ8pue)pnTKcCzg@JKJ76&Fo_5 z*g0mAoyQuz#df}(Z+5r4*j>yXcA;Hpme@shk=fJkZg)3JZJ*uO^x5V1V6)5~Y7aO2 z+g0{RbFe+m9%okAui6vLO8a$tvRP$MwWpgS?V0vWv(9d?8_dymi``<@+pTu1IYxGq zGsh~Ua~$4Gb9gh|;mtITC~pIMCUMCEigsdja)p_lbzy}+g{u%tzFyKy<;n!BrW0od zS2pvynfPaM<$_T=ViP!O$g83_nb2yjAR{RLY&nm7&Y{geI ziq>!?V=I0nW9cZh7Au~0jE^+z!`HKl;25q9#>la(L--1|;b~ZgA5W^Ua^*12zJ~uq zu6%65zs?GTlenVTgrCf+gHyOlun9kvS@3CGW!QwD&iMQhm%$SIr}V|o7@tXu&l~8A z8yThJ+$b$%ls-gXJj|8p#%iV;tC?=BCSk|>4*l{j*1NKg?*GvvTUlihVJTgTDr5}j z0CRPObEpb*kt)^Wb%~1UQq75UI;PuMUDcsG*;RHjqrIEaz6<_cHNB%3GV<#g`G*m* zLa!iXrC!PI=!ZiKDjY3ng%+$QFe-cui1ovgO6@ilc6BDlg}OcF4YAsxtp3mO@I&SCxCy`PqPp1Gy3nU zS3j>`Ah(zFD}-;>n^lv3RdWE1eob%1#I&E)g2}QfPFbT3`{SD=6H+0eL4=PpY<^~< zhV4mAktxRpxdIF1G@(jBsFI38mD*H>nPeuZETK)n$!0RJ%S<88RI@v|?P2yHpCx9A z%7I$#r}EAIX1OXb2b)#ou*Mt%Jk}hqO3YWyiK@(e-JGn-%_-(o(q3pTR1u+NDkii{ zB|*zBRp~;@@I%W~Hni+Y;#_5}Ql;iJ}QOdZ2OFvX1RK zbDc_n(%nGJ8x2da%uR-4WXuaHtMn02lJ5M_->wDk| zlgX{ib`gh*IK8%4O}10*R5j7=V0TcJcAA~0s)T2#nZh%G@C+b40|?Im!ZU#I3{?%! z*h{t9z3twr!R}-C!N0HF7yoj*TurhE+k;iR@DkMlFIf#-V~->b97VOjQNF60?bqzr z@Sk8$!2fmob^IsUlklHxPsV?$Jr)0H_B2&%Pq(M5I^jCJ7hDGj*HN>C>!=-t>%a{d zc+jyV)-%Z_(CyI4H2fmDOoEcPLi>aRwKxtG=6NT6;XPp}a}R#uKq*k{Y50ZrgdOi` zal9w&cu$MtJ*kfOq&wb|=6Fx0<2@OU_f$IGljV3%x#K-`j`!5Va~8pMgx};iepBx_ zO`GE}&G49IJl&70*>ReB$7z}!r)hMYCf{+IJjZDY9H)smPSfBxO`+p7d5+UGJ5E#T zIL!pdX)Ju^Ncfy^7wfpo1jk)uhuz}{7mi{bN15O_ie;_Q34{w@sdaoMTa@zA3tjcL|+$F4TXT3}d>ty}}l+`gU ztctlG_#jsbJm*pTe`O6z3!LU9@_Cyp>^P0=M;JAWyTw#La3KLALX@!or!3idalnR_`c7nSI53ulnK0<^C)H)szay%g0 z@qlc{1CkvN$aOqmB0S&};v?0<6)rMA01784cbp*1Zg@W-L^wg%@ql#41F{?s2s<87 z>3Bez;{o-K2NXCS(CDat80vqMYIbzL)Y1JsNB0XH-LHq@{|S06v_1r_zf0wryP^2? zj^YDm*hi!sQP-Qk`Ljm0vS({C8 z9K}y{6u-`9*(_*~(EVmd@k<@WuXhx`!BPB1NAa5-#czh(oL0n;rEJLH(QXPp}i#wG?h4$^?gm_J7XyXjkF$H& zJ>V!yEK9{5^{;T$zsXVm3P=5$?0$AXX!k+(AeCqjv4^Pfjt3+;9+2dCK!xK0HI4@q zIUZ2sctDZk0X2>X6geJH<9I-k;{nBv2SkVQfFIi*!>xa6f2!D35gyP<*I6|=At^zQ z4%N(CQ`8}h;~`Ok;i4r-4rC?RCq@^QgsP5;k63fi5$a9{?Mh>LXyQR=_r$1e~N(fgL&<*r^NFtv_&`E?Kw!$aT8%X!6nZ#~-|Qjc#^t zmF8fPgBB>KLCC=`A>LEoI^RLR1@ICgZ6>WDkaq>9Iv90OR$^&dM_{^x84hMTnB`!$ zgEQeZ`M)f?a4BukDuXM7`gr=A2 zTHP!(T+e}eFJ;HN!^n?3c}xF3A-J=0!i7%_?hAQW4mj5bLftp8-}W`o>!+BTo8WoB zd#+8U|38%2r8fn^eR6PL>f+^@ub2(c&5cm9r_5VOiTSo3X==V*X4l$p*z@f#?C_veddh^~P$>z9 zQIwF7$S4Z2!+JO&C1D&-9vLHz;FS&E8{QPg(#n-r%vh4JYs0?}v-V+F*zd!ahsAPU z>KTuBPWasL|XO_7%I?zG`2y|Fo~$H|)RczwMj$E&HB*+rDexVTX2;{Lk%*M}3m_!o50B z9|@U*6N`Ciof2BxBtMkgLD-$c!fsA3Crm722IHkC^G3-EKs`b~ z51mgK<05%h5a(R{;CFKCV65c&(20bU3`==TXdl9arucauLcPS|X)y2IL)|V+hose{ z-ZOBo;{0*q*YT+kR3r4qAt|-IN$5K`>PEO9?@W1@khFjwWs83qYmll% zrWSq8dUXss8qv@kk0kvy* zO*|}N{bIe>b&+KgGn+0YUv#VKXb~B62 zVzWCk=@PT2S!()_NcT4Tn0?JMv!B`D9AFMK2btx_riYkA*@0+>>!m^87usLy#Q(C#w&^+6B0ho?u?s7? zSHQo!bT?$T^RZtEIM5r0N*e@2$uW%L|e%6sANdk@xx6n7&ft%%o%|L;U&D)r$# z21^({$H9E!>Ekt_ES>O2sE8b#6(z@dbQ0Za8rp>UXa<%t|6i_;f?h3Fduo}bFIG$S zI(OeoAMNgYqYX7`SG1uM%NBV=7W-OjSJkz~%aXWMVuZ`<$M^T=U$a;Ra?nR?dlH?l^50{ZM`X6NGxFI8n| z*vrw8SF&48wVh#iv^&`|(9xV@zh%E;&$Zttheb%5Bjsqn7UPiuw#kJQ&7|<<)Dd;0 zCbgr~#UyY57+R~H(N^th7cpx&01ebSd$c{)enq}tFstCpg*}TtNTLsPf*iz`iFV~H z=qlJD0V#j5PiCljJh%1=6;8--_ml)SB;)^a30dx*A%MQ@mp z8KmYev5?DB{E`yVgZxBuc!kQ4|6O|iACf*Nc*=c9C=h)K02x#r@^C-^vz~p>gQ|A*f)W85XoOK6Y0=iL7wto*uilQrZ|}4V5)=Zq^B0t zgO`#NlqctABVi(0d5&Ldo^s0hsJJ$Vd1oIp$KwRwT#gGITqe-=IsZWpE^#4`I{$&r z|A_PN=HR|AL?mR5#!S*a>}uhEw;bo*&Cu7aGT&3*&}HaxMc;Y7o2lMlWv0sZ9@KFG zBTk{2Tgg5lG3FS>d}X*m9gH66R&^#?pI6agu|=NK=_$1rmv)*rL+m=C{Z0K{ zbW`%pAjjznBE*tIX%`?T+=%4xd-Vt6m+J~$sjGCgu3>glCu!l^|N^dtbUHVXvV12VJ~X@DfJ-zxAeF5cl3AT zspI9lnrT`|GiFB_{i9KdQ7M9?ABFymMyE!nNxW+kJ*z0Oh50BrN7`!s=gbT=*mIea zEwBsGVC;`J`Y2{+>+LaM+Skx9oQyU>@GXHHvUrOc{PB5zDzjQ26BdxyZd|fA=Muv9 Qg*sdCOSBq--N{P*KZNstwg3PC literal 0 HcmV?d00001 diff --git a/static/fonts/ubiquity-nova-standard.woff b/static/fonts/ubiquity-nova-standard.woff new file mode 100644 index 0000000000000000000000000000000000000000..0c2691e4352e99afb2390b0cee6734d71d5aa035 GIT binary patch literal 77756 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 EMtAR8XaE2J literal 0 HcmV?d00001 diff --git a/static/index.html b/static/index.html index 6fefad1c..d839f159 100644 --- a/static/index.html +++ b/static/index.html @@ -1,4 +1,4 @@ - + diff --git a/static/keygen.html b/static/keygen.html index 95a66745..331f075d 100644 --- a/static/keygen.html +++ b/static/keygen.html @@ -1,4 +1,4 @@ - + Key Generator diff --git a/static/main.ts b/static/main.ts new file mode 100644 index 00000000..b19bfa7c --- /dev/null +++ b/static/main.ts @@ -0,0 +1,10 @@ +export async function mainModule() { + console.log(`Hello from mainModule`); +} +mainModule() + .then(() => { + console.log("mainModule loaded"); + }) + .catch((error) => { + console.error(error); + }); diff --git a/static/onboarding.html b/static/onboarding.html index 23953483..f4e32aba 100644 --- a/static/onboarding.html +++ b/static/onboarding.html @@ -1,4 +1,4 @@ - + Onboarding diff --git a/static/scripts/audit-report/audit.ts b/static/scripts/audit-report/audit.ts index d5859dab..a7305f35 100644 --- a/static/scripts/audit-report/audit.ts +++ b/static/scripts/audit-report/audit.ts @@ -1,32 +1,46 @@ -import { ethers } from "ethers"; -import { Octokit } from "@octokit/rest"; import { throttling } from "@octokit/plugin-throttling"; +import { Octokit } from "@octokit/rest"; import axios from "axios"; +import { ethers } from "ethers"; import GoDB from "godb"; import { permit2Abi } from "../rewards/abis"; -import { ObserverKeys, ElemInterface, QuickImport, StandardInterface, TxData, GoDBSchema, GitHubUrlParts, ChainScanResult, SavedData } from "./types"; -import { Chain, ChainScan, DatabaseName, NULL_HASH, NULL_ID } from "./constants"; +import { Chain, ChainScan, DATABASE_NAME, NULL_HASH, NULL_ID } from "./constants"; import { + RateLimitOptions, getCurrency, getGitHubUrlPartsArray, - getRandomAPIKey, getOptimalRPC, + getRandomAPIKey, isValidUrl, parseRepoUrl, populateTable, primaryRateLimitHandler, - RateLimitOptions, secondaryRateLimitHandler, } from "./helpers"; +import { + ChainScanResult, + ElemInterface, + EtherInterface, + GitHubUrlParts, + GitInterface, + GoDBSchema, + ObserverKeys, + QuickImport, + SavedData, + StandardInterface, + TxData, +} from "./types"; import { getTxInfo } from "./utils/getTransaction"; const rateOctokit = Octokit.plugin(throttling); +let octokit: Octokit; + let BOT_WALLET_ADDRESS = ""; let REPOSITORY_URL = ""; let GITHUB_PAT = ""; -let repoArray: string[] = []; +const repoArray: string[] = []; const urlRegex = /\((.*?)\)/; const botNodeId = "BOT_kgDOBr8EgA"; @@ -40,7 +54,11 @@ let isCache = true; let isComment = true; let commentPageNumber = 1; -const issueList: any[] = []; + +type ListForRepoDataItem = Awaited>["data"][0]; +type ListCommentsDataItem = Awaited>["data"][0]; + +const issueList: ListForRepoDataItem[] = []; const GIT_INTERVAL = 100; let isGit = true; @@ -64,7 +82,7 @@ let etherHash = NULL_HASH; let lastGitID: number | boolean = false; let lastEtherHash: string | boolean = false; -const getDataSchema = (storeHash: string) => { +function getDataSchema(storeHash: string) { const schema: GoDBSchema = { [NULL_HASH]: { id: { @@ -101,28 +119,32 @@ const getDataSchema = (storeHash: string) => { }; return schema; -}; +} -const parseAndAddUrls = (input: string): void => { - const urls = input.split(",").map(url => url.trim()); +function parseAndAddUrls(input: string): void { + const urls = input.split(",").map((url) => url.trim()); repoArray.push(...urls); -}; +} -const updateDB = async (storeHash: string) => { +async function updateDB(storeHash: string) { const schema = getDataSchema(storeHash); - const cacheDB = new GoDB(DatabaseName, schema); + const cacheDB = new GoDB(DATABASE_NAME, schema); const metaTable = cacheDB.table(NULL_HASH); const storeTable = cacheDB.table(storeHash); const metaData = { - id: storeHash as any, + // unknown as number because the only time it receives a string is initiating the db + // and it is always a number after that according to the schema definition + // [NULL_HASH]: id: storeHash + // [STORE_HASH]: id: storeHash + id: storeHash as unknown as number, hash: lastEtherHash !== etherHash ? (lastEtherHash as string) : (etherHash as string), issue: lastGitID !== gitID ? (lastGitID as number) : (gitID as number), }; await metaTable.put(metaData); if (elemList.length > 0) { - for (let elem of elemList) { + for (const elem of elemList) { const { id, tx, amount, title, bounty_hunter, network, owner, repo } = elem; await storeTable.put({ id, @@ -136,98 +158,97 @@ const updateDB = async (storeHash: string) => { }); } } - await cacheDB.close(); - return; -}; + return cacheDB.close(); +} -const readDB = async (storeHash: string) => { +async function readDB(storeHash: string) { const schema = getDataSchema(storeHash); - const cacheDB = new GoDB(DatabaseName, schema); + const cacheDB = new GoDB(DATABASE_NAME, schema); const storeTable = cacheDB.table(storeHash); const tableData = await storeTable.getAll(); - await cacheDB.close(); + cacheDB.close(); return tableData; -}; +} -const readMeta = async (storeHash: string) => { +async function readMeta(storeHash: string) { const schema = getDataSchema(storeHash); - const cacheDB = new GoDB(DatabaseName, schema); + const cacheDB = new GoDB(DATABASE_NAME, schema); const metaTable = cacheDB.table(NULL_HASH); const metaData = await metaTable.get({ id: storeHash }); - await cacheDB.close(); + cacheDB.close(); return metaData; -}; +} -const toggleLoader = (type: "none" | "block") => { +function toggleLoader(type: "none" | "block") { getReportElem.disabled = type === "block" ? true : false; reportLoader.style.display = type; -}; +} class QueueObserver { - private readonly queueObject: { + private readonly _queueObject: { isRPC: boolean; isComment: boolean; isGit: boolean; isEther: boolean; }; - private isException; + private _isException; constructor() { - this.queueObject = { + this._queueObject = { isRPC: false, isComment: false, isGit: false, isEther: false, }; - this.isException = false; + this._isException = false; } - private databaseCallback() { + private _databaseCallback() { const storeHash = ethers.utils.keccak256(ethers.utils.toUtf8Bytes(`${REPOSITORY_URL}_${BOT_WALLET_ADDRESS}`)); - updateDB(storeHash); + updateDB(storeHash).catch((error) => console.error(error)); } - private callback() { + private _callback() { toggleLoader("none"); - if (!this.isException) { - this.databaseCallback(); + if (!this._isException) { + this._databaseCallback(); } } mutate(key: ObserverKeys, value: boolean) { - this.queueObject[key] = value; - const { isRPC: _isRPC, isComment: _isComment, isGit: _isGit, isEther: _isEther } = this.queueObject; - const isUpdateFinished = _isRPC && _isComment && _isGit && _isEther; + this._queueObject[key] = value; + const { isRPC, isComment, isGit, isEther } = this._queueObject; + const isUpdateFinished = isRPC && isComment && isGit && isEther; if (isUpdateFinished) { - this.callback(); + this._callback(); } } clearQueue() { - this.queueObject.isComment = false; - this.queueObject.isEther = false; - this.queueObject.isGit = false; - this.queueObject.isRPC = false; + this._queueObject.isComment = false; + this._queueObject.isEther = false; + this._queueObject.isGit = false; + this._queueObject.isRPC = false; } raise() { - this.isException = true; + this._isException = true; } } const finishedQueue = new QueueObserver(); -class smartQueue { - private readonly queue: Map; +class SmartQueue { + private readonly _queue: Map; constructor() { - this.queue = new Map(); + this._queue = new Map(); } add(key: string, value: StandardInterface) { - if (this.queue.has(key)) { - const queueValue = this.queue.get(key) as StandardInterface; - queueValue.s[value.t] = value.s[value.t] as any; + if (this._queue.has(key)) { + const queueValue = this._queue.get(key) as StandardInterface; + queueValue.s[value.t] = value.s[value.t] as object extends GitInterface ? GitInterface : object extends EtherInterface ? EtherInterface : never; const { s: { ether, git, network }, c: { amount }, @@ -236,63 +257,65 @@ class smartQueue { // check for undefined if (git?.issue_number) { elemList.push({ - id: git?.issue_number!, - tx: ether?.txHash!, - amount: ethers.utils.formatEther(amount)!, - title: git?.issue_title!, - bounty_hunter: git?.bounty_hunter, - owner: git?.owner, - repo: git?.repo, + id: git.issue_number, + tx: ether?.txHash || "N/A", // @TODO - handle this better + amount: ethers.utils.formatEther(amount), + title: git.issue_title, + bounty_hunter: git.bounty_hunter, + owner: git.owner, + repo: git.repo, network, }); if (elemList.length > 0) { resultTableTbodyElem.innerHTML = ""; - for (let data of elemList) { + for (const data of elemList) { populateTable(data?.owner, data?.repo, data?.id, data?.network, data?.tx, data?.title, data?.amount, data?.bounty_hunter); } } } - this.queue.delete(key); + this._queue.delete(key); } else { - this.queue.set(key, value); + this._queue.set(key, value); } } } +type QueueItem = ChainScanResult; +type Queue = QueueItem extends string ? string[] : QueueItem[]; class QueueSet { - private readonly queue: any[]; - private readonly set: Set; + private readonly _queue: Queue; + private readonly _set: Set>; constructor() { - this.queue = []; - this.set = new Set(); + this._queue = []; + this._set = new Set(); } - add(item: any) { - if (!this.set.has(item)) { - this.set.add(item); - this.queue.push(item); + add(item: NonNullable) { + if (!this._set.has(item)) { + this._set.add(item); + this._queue.push(item as QueueItem); } } remove() { - const v = this.queue.shift(); - this.set.delete(v); + const v = this._queue.shift(); + if (v) this._set.delete(v); } - read() { - return this.queue[0]; + read(): ChainScanResult { + return this._queue[0]; } isEmpty() { - return this.queue.length === 0; + return this._queue.length === 0; } } -const updateQueue = new smartQueue(); +const updateQueue = new SmartQueue(); const rpcQueue = new QueueSet(); -const commentFetcher = async () => { +async function commentFetcher() { if (isComment) { const commentIntervalID = setInterval(async () => { clearInterval(commentIntervalID); @@ -309,7 +332,9 @@ const commentFetcher = async () => { }, }, }); - let [owner, repo] = parseRepoUrl(issueList[0].html_url); + + const [owner, repo] = parseRepoUrl(issueList[0].html_url); + const { data } = await octokit.rest.issues.listComments({ owner, repo, @@ -317,85 +342,8 @@ const commentFetcher = async () => { per_page: offset, page: commentPageNumber, }); - if (data.length === 0) { - commentPageNumber = 1; - await issueList.shift(); - if (issueList.length > 0) { - commentFetcher(); - } else { - isComment = false; - finishedQueue.mutate("isComment", true); - } - } else { - let isFound = false; - for (let comment of data) { - if (comment.user && comment.user.node_id === botNodeId && comment.body) { - const match = comment.body.match(urlRegex); - if (match && isValidUrl(match[1])) { - const url = new URL(match[1]); - const params = new URLSearchParams(url.search); - const base64Payload = params.get("claim"); - let network = getCurrency(comment.body); // Might change it to `const claimNetwork = params.get("network");` later because previous permits are missing network query - if (base64Payload) { - const { - owner: ownerAddress, - signature, - permit: { - deadline, - nonce, - permitted: { amount, token }, - }, - transferDetails: { to }, - } = JSON.parse(window.atob(base64Payload)) as TxData; - await updateQueue.add(signature, { - k: signature, - t: "git", - c: { - nonce, - owner: ownerAddress, - token, - amount, - to, - deadline, - signature, - }, - s: { - git: { - issue_title: issueList[0].title, - issue_number: issueList[0].number, - owner, - repo, - bounty_hunter: { - name: issueList[0].assignee ? issueList[0].assignee.login : issueList[0].assignees[0]?.login, - url: issueList[0].assignee ? issueList[0].assignee.html_url : issueList[0].assignees[0]?.html_url, - }, - }, - ether: undefined, - network: network as string, - }, - }); - isFound = true; - } - } else { - console.log("URL not found, skipping"); - } - } - } - - if (isFound) { - commentPageNumber = 1; - await issueList.shift(); - } else { - commentPageNumber++; - } - - if (issueList.length > 0) { - commentFetcher(); - } else { - isComment = false; - finishedQueue.mutate("isComment", true); - } - } + + await fetchComment(owner, repo, data); } else { isComment = false; finishedQueue.mutate("isComment", true); @@ -403,9 +351,9 @@ const commentFetcher = async () => { } catch (error) { console.error(error); finishedQueue.raise(); - await issueList.shift(); + issueList.shift(); if (issueList.length > 0) { - commentFetcher(); + await commentFetcher(); } else { isComment = false; finishedQueue.mutate("isComment", true); @@ -413,71 +361,113 @@ const commentFetcher = async () => { } }, GIT_INTERVAL); } -}; +} -const gitFetcher = async (repoUrls: GitHubUrlParts[]) => { - if (isGit) { - const octokit = new rateOctokit({ - auth: GITHUB_PAT, - throttle: { - onRateLimit: (retryAfter, options) => { - return primaryRateLimitHandler(retryAfter, options as RateLimitOptions); - }, - onSecondaryRateLimit: (retryAfter, options) => { - return secondaryRateLimitHandler(retryAfter, options as RateLimitOptions); - }, - }, - }); +async function fetchComment(owner: string, repo: string, data: ListCommentsDataItem[]) { + let isFound = false; + if (data.length === 0) { + commentPageNumber = 1; + issueList.shift(); + if (issueList.length > 0) { + await commentFetcher(); + } else { + isComment = false; + finishedQueue.mutate("isComment", true); + } + } else { + isFound = await processComments(owner, repo, data); - const getIssuesForRepo = async (owner: string, repo: string) => { - const issueList: any[] = []; + if (isFound) { + commentPageNumber = 1; + issueList.shift(); + } else { + commentPageNumber++; + } - while (true) { - try { - const { data } = await octokit.rest.issues.listForRepo({ - owner, - repo, - state: "closed", - per_page: offset, - page: gitPageNumber, - }); + if (issueList.length > 0) { + commentFetcher().catch((error) => console.error(error)); + } else { + isComment = false; + finishedQueue.mutate("isComment", true); + } + } +} - if (data.length === 0) break; - - const issues = data.filter(issue => !issue.pull_request && issue.comments > 0); - if (issues.length > 0) { - if (!lastGitID) { - lastGitID = issues[0].number; - } - let iEF = true; - for (let i of issues) { - if (i.number !== gitID) { - await issueList.push(i); - } else { - iEF = false; - break; - } - } - - if (iEF) { - gitPageNumber++; - } else { - break; - } - } else { - break; - } - } catch (error: any) { - console.error(error); - throw error; - } +async function processComments(owner: string, repo: string, comments: ListCommentsDataItem[]) { + let isFound = false; + + for (const comment of comments) { + if (comment.user && comment.user.node_id === botNodeId && comment.body) { + isFound = await processComment(owner, repo, comment); + if (isFound) { + break; } + } + } + return isFound; +} - return issueList; - }; +async function processComment(owner: string, repo: string, comment: ListCommentsDataItem) { + let isFound = false; + + if (!comment.body) return isFound; + + const match = comment.body.match(urlRegex); + if (match && isValidUrl(match[1])) { + const params = new URLSearchParams(new URL(match[1]).search); + const base64Payload = params.get("claim"); + const network = getCurrency(comment.body); // Might change it to `const claimNetwork = params.get("network");` later because previous permits are missing network query + if (base64Payload) { + const { + owner: ownerAddress, + signature, + permit: { + deadline, + nonce, + permitted: { amount, token }, + }, + transferDetails: { to }, + } = JSON.parse(window.atob(base64Payload)) as TxData; + updateQueue.add(signature, { + k: signature, + t: "git", + c: { + nonce, + owner: ownerAddress, + token, + amount, + to, + deadline, + signature, + }, + s: { + git: { + issue_title: issueList[0].title, + issue_number: issueList[0].number, + owner, + repo, + bounty_hunter: { + name: issueList[0].assignee ? issueList[0].assignee.login : issueList[0].assignees?.[0].login || "", + url: issueList[0].assignee ? issueList[0].assignee.html_url : issueList[0].assignees?.[0].html_url || "", + }, + }, + ether: undefined, + network: network as string, + }, + }); + isFound = true; + } + } else { + console.log("URL not found, skipping"); + } + return isFound; +} + +async function gitFetcher(repoUrls: GitHubUrlParts[]) { + if (isGit) { try { - const issuesPromises = repoUrls.map(repoUrl => getIssuesForRepo(repoUrl.owner, repoUrl.repo)); + const issuesPromises = repoUrls.map((repoUrl) => getIssuesForRepo(repoUrl.owner, repoUrl.repo)); const allIssues = await Promise.all(issuesPromises); for (let i = 0; i < allIssues.length; i++) { @@ -488,30 +478,100 @@ const gitFetcher = async (repoUrls: GitHubUrlParts[]) => { isGit = false; finishedQueue.mutate("isGit", true); - commentFetcher(); - } catch (error: any) { + await commentFetcher(); + } catch (error: unknown) { console.error("Error fetching issues:", error); } } -}; +} + +async function getIssuesForRepo(owner: string, repo: string) { + const issueList: ListForRepoDataItem[] = []; + + const octokit = new rateOctokit({ + auth: GITHUB_PAT, + throttle: { + onRateLimit: (retryAfter, options) => { + return primaryRateLimitHandler(retryAfter, options as RateLimitOptions); + }, + onSecondaryRateLimit: (retryAfter, options) => { + return secondaryRateLimitHandler(retryAfter, options as RateLimitOptions); + }, + }, + }); + + const isIEF = true; + + while (isIEF) { + try { + const { data } = await octokit.rest.issues.listForRepo({ + owner, + repo, + state: "closed", + per_page: offset, + page: gitPageNumber, + }); + + if (data.length === 0) break; + + const issues = data.filter((issue) => !issue.pull_request && issue.comments > 0); + const { isIEF: isIEF2, issueList: processed } = await processIssues(isIEF, issueList, issues); + + issueList.push(...processed); + + if (!isIEF2) { + break; + } + } catch (error: unknown) { + console.error(error); + throw error; + } + } + + return issueList; +} + +async function processIssues(isIEF: boolean, issueList: ListForRepoDataItem[], issues: ListForRepoDataItem[]) { + if (issues.length > 0) { + if (!lastGitID) { + lastGitID = issues[0].number; + } + for (const i of issues) { + if (i.number !== gitID) { + issueList.push(i); + } else { + isIEF = false; + break; + } + } + + if (isIEF) { + gitPageNumber++; + } else { + isIEF = false; + } + } + + return { isIEF, issueList }; +} -const fetchDataFromChainScanAPI = async (url: string, chain: string) => { +async function fetchDataFromChainScanAPI(url: string, chain: string) { try { const { data } = await axios.get(url); - return data.result.map((item: any) => ({ ...item, chain })); - } catch (error: any) { + return data.result.map((item: NonNullable) => ({ ...item, chain })); + } catch (error: unknown) { console.error(error); throw error; } -}; +} -const etherFetcher = async () => { +async function etherFetcher() { const ethereumURL = `https://api.${ChainScan.Ethereum}/api?module=account&action=tokentx&address=${BOT_WALLET_ADDRESS}&apikey=${getRandomAPIKey( - Chain.Ethereum, + Chain.Ethereum )}&page=${etherPageNumber}&offset=${offset}&sort=desc`; const gnosisURL = `https://api.${ChainScan.Gnosis}/api?module=account&action=tokentx&address=${BOT_WALLET_ADDRESS}&apikey=${getRandomAPIKey( - Chain.Gnosis, + Chain.Gnosis )}&page=${etherPageNumber}&offset=${offset}&sort=desc`; if (isEther) { @@ -524,32 +584,8 @@ const etherFetcher = async () => { ]); const combinedData: ChainScanResult[] = [...ethereumData, ...gnosisData]; - if (combinedData.length > 0) { - if (!lastEtherHash) { - lastEtherHash = combinedData[0].hash; - } - let iEF = true; - for (let e of combinedData) { - if (e.hash !== etherHash) { - await rpcQueue.add({ hash: e.hash, chain: e.chain }); - } else { - iEF = false; - break; - } - } - - if (iEF) { - etherPageNumber++; - etherFetcher(); - } else { - isEther = false; - finishedQueue.mutate("isEther", true); - } - } else { - isEther = false; - finishedQueue.mutate("isEther", true); - } - } catch (error: any) { + await handleCombinedData(combinedData); + } catch (error: unknown) { console.error(error); finishedQueue.raise(); isEther = false; @@ -557,69 +593,56 @@ const etherFetcher = async () => { } }, ETHER_INTERVAL); } -}; +} + +async function handleCombinedData(combinedData: ChainScanResult[]) { + if (combinedData.length > 0) { + if (!lastEtherHash) { + lastEtherHash = combinedData[0].hash; + } + let isIEF = true; + for (const e of combinedData) { + if (e.hash !== etherHash) { + rpcQueue.add({ hash: e.hash, chain: e.chain }); + } else { + isIEF = false; + break; + } + } + + if (isIEF) { + etherPageNumber++; + await etherFetcher(); + } else { + isEther = false; + finishedQueue.mutate("isEther", true); + } + } else { + isEther = false; + finishedQueue.mutate("isEther", true); + } +} -const rpcFetcher = async () => { +async function rpcFetcher() { if (isRPC) { const rpcIntervalID = setInterval(async () => { clearInterval(rpcIntervalID); try { - const data = await rpcQueue.read(); - if (data) { - const { hash, chain } = data; - - const providerUrl = await getOptimalRPC(chain); - const txInfo = await getTxInfo(hash, providerUrl, chain); - - if (txInfo.input.startsWith(permitTransferFromSelector)) { - const decodedFunctionData = permit2Interface.decodeFunctionData(permitFunctionName, txInfo.input); - const { - permit: { - permitted: { token, amount }, - nonce, - deadline, - }, - transferDetails: { to }, - owner, - signature, - } = decodedFunctionData as unknown as TxData; - updateQueue.add(signature, { - k: signature, - t: "ether", - c: { - nonce, - owner, - token, - amount, - to, - deadline, - signature, - }, - s: { - ether: { - txHash: txInfo.hash, - timestamp: parseInt(txInfo.timestamp, 16), - block_number: parseInt(txInfo.blockNumber, 16), - }, - git: undefined, - network: chain as string, - }, - }); - } - } - await rpcQueue.remove(); + const data = rpcQueue.read(); + await handleRPCData(data); + rpcQueue.remove(); if (isEther || !rpcQueue.isEmpty()) { - rpcFetcher(); + await rpcFetcher(); } else { isRPC = false; finishedQueue.mutate("isRPC", true); } - } catch (error: any) { + } catch (error: unknown) { console.error(error); finishedQueue.raise(); - await rpcQueue.remove(); + rpcQueue.remove(); if (isEther || !rpcQueue.isEmpty()) { - rpcFetcher(); + await rpcFetcher(); } else { isRPC = false; finishedQueue.mutate("isRPC", true); @@ -627,9 +650,54 @@ const rpcFetcher = async () => { } }, RPC_INTERVAL); } -}; +} + +async function handleRPCData(data: ChainScanResult) { + if (data) { + const { hash, chain } = data as { hash: string; chain: string }; + + const providerUrl = await getOptimalRPC(chain as Chain); + const txInfo = await getTxInfo(hash, providerUrl, chain as Chain); + + if (txInfo.input.startsWith(permitTransferFromSelector)) { + const decodedFunctionData = permit2Interface.decodeFunctionData(permitFunctionName, txInfo.input); + const { + permit: { + permitted: { token, amount }, + nonce, + deadline, + }, + transferDetails: { to }, + owner, + signature, + } = decodedFunctionData as unknown as TxData; + updateQueue.add(signature, { + k: signature, + t: "ether", + c: { + nonce, + owner, + token, + amount, + to, + deadline, + signature, + }, + s: { + ether: { + txHash: txInfo.hash, + timestamp: parseInt(txInfo.timestamp, 16), + block_number: parseInt(txInfo.blockNumber, 16), + }, + git: undefined, + network: chain as string, + }, + }); + } + } +} -const dbInit = async () => { +async function dbInit() { if (isCache) { const storeHash = ethers.utils.keccak256(ethers.utils.toUtf8Bytes(`${REPOSITORY_URL}_${BOT_WALLET_ADDRESS}`)); const metaData = await readMeta(storeHash); @@ -642,7 +710,7 @@ const dbInit = async () => { const tableData = await readDB(storeHash); if (tableData.length > 0) { - for (let data of tableData) { + for (const data of tableData) { const { owner, repo, id, network, tx, bounty_hunter, amount, title } = data as unknown as SavedData; populateTable(owner, repo, id, network, tx, title, amount, bounty_hunter); // for filtering @@ -660,9 +728,9 @@ const dbInit = async () => { } } } -}; +} -const resetInit = () => { +async function resetInit() { isComment = true; commentPageNumber = 1; issueList.splice(0, issueList.length); @@ -678,20 +746,20 @@ const resetInit = () => { lastEtherHash = false; repoArray.splice(0, repoArray.length); finishedQueue.clearQueue(); -}; +} -const asyncInit = async () => { +async function asyncInit() { await resetInit(); await dbInit(); -}; +} -const tabInit = (repoUrls: GitHubUrlParts[]) => { - etherFetcher(); - gitFetcher(repoUrls); - rpcFetcher(); -}; +function tabInit(repoUrls: GitHubUrlParts[]) { + etherFetcher().catch((error) => console.error(error)); + gitFetcher(repoUrls).catch((error) => console.error(error)); + rpcFetcher().catch((error) => console.error(error)); +} -const auditInit = () => { +function auditInit() { tgBtnInput.checked = true; getReportElem.addEventListener("click", async () => { isCache = tgBtnInput.checked; @@ -716,12 +784,12 @@ const auditInit = () => { if (BOT_WALLET_ADDRESS !== "" && REPOSITORY_URL !== "" && GITHUB_PAT !== "" && REPOS.length > 0) { await asyncInit(); - await tabInit(REPOS); + tabInit(REPOS); } else { toggleLoader("none"); } }); -}; +} /** * @@ -731,20 +799,20 @@ const auditInit = () => { // Function to filter the table based on search input function filterTable() { - const input = document.getElementById("searchInput")! as HTMLInputElement; - let value = input.value.toLowerCase(); + const input = document.getElementById("searchInput") as HTMLInputElement; + const value = input.value.toLowerCase(); const filteredData = elemList.filter( - row => + (row) => row.owner.toLowerCase().includes(value) || row.repo.toLowerCase().includes(value) || row.amount.toLowerCase().includes(value) || row.tx.toLowerCase().includes(value) || row.title.toLowerCase().includes(value) || row.network.toLowerCase().includes(value) || - row.bounty_hunter.name.toLowerCase().includes(value), + row.bounty_hunter.name.toLowerCase().includes(value) ); resultTableTbodyElem.innerHTML = ""; // Clear the existing rows - for (let data of filteredData) { + for (const data of filteredData) { const { owner, repo, id, network, tx, bounty_hunter, amount, title } = data as unknown as SavedData; populateTable(owner, repo, id, network, tx, title, amount, bounty_hunter); } @@ -759,7 +827,7 @@ function sortTableByAmount() { sortDirection *= -1; updateSortArrow(); resultTableTbodyElem.innerHTML = ""; // Clear the existing rows - for (let data of elemList) { + for (const data of elemList) { const { owner, repo, id, network, tx, bounty_hunter, amount, title } = data as unknown as SavedData; populateTable(owner, repo, id, network, tx, title, amount, bounty_hunter); } @@ -771,10 +839,12 @@ function updateSortArrow() { sortArrow.textContent = sortDirection === 1 ? "\u2191" : "\u2193"; } -// Add event listener for the search button -document.getElementById("searchInput")!.addEventListener("keyup", filterTable); +const searchInput = document.getElementById("searchInput") as HTMLInputElement; +const amountHeader = document.getElementById("amountHeader") as HTMLTableCellElement; +// Add event listener for the search button +searchInput.addEventListener("keyup", filterTable); // Add event listener for the "Amount" column header -document.getElementById("amountHeader")!.addEventListener("click", sortTableByAmount); +amountHeader.addEventListener("click", sortTableByAmount); auditInit(); diff --git a/static/scripts/audit-report/constants.ts b/static/scripts/audit-report/constants.ts index 256f678b..b8282685 100644 --- a/static/scripts/audit-report/constants.ts +++ b/static/scripts/audit-report/constants.ts @@ -8,16 +8,17 @@ export enum Chain { Gnosis = "Gnosis", } -export const ChainMap = { +export const CHAIN_MAP = { Ethereum: 1, Gnosis: 100, }; export const NULL_ID = 0; export const NULL_HASH = "0x0000000000000000000000000000000000000000"; -export const DatabaseName = "file_cache"; +export const DATABASE_NAME = "file_cache"; // hardcoded values +// cspell:ignore 35G6PRE7U54QWZMXYGUSI3YWU27TP2TTBK R75N38X1Y5KP8CRPPDWBRT3EM5VDJ73MUK export const API_KEYS = { [Chain.Ethereum]: ["35G6PRE7U54QWZMXYGUSI3YWU27TP2TTBK"], [Chain.Gnosis]: ["R75N38X1Y5KP8CRPPDWBRT3EM5VDJ73MUK"], diff --git a/static/scripts/audit-report/helpers.ts b/static/scripts/audit-report/helpers.ts index eb81e0f9..797ae00a 100644 --- a/static/scripts/audit-report/helpers.ts +++ b/static/scripts/audit-report/helpers.ts @@ -1,7 +1,7 @@ +import axios from "axios"; import { ethers } from "ethers"; import { API_KEYS, Chain, ChainScan, RPC_URLS } from "./constants"; import { BountyHunter, GitHubUrlParts } from "./types"; -import axios from "axios"; export interface RateLimitOptions { method: string; @@ -31,7 +31,7 @@ const RPC_HEADER = { "Content-Type": "application/json", }; -export const shortenTransactionHash = (hash: string | undefined, length = 8): string => { +export function shortenTransactionHash(hash: string | undefined, length = 8): string { if (!hash) return ""; const prefixLength = Math.floor(length / 2); const suffixLength = length - prefixLength; @@ -40,40 +40,40 @@ export const shortenTransactionHash = (hash: string | undefined, length = 8): st const suffix = hash.slice(-suffixLength); return prefix + "..." + suffix; -}; +} -export const populateTable = ( +export function populateTable( owner: string, repo: string, - issue_number: number, + issueNumber: number, network: string, txHash: string, - issue_title: string, + issueTitle: string, amount: string, - bounty_hunter: BountyHunter, -) => { + bountyHunter: BountyHunter +) { if (!txHash) return; // permit not claimed - const issue_url = `https://github.com/${owner}/${repo}/issues/${issue_number}`; - const tx_url = `https://${getChainScan(network)}/tx/${txHash}`; + const issueUrl = `https://github.com/${owner}/${repo}/issues/${issueNumber}`; + const txUrl = `https://${getChainScan(network)}/tx/${txHash}`; const rows = ` ${owner}/${repo} - #${issue_number} - ${issue_title} - ${bounty_hunter?.name} - ${ethers.BigNumber.isBigNumber(amount) ? ethers.utils.formatEther(amount) : amount} ${ - network === Chain.Ethereum ? "DAI" : "WXDAI" - } - ${shortenTransactionHash(txHash)} + #${issueNumber} - ${issueTitle} + ${bountyHunter?.name} + ${ethers.BigNumber.isBigNumber(amount) ? ethers.utils.formatEther(amount) : amount} ${ + network === Chain.Ethereum ? "DAI" : "WXDAI" + } + ${shortenTransactionHash(txHash)} `; resultTableTbodyElem.insertAdjacentHTML("beforeend", rows); -}; +} -export const getChainScan = (chain: string) => { +export function getChainScan(chain: string) { return chain === Chain.Ethereum ? ChainScan.Ethereum : ChainScan.Gnosis; -}; +} -export const getRandomAPIKey = (chain: Chain): string => { +export function getRandomAPIKey(chain: Chain): string { const keys = API_KEYS[chain]; if (!keys || keys.length === 0) { throw new Error(`No API Keys found for chain: ${chain}`); @@ -81,9 +81,9 @@ export const getRandomAPIKey = (chain: Chain): string => { const randomIndex = Math.floor(Math.random() * keys.length); return keys[randomIndex]; -}; +} -export const getRandomRpcUrl = (chain: Chain): string => { +export function getRandomRpcUrl(chain: Chain): string { const urls = RPC_URLS[chain]; if (!urls || urls.length === 0) { throw new Error(`No RPC URLs found for chain: ${chain}`); @@ -91,9 +91,9 @@ export const getRandomRpcUrl = (chain: Chain): string => { const randomIndex = Math.floor(Math.random() * urls.length); return urls[randomIndex]; -}; +} -const verifyBlock = (data: DataType) => { +function verifyBlock(data: DataType) { try { const { jsonrpc, id, result } = data; const { number, timestamp, hash } = result; @@ -101,9 +101,9 @@ const verifyBlock = (data: DataType) => { } catch (error) { return false; } -}; +} -export const getOptimalRPC = async (chain: Chain): Promise => { +export async function getOptimalRPC(chain: Chain): Promise { const promises = RPC_URLS[chain].map(async (baseURL: string) => { try { const startTime = performance.now(); @@ -115,7 +115,7 @@ export const getOptimalRPC = async (chain: Chain): Promise => { const { data } = await API.post("", RPC_BODY); const endTime = performance.now(); const latency = endTime - startTime; - if (await verifyBlock(data)) { + if (verifyBlock(data)) { return Promise.resolve({ latency, baseURL, @@ -130,9 +130,9 @@ export const getOptimalRPC = async (chain: Chain): Promise => { const { baseURL: optimalRPC } = await Promise.any(promises); return optimalRPC; -}; +} -export const parseRepoUrl = (issueUrl: string): [string, string] => { +export function parseRepoUrl(issueUrl: string): [string, string] { const match = issueUrl.match(/github\.com\/([^/]+)\/([^/]+)\/issues\/\d+/i); if (match) { const owner = match[1]; @@ -141,9 +141,9 @@ export const parseRepoUrl = (issueUrl: string): [string, string] => { } else { throw new Error("Invalid GitHub issue URL format"); } -}; +} -export const getGitHubUrlPartsArray = (urls: string[]): GitHubUrlParts[] => { +export function getGitHubUrlPartsArray(urls: string[]): GitHubUrlParts[] { const githubUrlPartsArray: GitHubUrlParts[] = []; for (const url of urls) { @@ -157,31 +157,31 @@ export const getGitHubUrlPartsArray = (urls: string[]): GitHubUrlParts[] => { } return githubUrlPartsArray; -}; +} -export const primaryRateLimitHandler = (retryAfter: number, options: RateLimitOptions) => { +export function primaryRateLimitHandler(retryAfter: number, options: RateLimitOptions) { console.warn(`Request quota exhausted for request ${options.method} ${options.url}\nRetrying after ${retryAfter} seconds!`); return true; -}; +} -export const secondaryRateLimitHandler = (retryAfter: number, options: RateLimitOptions) => { +export function secondaryRateLimitHandler(retryAfter: number, options: RateLimitOptions) { console.warn(`Secondary quota detected for request ${options.method} ${options.url}\nRetrying after ${retryAfter} seconds!`); return true; -}; +} -export const isValidUrl = (urlString: string) => { +export function isValidUrl(urlString: string) { try { return Boolean(new URL(urlString)); } catch (e) { return false; } -}; +} -export const getCurrency = (comment: string) => { +export function getCurrency(comment: string) { if (comment.includes("WXDAI")) { return Chain.Gnosis; } else if (comment.includes("DAI")) { return Chain.Ethereum; } return null; -}; +} diff --git a/static/scripts/audit-report/types/audit.d.ts b/static/scripts/audit-report/types/audit.d.ts index f5d0382c..86c3b64c 100644 --- a/static/scripts/audit-report/types/audit.d.ts +++ b/static/scripts/audit-report/types/audit.d.ts @@ -119,7 +119,7 @@ interface TableIndex { type: TableIndexTypes; multiEntry?: boolean; unique?: boolean; - default?: any; + default?: NonNullable; ref?: string; } interface GoDBTableSchema { diff --git a/static/scripts/audit-report/types/transaction.ts b/static/scripts/audit-report/types/transaction.ts index d6eee244..0d2cd07e 100644 --- a/static/scripts/audit-report/types/transaction.ts +++ b/static/scripts/audit-report/types/transaction.ts @@ -1,4 +1,4 @@ -export interface ITransaction { +export interface Transaction { input: string; hash: string; blockNumber: string; diff --git a/static/scripts/audit-report/utils/blockInfo.ts b/static/scripts/audit-report/utils/blockInfo.ts index 1a87709c..ee008c6c 100644 --- a/static/scripts/audit-report/utils/blockInfo.ts +++ b/static/scripts/audit-report/utils/blockInfo.ts @@ -1,9 +1,9 @@ -import { Chain, ChainMap } from "../constants"; +import { Chain, CHAIN_MAP } from "../constants"; -export const getBlockInfo = async (blockNumber: string, chain: Chain) => { - return await localStorage.getItem(`${ChainMap[chain]}:${blockNumber}`); -}; +export async function getBlockInfo(blockNumber: string, chain: Chain) { + return localStorage.getItem(`${CHAIN_MAP[chain]}:${blockNumber}`); +} -export const updateBlockInfo = async (blockNumber: string, timestamp: string, chain: Chain) => { - await localStorage.setItem(`${ChainMap[chain]}:${blockNumber}`, timestamp); -}; +export async function updateBlockInfo(blockNumber: string, timestamp: string, chain: Chain) { + localStorage.setItem(`${CHAIN_MAP[chain]}:${blockNumber}`, timestamp); +} diff --git a/static/scripts/audit-report/utils/getTransaction.ts b/static/scripts/audit-report/utils/getTransaction.ts index 320f0ab4..e165e21b 100644 --- a/static/scripts/audit-report/utils/getTransaction.ts +++ b/static/scripts/audit-report/utils/getTransaction.ts @@ -1,9 +1,9 @@ import axios from "axios"; -import { ITransaction } from "../types/transaction"; -import { getBlockInfo, updateBlockInfo } from "./blockInfo"; import { Chain } from "../constants"; +import { Transaction } from "../types/transaction"; +import { getBlockInfo, updateBlockInfo } from "./blockInfo"; -export const getTxInfo = async (hash: string, url: string, chain: Chain): Promise => { +export async function getTxInfo(hash: string, url: string, chain: Chain): Promise { try { const transactionResponse = await axios.post(url, { jsonrpc: "2.0", @@ -11,9 +11,9 @@ export const getTxInfo = async (hash: string, url: string, chain: Chain): Promis method: "eth_getTransactionByHash", params: [hash], }); - const transaction = transactionResponse.data.result as ITransaction; + const transaction = transactionResponse.data.result as Transaction; - let timestamp = await getBlockInfo(transaction.blockNumber, chain); + const timestamp = await getBlockInfo(transaction.blockNumber, chain); if (timestamp !== null) { transaction.timestamp = timestamp; } else { @@ -24,7 +24,7 @@ export const getTxInfo = async (hash: string, url: string, chain: Chain): Promis params: [transaction.blockNumber, false], }); transaction.timestamp = blockResponse.data.result.timestamp; - updateBlockInfo(transaction.blockNumber, transaction.timestamp, chain); + await updateBlockInfo(transaction.blockNumber, transaction.timestamp, chain); } return transaction; @@ -32,4 +32,4 @@ export const getTxInfo = async (hash: string, url: string, chain: Chain): Promis console.error(error); throw error; } -}; +} diff --git a/static/scripts/key-generator/keygen.ts b/static/scripts/key-generator/keygen.ts index a5ed2ca7..6853de7c 100644 --- a/static/scripts/key-generator/keygen.ts +++ b/static/scripts/key-generator/keygen.ts @@ -1,23 +1,24 @@ import _sodium from "libsodium-wrappers"; const classes = ["error", "warning", "success"]; +const CYPHER_KEY = "#cipherKey"; -const statusToggle = (target: "error" | "warning" | "success", value: string) => { +function statusToggle(target: "error" | "warning" | "success", value: string) { const statusKey = document.querySelector("#statusKey") as HTMLInputElement; - classes.forEach(e => { + classes.forEach((e) => { if (e !== target) { statusKey.classList.remove(e); } }); statusKey.classList.add(target); statusKey.value = value; -}; +} -const sodiumKeyBox = async () => { +async function sodiumKeyBox() { const privKey = document.querySelector("#privKey") as HTMLInputElement; const pubKey = document.querySelector("#pubKey") as HTMLInputElement; - const cipherKey = document.querySelector("#cipherKey") as HTMLInputElement; + const cipherKey = document.querySelector(CYPHER_KEY) as HTMLInputElement; cipherKey.value = ""; try { await _sodium.ready; @@ -27,16 +28,20 @@ const sodiumKeyBox = async () => { privKey.value = privateKey; pubKey.value = publicKey; statusToggle("success", `Success: Key Generation is ok.`); - } catch (error: any) { - statusToggle("error", `Error: ${error.message}`); + } catch (error: unknown) { + if (error instanceof Error) { + statusToggle("error", `Error: ${error.message}`); + } else { + statusToggle("error", `Error: ${JSON.stringify(error)}`); + } } -}; +} -const sodiumEncryptedSeal = async () => { +async function sodiumEncryptedSeal() { const pubKey = document.querySelector("#pubKey") as HTMLInputElement; const privKey = document.querySelector("#privKey") as HTMLInputElement; const plainKey = document.querySelector("#plainKey") as HTMLInputElement; - const cipherKey = document.querySelector("#cipherKey") as HTMLInputElement; + const cipherKey = document.querySelector(CYPHER_KEY) as HTMLInputElement; try { await _sodium.ready; const sodium = _sodium; @@ -58,12 +63,16 @@ const sodiumEncryptedSeal = async () => { const output = sodium.to_base64(encBytes, sodium.base64_variants.URLSAFE_NO_PADDING); cipherKey.value = output; statusToggle("success", `Success: Key Encryption is ok.`); - } catch (error: any) { - statusToggle("error", `Error: ${error.message}`); + } catch (error: unknown) { + if (error instanceof Error) { + statusToggle("error", `Error: ${error.message}`); + } else { + statusToggle("error", `Error: ${JSON.stringify(error)}`); + } } -}; +} -const sodiumOpenSeal = async () => { +async function sodiumOpenSeal() { const pubKey = document.querySelector("#pubKey") as HTMLInputElement; const privKey = document.querySelector("#privKey") as HTMLInputElement; const cipherKey = document.querySelector("#cipherKey") as HTMLInputElement; @@ -89,27 +98,37 @@ const sodiumOpenSeal = async () => { const outText = sodium.crypto_box_seal_open(binCipher, binPub, binPriv, "text"); plainKey.value = outText; statusToggle("success", `Success: Key Decryption is ok.`); - } catch (error: any) { - statusToggle("error", `Error: ${error.message}`); + } catch (error: unknown) { + if (error instanceof Error) { + statusToggle("error", `Error: ${error.message}`); + } else { + statusToggle("error", `Error: ${JSON.stringify(error)}`); + } } -}; +} -const init = () => { +function init() { const genBtn = document.querySelector("#genBtn") as HTMLButtonElement; const encryptBtn = document.querySelector("#encryptBtn") as HTMLButtonElement; const decryptBtn = document.querySelector("#decryptBtn") as HTMLButtonElement; genBtn.addEventListener("click", () => { - sodiumKeyBox(); + sodiumKeyBox().catch((error) => { + statusToggle("error", `Error: ${error.message}`); + }); }); encryptBtn.addEventListener("click", () => { - sodiumEncryptedSeal(); + sodiumEncryptedSeal().catch((error) => { + statusToggle("error", `Error: ${error.message}`); + }); }); decryptBtn.addEventListener("click", () => { - sodiumOpenSeal(); + sodiumOpenSeal().catch((error) => { + statusToggle("error", `Error: ${error.message}`); + }); }); -}; +} init(); diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index fa2f7f72..a64fb724 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -17,7 +17,7 @@ const outKey = document.getElementById("outKey") as HTMLInputElement; const githubPAT = document.getElementById("githubPat") as HTMLInputElement; const orgName = document.getElementById("orgName") as HTMLInputElement; const walletPrivateKey = document.getElementById("walletPrivateKey") as HTMLInputElement; -const safeAddressInput = document.getElementById("safeAddress") as HTMLInputElement; +// cspell: word ress // weird cspell bug seperating add and ress const setBtn = document.getElementById("setBtn") as HTMLButtonElement; const allowanceInput = document.getElementById("allowance") as HTMLInputElement; const chainIdSelect = document.getElementById("chainId") as HTMLSelectElement; @@ -29,38 +29,42 @@ const KEY_PATH = ".github/ubiquibot-config.yml"; const PRIVATE_ENCRYPTED_KEY_NAME = "privateKeyEncrypted"; const EVM_NETWORK_KEY_NAME = "evmNetworkId"; const KEY_PREFIX = "HSK_"; +// cspell:disable-next-line const X25519_KEY = "5ghIlfGjz_ChcYlBDOG7dzmgAgBPuTahpvTMBipSH00"; +const STATUS_LOG = ".status-log"; let encryptedValue = ""; -let defaultConf = DefaultConfig; +const defaultConf = DefaultConfig; -export const parseYAML = async (data: string | undefined) => { +export async function parseYAML(data: string | undefined) { if (!data) return undefined; try { const parsedData = await YAML.parse(data); if (parsedData !== null) { - return parsedData as T; + return parsedData; } else { return undefined; } } catch (error) { return undefined; } -}; +} -export const parseJSON = async (data: string) => { +export async function parseJSON(data: string) { try { const parsedData = await JSON.parse(data); return parsedData as T; } catch (error) { return undefined; } -}; +} -export const YAMLStringify = (value: any) => YAML.stringify(value, { defaultKeyType: "PLAIN", defaultStringType: "QUOTE_DOUBLE", lineWidth: 0 }); +export function stringifyYAML(value: MergedConfig): string { + return YAML.stringify(value, { defaultKeyType: "PLAIN", defaultStringType: "QUOTE_DOUBLE", lineWidth: 0 }); +} -export const getConf = async (): Promise => { +export async function getConf(): Promise { try { const octokit = new Octokit({ auth: githubPAT.value }); const { data } = await octokit.rest.repos.getContent({ @@ -72,49 +76,48 @@ export const getConf = async (): Promise => { }, }); return data as unknown as string; - } catch (error: any) { + } catch (error: unknown) { return undefined; } -}; +} -const getTextBox = (text: string) => { +function getTextBox(text: string) { const strLen = text.split("\n").length * 22; - const strPx = `${strLen > 140 ? strLen : 140}px`; - return strPx; -}; - -const resetToggle = () => { - (walletPrivateKey.parentNode?.querySelector(".status-log") as HTMLElement).innerHTML = ""; - (githubPAT.parentNode?.querySelector(".status-log") as HTMLElement).innerHTML = ""; - (orgName.parentNode?.querySelector(".status-log") as HTMLElement).innerHTML = ""; -}; - -const classListToggle = (targetElem: HTMLElement, target: "error" | "warn" | "success", inputElem?: HTMLInputElement | HTMLTextAreaElement) => { - classes.forEach(className => targetElem.classList.remove(className)); + return `${strLen > 140 ? strLen : 140}px`; +} + +function resetToggle() { + (walletPrivateKey.parentNode?.querySelector(STATUS_LOG) as HTMLElement).innerHTML = ""; + (githubPAT.parentNode?.querySelector(STATUS_LOG) as HTMLElement).innerHTML = ""; + (orgName.parentNode?.querySelector(STATUS_LOG) as HTMLElement).innerHTML = ""; +} + +function classListToggle(targetElem: HTMLElement, target: "error" | "warn" | "success", inputElem?: HTMLInputElement | HTMLTextAreaElement) { + classes.forEach((className) => targetElem.classList.remove(className)); targetElem.classList.add(target); if (inputElem) { - inputClasses.forEach(className => inputElem.classList.remove(className)); + inputClasses.forEach((className) => inputElem.classList.remove(className)); inputElem.classList.add(`input-${target}`); } -}; +} -const statusToggle = (type: "error" | "warn" | "success", message: string) => { +function statusToggle(type: "error" | "warn" | "success", message: string) { resetToggle(); const statusKey = document.getElementById("statusKey") as HTMLInputElement; classListToggle(statusKey, type); statusKey.value = message; -}; +} -const focusToggle = (targetElem: HTMLInputElement | HTMLTextAreaElement, type: "error" | "warn" | "success", message: string) => { +function focusToggle(targetElem: HTMLInputElement | HTMLTextAreaElement, type: "error" | "warn" | "success", message: string) { resetToggle(); - const infoElem = targetElem.parentNode?.querySelector(".status-log") as HTMLElement; + const infoElem = targetElem.parentNode?.querySelector(STATUS_LOG) as HTMLElement; infoElem.innerHTML = message; classListToggle(infoElem, type, targetElem); targetElem.focus(); -}; +} -const toggleLoader = (state: "start" | "end") => { +function toggleLoader(state: "start" | "end") { if (state === "start") { setBtn.disabled = true; loader.style.display = "flex"; @@ -122,9 +125,9 @@ const toggleLoader = (state: "start" | "end") => { setBtn.disabled = false; loader.style.display = "none"; } -}; +} -const singleToggle = (type: "error" | "warn" | "success", message: string, focusElem?: HTMLInputElement | HTMLTextAreaElement) => { +function singleToggle(type: "error" | "warn" | "success", message: string, focusElem?: HTMLInputElement | HTMLTextAreaElement) { statusToggle(type, message); if (focusElem) { @@ -132,9 +135,9 @@ const singleToggle = (type: "error" | "warn" | "success", message: string, focus } toggleLoader("end"); -}; +} -const sodiumEncryptedSeal = async (publicKey: string, secret: string) => { +async function sodiumEncryptedSeal(publicKey: string, secret: string) { outKey.value = ""; encryptedValue = ""; try { @@ -147,16 +150,19 @@ const sodiumEncryptedSeal = async (publicKey: string, secret: string) => { const output = sodium.to_base64(encBytes, sodium.base64_variants.URLSAFE_NO_PADDING); defaultConf[PRIVATE_ENCRYPTED_KEY_NAME] = output; defaultConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); - outKey.value = YAMLStringify(defaultConf); + outKey.value = stringifyYAML(defaultConf); outKey.style.height = getTextBox(outKey.value); encryptedValue = output; singleToggle("success", `Success: Key Encryption is ok.`); - } catch (error: any) { - singleToggle("error", `Error: ${error.message}`); + } catch (error: unknown) { + if (error instanceof Error) { + console.error(error); + singleToggle("error", `Error: ${error.message}`); + } } -}; +} -const setConfig = async () => { +async function setConfig() { try { toggleLoader("start"); const pluginKit = Octokit.plugin(createOrUpdateTextFile); @@ -165,116 +171,138 @@ const setConfig = async () => { username: orgName.value, }); if (userInfo.type === "Organization") { - let repository_id: number | null = null; - try { - const { data: repository_info } = await octokit.rest.repos.get({ - owner: orgName.value, - repo: REPO_NAME, - }); - repository_id = repository_info.id; - } catch (error) { - if (!(error instanceof Error)) { - return console.error(error); - } - - console.error(error.message); - try { - const { data: repo_res } = await octokit.rest.repos.createInOrg({ - org: orgName.value, - name: REPO_NAME, - auto_init: true, - private: true, - visibility: "private", - has_downloads: true, - }); - repository_id = repo_res.id; - } catch (error) { - if (!(error instanceof Error)) { - return console.error(error); - } - console.error(error.message); - singleToggle("error", `Error: Repo initialization failed, try again later.`); - return; - } - } + const repositoryId = await getRepoID(octokit, orgName.value, REPO_NAME); const { data: appInstallations } = await octokit.rest.orgs.listAppInstallations({ org: orgName.value, per_page: 100, }); - const ins = appInstallations.installations.filter(installation => installation.app_id === APP_ID); - - if (ins.length > 0) { - const installation_id = ins[0].id; - const { data: installed_repos } = await octokit.rest.apps.listInstallationReposForAuthenticatedUser({ - installation_id: installation_id, - }); - const irs = installed_repos.repositories.filter(installed_repo => installed_repo.id === repository_id); + const ins = appInstallations.installations.filter((installation) => installation.app_id === APP_ID); - if (irs.length === 0) { - await octokit.rest.apps.addRepoToInstallationForAuthenticatedUser({ - installation_id: installation_id, - repository_id: repository_id, - }); - } + await handleInstall(octokit, orgName, repositoryId, ins, chainIdSelect); + } else { + singleToggle("error", `Error: Not an organization.`, orgName); + } + } catch (error) { + if (!(error instanceof Error)) { + return console.error(error); + } + console.error(error); + singleToggle("error", `Error: ${error.message}`); + } +} + +async function handleInstall( + octokit: Octokit, + orgName: HTMLInputElement, + repositoryId: number | null, + ins: { id: number }[], + chainIdSelect: HTMLSelectElement +) { + if (ins.length > 0) { + const installationId = ins[0].id; + const { data: installedRepos } = await octokit.rest.apps.listInstallationReposForAuthenticatedUser({ + installation_id: installationId, + }); + const irs = installedRepos.repositories.filter((installedRepo) => installedRepo.id === repositoryId); - const conf = await getConf(); + if (irs.length === 0) { + if (!repositoryId) { + singleToggle("error", `Error: Repo initialization failed, try again later.`); + return; + } + await octokit.rest.apps.addRepoToInstallationForAuthenticatedUser({ + installation_id: installationId, + repository_id: repositoryId, + }); + } - const updatedConf = defaultConf; - const parsedConf = await parseYAML(conf); - updatedConf[PRIVATE_ENCRYPTED_KEY_NAME] = encryptedValue; - updatedConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); + const conf = await getConf(); - // combine configs (default + remote org wide) - const combinedConf = Object.assign(updatedConf, parsedConf); + const updatedConf = defaultConf; + const parsedConf = await parseYAML(conf); + updatedConf[PRIVATE_ENCRYPTED_KEY_NAME] = encryptedValue; + updatedConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); - const stringified = YAMLStringify(combinedConf); - outKey.value = stringified; - const { updated } = await octokit.createOrUpdateTextFile({ - owner: orgName.value, - repo: REPO_NAME, - path: KEY_PATH, - content: stringified, - message: `${crypto.randomUUID()}`, - }); + // combine configs (default + remote org wide) + const combinedConf = Object.assign(updatedConf, parsedConf); - if (updated) { - singleToggle("success", `Success: private key is updated.`); - } else { - singleToggle("success", `Success: private key is upto date.`); - } + const stringified = stringifyYAML(combinedConf); + outKey.value = stringified; + const { status } = await octokit.repos.createOrUpdateFileContents({ + owner: orgName.value, + repo: REPO_NAME, + path: KEY_PATH, + content: stringified, + message: `${crypto.randomUUID()}`, + }); - await nextStep(); - } else { - singleToggle("warn", `Warn: Please install the app first.`); - } + if (status === 201 || status === 200) { + singleToggle("success", `Success: private key is updated.`); } else { - singleToggle("error", `Error: Not an organization.`, orgName); + singleToggle("success", `Success: private key is upto date.`); } + + await nextStep(); + } else { + singleToggle("warn", `Warn: Please install the app first.`); + } +} + +async function getRepoID(octokit: Octokit, orgName: string, repoName: string): Promise { + let repositoryId: number | null = null; + + try { + const { data: repositoryInfo } = await octokit.rest.repos.get({ + owner: orgName, + repo: repoName, + }); + repositoryId = repositoryInfo.id; } catch (error) { if (!(error instanceof Error)) { - return console.error(error); + console.error(error); + return null; + } + + console.error(error.message); + try { + const { data: repoRes } = await octokit.rest.repos.createInOrg({ + org: orgName, + name: repoName, + auto_init: true, + private: true, + visibility: "private", + has_downloads: true, + }); + repositoryId = repoRes.id; + } catch (error) { + if (!(error instanceof Error)) { + console.error(error); + return null; + } + console.error(error.message); + singleToggle("error", `Error: Repo initialization failed, try again later.`); + return null; } - console.error(error); - singleToggle("error", `Error: ${error.message}`); } -}; + return repositoryId; +} -const setInputListeners = () => { +function setInputListeners() { const inputs = document.querySelectorAll("input") as NodeListOf; - inputs.forEach(input => { - input.addEventListener("input", e => { - inputClasses.forEach(className => (e.target as HTMLInputElement).classList.remove(className)); - (((e.target as HTMLInputElement).parentNode as HTMLElement).querySelector(".status-log") as HTMLElement).innerHTML = ""; + inputs.forEach((input) => { + input.addEventListener("input", (e) => { + inputClasses.forEach((className) => (e.target as HTMLInputElement).classList.remove(className)); + (((e.target as HTMLInputElement).parentNode as HTMLElement).querySelector(STATUS_LOG) as HTMLElement).innerHTML = ""; }); }); -}; +} let currentStep = 1; let signer: JsonRpcSigner | undefined = undefined; -const nextStep = async () => { +async function nextStep() { const configChainId = Number(chainIdSelect.value); const tokenNameSpan = document.getElementById("allowance + span"); @@ -318,34 +346,37 @@ const nextStep = async () => { } } - // watch for chain changes - window.ethereum.on("chainChanged", async (currentChainId: string) => { - if (configChainId === parseInt(currentChainId, 16)) { + // watch for chain changes making this generic suppresses the unknown comparison + window.ethereum.on("chainChanged", async (currentChainId: T | string) => { + if (configChainId === parseInt(currentChainId as string, 16)) { singleToggle("success", ``); } else { singleToggle("error", `Error: Please connect to ${getNetworkName(configChainId)}.`); - switchNetwork(provider, configChainId); + switchNetwork(provider, configChainId).catch((error) => { + console.error(error); + }); } }); -}; +} -const connectWallet = async (): Promise => { +async function connectWallet(): Promise { try { const provider = new ethers.providers.Web3Provider(window.ethereum, "any"); await provider.send("eth_requestAccounts", []); - const signer = provider.getSigner(); - return signer; - } catch (error: any) { - if (error?.message?.includes("missing provider")) { - singleToggle("error", "Error: Please install MetaMask."); - } else { - singleToggle("error", "Error: Please connect your wallet."); + return provider.getSigner(); + } catch (error: unknown) { + if (error instanceof Error) { + if (error?.message?.includes("missing provider")) { + singleToggle("error", "Error: Please install MetaMask."); + } else { + singleToggle("error", "Error: Please connect your wallet."); + } + return undefined; } - return undefined; } -}; +} -const switchNetwork = async (provider: ethers.providers.Web3Provider, chainId: string | number): Promise => { +async function switchNetwork(provider: ethers.providers.Web3Provider, chainId: string | number): Promise { try { // if chainId is a number then convert it to hex if (typeof chainId === "number") { @@ -357,17 +388,17 @@ const switchNetwork = async (provider: ethers.providers.Web3Provider, chainId: s } await provider.send("wallet_switchEthereumChain", [{ chainId: chainId }]); return true; - } catch (error: any) { + } catch (error: unknown) { return false; } -}; +} -const isHex = (str: string): boolean => { +function isHex(str: string): boolean { const regexp = /^[0-9a-fA-F]+$/; return regexp.test(str); -}; +} -const step1Handler = async () => { +async function step1Handler() { if (walletPrivateKey.value === "") { singleToggle("warn", `Warn: Private_Key is not set.`, walletPrivateKey); return; @@ -390,10 +421,12 @@ const step1Handler = async () => { } await sodiumEncryptedSeal(X25519_KEY, `${KEY_PREFIX}${walletPrivateKey.value}`); - setConfig(); -}; + setConfig().catch((error) => { + console.error(error); + }); +} -const step2Handler = async () => { +async function step2Handler() { try { if (!window.ethereum) { singleToggle("error", `Error: Please install MetaMask or any other Ethereum wallet.`); @@ -414,20 +447,20 @@ const step2Handler = async () => { const walletChainId = await signer.getChainId(); const configChainId = Number(chainIdSelect.value); - window.ethereum.on("chainChanged", async (currentChainId: string) => { - if (configChainId === parseInt(currentChainId, 16)) { + window.ethereum.on("chainChanged", async (currentChainId: T | string) => { + if (configChainId === parseInt(currentChainId as string, 16)) { singleToggle("success", ``); } else { singleToggle("error", `Error: Please connect to ${chainIdSelect.value}.`); - switchNetwork(provider, configChainId); + switchNetwork(provider, configChainId).catch((error) => { + console.error(error); + }); } }); - if (walletChainId !== configChainId) { - if (!(await switchNetwork(provider, configChainId))) { - singleToggle("error", `Error: Switch to the correct chain.`); - return; - } + if (walletChainId !== configChainId && !(await switchNetwork(provider, configChainId))) { + singleToggle("error", `Error: Switch to the correct chain.`); + return; } // load token contract @@ -447,13 +480,15 @@ const step2Handler = async () => { await erc20.approve(PERMIT2_ADDRESS, parseUnits(allowance.toString(), decimals)); singleToggle("success", `Success`); - } catch (error: any) { - console.error(error); - singleToggle("error", `Error: ${error.reason}`); + } catch (error: unknown) { + if (error instanceof Error) { + console.error(error); + singleToggle("error", `Error: ${error.message}`); + } } -}; +} -const init = async () => { +async function init() { if (defaultConf !== undefined) { try { defaultConf[PRIVATE_ENCRYPTED_KEY_NAME] = undefined; @@ -472,6 +507,8 @@ const init = async () => { } else { throw new Error("Default config fetch failed"); } -}; +} -init(); +init().catch((error) => { + console.error(error); +}); diff --git a/static/scripts/rewards/abis/nftRewardAbi.ts b/static/scripts/rewards/abis/nftRewardAbi.ts index a8097ed5..eb89aac1 100644 --- a/static/scripts/rewards/abis/nftRewardAbi.ts +++ b/static/scripts/rewards/abis/nftRewardAbi.ts @@ -1,3 +1,4 @@ +/* eslint-disable sonarjs/no-duplicate-string */ export const nftRewardAbi = [ { inputs: [ diff --git a/static/scripts/rewards/abis/permit2Abi.ts b/static/scripts/rewards/abis/permit2Abi.ts index 3714e250..5d170507 100644 --- a/static/scripts/rewards/abis/permit2Abi.ts +++ b/static/scripts/rewards/abis/permit2Abi.ts @@ -1,3 +1,4 @@ +// cspell: word lockdown export const permit2Abi = [ { inputs: [{ internalType: "uint256", name: "deadline", type: "uint256" }], name: "AllowanceExpired", type: "error" }, { inputs: [], name: "ExcessiveInvalidation", type: "error" }, diff --git a/static/scripts/rewards/cirip/ens-lookup.ts b/static/scripts/rewards/cirip/ens-lookup.ts index 60a0b974..67a772fd 100644 --- a/static/scripts/rewards/cirip/ens-lookup.ts +++ b/static/scripts/rewards/cirip/ens-lookup.ts @@ -4,17 +4,17 @@ import { fetchEns } from "./fetch-ens"; import { queryReverseEns } from "./query-reverse-ens"; export const UBIQUITY_RPC_ENDPOINT = "https://rpc-pay.ubq.fi/v1/mainnet"; -export const ReverseEnsInterface = new ethers.utils.Interface(abi); +export const reverseEnsInterface = new ethers.utils.Interface(abi); // addEventListener("fetch", event => { // event.respondWith(handleRequest(event.request).catch(err => new Response(err.stack, { status: 500 }))); // }); -export async function ensLookup(__address: string) { - const _address = "/".concat(__address); // quick adapter +export async function ensLookup(addr: string) { + const _address = "/".concat(addr); // quick adapter // try { - let start = _address.indexOf("/0x"); + const start = _address.indexOf("/0x"); if (start == -1) throw "No ethereum address provided."; if (_address.length <= 42 + start) { throw "Invalid ethereum address provided."; @@ -26,14 +26,14 @@ export async function ensLookup(__address: string) { try { reverseRecord = await queryReverseEns(address); const responseParsed = JSON.parse(reverseRecord).result; - let _reverseRecord = ethers.utils.defaultAbiCoder.decode([ethers.utils.ParamType.from("string[]")], responseParsed); + const _reverseRecord = ethers.utils.defaultAbiCoder.decode([ethers.utils.ParamType.from("string[]")], responseParsed); reverseRecord = _reverseRecord[0][0]; } catch (e) { console.error(e); // throw "Error contacting ethereum node. \nCause: '" + e + "'. \nResponse: " + response; } - let allDomains = await fetchEns(address); + const allDomains = await fetchEns(address); if (reverseRecord == "") { reverseRecord = null; @@ -45,12 +45,10 @@ export async function ensLookup(__address: string) { reverseRecord = null; } - let response = { + return { reverseRecord: reverseRecord, domains: allDomains, }; - - return response; // new Response(JSON.stringify(response), { // headers: { // "Content-Type": "application/json;charset=UTF-8", diff --git a/static/scripts/rewards/cirip/fetch-ens.ts b/static/scripts/rewards/cirip/fetch-ens.ts index 6a30d000..ba3ba46c 100644 --- a/static/scripts/rewards/cirip/fetch-ens.ts +++ b/static/scripts/rewards/cirip/fetch-ens.ts @@ -1,6 +1,6 @@ import { queryGraph } from "./query-graph"; -export async function fetchEns(address) { +export async function fetchEns(address: string) { const endpoint = "https://api.thegraph.com/subgraphs/name/ensdomains/ens"; const query = `{ domains(where:{owner:"${address.toLowerCase()}"}) { @@ -8,5 +8,5 @@ export async function fetchEns(address) { } }`; const res = await queryGraph(endpoint, query); - return res.data.domains.map(d => d.name); + return res.data.domains.map((domain: { name: string }) => domain.name); } diff --git a/static/scripts/rewards/cirip/query-graph.ts b/static/scripts/rewards/cirip/query-graph.ts index e485b54a..8df99d5d 100644 --- a/static/scripts/rewards/cirip/query-graph.ts +++ b/static/scripts/rewards/cirip/query-graph.ts @@ -1,4 +1,4 @@ -export async function queryGraph(endpoint, query) { +export async function queryGraph(endpoint: string | URL | Request, query: string) { const response = await fetch(endpoint, { method: "POST", headers: { diff --git a/static/scripts/rewards/cirip/query-reverse-ens.ts b/static/scripts/rewards/cirip/query-reverse-ens.ts index 4c3ad21f..5b14fd76 100644 --- a/static/scripts/rewards/cirip/query-reverse-ens.ts +++ b/static/scripts/rewards/cirip/query-reverse-ens.ts @@ -1,7 +1,7 @@ -import { ReverseEnsInterface, UBIQUITY_RPC_ENDPOINT } from "./ens-lookup"; +import { reverseEnsInterface, UBIQUITY_RPC_ENDPOINT } from "./ens-lookup"; export async function queryReverseEns(address: string) { - const data = ReverseEnsInterface.encodeFunctionData("getNames", [[address.substring(2)]]); + const data = reverseEnsInterface.encodeFunctionData("getNames", [[address.substring(2)]]); const response = await fetch(UBIQUITY_RPC_ENDPOINT, { method: "POST", diff --git a/static/scripts/rewards/helpers.ts b/static/scripts/rewards/helpers.ts index 9841e04b..a75d2fb8 100644 --- a/static/scripts/rewards/helpers.ts +++ b/static/scripts/rewards/helpers.ts @@ -1,8 +1,8 @@ import axios from "axios"; -import { NetworkIds, networkRpcs } from "./constants"; import { Contract, ethers } from "ethers"; import { erc20Abi } from "./abis"; import { JsonRpcProvider } from "@ethersproject/providers"; +import { networkRpcs } from "./constants"; type DataType = { jsonrpc: string; @@ -14,7 +14,7 @@ type DataType = { }; }; -const verifyBlock = (data: DataType) => { +function verifyBlock(data: DataType) { try { const { jsonrpc, id, result } = data; const { number, timestamp, hash } = result; @@ -22,7 +22,7 @@ const verifyBlock = (data: DataType) => { } catch (error) { return false; } -}; +} const RPC_BODY = JSON.stringify({ jsonrpc: "2.0", @@ -35,12 +35,11 @@ const RPC_HEADER = { "Content-Type": "application/json", }; -export const getErc20Contract = async (contractAddress: string, provider: JsonRpcProvider): Promise => { - const contractInstance = new ethers.Contract(contractAddress, erc20Abi, provider); - return contractInstance; -}; +export async function getErc20Contract(contractAddress: string, provider: JsonRpcProvider): Promise { + return new ethers.Contract(contractAddress, erc20Abi, provider); +} -export const getOptimalProvider = async (networkId: number) => { +export async function getOptimalProvider(networkId: number) { const promises = networkRpcs[networkId].map(async (baseURL: string) => { try { const startTime = performance.now(); @@ -52,7 +51,7 @@ export const getOptimalProvider = async (networkId: number) => { const { data } = await API.post("", RPC_BODY); const endTime = performance.now(); const latency = endTime - startTime; - if (await verifyBlock(data)) { + if (verifyBlock(data)) { return Promise.resolve({ latency, baseURL, @@ -67,8 +66,8 @@ export const getOptimalProvider = async (networkId: number) => { const { baseURL: optimalRPC } = await Promise.any(promises); return new ethers.providers.JsonRpcProvider(optimalRPC, { - name: NetworkIds[networkId], + name: optimalRPC, chainId: networkId, ensAddress: "", }); -}; +} diff --git a/static/scripts/rewards/index.ts b/static/scripts/rewards/index.ts index ae360c10..9aa754c4 100644 --- a/static/scripts/rewards/index.ts +++ b/static/scripts/rewards/index.ts @@ -11,10 +11,10 @@ import { grid } from "./the-grid"; buildElement.innerHTML = commitHash; buildElement.href = `https://github.com/ubiquity/pay.ubq.fi/commit/${commitHash}`; } - init(); + init().catch(console.error); } catch (error) { console.error(error); } -})(); +})().catch(console.error); grid(document.getElementById("grid") as HTMLElement); diff --git a/static/scripts/rewards/invalidate-component.ts b/static/scripts/rewards/invalidate-component.ts index f469bdc9..8687d329 100644 --- a/static/scripts/rewards/invalidate-component.ts +++ b/static/scripts/rewards/invalidate-component.ts @@ -2,11 +2,11 @@ const invalidateBtnInnerHTML = `
Void
`; // parse string and turn into an html entity -const parseHtml = (html: string) => { +function parseHtml(html: string) { const button = document.createElement("button"); button.id = "invalidateBtn"; button.innerHTML = html; return button.cloneNode(true) as HTMLButtonElement; -}; +} export default parseHtml(invalidateBtnInnerHTML); diff --git a/static/scripts/rewards/render-transaction/index.ts b/static/scripts/rewards/render-transaction/index.ts index 2c89a54a..1d102f85 100644 --- a/static/scripts/rewards/render-transaction/index.ts +++ b/static/scripts/rewards/render-transaction/index.ts @@ -1,6 +1,5 @@ -import { JsonRpcProvider } from "@ethersproject/providers"; -import { networkExplorers } from "../constants"; import { getOptimalProvider } from "../helpers"; +import { networkExplorers } from "../constants"; import { ClaimTx } from "./tx-type"; class AppState { diff --git a/static/scripts/rewards/render-transaction/insert-table-data.ts b/static/scripts/rewards/render-transaction/insert-table-data.ts index 9d49bbc1..565bc1ce 100644 --- a/static/scripts/rewards/render-transaction/insert-table-data.ts +++ b/static/scripts/rewards/render-transaction/insert-table-data.ts @@ -1,15 +1,15 @@ import { BigNumber, ethers } from "ethers"; import { app } from "."; -import { Erc721Permit, Erc20Permit } from "./tx-type"; +import { Erc20Permit, Erc721Permit } from "./tx-type"; -export const shortenAddress = (address: string): string => { +export function shortenAddress(address: string): string { return `${address.slice(0, 10)}...${address.slice(-8)}`; -}; +} export function insertErc20PermitTableData( permit: Erc20Permit, table: Element, - treasury: { balance: BigNumber; allowance: BigNumber; decimals: number; symbol: string }, + treasury: { balance: BigNumber; allowance: BigNumber; decimals: number; symbol: string } ): Element { const requestedAmountElement = document.getElementById("rewardAmount") as Element; renderToFields(permit.transferDetails.to, app.currentExplorerUrl); diff --git a/static/scripts/rewards/render-transaction/render-token-symbol.ts b/static/scripts/rewards/render-transaction/render-token-symbol.ts index 028ffaca..d7af472a 100644 --- a/static/scripts/rewards/render-transaction/render-token-symbol.ts +++ b/static/scripts/rewards/render-transaction/render-token-symbol.ts @@ -1,4 +1,4 @@ -import { BigNumberish, Contract, providers, utils } from "ethers"; +import { BigNumberish, Contract, utils } from "ethers"; import { getErc20Contract } from "../helpers"; import { MaxUint256 } from "@uniswap/permit2-sdk"; import { JsonRpcProvider } from "@ethersproject/providers"; @@ -43,7 +43,7 @@ export async function renderTokenSymbol({ table.setAttribute(`data-contract-loaded`, "true"); requestedAmountElement.innerHTML = `${utils.formatUnits( amount, - decimals, + decimals )} ${symbol}`; } diff --git a/static/scripts/rewards/render-transaction/render-transaction.ts b/static/scripts/rewards/render-transaction/render-transaction.ts index 78ef3884..2bded0a4 100644 --- a/static/scripts/rewards/render-transaction/render-transaction.ts +++ b/static/scripts/rewards/render-transaction/render-transaction.ts @@ -1,16 +1,16 @@ +import { Type } from "@sinclair/typebox"; +import { Value } from "@sinclair/typebox/value"; +import { networkExplorers } from "../constants"; +import { claimButton, hideClaimButton, resetClaimButton } from "../toaster"; +import { claimErc20PermitHandler, fetchTreasury, generateInvalidatePermitAdminControl } from "../web3/erc20-permit"; +import { claimErc721PermitHandler } from "../web3/erc721-permit"; +import { handleNetwork } from "../web3/wallet"; import { app } from "./index"; -import { insertErc721PermitTableData, insertErc20PermitTableData } from "./insert-table-data"; +import { insertErc20PermitTableData, insertErc721PermitTableData } from "./insert-table-data"; import { renderEnsName } from "./render-ens-name"; import { renderNftSymbol, renderTokenSymbol } from "./render-token-symbol"; import { setClaimMessage } from "./set-claim-message"; -import { networkExplorers } from "../constants"; -import { claimButton, hideClaimButton, resetClaimButton } from "../toaster"; -import { Value } from "@sinclair/typebox/value"; -import { Type } from "@sinclair/typebox"; -import { ClaimTx } from "./tx-type"; -import { handleNetwork } from "../web3/wallet"; -import { claimErc721PermitHandler } from "../web3/erc721-permit"; -import { claimErc20PermitHandler, fetchTreasury, generateInvalidatePermitAdminControl } from "../web3/erc20-permit"; +import { claimTxT } from "./tx-type"; import { removeAllEventListeners } from "./utils"; import { getOptimalProvider } from "../helpers"; import { JsonRpcProvider } from "@ethersproject/providers"; @@ -31,11 +31,11 @@ export async function init() { } try { - const claimTxs = Value.Decode(Type.Array(ClaimTx), JSON.parse(atob(base64encodedTxData))); + const claimTxs = Value.Decode(Type.Array(claimTxT), JSON.parse(atob(base64encodedTxData))); app.claimTxs = claimTxs; optimalRPC = await getOptimalProvider(app.currentTx?.networkId ?? app.claimTxs[0].networkId); - handleNetwork(app.currentTx?.networkId ?? app.claimTxs[0].networkId, optimalRPC); + handleNetwork(app.currentTx?.networkId ?? app.claimTxs[0].networkId).catch(console.error); } catch (error) { console.error(error); setClaimMessage({ type: "Error", message: `Invalid claim data passed in URL` }); @@ -43,14 +43,14 @@ export async function init() { return false; } - let detailsVisible = false; + let isDetailsVisible = false; - table.setAttribute(`data-details-visible`, detailsVisible.toString()); + table.setAttribute(`data-details-visible`, isDetailsVisible.toString()); const additionalDetails = document.getElementById(`additionalDetails`) as Element; additionalDetails.addEventListener("click", () => { - detailsVisible = !detailsVisible; - table.setAttribute(`data-details-visible`, detailsVisible.toString()); + isDetailsVisible = !isDetailsVisible; + table.setAttribute(`data-details-visible`, isDetailsVisible.toString()); }); const rewardsCount = document.getElementById("rewardsCount"); @@ -67,7 +67,7 @@ export async function init() { app.nextTx(); rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; table.setAttribute(`data-claim`, "none"); - renderTransaction(optimalRPC, undefined); + renderTransaction(optimalRPC, true).catch(console.error); }); } @@ -78,7 +78,7 @@ export async function init() { app.previousTx(); rewardsCount.innerHTML = `${app.currentIndex + 1}/${app.claimTxs.length} reward`; table.setAttribute(`data-claim`, "none"); - renderTransaction(optimalRPC, undefined); + renderTransaction(optimalRPC, true).catch(console.error); }); } @@ -86,16 +86,17 @@ export async function init() { } } - renderTransaction(optimalRPC, undefined); + renderTransaction(optimalRPC, true).catch(console.error); } function setPagination(nextTxButton: Element | null, prevTxButton: Element | null) { + if (!nextTxButton || !prevTxButton) return; if (app.claimTxs.length > 1) { - prevTxButton!.classList.remove("hide-pagination"); - nextTxButton!.classList.remove("hide-pagination"); + prevTxButton.classList.remove("hide-pagination"); + nextTxButton.classList.remove("hide-pagination"); - prevTxButton!.classList.add("show-pagination"); - nextTxButton!.classList.add("show-pagination"); + prevTxButton.classList.add("show-pagination"); + nextTxButton.classList.add("show-pagination"); } } @@ -122,6 +123,8 @@ export async function renderTransaction(provider: JsonRpcProvider, nextTx?: bool return false; } + handleNetwork(app.currentTx.networkId).catch(console.error); + if (app.currentTx.type === "erc20-permit") { const treasury = await fetchTreasury(app.currentTx, provider); @@ -140,9 +143,9 @@ export async function renderTransaction(provider: JsonRpcProvider, nextTx?: bool }).catch(console.error); const toElement = document.getElementById(`rewardRecipient`) as Element; - renderEnsName({ element: toElement, address: app.currentTx.transferDetails.to }); + renderEnsName({ element: toElement, address: app.currentTx.transferDetails.to }).catch(console.error); - generateInvalidatePermitAdminControl(app.currentTx); + generateInvalidatePermitAdminControl(app.currentTx).catch(console.error); claimButton.element.addEventListener("click", claimErc20PermitHandler(app.currentTx, optimalRPC)); } else if (app.currentTx.type === "erc721-permit") { @@ -158,7 +161,7 @@ export async function renderTransaction(provider: JsonRpcProvider, nextTx?: bool }).catch(console.error); const toElement = document.getElementById(`rewardRecipient`) as Element; - renderEnsName({ element: toElement, address: app.currentTx.request.beneficiary }); + renderEnsName({ element: toElement, address: app.currentTx.request.beneficiary }).catch(console.error); claimButton.element.addEventListener("click", claimErc721PermitHandler(app.currentTx, provider)); } diff --git a/static/scripts/rewards/render-transaction/tx-type.ts b/static/scripts/rewards/render-transaction/tx-type.ts index afe0ef9a..23df1341 100644 --- a/static/scripts/rewards/render-transaction/tx-type.ts +++ b/static/scripts/rewards/render-transaction/tx-type.ts @@ -1,52 +1,52 @@ -import { Type as T, StaticDecode } from "@sinclair/typebox"; +import { StaticDecode, Type as T } from "@sinclair/typebox"; import { BigNumber } from "ethers"; -const TBigNumber = T.Transform(T.Union([T.RegExp(/^\d+$/), T.Number()])) - .Decode(value => BigNumber.from(value)) - .Encode(value => value.toString()); +const bigNumberT = T.Transform(T.Union([T.RegExp(/^\d+$/), T.Number()])) + .Decode((value) => BigNumber.from(value)) + .Encode((value) => value.toString()); -// const TNetworkId = T.Transform(T.Union([T.RegExp(/^0x\d+$/), T.Number()])) +// const networkIdT = T.Transform(T.Union([T.RegExp(/^0x\d+$/), T.Number()])) // .Decode(value => (typeof value === "number" ? "0x" + value.toString(16) : value)) // .Encode(value => value); -const TNetworkId = T.Number(); +const networkIdT = T.Number(); -const TAddress = T.Transform(T.RegExp(/^0x[a-fA-F0-9]{40}$/)) - .Decode(value => value.toLowerCase()) - .Encode(value => value); +const addressT = T.Transform(T.RegExp(/^0x[a-fA-F0-9]{40}$/)) + .Decode((value) => value.toLowerCase()) + .Encode((value) => value); -const TSignature = T.Transform(T.RegExp(/^0x[a-fA-F0-9]+$/)) - .Decode(value => value.toLowerCase()) - .Encode(value => value); +const signatureT = T.Transform(T.RegExp(/^0x[a-fA-F0-9]+$/)) + .Decode((value) => value.toLowerCase()) + .Encode((value) => value); -const Erc20Permit = T.Object({ +const erc20PermitT = T.Object({ type: T.Literal("erc20-permit"), permit: T.Object({ permitted: T.Object({ - token: TAddress, - amount: TBigNumber, + token: addressT, + amount: bigNumberT, }), - nonce: TBigNumber, - deadline: TBigNumber, + nonce: bigNumberT, + deadline: bigNumberT, }), transferDetails: T.Object({ - to: TAddress, - requestedAmount: TBigNumber, + to: addressT, + requestedAmount: bigNumberT, }), - owner: TAddress, - signature: TSignature, - networkId: TNetworkId, + owner: addressT, + signature: signatureT, + networkId: networkIdT, }); -export type Erc20Permit = StaticDecode; +export type Erc20Permit = StaticDecode; -const Erc721Permit = T.Object({ +const erc721Permit = T.Object({ type: T.Literal("erc721-permit"), request: T.Object({ - beneficiary: TAddress, - deadline: TBigNumber, + beneficiary: addressT, + deadline: bigNumberT, keys: T.Array(T.String()), - nonce: TBigNumber, + nonce: bigNumberT, values: T.Array(T.String()), }), nftMetadata: T.Object({ @@ -56,13 +56,13 @@ const Erc721Permit = T.Object({ GITHUB_USERNAME: T.String(), GITHUB_CONTRIBUTION_TYPE: T.String(), }), - nftAddress: TAddress, - networkId: TNetworkId, - signature: TSignature, + nftAddress: addressT, + networkId: networkIdT, + signature: signatureT, }); -export type Erc721Permit = StaticDecode; +export type Erc721Permit = StaticDecode; -export const ClaimTx = T.Union([Erc20Permit, Erc721Permit]); +export const claimTxT = T.Union([erc20PermitT, erc721Permit]); -export type ClaimTx = StaticDecode; +export type ClaimTx = StaticDecode; diff --git a/static/scripts/rewards/the-grid.ts b/static/scripts/rewards/the-grid.ts index af6589f8..bd9832eb 100644 --- a/static/scripts/rewards/the-grid.ts +++ b/static/scripts/rewards/the-grid.ts @@ -21,6 +21,7 @@ export function grid(node = document.body) { } `; + // cspell:ignore mediump const fragmentShaderSource = ` precision mediump float; @@ -53,6 +54,10 @@ export function grid(node = document.body) { // Define shader creation function function createShader(gl: WebGLRenderingContext, type: number, source: string) { const shader = gl.createShader(type); + if (!shader) { + console.error("An error occurred creating the shaders"); + return null; + } gl.shaderSource(shader, source); gl.compileShader(shader); if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { @@ -65,10 +70,23 @@ export function grid(node = document.body) { // Create vertex and fragment shaders const vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexShaderSource); + if (!vertexShader) { + console.error("An error occurred creating the vertex shader"); + return; + } const fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentShaderSource); + if (!fragmentShader) { + console.error("An error occurred creating the fragment shader"); + return; + } // Create program, attach shaders, and link const program = gl.createProgram(); + if (!program) { + console.error("An error occurred creating the program"); + return; + } + gl.attachShader(program, vertexShader); gl.attachShader(program, fragmentShader); gl.linkProgram(program); @@ -98,8 +116,8 @@ export function grid(node = document.body) { // Resize function function resizeCanvasToDisplaySize(canvas: HTMLCanvasElement) { // Lookup the size the browser is displaying the canvas. - var displayWidth = window.innerWidth; - var displayHeight = window.innerHeight; + const displayWidth = window.innerWidth; + const displayHeight = window.innerHeight; // Check if the canvas is not the same size. if (canvas.width != displayWidth || canvas.height != displayHeight) { diff --git a/static/scripts/rewards/toaster.ts b/static/scripts/rewards/toaster.ts index 702783c2..9294e720 100644 --- a/static/scripts/rewards/toaster.ts +++ b/static/scripts/rewards/toaster.ts @@ -73,14 +73,16 @@ export function hideClaimButton() { claimButton.element.classList.remove("show-cl"); } -export function errorToast(error: any, errorMessage?: string) { +type Err = { stack?: unknown; reason?: string } extends Error ? Error : { stack?: unknown; reason?: string }; + +export function errorToast(error: Err, errorMessage?: string) { delete error.stack; - let ErrorData = JSON.stringify(error, null, 2); + const errorData = JSON.stringify(error, null, 2); if (errorMessage) { toaster.create("error", errorMessage); } else if (error?.reason) { // parse error data to get error message - const parsedError = JSON.parse(ErrorData); + const parsedError = JSON.parse(errorData); const _errorMessage = parsedError?.error?.message ?? parsedError?.reason; toaster.create("error", _errorMessage); } diff --git a/static/scripts/rewards/web3/erc20-permit.ts b/static/scripts/rewards/web3/erc20-permit.ts index 4b71ef4b..014f68fb 100644 --- a/static/scripts/rewards/web3/erc20-permit.ts +++ b/static/scripts/rewards/web3/erc20-permit.ts @@ -1,5 +1,5 @@ import { BigNumber, BigNumberish, ethers } from "ethers"; -import { erc20Abi, permit2Abi } from "../abis"; +import { permit2Abi } from "../abis"; import { permit2Address } from "../constants"; import { getErc20Contract, getOptimalProvider } from "../helpers"; import { Erc20Permit } from "../render-transaction/tx-type"; @@ -12,7 +12,7 @@ import { tokens } from "../render-transaction/render-token-symbol"; export async function fetchTreasury( permit: Erc20Permit, - provider: JsonRpcProvider, + provider: JsonRpcProvider ): Promise<{ balance: BigNumber; allowance: BigNumber; decimals: number; symbol: string }> { try { const tokenAddress = permit.permit.permitted.token.toLowerCase(); @@ -36,7 +36,7 @@ export async function fetchTreasury( return { balance, allowance, decimals, symbol }; } - } catch (error: any) { + } catch (error: unknown) { return { balance: BigNumber.from(-1), allowance: BigNumber.from(-1), decimals: -1, symbol: "" }; } } @@ -62,18 +62,20 @@ export function claimErc20PermitHandler(permit: Erc20Permit, provider: JsonRpcPr console.log(receipt.transactionHash); // @TODO: post to database claimButton.element.removeEventListener("click", handler); - renderTransaction(provider); - } catch (error: any) { - console.log(error); - errorToast(error, error.message); - resetClaimButton(); + renderTransaction(provider).catch(console.error); + } catch (error: unknown) { + if (error instanceof Error) { + console.log(error); + errorToast(error, error.message); + resetClaimButton(); + } } }; } export async function checkPermitClaimable(permit: Erc20Permit, signer: ethers.providers.JsonRpcSigner | null, provider: JsonRpcProvider) { - const claimed = await isNonceClaimed(permit); - if (claimed) { + const isClaimed = await isNonceClaimed(permit); + if (isClaimed) { toaster.create("error", `Your reward for this task has already been claimed or invalidated.`); return false; } @@ -85,15 +87,15 @@ export async function checkPermitClaimable(permit: Erc20Permit, signer: ethers.p const { balance, allowance } = await fetchTreasury(permit, provider); const permitted = BigNumber.from(permit.permit.permitted.amount); - const solvent = balance.gte(permitted); - const allowed = allowance.gte(permitted); + const isSolvent = balance.gte(permitted); + const isAllowed = allowance.gte(permitted); - if (!solvent) { - toaster.create("error", `Not enough funds on funding wallet to collect this reward. Please let the funder know.`); + if (!isSolvent) { + toaster.create("error", `Not enough funds on funding wallet to collect this reward. Please let the financier know.`); return false; } - if (!allowed) { - toaster.create("error", `Not enough allowance on the funding wallet to collect this reward. Please let the funder know.`); + if (!isAllowed) { + toaster.create("error", `Not enough allowance on the funding wallet to collect this reward. Please let the financier know.`); return false; } @@ -130,15 +132,18 @@ export async function generateInvalidatePermitAdminControl(permit: Erc20Permit) if (!signer) { return; } - const claimed = await isNonceClaimed(permit); - if (claimed) { + const isClaimed = await isNonceClaimed(permit); + if (isClaimed) { toaster.create("error", `This reward has already been claimed or invalidated.`); return; } await invalidateNonce(signer, permit.permit.nonce); - } catch (error: any) { - toaster.create("error", `${error.reason ?? error.message ?? "Unknown error"}`); - return; + } catch (error: unknown) { + if (error instanceof Error) { + console.log(error); + errorToast(error, error.message); + return; + } } toaster.create("info", "Nonce invalidation transaction sent"); }); diff --git a/static/scripts/rewards/web3/erc721-permit.ts b/static/scripts/rewards/web3/erc721-permit.ts index 405a447d..0dafff68 100644 --- a/static/scripts/rewards/web3/erc721-permit.ts +++ b/static/scripts/rewards/web3/erc721-permit.ts @@ -25,8 +25,8 @@ export function claimErc721PermitHandler(permit: Erc721Permit, provider: JsonRpc return; } - const reedemed = await isNonceRedeemed(permit, provider); - if (reedemed) { + const isRedeemed = await isNonceRedeemed(permit, provider); + if (isRedeemed) { toaster.create("error", `This NFT has already been redeemed.`); resetClaimButton(); return; @@ -44,11 +44,16 @@ export function claimErc721PermitHandler(permit: Erc721Permit, provider: JsonRpc claimButton.element.removeEventListener("click", claimButtonHandler); - renderTransaction(provider, true); - } catch (error: any) { - console.error(error); - errorToast(error, error.message ?? error); - resetClaimButton(); + renderTransaction(provider, true).catch((error) => { + console.error(error); + toaster.create("error", `Error rendering transaction: ${error.message}`); + }); + } catch (error: unknown) { + if (error instanceof Error) { + console.error(error); + errorToast(error, error.message ?? error); + resetClaimButton(); + } } }; } diff --git a/static/scripts/rewards/web3/wallet.ts b/static/scripts/rewards/web3/wallet.ts index e698fd6e..34766b85 100644 --- a/static/scripts/rewards/web3/wallet.ts +++ b/static/scripts/rewards/web3/wallet.ts @@ -1,8 +1,8 @@ +import { JsonRpcSigner } from "@ethersproject/providers"; import { ethers } from "ethers"; -import { claimButton, loadingClaimButton, resetClaimButton, toaster } from "../toaster"; import { getNetworkName, networkCurrencies, networkExplorers, networkRpcs } from "../constants"; import invalidateButton from "../invalidate-component"; -import { JsonRpcProvider, JsonRpcSigner } from "@ethersproject/providers"; +import { claimButton, loadingClaimButton, resetClaimButton, toaster } from "../toaster"; export async function connectWallet(): Promise { try { @@ -11,19 +11,21 @@ export async function connectWallet(): Promise { const signer = provider.getSigner(); resetClaimButton(); return signer; - } catch (error: any) { - if (error?.message?.includes("missing provider")) { - toaster.create("info", "Please use a web3 enabled browser to collect this reward."); - claimButton.element.disabled = true; - } else { - toaster.create("info", "Please connect your wallet to collect this reward."); - claimButton.element.disabled = true; + } catch (error: unknown) { + if (error instanceof Error) { + if (error?.message?.includes("missing provider")) { + toaster.create("info", "Please use a web3 enabled browser to collect this reward."); + claimButton.element.disabled = true; + } else { + toaster.create("info", "Please connect your wallet to collect this reward."); + claimButton.element.disabled = true; + } } return null; } } -export async function handleNetwork(desiredNetworkId: number, provider: JsonRpcProvider) { +export async function handleNetwork(desiredNetworkId: number) { const web3provider = new ethers.providers.Web3Provider(window.ethereum); if (!web3provider || !web3provider.provider.isMetaMask) { toaster.create("info", "Please connect to MetaMask."); @@ -31,10 +33,10 @@ export async function handleNetwork(desiredNetworkId: number, provider: JsonRpcP invalidateButton.disabled = true; } - const currentNetworkId = provider.network.chainId; + const currentNetworkId = (await web3provider.getNetwork()).chainId; // watch for network changes - window.ethereum.on("chainChanged", newNetworkId => handleIfOnCorrectNetwork(parseInt(newNetworkId, 16), desiredNetworkId)); + window.ethereum.on("chainChanged", (newNetworkId: T | string) => handleIfOnCorrectNetwork(parseInt(newNetworkId as string, 16), desiredNetworkId)); // if its not on ethereum mainnet, gnosis, or goerli, display error notOnCorrectNetwork(currentNetworkId, desiredNetworkId, web3provider); @@ -51,7 +53,10 @@ function notOnCorrectNetwork(currentNetworkId: number, desiredNetworkId: number, } loadingClaimButton(false); invalidateButton.disabled = true; - switchNetwork(web3provider, desiredNetworkId); + switchNetwork(web3provider, desiredNetworkId).catch((error) => { + console.error(error); + toaster.create("error", `Please switch to the ${networkName} network to claim this reward.`); + }); } } @@ -70,9 +75,10 @@ export async function switchNetwork(provider: ethers.providers.Web3Provider, net try { await provider.send("wallet_switchEthereumChain", [{ chainId: "0x" + networkId.toString(16) }]); return true; - } catch (error: any) { + } catch (error: unknown) { // Add network if it doesn't exist. - if (error.code == 4902) { + const code = (error as { code: number }).code; + if (code == 4902) { return await addNetwork(provider, networkId); } return false; @@ -91,7 +97,7 @@ export async function addNetwork(provider: ethers.providers.Web3Provider, networ }, ]); return true; - } catch (error: any) { + } catch (error: unknown) { return false; } } diff --git a/static/style.css b/static/style.css new file mode 100644 index 00000000..3bbb3f0f --- /dev/null +++ b/static/style.css @@ -0,0 +1,16 @@ +body { + font-family: "Proxima Nova", "Ubiquity Nova", sans-serif; + background-color: #06061aff; + color: #fff; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABYWlDQ1BrQ0dDb2xvclNwYWNlRGlzcGxheVAzAAAokWNgYFJJLCjIYWFgYMjNKykKcndSiIiMUmB/yMAOhLwMYgwKicnFBY4BAT5AJQwwGhV8u8bACKIv64LMOiU1tUm1XsDXYqbw1YuvRJsw1aMArpTU4mQg/QeIU5MLikoYGBhTgGzl8pICELsDyBYpAjoKyJ4DYqdD2BtA7CQI+whYTUiQM5B9A8hWSM5IBJrB+API1klCEk9HYkPtBQFul8zigpzESoUAYwKuJQOUpFaUgGjn/ILKosz0jBIFR2AopSp45iXr6SgYGRiaMzCAwhyi+nMgOCwZxc4gxJrvMzDY7v////9uhJjXfgaGjUCdXDsRYhoWDAyC3AwMJ3YWJBYlgoWYgZgpLY2B4dNyBgbeSAYG4QtAPdHFacZGYHlGHicGBtZ7//9/VmNgYJ/MwPB3wv//vxf9//93MVDzHQaGA3kAFSFl7jXH0fsAAAA4ZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAKgAgAEAAAAAQAAABigAwAEAAAAAQAAABgAAAAAwf1XlwAAACNJREFUSA3t0IEAAAAMBKFHm7/UTaQQWnXDgAEDBgwYMGDgAXaJAz4RVVHYAAAAAElFTkSuQmCC"); +} +@font-face { + font-family: "Ubiquity Nova"; + font-style: normal; + font-weight: 400; + src: url(./fonts/ubiquity-nova-standard.eot); + src: + url(./fonts/ubiquity-nova-standard.eot#iefix) format("embedded-opentype"), + url(./fonts/ubiquity-nova-standard.woff) format("woff"), + url(./fonts/ubiquity-nova-standard.ttf) format("truetype"); +} diff --git a/static/styles/fa.css b/static/styles/fa.css index 6b768402..4568cf75 100644 --- a/static/styles/fa.css +++ b/static/styles/fa.css @@ -6786,7 +6786,9 @@ font-style: normal; font-weight: 400; font-display: block; - src: url(./webfonts/fa-brands-400.woff2) format("woff2"), url(./webfonts/fa-brands-400.ttf) format("truetype"); + src: + url(./webfonts/fa-brands-400.woff2) format("woff2"), + url(./webfonts/fa-brands-400.ttf) format("truetype"); } .fa-brands, @@ -8698,7 +8700,9 @@ font-style: normal; font-weight: 400; font-display: block; - src: url(./webfonts/fa-regular-400.woff2) format("woff2"), url(./webfonts/fa-regular-400.ttf) format("truetype"); + src: + url(./webfonts/fa-regular-400.woff2) format("woff2"), + url(./webfonts/fa-regular-400.ttf) format("truetype"); } .fa-regular, @@ -8717,7 +8721,9 @@ font-style: normal; font-weight: 900; font-display: block; - src: url(./webfonts/fa-solid-900.woff2) format("woff2"), url(./webfonts/fa-solid-900.ttf) format("truetype"); + src: + url(./webfonts/fa-solid-900.woff2) format("woff2"), + url(./webfonts/fa-solid-900.ttf) format("truetype"); } .fa-solid, @@ -8729,39 +8735,51 @@ font-family: "Font Awesome 5 Brands"; font-display: block; font-weight: 400; - src: url(./webfonts/fa-brands-400.woff2) format("woff2"), url(./webfonts/fa-brands-400.ttf) format("truetype"); + src: + url(./webfonts/fa-brands-400.woff2) format("woff2"), + url(./webfonts/fa-brands-400.ttf) format("truetype"); } @font-face { font-family: "Font Awesome 5 Free"; font-display: block; font-weight: 900; - src: url(./webfonts/fa-solid-900.woff2) format("woff2"), url(./webfonts/fa-solid-900.ttf) format("truetype"); + src: + url(./webfonts/fa-solid-900.woff2) format("woff2"), + url(./webfonts/fa-solid-900.ttf) format("truetype"); } @font-face { font-family: "Font Awesome 5 Free"; font-display: block; font-weight: 400; - src: url(./webfonts/fa-regular-400.woff2) format("woff2"), url(./webfonts/fa-regular-400.ttf) format("truetype"); + src: + url(./webfonts/fa-regular-400.woff2) format("woff2"), + url(./webfonts/fa-regular-400.ttf) format("truetype"); } @font-face { font-family: "FontAwesome"; font-display: block; - src: url(./webfonts/fa-solid-900.woff2) format("woff2"), url(./webfonts/fa-solid-900.ttf) format("truetype"); + src: + url(./webfonts/fa-solid-900.woff2) format("woff2"), + url(./webfonts/fa-solid-900.ttf) format("truetype"); } @font-face { font-family: "FontAwesome"; font-display: block; - src: url(./webfonts/fa-brands-400.woff2) format("woff2"), url(./webfonts/fa-brands-400.ttf) format("truetype"); + src: + url(./webfonts/fa-brands-400.woff2) format("woff2"), + url(./webfonts/fa-brands-400.ttf) format("truetype"); } @font-face { font-family: "FontAwesome"; font-display: block; - src: url(./webfonts/fa-regular-400.woff2) format("woff2"), url(./webfonts/fa-regular-400.ttf) format("truetype"); + src: + url(./webfonts/fa-regular-400.woff2) format("woff2"), + url(./webfonts/fa-regular-400.ttf) format("truetype"); unicode-range: u+f003, u+f006, u+f014, u+f016-f017, u+f01a-f01b, u+f01d, u+f022, u+f03e, u+f044, u+f046, u+f05c-f05d, u+f06e, u+f070, u+f087-f088, u+f08a, u+f094, u+f096-f097, u+f09d, u+f0a0, u+f0a2, u+f0a4-f0a7, u+f0c5, u+f0c7, u+f0e5-f0e6, u+f0eb, u+f0f6-f0f8, u+f10c, u+f114-f115, u+f118-f11a, u+f11c-f11d, u+f133, u+f147, u+f14e, u+f150-f152, u+f185-f186, u+f18e, u+f190-f192, u+f196, u+f1c1-f1c9, u+f1d9, u+f1db, u+f1e3, u+f1ea, u+f1f7, u+f1f9, u+f20a, @@ -8772,7 +8790,9 @@ @font-face { font-family: "FontAwesome"; font-display: block; - src: url(./webfonts/fa-v4compatibility.woff2) format("woff2"), url(./webfonts/fa-v4compatibility.ttf) format("truetype"); + src: + url(./webfonts/fa-v4compatibility.woff2) format("woff2"), + url(./webfonts/fa-v4compatibility.ttf) format("truetype"); unicode-range: u+f041, u+f047, u+f065-f066, u+f07d-f07e, u+f080, u+f08b, u+f08e, u+f090, u+f09a, u+f0ac, u+f0ae, u+f0b2, u+f0d0, u+f0d6, u+f0e4, u+f0ec, u+f10a-f10b, u+f123, u+f13e, u+f148-f149, u+f14c, u+f156, u+f15e, u+f160-f161, u+f163, u+f175-f178, u+f195, u+f1f8, u+f219, u+f27a; } diff --git a/static/styles/proxima.css b/static/styles/proxima.css index 2715698f..123ae363 100644 --- a/static/styles/proxima.css +++ b/static/styles/proxima.css @@ -3,7 +3,9 @@ font-style: normal; font-weight: 100; src: url(./proxima/2B04A9_A_0.eot); - src: url(./proxima/2B04A9_A_0.eot#iefix) format("embedded-opentype"), url(./proxima/2B04A9_A_0.woff) format("woff"), + src: + url(./proxima/2B04A9_A_0.eot#iefix) format("embedded-opentype"), + url(./proxima/2B04A9_A_0.woff) format("woff"), url(./proxima/2B04A9_A_0.ttf) format("truetype"); } @@ -12,7 +14,9 @@ font-style: normal; font-weight: 200; src: url(./proxima/2B04A9_B_0.eot); - src: url(./proxima/2B04A9_B_0.eot#iefix) format("embedded-opentype"), url(./proxima/2B04A9_B_0.woff) format("woff"), + src: + url(./proxima/2B04A9_B_0.eot#iefix) format("embedded-opentype"), + url(./proxima/2B04A9_B_0.woff) format("woff"), url(./proxima/2B04A9_B_0.ttf) format("truetype"); } @@ -21,7 +25,9 @@ font-style: normal; font-weight: 400; src: url(./proxima/2B04A9_E_0.eot); - src: url(./proxima/2B04A9_E_0.eot#iefix) format("embedded-opentype"), url(./proxima/2B04A9_E_0.woff) format("woff"), + src: + url(./proxima/2B04A9_E_0.eot#iefix) format("embedded-opentype"), + url(./proxima/2B04A9_E_0.woff) format("woff"), url(./proxima/2B04A9_E_0.ttf) format("truetype"); } @@ -30,7 +36,9 @@ font-style: italic; font-weight: 400; src: url(./proxima/2B04A9_C_0.eot); - src: url(./proxima/2B04A9_C_0.eot#iefix) format("embedded-opentype"), url(./proxima/2B04A9_C_0.woff) format("woff"), + src: + url(./proxima/2B04A9_C_0.eot#iefix) format("embedded-opentype"), + url(./proxima/2B04A9_C_0.woff) format("woff"), url(./proxima/2B04A9_C_0.ttf) format("truetype"); } @@ -39,6 +47,8 @@ font-style: normal; font-weight: 700; src: url(./proxima/2B04A9_D_0.eot); - src: url(./proxima/2B04A9_D_0.eot#iefix) format("embedded-opentype"), url(./proxima/2B04A9_D_0.woff) format("woff"), + src: + url(./proxima/2B04A9_D_0.eot#iefix) format("embedded-opentype"), + url(./proxima/2B04A9_D_0.woff) format("woff"), url(./proxima/2B04A9_D_0.ttf) format("truetype"); } diff --git a/static/styles/rewards/pay.css b/static/styles/rewards/pay.css index 7e5b9511..d1d90169 100644 --- a/static/styles/rewards/pay.css +++ b/static/styles/rewards/pay.css @@ -1,6 +1,17 @@ * { -webkit-text-size-adjust: 100%; - font-family: "Ubiquity Nova", FT Base, -apple-system, system-ui, BlinkMacSystemFont, SF Pro Text, Segoe UI, Roboto, Helvetica, Arial, sans-serif; + font-family: + "Ubiquity Nova", + FT Base, + -apple-system, + system-ui, + BlinkMacSystemFont, + SF Pro Text, + Segoe UI, + Roboto, + Helvetica, + Arial, + sans-serif; line-height: 1; padding: 0; margin: 0; diff --git a/tsconfig.json b/tsconfig.json index 18496e08..01640a19 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,27 +1,101 @@ { "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ /* Language and Environment */ - "target": "esnext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - "lib": ["esnext", "dom", "dom.iterable"] /* Specify a set of bundled library declaration files that describe the target runtime environment. */, - + "target": "ESNext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "commonjs" /* Specify what module code is generated. */, - "types": ["node"] /* Specify type package names to be included without being referenced in a source file. */, - + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ + "resolveJsonModule": true /* Enable importing .json files. */, + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ - + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + // "outDir": "./", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - /* Type Checking */ "strict": true /* Enable all strict type-checking options. */, - + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */ } } diff --git a/yarn.lock b/yarn.lock index 982dc37f..6fb179ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,225 +2,824 @@ # yarn lockfile v1 -"@esbuild/android-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" - integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== - -"@esbuild/android-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" - integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== - -"@esbuild/android-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" - integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== - -"@esbuild/android-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" - integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== - -"@esbuild/android-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" - integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== - -"@esbuild/android-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" - integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== - -"@esbuild/darwin-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" - integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== - -"@esbuild/darwin-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" - integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== - -"@esbuild/darwin-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" - integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== - -"@esbuild/darwin-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" - integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== - -"@esbuild/freebsd-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" - integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== - -"@esbuild/freebsd-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" - integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== - -"@esbuild/freebsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" - integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== - -"@esbuild/freebsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" - integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== - -"@esbuild/linux-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" - integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== - -"@esbuild/linux-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" - integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== - -"@esbuild/linux-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" - integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== - -"@esbuild/linux-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" - integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== - -"@esbuild/linux-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" - integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== - -"@esbuild/linux-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" - integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== - -"@esbuild/linux-loong64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" - integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== - -"@esbuild/linux-loong64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" - integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== - -"@esbuild/linux-mips64el@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" - integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== - -"@esbuild/linux-mips64el@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" - integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== - -"@esbuild/linux-ppc64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" - integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== - -"@esbuild/linux-ppc64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" - integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== - -"@esbuild/linux-riscv64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" - integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== - -"@esbuild/linux-riscv64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" - integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== - -"@esbuild/linux-s390x@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" - integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== - -"@esbuild/linux-s390x@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" - integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== - -"@esbuild/linux-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" - integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== - -"@esbuild/linux-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" - integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== - -"@esbuild/netbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" - integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== - -"@esbuild/netbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" - integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== - -"@esbuild/openbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" - integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== - -"@esbuild/openbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" - integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== - -"@esbuild/sunos-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" - integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== - -"@esbuild/sunos-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" - integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== - -"@esbuild/win32-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" - integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== - -"@esbuild/win32-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" - integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== - -"@esbuild/win32-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" - integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== - -"@esbuild/win32-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" - integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== - -"@esbuild/win32-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" - integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== - -"@esbuild/win32-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" - integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@babel/code-frame@^7.0.0": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@commitlint/cli@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-18.6.1.tgz#78bffdfa00d6f01425d53096954993d83f2b343d" + integrity sha512-5IDE0a+lWGdkOvKH892HHAZgbAjcj1mT5QrfA/SVbLJV/BbBMGyKN0W5mhgjekPJJwEQdVNvhl9PwUacY58Usw== + dependencies: + "@commitlint/format" "^18.6.1" + "@commitlint/lint" "^18.6.1" + "@commitlint/load" "^18.6.1" + "@commitlint/read" "^18.6.1" + "@commitlint/types" "^18.6.1" + execa "^5.0.0" + lodash.isfunction "^3.0.9" + resolve-from "5.0.0" + resolve-global "1.0.0" + yargs "^17.0.0" + +"@commitlint/config-conventional@^18.6.2": + version "18.6.2" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-18.6.2.tgz#617f3ee761578040cade530631058699642cbd78" + integrity sha512-PcgSYg1AKGQIwDQKbaHtJsfqYy4uJTC7crLVZ83lfjcPaec4Pry2vLeaWej7ao2KsT20l9dWoMPpEGg8LWdUuA== + dependencies: + "@commitlint/types" "^18.6.1" + conventional-changelog-conventionalcommits "^7.0.2" + +"@commitlint/config-validator@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-18.6.1.tgz#e0d71a99c984a68586c7ae7afd3f52342022fae8" + integrity sha512-05uiToBVfPhepcQWE1ZQBR/Io3+tb3gEotZjnI4tTzzPk16NffN6YABgwFQCLmzZefbDcmwWqJWc2XT47q7Znw== + dependencies: + "@commitlint/types" "^18.6.1" + ajv "^8.11.0" + +"@commitlint/ensure@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-18.6.1.tgz#17141e083200ca94d8480dc23b0e8f8b1fd37b7f" + integrity sha512-BPm6+SspyxQ7ZTsZwXc7TRQL5kh5YWt3euKmEIBZnocMFkJevqs3fbLRb8+8I/cfbVcAo4mxRlpTPfz8zX7SnQ== + dependencies: + "@commitlint/types" "^18.6.1" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.upperfirst "^4.3.1" + +"@commitlint/execute-rule@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-18.6.1.tgz#18175e043fe6fb5fceea7b8530316c644f93dfe6" + integrity sha512-7s37a+iWyJiGUeMFF6qBlyZciUkF8odSAnHijbD36YDctLhGKoYltdvuJ/AFfRm6cBLRtRk9cCVPdsEFtt/2rg== + +"@commitlint/format@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-18.6.1.tgz#5f2b8b3ae4d8d80bd9239178e97df63e5b8d280a" + integrity sha512-K8mNcfU/JEFCharj2xVjxGSF+My+FbUHoqR+4GqPGrHNqXOGNio47ziiR4HQUPKtiNs05o8/WyLBoIpMVOP7wg== + dependencies: + "@commitlint/types" "^18.6.1" + chalk "^4.1.0" + +"@commitlint/is-ignored@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-18.6.1.tgz#4ee08ba91ff3defb06e0ef19259a9c6734a8d06e" + integrity sha512-MOfJjkEJj/wOaPBw5jFjTtfnx72RGwqYIROABudOtJKW7isVjFe9j0t8xhceA02QebtYf4P/zea4HIwnXg8rvA== + dependencies: + "@commitlint/types" "^18.6.1" + semver "7.6.0" + +"@commitlint/lint@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-18.6.1.tgz#fe3834636c99ee14534a8eb3832831ac362e9fd8" + integrity sha512-8WwIFo3jAuU+h1PkYe5SfnIOzp+TtBHpFr4S8oJWhu44IWKuVx6GOPux3+9H1iHOan/rGBaiacicZkMZuluhfQ== + dependencies: + "@commitlint/is-ignored" "^18.6.1" + "@commitlint/parse" "^18.6.1" + "@commitlint/rules" "^18.6.1" + "@commitlint/types" "^18.6.1" + +"@commitlint/load@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-18.6.1.tgz#fb79ed7ee8b5897a9b5c274c1e24eda9162df816" + integrity sha512-p26x8734tSXUHoAw0ERIiHyW4RaI4Bj99D8YgUlVV9SedLf8hlWAfyIFhHRIhfPngLlCe0QYOdRKYFt8gy56TA== + dependencies: + "@commitlint/config-validator" "^18.6.1" + "@commitlint/execute-rule" "^18.6.1" + "@commitlint/resolve-extends" "^18.6.1" + "@commitlint/types" "^18.6.1" + chalk "^4.1.0" + cosmiconfig "^8.3.6" + cosmiconfig-typescript-loader "^5.0.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + lodash.uniq "^4.5.0" + resolve-from "^5.0.0" + +"@commitlint/message@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-18.6.1.tgz#107bd40923ad23d2de56c92a68b179ebfb7e314e" + integrity sha512-VKC10UTMLcpVjMIaHHsY1KwhuTQtdIKPkIdVEwWV+YuzKkzhlI3aNy6oo1eAN6b/D2LTtZkJe2enHmX0corYRw== + +"@commitlint/parse@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-18.6.1.tgz#2946b814125e907b9c4d63d3e71d0c1b54b30b62" + integrity sha512-eS/3GREtvVJqGZrwAGRwR9Gdno3YcZ6Xvuaa+vUF8j++wsmxrA2En3n0ccfVO2qVOLJC41ni7jSZhQiJpMPGOQ== + dependencies: + "@commitlint/types" "^18.6.1" + conventional-changelog-angular "^7.0.0" + conventional-commits-parser "^5.0.0" + +"@commitlint/read@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-18.6.1.tgz#8c138311ed9749427920c369f6276be136f2aa50" + integrity sha512-ia6ODaQFzXrVul07ffSgbZGFajpe8xhnDeLIprLeyfz3ivQU1dIoHp7yz0QIorZ6yuf4nlzg4ZUkluDrGN/J/w== + dependencies: + "@commitlint/top-level" "^18.6.1" + "@commitlint/types" "^18.6.1" + git-raw-commits "^2.0.11" + minimist "^1.2.6" + +"@commitlint/resolve-extends@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-18.6.1.tgz#f0572c682fc24dbabe2e0f42873261e0fa42c91a" + integrity sha512-ifRAQtHwK+Gj3Bxj/5chhc4L2LIc3s30lpsyW67yyjsETR6ctHAHRu1FSpt0KqahK5xESqoJ92v6XxoDRtjwEQ== + dependencies: + "@commitlint/config-validator" "^18.6.1" + "@commitlint/types" "^18.6.1" + import-fresh "^3.0.0" + lodash.mergewith "^4.6.2" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + +"@commitlint/rules@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-18.6.1.tgz#da25aeffe6c0e1c7625e44f46089fb8860986caf" + integrity sha512-kguM6HxZDtz60v/zQYOe0voAtTdGybWXefA1iidjWYmyUUspO1zBPQEmJZ05/plIAqCVyNUTAiRPWIBKLCrGew== + dependencies: + "@commitlint/ensure" "^18.6.1" + "@commitlint/message" "^18.6.1" + "@commitlint/to-lines" "^18.6.1" + "@commitlint/types" "^18.6.1" + execa "^5.0.0" + +"@commitlint/to-lines@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-18.6.1.tgz#d28827a4a540c98eea1aae31dafd66f80b2f1b9e" + integrity sha512-Gl+orGBxYSNphx1+83GYeNy5N0dQsHBQ9PJMriaLQDB51UQHCVLBT/HBdOx5VaYksivSf5Os55TLePbRLlW50Q== + +"@commitlint/top-level@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-18.6.1.tgz#429fcb985e3beaba9b17e05c0ae61926c647baf0" + integrity sha512-HyiHQZUTf0+r0goTCDs/bbVv/LiiQ7AVtz6KIar+8ZrseB9+YJAIo8HQ2IC2QT1y3N1lbW6OqVEsTHjbT6hGSw== + dependencies: + find-up "^5.0.0" + +"@commitlint/types@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-18.6.1.tgz#7eb3ab2d799d9166fbb98b96b0744581e59a4ad4" + integrity sha512-gwRLBLra/Dozj2OywopeuHj2ac26gjGkz2cZ+86cTJOdtWfiRRr4+e77ZDAGc6MDWxaWheI+mAV5TLWWRwqrFg== + dependencies: + chalk "^4.1.0" + +"@cspell/cspell-bundled-dicts@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.3.2.tgz#649ed168a72cb49a7d83f3840ab6933a8beba68d" + integrity sha512-3ubOgz1/MDixJbq//0rQ2omB3cSdhVJDviERZeiREGz4HOq84aaK1Fqbw5SjNZHvhpoq+AYXm6kJbIAH8YhKgg== + dependencies: + "@cspell/dict-ada" "^4.0.2" + "@cspell/dict-aws" "^4.0.1" + "@cspell/dict-bash" "^4.1.3" + "@cspell/dict-companies" "^3.0.29" + "@cspell/dict-cpp" "^5.0.10" + "@cspell/dict-cryptocurrencies" "^5.0.0" + "@cspell/dict-csharp" "^4.0.2" + "@cspell/dict-css" "^4.0.12" + "@cspell/dict-dart" "^2.0.3" + "@cspell/dict-django" "^4.1.0" + "@cspell/dict-docker" "^1.1.7" + "@cspell/dict-dotnet" "^5.0.0" + "@cspell/dict-elixir" "^4.0.3" + "@cspell/dict-en-common-misspellings" "^2.0.0" + "@cspell/dict-en-gb" "1.1.33" + "@cspell/dict-en_us" "^4.3.13" + "@cspell/dict-filetypes" "^3.0.3" + "@cspell/dict-fonts" "^4.0.0" + "@cspell/dict-fsharp" "^1.0.1" + "@cspell/dict-fullstack" "^3.1.5" + "@cspell/dict-gaming-terms" "^1.0.4" + "@cspell/dict-git" "^3.0.0" + "@cspell/dict-golang" "^6.0.5" + "@cspell/dict-haskell" "^4.0.1" + "@cspell/dict-html" "^4.0.5" + "@cspell/dict-html-symbol-entities" "^4.0.0" + "@cspell/dict-java" "^5.0.6" + "@cspell/dict-k8s" "^1.0.2" + "@cspell/dict-latex" "^4.0.0" + "@cspell/dict-lorem-ipsum" "^4.0.0" + "@cspell/dict-lua" "^4.0.3" + "@cspell/dict-makefile" "^1.0.0" + "@cspell/dict-node" "^4.0.3" + "@cspell/dict-npm" "^5.0.14" + "@cspell/dict-php" "^4.0.5" + "@cspell/dict-powershell" "^5.0.3" + "@cspell/dict-public-licenses" "^2.0.5" + "@cspell/dict-python" "^4.1.11" + "@cspell/dict-r" "^2.0.1" + "@cspell/dict-ruby" "^5.0.2" + "@cspell/dict-rust" "^4.0.1" + "@cspell/dict-scala" "^5.0.0" + "@cspell/dict-software-terms" "^3.3.15" + "@cspell/dict-sql" "^2.1.3" + "@cspell/dict-svelte" "^1.0.2" + "@cspell/dict-swift" "^2.0.1" + "@cspell/dict-typescript" "^3.1.2" + "@cspell/dict-vue" "^3.0.0" + +"@cspell/cspell-json-reporter@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.3.2.tgz#314f7b7deb465a7b94b03405c3498d9b96d410ab" + integrity sha512-gHSz4jXMJPcxx+lOGfXhHuoyenAWQ8PVA/atHFrWYKo1LzKTbpkEkrsDnlX8QNJubc3EMH63Uy+lOIaFDVyHiQ== + dependencies: + "@cspell/cspell-types" "8.3.2" + +"@cspell/cspell-pipe@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-pipe/-/cspell-pipe-8.3.2.tgz#72b986c6c03ed9894d5ddafdcb435973336216b9" + integrity sha512-GZmDwvQGOjQi3IjD4k9xXeVTDANczksOsgVKb3v2QZk9mR4Qj8c6Uarjd4AgSiIhu/wBliJfzr5rWFJu4X2VfQ== + +"@cspell/cspell-resolver@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-resolver/-/cspell-resolver-8.3.2.tgz#e4a981ed8fc2029804d8fa5847e47934a26c5c86" + integrity sha512-w2Tmb95bzdEz9L4W5qvsP5raZbyEzKL7N2ksU/+yh8NEJcTuExmAl/nMnb3aIk7m2b+kPHnMOcJuwfUMLmyv4A== + dependencies: + global-directory "^4.0.1" + +"@cspell/cspell-service-bus@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-service-bus/-/cspell-service-bus-8.3.2.tgz#b1c6620232c22c0a7c8b68051e524963285f4768" + integrity sha512-skTHNyVi74//W/O+f4IauDhm6twA9S2whkylonsIzPxEl4Pn3y2ZEMXNki/MWUwZfDIzKKSxlcREH61g7zCvhg== + +"@cspell/cspell-types@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-types/-/cspell-types-8.3.2.tgz#35a6d0f1a4c7c2a8a5275bcd41dacf85618f44c3" + integrity sha512-qS/gWd9ItOrN6ZX5pwC9lJjnBoyiAyhxYq0GUXuV892LQvwrBmECGk6KhsA1lPW7JJS7o57YTAS1jmXnmXMEpg== + +"@cspell/dict-ada@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-ada/-/dict-ada-4.0.2.tgz#8da2216660aeb831a0d9055399a364a01db5805a" + integrity sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA== + +"@cspell/dict-aws@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-aws/-/dict-aws-4.0.1.tgz#a0e758531ae81792b928a3f406618296291a658a" + integrity sha512-NXO+kTPQGqaaJKa4kO92NAXoqS+i99dQzf3/L1BxxWVSBS3/k1f3uhmqIh7Crb/n22W793lOm0D9x952BFga3Q== + +"@cspell/dict-bash@^4.1.3": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-bash/-/dict-bash-4.1.3.tgz#25fba40825ac10083676ab2c777e471c3f71b36e" + integrity sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw== + +"@cspell/dict-companies@^3.0.29": + version "3.0.31" + resolved "https://registry.yarnpkg.com/@cspell/dict-companies/-/dict-companies-3.0.31.tgz#f0dacabc5308096c0f12db8a8b802ece604d6bf7" + integrity sha512-hKVpV/lcGKP4/DpEPS8P4osPvFH/YVLJaDn9cBIOH6/HSmL5LbFgJNKpMGaYRbhm2FEX56MKE3yn/MNeNYuesQ== + +"@cspell/dict-cpp@^5.0.10": + version "5.1.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-cpp/-/dict-cpp-5.1.3.tgz#c0c34ccdecc3ff954877a56dbbf07a7bf53b218e" + integrity sha512-sqnriXRAInZH9W75C+APBh6dtben9filPqVbIsiRMUXGg+s02ekz0z6LbS7kXeJ5mD2qXoMLBrv13qH2eIwutQ== + +"@cspell/dict-cryptocurrencies@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-5.0.0.tgz#19fbc7bdbec76ce64daf7d53a6d0f3cfff7d0038" + integrity sha512-Z4ARIw5+bvmShL+4ZrhDzGhnc9znaAGHOEMaB/GURdS/jdoreEDY34wdN0NtdLHDO5KO7GduZnZyqGdRoiSmYA== + +"@cspell/dict-csharp@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-csharp/-/dict-csharp-4.0.2.tgz#e55659dbe594e744d86b1baf0f3397fe57b1e283" + integrity sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g== + +"@cspell/dict-css@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@cspell/dict-css/-/dict-css-4.0.12.tgz#59abf3512ae729835c933c38f64a3d8a5f09ce3d" + integrity sha512-vGBgPM92MkHQF5/2jsWcnaahOZ+C6OE/fPvd5ScBP72oFY9tn5GLuomcyO0z8vWCr2e0nUSX1OGimPtcQAlvSw== + +"@cspell/dict-dart@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-dart/-/dict-dart-2.0.3.tgz#75e7ffe47d5889c2c831af35acdd92ebdbd4cf12" + integrity sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw== + +"@cspell/dict-data-science@^1.0.11": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@cspell/dict-data-science/-/dict-data-science-1.0.11.tgz#4eabba75c21d27253c1114b4fbbade0ead739ffc" + integrity sha512-TaHAZRVe0Zlcc3C23StZqqbzC0NrodRwoSAc8dis+5qLeLLnOCtagYQeROQvDlcDg3X/VVEO9Whh4W/z4PAmYQ== + +"@cspell/dict-django@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-django/-/dict-django-4.1.0.tgz#2d4b765daf3c83e733ef3e06887ea34403a4de7a" + integrity sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w== + +"@cspell/dict-docker@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@cspell/dict-docker/-/dict-docker-1.1.7.tgz#bcf933283fbdfef19c71a642e7e8c38baf9014f2" + integrity sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A== + +"@cspell/dict-dotnet@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-dotnet/-/dict-dotnet-5.0.0.tgz#13690aafe14b240ad17a30225ac1ec29a5a6a510" + integrity sha512-EOwGd533v47aP5QYV8GlSSKkmM9Eq8P3G/eBzSpH3Nl2+IneDOYOBLEUraHuiCtnOkNsz0xtZHArYhAB2bHWAw== + +"@cspell/dict-elixir@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-elixir/-/dict-elixir-4.0.3.tgz#57c25843e46cf3463f97da72d9ef8e37c818296f" + integrity sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q== + +"@cspell/dict-en-common-misspellings@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.0.tgz#708f424d75dc65237a6fcb8d253bc1e7ab641380" + integrity sha512-NOg8dlv37/YqLkCfBs5OXeJm/Wcfb/CzeOmOZJ2ZXRuxwsNuolb4TREUce0yAXRqMhawahY5TSDRJJBgKjBOdw== + +"@cspell/dict-en-gb@1.1.33": + version "1.1.33" + resolved "https://registry.yarnpkg.com/@cspell/dict-en-gb/-/dict-en-gb-1.1.33.tgz#7f1fd90fc364a5cb77111b5438fc9fcf9cc6da0e" + integrity sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g== + +"@cspell/dict-en_us@^4.3.13": + version "4.3.16" + resolved "https://registry.yarnpkg.com/@cspell/dict-en_us/-/dict-en_us-4.3.16.tgz#b04fd49524db9fe6d8a3919881a525b073453c06" + integrity sha512-fyNuAvYpkllmsMpfAJaMip250LRAnEDp2EZbkjYwAJXXjtgQ4/1yh6sLityxPMDtJZN65Eko+8rJzGJHez4zbA== + +"@cspell/dict-filetypes@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-filetypes/-/dict-filetypes-3.0.3.tgz#ab0723ca2f4d3d5674e9c9745efc9f144e49c905" + integrity sha512-J9UP+qwwBLfOQ8Qg9tAsKtSY/WWmjj21uj6zXTI9hRLD1eG1uUOLcfVovAmtmVqUWziPSKMr87F6SXI3xmJXgw== + +"@cspell/dict-fonts@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-fonts/-/dict-fonts-4.0.0.tgz#9bc8beb2a7b068b4fdb45cb994b36fd184316327" + integrity sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q== + +"@cspell/dict-fsharp@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-fsharp/-/dict-fsharp-1.0.1.tgz#d62c699550a39174f182f23c8c1330a795ab5f53" + integrity sha512-23xyPcD+j+NnqOjRHgW3IU7Li912SX9wmeefcY0QxukbAxJ/vAN4rBpjSwwYZeQPAn3fxdfdNZs03fg+UM+4yQ== + +"@cspell/dict-fullstack@^3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-fullstack/-/dict-fullstack-3.1.5.tgz#35d18678161f214575cc613dd95564e05422a19c" + integrity sha512-6ppvo1dkXUZ3fbYn/wwzERxCa76RtDDl5Afzv2lijLoijGGUw5yYdLBKJnx8PJBGNLh829X352ftE7BElG4leA== + +"@cspell/dict-gaming-terms@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.5.tgz#d6ca40eb34a4c99847fd58a7354cd2c651065156" + integrity sha512-C3riccZDD3d9caJQQs1+MPfrUrQ+0KHdlj9iUR1QD92FgTOF6UxoBpvHUUZ9YSezslcmpFQK4xQQ5FUGS7uWfw== + +"@cspell/dict-git@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-git/-/dict-git-3.0.0.tgz#c275af86041a2b59a7facce37525e2af05653b95" + integrity sha512-simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw== + +"@cspell/dict-golang@^6.0.5": + version "6.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-golang/-/dict-golang-6.0.5.tgz#4dd2e2fda419730a21fb77ade3b90241ad4a5bcc" + integrity sha512-w4mEqGz4/wV+BBljLxduFNkMrd3rstBNDXmoX5kD4UTzIb4Sy0QybWCtg2iVT+R0KWiRRA56QKOvBsgXiddksA== + +"@cspell/dict-haskell@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-haskell/-/dict-haskell-4.0.1.tgz#e9fca7c452411ff11926e23ffed2b50bb9b95e47" + integrity sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ== + +"@cspell/dict-html-symbol-entities@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz#4d86ac18a4a11fdb61dfb6f5929acd768a52564f" + integrity sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw== + +"@cspell/dict-html@^1.1.9": + version "1.1.9" + resolved "https://registry.yarnpkg.com/@cspell/dict-html/-/dict-html-1.1.9.tgz#e506ca550ffcdad820ba0aa157a48be869f23bf2" + integrity sha512-vvnYia0tyIS5Fdoz+gEQm77MGZZE66kOJjuNpIYyRHCXFAhWdYz3SmkRm6YKJSWSvuO+WBJYTKDvkOxSh3Fx/w== + +"@cspell/dict-html@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-html/-/dict-html-4.0.5.tgz#03a5182148d80e6c25f71339dbb2b7c5b9894ef8" + integrity sha512-p0brEnRybzSSWi8sGbuVEf7jSTDmXPx7XhQUb5bgG6b54uj+Z0Qf0V2n8b/LWwIPJNd1GygaO9l8k3HTCy1h4w== + +"@cspell/dict-java@^5.0.6": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@cspell/dict-java/-/dict-java-5.0.6.tgz#2462d6fc15f79ec15eb88ecf875b6ad2a7bf7a6a" + integrity sha512-kdE4AHHHrixyZ5p6zyms1SLoYpaJarPxrz8Tveo6gddszBVVwIUZ+JkQE1bWNLK740GWzIXdkznpUfw1hP9nXw== + +"@cspell/dict-k8s@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-k8s/-/dict-k8s-1.0.2.tgz#b19e66f4ac8a4264c0f3981ac6e23e88a60f1c91" + integrity sha512-tLT7gZpNPnGa+IIFvK9SP1LrSpPpJ94a/DulzAPOb1Q2UBFwdpFd82UWhio0RNShduvKG/WiMZf/wGl98pn+VQ== + +"@cspell/dict-latex@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-latex/-/dict-latex-4.0.0.tgz#85054903db834ea867174795d162e2a8f0e9c51e" + integrity sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ== + +"@cspell/dict-lorem-ipsum@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.0.tgz#2793a5dbfde474a546b0caecc40c38fdf076306e" + integrity sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw== + +"@cspell/dict-lua@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-lua/-/dict-lua-4.0.3.tgz#2d23c8f7e74b4e62000678d80e7d1ebb10b003e0" + integrity sha512-lDHKjsrrbqPaea13+G9s0rtXjMO06gPXPYRjRYawbNmo4E/e3XFfVzeci3OQDQNDmf2cPOwt9Ef5lu2lDmwfJg== + +"@cspell/dict-makefile@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-makefile/-/dict-makefile-1.0.0.tgz#5afb2910873ebbc01ab8d9c38661c4c93d0e5a40" + integrity sha512-3W9tHPcSbJa6s0bcqWo6VisEDTSN5zOtDbnPabF7rbyjRpNo0uHXHRJQF8gAbFzoTzBBhgkTmrfSiuyQm7vBUQ== + +"@cspell/dict-node@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-node/-/dict-node-4.0.3.tgz#5ae0222d72871e82978049f8e11ea627ca42fca3" + integrity sha512-sFlUNI5kOogy49KtPg8SMQYirDGIAoKBO3+cDLIwD4MLdsWy1q0upc7pzGht3mrjuyMiPRUV14Bb0rkVLrxOhg== + +"@cspell/dict-npm@^5.0.14": + version "5.0.15" + resolved "https://registry.yarnpkg.com/@cspell/dict-npm/-/dict-npm-5.0.15.tgz#c1d1646011fd0eb8ee119b481818a92223c459d1" + integrity sha512-sX0X5YWNW54F4baW7b5JJB6705OCBIZtUqjOghlJNORS5No7QY1IX1zc5FxNNu4gsaCZITAmfMi4ityXEsEThA== + +"@cspell/dict-php@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@cspell/dict-php/-/dict-php-4.0.6.tgz#fcdee4d850f279b2757eb55c4f69a3a221ac1f7e" + integrity sha512-ySAXisf7twoVFZqBV2o/DKiCLIDTHNqfnj0EfH9OoOUR7HL3rb6zJkm0viLUFDO2G/8SyIi6YrN/6KX+Scjjjg== + +"@cspell/dict-powershell@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-powershell/-/dict-powershell-5.0.3.tgz#7bceb4e7db39f87479a6d2af3a033ce26796ae49" + integrity sha512-lEdzrcyau6mgzu1ie98GjOEegwVHvoaWtzQnm1ie4DyZgMr+N6D0Iyj1lzvtmt0snvsDFa5F2bsYzf3IMKcpcA== + +"@cspell/dict-public-licenses@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.5.tgz#86948b29bd36184943955eaa80bf594488c4dd8a" + integrity sha512-91HK4dSRri/HqzAypHgduRMarJAleOX5NugoI8SjDLPzWYkwZ1ftuCXSk+fy8DLc3wK7iOaFcZAvbjmnLhVs4A== + +"@cspell/dict-python@^4.1.11": + version "4.1.11" + resolved "https://registry.yarnpkg.com/@cspell/dict-python/-/dict-python-4.1.11.tgz#4e339def01bf468b32d459c46ecb6894970b7eb8" + integrity sha512-XG+v3PumfzUW38huSbfT15Vqt3ihNb462ulfXifpQllPok5OWynhszCLCRQjQReV+dgz784ST4ggRxW452/kVg== + dependencies: + "@cspell/dict-data-science" "^1.0.11" + +"@cspell/dict-r@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-r/-/dict-r-2.0.1.tgz#73474fb7cce45deb9094ebf61083fbf5913f440a" + integrity sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA== + +"@cspell/dict-ruby@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-ruby/-/dict-ruby-5.0.2.tgz#cf1a71380c633dec0857143d3270cb503b10679a" + integrity sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g== + +"@cspell/dict-rust@^4.0.1": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-rust/-/dict-rust-4.0.2.tgz#e9111f0105ee6d836a1be8314f47347fd9f8fc3a" + integrity sha512-RhziKDrklzOntxAbY3AvNR58wnFGIo3YS8+dNeLY36GFuWOvXDHFStYw5Pod4f/VXbO/+1tXtywCC4zWfB2p1w== + +"@cspell/dict-scala@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-scala/-/dict-scala-5.0.0.tgz#b64365ad559110a36d44ccd90edf7151ea648022" + integrity sha512-ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ== + +"@cspell/dict-software-terms@^3.3.15", "@cspell/dict-software-terms@^3.3.18": + version "3.3.18" + resolved "https://registry.yarnpkg.com/@cspell/dict-software-terms/-/dict-software-terms-3.3.18.tgz#f25863c316eea195d74b170d41711e2c7402e9ca" + integrity sha512-LJZGGMGqS8KzgXJrSMs3T+6GoqHG9z8Bc+rqLzLzbtoR3FbsMasE9U8oP2PmS3q7jJLFjQkzmg508DrcuZuo2g== + +"@cspell/dict-sql@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-sql/-/dict-sql-2.1.3.tgz#8d9666a82e35b310d0be4064032c0d891fbd2702" + integrity sha512-SEyTNKJrjqD6PAzZ9WpdSu6P7wgdNtGV2RV8Kpuw1x6bV+YsSptuClYG+JSdRExBTE6LwIe1bTklejUp3ZP8TQ== + +"@cspell/dict-svelte@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-svelte/-/dict-svelte-1.0.2.tgz#0c866b08a7a6b33bbc1a3bdbe6a1b484ca15cdaa" + integrity sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q== + +"@cspell/dict-swift@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-swift/-/dict-swift-2.0.1.tgz#06ec86e52e9630c441d3c19605657457e33d7bb6" + integrity sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw== + +"@cspell/dict-typescript@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-typescript/-/dict-typescript-3.1.2.tgz#14d05f54db2984feaa24ea133b583d19c04cc104" + integrity sha512-lcNOYWjLUvDZdLa0UMNd/LwfVdxhE9rKA+agZBGjL3lTA3uNvH7IUqSJM/IXhJoBpLLMVEOk8v1N9xi+vDuCdA== + +"@cspell/dict-vue@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-vue/-/dict-vue-3.0.0.tgz#68ccb432ad93fcb0fd665352d075ae9a64ea9250" + integrity sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A== + +"@cspell/dynamic-import@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/dynamic-import/-/dynamic-import-8.3.2.tgz#96fea6b1139164449a8ef92530de670d4c2fb36e" + integrity sha512-4t0xM5luA3yQhar2xWvYK4wQSDB2r0u8XkpzzJqd57MnJXd7uIAxI0awGUrDXukadRaCo0tDIlMUBemH48SNVg== + dependencies: + import-meta-resolve "^4.0.0" + +"@cspell/strong-weak-map@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/strong-weak-map/-/strong-weak-map-8.3.2.tgz#5a9490e042bbc472089817b50cf51262dfedef65" + integrity sha512-Mte/2000ap278kRYOUhiGWI7MNr1+A7WSWJmlcdP4CAH5SO20sZI3/cyZLjJJEyapdhK5vaP1L5J9sUcVDHd3A== + +"@ericcornelissen/bash-parser@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@ericcornelissen/bash-parser/-/bash-parser-0.5.2.tgz#5eb3bc52020d97fbaebc63b5168ca0aa0b2e8418" + integrity sha512-4pIMTa1nEFfMXitv7oaNEWOdM+zpOZavesa5GaiWTgda6Zk32CFGxjUp/iIaN0PwgUW1yTq/fztSjbpE8SLGZQ== + dependencies: + array-last "^1.1.1" + babylon "^6.9.1" + compose-function "^3.0.3" + deep-freeze "0.0.1" + filter-iterator "0.0.1" + filter-obj "^1.1.0" + has-own-property "^0.1.0" + identity-function "^1.0.0" + is-iterable "^1.1.0" + iterable-lookahead "^1.0.0" + lodash.curry "^4.1.1" + magic-string "^0.16.0" + map-obj "^2.0.0" + object-pairs "^0.1.0" + object-values "^1.0.0" + reverse-arguments "^1.0.0" + shell-quote-word "^1.0.1" + to-pascal-case "^1.0.0" + unescape-js "^1.0.5" + +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + +"@esbuild/aix-ppc64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.0.tgz#509621cca4e67caf0d18561a0c56f8b70237472f" + integrity sha512-fGFDEctNh0CcSwsiRPxiaqX0P5rq+AqE0SRhYGZ4PX46Lg1FNR6oCxJghf8YgY0WQEgQuh3lErUFE4KxLeRmmw== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + +"@esbuild/android-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.0.tgz#109a6fdc4a2783fc26193d2687827045d8fef5ab" + integrity sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + +"@esbuild/android-arm@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.0.tgz#1397a2c54c476c4799f9b9073550ede496c94ba5" + integrity sha512-3bMAfInvByLHfJwYPJRlpTeaQA75n8C/QKpEaiS4HrFWFiJlNI0vzq/zCjBrhAYcPyVPG7Eo9dMrcQXuqmNk5g== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + +"@esbuild/android-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.0.tgz#2b615abefb50dc0a70ac313971102f4ce2fdb3ca" + integrity sha512-uK7wAnlRvjkCPzh8jJ+QejFyrP8ObKuR5cBIsQZ+qbMunwR8sbd8krmMbxTLSrDhiPZaJYKQAU5Y3iMDcZPhyQ== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + +"@esbuild/darwin-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.0.tgz#5c122ed799eb0c35b9d571097f77254964c276a2" + integrity sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + +"@esbuild/darwin-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.0.tgz#9561d277002ba8caf1524f209de2b22e93d170c1" + integrity sha512-bsgTPoyYDnPv8ER0HqnJggXK6RyFy4PH4rtsId0V7Efa90u2+EifxytE9pZnsDgExgkARy24WUQGv9irVbTvIw== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + +"@esbuild/freebsd-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.0.tgz#84178986a3138e8500d17cc380044868176dd821" + integrity sha512-kQ7jYdlKS335mpGbMW5tEe3IrQFIok9r84EM3PXB8qBFJPSc6dpWfrtsC/y1pyrz82xfUIn5ZrnSHQQsd6jebQ== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + +"@esbuild/freebsd-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.0.tgz#3f9ce53344af2f08d178551cd475629147324a83" + integrity sha512-uG8B0WSepMRsBNVXAQcHf9+Ko/Tr+XqmK7Ptel9HVmnykupXdS4J7ovSQUIi0tQGIndhbqWLaIL/qO/cWhXKyQ== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + +"@esbuild/linux-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.0.tgz#24efa685515689df4ecbc13031fa0a9dda910a11" + integrity sha512-uTtyYAP5veqi2z9b6Gr0NUoNv9F/rOzI8tOD5jKcCvRUn7T60Bb+42NDBCWNhMjkQzI0qqwXkQGo1SY41G52nw== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + +"@esbuild/linux-arm@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.0.tgz#6b586a488e02e9b073a75a957f2952b3b6e87b4c" + integrity sha512-2ezuhdiZw8vuHf1HKSf4TIk80naTbP9At7sOqZmdVwvvMyuoDiZB49YZKLsLOfKIr77+I40dWpHVeY5JHpIEIg== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + +"@esbuild/linux-ia32@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.0.tgz#84ce7864f762708dcebc1b123898a397dea13624" + integrity sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + +"@esbuild/linux-loong64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.0.tgz#1922f571f4cae1958e3ad29439c563f7d4fd9037" + integrity sha512-lR2rr/128/6svngnVta6JN4gxSXle/yZEZL3o4XZ6esOqhyR4wsKyfu6qXAL04S4S5CgGfG+GYZnjFd4YiG3Aw== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + +"@esbuild/linux-mips64el@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.0.tgz#7ca1bd9df3f874d18dbf46af009aebdb881188fe" + integrity sha512-9Sycc+1uUsDnJCelDf6ZNqgZQoK1mJvFtqf2MUz4ujTxGhvCWw+4chYfDLPepMEvVL9PDwn6HrXad5yOrNzIsQ== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + +"@esbuild/linux-ppc64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.0.tgz#8f95baf05f9486343bceeb683703875d698708a4" + integrity sha512-CoWSaaAXOZd+CjbUTdXIJE/t7Oz+4g90A3VBCHLbfuc5yUQU/nFDLOzQsN0cdxgXd97lYW/psIIBdjzQIwTBGw== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + +"@esbuild/linux-riscv64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.0.tgz#ca63b921d5fe315e28610deb0c195e79b1a262ca" + integrity sha512-mlb1hg/eYRJUpv8h/x+4ShgoNLL8wgZ64SUr26KwglTYnwAWjkhR2GpoKftDbPOCnodA9t4Y/b68H4J9XmmPzA== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + +"@esbuild/linux-s390x@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.0.tgz#cb3d069f47dc202f785c997175f2307531371ef8" + integrity sha512-fgf9ubb53xSnOBqyvWEY6ukBNRl1mVX1srPNu06B6mNsNK20JfH6xV6jECzrQ69/VMiTLvHMicQR/PgTOgqJUQ== + +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + +"@esbuild/linux-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.0.tgz#ac617e0dc14e9758d3d7efd70288c14122557dc7" + integrity sha512-H9Eu6MGse++204XZcYsse1yFHmRXEWgadk2N58O/xd50P9EvFMLJTQLg+lB4E1cF2xhLZU5luSWtGTb0l9UeSg== + +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + +"@esbuild/netbsd-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.0.tgz#6cc778567f1513da6e08060e0aeb41f82eb0f53c" + integrity sha512-lCT675rTN1v8Fo+RGrE5KjSnfY0x9Og4RN7t7lVrN3vMSjy34/+3na0q7RIfWDAj0e0rCh0OL+P88lu3Rt21MQ== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + +"@esbuild/openbsd-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.0.tgz#76848bcf76b4372574fb4d06cd0ed1fb29ec0fbe" + integrity sha512-HKoUGXz/TOVXKQ+67NhxyHv+aDSZf44QpWLa3I1lLvAwGq8x1k0T+e2HHSRvxWhfJrFxaaqre1+YyzQ99KixoA== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + +"@esbuild/sunos-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.0.tgz#ea4cd0639bf294ad51bc08ffbb2dac297e9b4706" + integrity sha512-GDwAqgHQm1mVoPppGsoq4WJwT3vhnz/2N62CzhvApFD1eJyTroob30FPpOZabN+FgCjhG+AgcZyOPIkR8dfD7g== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + +"@esbuild/win32-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.0.tgz#a5c171e4a7f7e4e8be0e9947a65812c1535a7cf0" + integrity sha512-0vYsP8aC4TvMlOQYozoksiaxjlvUcQrac+muDqj1Fxy6jh9l9CZJzj7zmh8JGfiV49cYLTorFLxg7593pGldwQ== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + +"@esbuild/win32-ia32@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.0.tgz#f8ac5650c412d33ea62d7551e0caf82da52b7f85" + integrity sha512-p98u4rIgfh4gdpV00IqknBD5pC84LCub+4a3MO+zjqvU5MVXOc3hqR2UgT2jI2nh3h8s9EQxmOsVI3tyzv1iFg== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + +"@esbuild/win32-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.0.tgz#2efddf82828aac85e64cef62482af61c29561bee" + integrity sha512-NgJnesu1RtWihtTtXGFMU5YSE6JyyHPMxCwBZK7a6/8d31GuSo9l0Ss7w1Jw5QnKUawG6UEehs883kcXf5fYwg== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": version "5.7.0" @@ -564,150 +1163,498 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@octokit/auth-token@^3.0.0": +"@humanwhocodes/config-array@^0.11.13": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.scandir@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-3.0.0.tgz#91c0a33e1aeaedcd4bab2bf31be5d1962a55d2a7" + integrity sha512-ktI9+PxfHYtKjF3cLTUAh2N+b8MijCRPNwKJNqTVdL0gB0QxLU2rIRaZ1t71oEa3YBDE6bukH1sR0+CDnpp/Mg== + dependencies: + "@nodelib/fs.stat" "3.0.0" + run-parallel "^1.2.0" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.stat@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-3.0.0.tgz#ef6c829f2b05f42595d88854ebd777d4335ff0a9" + integrity sha512-2tQOI38s19P9i7X/Drt0v8iMA+KMsgdhB/dyPER+e+2Y8L1Z7QvnuRdW/uLuf5YRFUYmnj4bMA6qCuZHFI1GDQ== + +"@nodelib/fs.walk@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-2.0.0.tgz#10499ac2210f6399770b465ba728adafc7d44bb1" + integrity sha512-54voNDBobGdMl3BUXSu7UaDh1P85PGHWlJ5e0XhPugo1JulOyCtp2I+5ri4wplGDJ8QGwPEQW7/x3yTLU7yF1A== + dependencies: + "@nodelib/fs.scandir" "3.0.0" + fastq "^1.15.0" + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/git@^5.0.0": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.4.tgz#d18c50f99649e6e89e8b427318134f582498700c" + integrity sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ== + dependencies: + "@npmcli/promise-spawn" "^7.0.0" + lru-cache "^10.0.1" + npm-pick-manifest "^9.0.0" + proc-log "^3.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^4.0.0" + +"@npmcli/map-workspaces@3.0.4": version "3.0.4" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db" - integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== - -"@octokit/core@^4.2.0", "@octokit/core@^4.2.1": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907" - integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== - dependencies: - "@octokit/auth-token" "^3.0.0" - "@octokit/graphql" "^5.0.0" - "@octokit/request" "^6.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz#15ad7d854292e484f7ba04bc30187a8320dba799" + integrity sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg== + dependencies: + "@npmcli/name-from-folder" "^2.0.0" + glob "^10.2.2" + minimatch "^9.0.0" + read-package-json-fast "^3.0.0" + +"@npmcli/name-from-folder@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" + integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg== + +"@npmcli/package-json@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.0.0.tgz#77d0f8b17096763ccbd8af03b7117ba6e34d6e91" + integrity sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g== + dependencies: + "@npmcli/git" "^5.0.0" + glob "^10.2.2" + hosted-git-info "^7.0.0" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^6.0.0" + proc-log "^3.0.0" + semver "^7.5.3" + +"@npmcli/promise-spawn@^7.0.0": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz#a836de2f42a2245d629cf6fbb8dd6c74c74c55af" + integrity sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg== + dependencies: + which "^4.0.0" + +"@octokit/auth-token@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7" + integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== + +"@octokit/core@^5.0.0", "@octokit/core@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.1.0.tgz#81dacf0197ed7855e6413f128bd6dd9e121e7d2f" + integrity sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g== + dependencies: + "@octokit/auth-token" "^4.0.0" + "@octokit/graphql" "^7.0.0" + "@octokit/request" "^8.0.2" + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" before-after-hook "^2.2.0" universal-user-agent "^6.0.0" -"@octokit/endpoint@^7.0.0": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2" - integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg== +"@octokit/endpoint@^9.0.0": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.4.tgz#8afda5ad1ffc3073d08f2b450964c610b821d1ea" + integrity sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw== dependencies: - "@octokit/types" "^9.0.0" - is-plain-object "^5.0.0" + "@octokit/types" "^12.0.0" universal-user-agent "^6.0.0" -"@octokit/graphql@^5.0.0": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248" - integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw== +"@octokit/graphql@^7.0.0": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.0.2.tgz#3df14b9968192f9060d94ed9e3aa9780a76e7f99" + integrity sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q== dependencies: - "@octokit/request" "^6.0.0" - "@octokit/types" "^9.0.0" + "@octokit/request" "^8.0.1" + "@octokit/types" "^12.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^18.0.0": - version "18.1.1" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009" - integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw== +"@octokit/openapi-types@^19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-19.1.0.tgz#75ec7e64743870fc73e1ab4bc6ec252ecdd624dc" + integrity sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw== -"@octokit/plugin-create-or-update-text-file@^2.0.4": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@octokit/plugin-create-or-update-text-file/-/plugin-create-or-update-text-file-2.0.5.tgz#39352f6adc86cc30fc2f655ad643d6b02bc4270f" - integrity sha512-83KUB4siozRx3S+ZZ3MgDLdDgeuot8kTpEyQyd8mjNbeoHbq5hzTQcKMjDhtg5WQS+nGAAu6vi2VlOUl9XrL0g== +"@octokit/plugin-create-or-update-text-file@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-create-or-update-text-file/-/plugin-create-or-update-text-file-4.0.1.tgz#fc4785fba989288286cb2e0de05e99e626c6316c" + integrity sha512-r0kY7MrV+QTTPeVzNmjeAuuPraF8i6cQ2ff2/W+C2monXTAyx21jLd/2jczrC2e+ohnXQvDT3acqpBhtBcqXYQ== dependencies: - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" -"@octokit/plugin-paginate-rest@^6.1.2": - version "6.1.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz#f86456a7a1fe9e58fec6385a85cf1b34072341f8" - integrity sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ== +"@octokit/plugin-paginate-rest@^9.0.0": + version "9.1.5" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz#1705bcef4dcde1f4015ee58a63dc61b68648f480" + integrity sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg== dependencies: - "@octokit/tsconfig" "^1.0.2" - "@octokit/types" "^9.2.3" + "@octokit/types" "^12.4.0" -"@octokit/plugin-request-log@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" - integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== +"@octokit/plugin-request-log@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-4.0.0.tgz#260fa6970aa97bbcbd91f99f3cd812e2b285c9f1" + integrity sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA== -"@octokit/plugin-rest-endpoint-methods@^7.1.2": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz#37a84b171a6cb6658816c82c4082ac3512021797" - integrity sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA== +"@octokit/plugin-rest-endpoint-methods@^10.0.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.3.0.tgz#cba45a365ebc5dbeeca2db95466a514e69c5aa75" + integrity sha512-c/fjpoHispRvBZuRoTVt/uALg7pXa9RQbXWJiDMk6NDkGNomuAZG7YuYYpZoxeoXv+kVRjIDTsO0e1z0pei+PQ== dependencies: - "@octokit/types" "^10.0.0" + "@octokit/types" "^12.4.0" -"@octokit/plugin-throttling@^5.1.0": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-throttling/-/plugin-throttling-5.2.3.tgz#9f552a14dcee5c7326dd9dee64a71ea76b108814" - integrity sha512-C9CFg9mrf6cugneKiaI841iG8DOv6P5XXkjmiNNut+swePxQ7RWEdAZRp5rJoE1hjsIqiYcKa/ZkOQ+ujPI39Q== +"@octokit/plugin-throttling@^8.1.3": + version "8.1.3" + resolved "https://registry.yarnpkg.com/@octokit/plugin-throttling/-/plugin-throttling-8.1.3.tgz#7fb0e001c0cb9383c6be07740b8ec326ed990f6b" + integrity sha512-pfyqaqpc0EXh5Cn4HX9lWYsZ4gGbjnSmUILeu4u2gnuM50K/wIk9s1Pxt3lVeVwekmITgN/nJdoh43Ka+vye8A== dependencies: - "@octokit/types" "^9.0.0" + "@octokit/types" "^12.2.0" bottleneck "^2.15.3" -"@octokit/request-error@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69" - integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== +"@octokit/request-error@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.0.1.tgz#277e3ce3b540b41525e07ba24c5ef5e868a72db9" + integrity sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ== dependencies: - "@octokit/types" "^9.0.0" + "@octokit/types" "^12.0.0" deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^6.0.0": - version "6.2.8" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb" - integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw== +"@octokit/request@^8.0.1", "@octokit/request@^8.0.2": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.2.0.tgz#125c547bc3f4c0e2dfa38c6829a1cf00027fbd98" + integrity sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ== dependencies: - "@octokit/endpoint" "^7.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" - is-plain-object "^5.0.0" - node-fetch "^2.6.7" + "@octokit/endpoint" "^9.0.0" + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" universal-user-agent "^6.0.0" -"@octokit/rest@^19.0.7": - version "19.0.13" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.13.tgz#e799393264edc6d3c67eeda9e5bd7832dcf974e4" - integrity sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA== +"@octokit/rest@^20.0.2": + version "20.0.2" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-20.0.2.tgz#5cc8871ba01b14604439049e5f06c74b45c99594" + integrity sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ== + dependencies: + "@octokit/core" "^5.0.0" + "@octokit/plugin-paginate-rest" "^9.0.0" + "@octokit/plugin-request-log" "^4.0.0" + "@octokit/plugin-rest-endpoint-methods" "^10.0.0" + +"@octokit/types@^12.0.0", "@octokit/types@^12.2.0", "@octokit/types@^12.4.0": + version "12.5.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-12.5.0.tgz#a60003ad6bb073e5cac936f6ecf47c834f87c058" + integrity sha512-YJEKcb0KkJlIUNU/zjnZwHEP8AoVh/OoIcP/1IyR4UHxExz7fzpe/a8IG4wBtQi7QDEqiomVLX88S6FpxxAJtg== + dependencies: + "@octokit/openapi-types" "^19.1.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + +"@pnpm/constants@7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@pnpm/constants/-/constants-7.1.1.tgz#3db261425fe15425aa213a2b003f4f60c9378b43" + integrity sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw== + +"@pnpm/core-loggers@9.0.6": + version "9.0.6" + resolved "https://registry.yarnpkg.com/@pnpm/core-loggers/-/core-loggers-9.0.6.tgz#59a65822cc5ef901dad5aca5b8f1f9562cf91e2a" + integrity sha512-iK67SGbp+06bA/elpg51wygPFjNA7JKHtKkpLxqXXHw+AjFFBC3f2OznJsCIuDK6HdGi5UhHLYqo5QxJ2gMqJQ== + dependencies: + "@pnpm/types" "9.4.2" + +"@pnpm/error@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@pnpm/error/-/error-5.0.2.tgz#153d18fe9eeaeb02e48e9dc45b042f4c962b3822" + integrity sha512-0TEm+tWNYm+9uh6DSKyRbv8pv/6b4NL0PastLvMxIoqZbBZ5Zj1cYi332R9xsSUi31ZOsu2wpgn/bC7DA9hrjg== dependencies: - "@octokit/core" "^4.2.1" - "@octokit/plugin-paginate-rest" "^6.1.2" - "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^7.1.2" + "@pnpm/constants" "7.1.1" -"@octokit/tsconfig@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@octokit/tsconfig/-/tsconfig-1.0.2.tgz#59b024d6f3c0ed82f00d08ead5b3750469125af7" - integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA== +"@pnpm/fetching-types@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@pnpm/fetching-types/-/fetching-types-5.0.0.tgz#36807c4bea4697d5ad7519d80929666a91c0083d" + integrity sha512-o9gdO1v8Uc5P2fBBuW6GSpfTqIivQmQlqjQJdFiQX0m+tgxlrMRneIg392jZuc6fk7kFqjLheInlslgJfwY+4Q== + dependencies: + "@zkochan/retry" "^0.2.0" + node-fetch "3.0.0-beta.9" + +"@pnpm/graceful-fs@3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@pnpm/graceful-fs/-/graceful-fs-3.2.0.tgz#241846c42c23feff7421b8bd97d4039891003f12" + integrity sha512-vRoXJxscDpHak7YE9SqCkzfrayn+Lw+YueOeHIPEqkgokrHeYgYeONoc2kGh0ObHaRtNSsonozVfJ456kxLNvA== + dependencies: + graceful-fs "^4.2.11" -"@octokit/types@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-10.0.0.tgz#7ee19c464ea4ada306c43f1a45d444000f419a4a" - integrity sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg== +"@pnpm/logger@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@pnpm/logger/-/logger-5.0.0.tgz#9ac8254d40d8d5b5e676742dc66b8cac1af380bf" + integrity sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw== + dependencies: + bole "^5.0.0" + ndjson "^2.0.0" + +"@pnpm/npm-package-arg@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@pnpm/npm-package-arg/-/npm-package-arg-1.0.0.tgz#2a27938f4d38c6cce5f3695fd1e7d5ed8929645e" + integrity sha512-oQYP08exi6mOPdAZZWcNIGS+KKPsnNwUBzSuAEGWuCcqwMAt3k/WVCqVIXzBxhO5sP2b43og69VHmPj6IroKqw== + dependencies: + hosted-git-info "^4.0.1" + semver "^7.3.5" + validate-npm-package-name "^4.0.0" + +"@pnpm/npm-resolver@18.1.0": + version "18.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/npm-resolver/-/npm-resolver-18.1.0.tgz#bbafcdf88391ee84e2dc78c2b599b54dbbc8f8e3" + integrity sha512-fUYKX/iHiHldL0VRVvkQI35YK2jWhZEkPO6rrGke8309+LKAo12v833nBttMDpQrtHefmqhB4mhCzQq6L2Xqmg== + dependencies: + "@pnpm/core-loggers" "9.0.6" + "@pnpm/error" "5.0.2" + "@pnpm/fetching-types" "5.0.0" + "@pnpm/graceful-fs" "3.2.0" + "@pnpm/resolve-workspace-range" "5.0.1" + "@pnpm/resolver-base" "11.1.0" + "@pnpm/types" "9.4.2" + "@zkochan/retry" "^0.2.0" + encode-registry "^3.0.1" + load-json-file "^6.2.0" + lru-cache "^10.0.2" + normalize-path "^3.0.0" + p-limit "^3.1.0" + p-memoize "4.0.1" + parse-npm-tarball-url "^3.0.0" + path-temp "^2.1.0" + ramda "npm:@pnpm/ramda@0.28.1" + rename-overwrite "^5.0.0" + semver "^7.5.4" + ssri "10.0.5" + version-selector-type "^3.0.0" + +"@pnpm/resolve-workspace-range@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@pnpm/resolve-workspace-range/-/resolve-workspace-range-5.0.1.tgz#839179560fbf5e565234e5dd1d65b79765d86f4c" + integrity sha512-yQ0pMthlw8rTgS/C9hrjne+NEnnSNevCjtdodd7i15I59jMBYciHifZ/vjg0NY+Jl+USTc3dBE+0h/4tdYjMKg== + dependencies: + semver "^7.4.0" + +"@pnpm/resolver-base@11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/resolver-base/-/resolver-base-11.1.0.tgz#e640ba9ae096bf05a0b905496a63509556322618" + integrity sha512-y2qKaj18pwe1VWc3YXEitdYFo+WqOOt60aqTUuOVkJAirUzz0DzuYh3Ifct4znYWPdgUXHaN5DMphNF5iL85rA== dependencies: - "@octokit/openapi-types" "^18.0.0" + "@pnpm/types" "9.4.2" -"@octokit/types@^9.0.0", "@octokit/types@^9.2.3": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" - integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== +"@pnpm/types@9.4.2": + version "9.4.2" + resolved "https://registry.yarnpkg.com/@pnpm/types/-/types-9.4.2.tgz#0a34c3c41d5452461d8d8958374a727f9c46cfb2" + integrity sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA== + +"@pnpm/workspace.pkgs-graph@^2.0.14": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@pnpm/workspace.pkgs-graph/-/workspace.pkgs-graph-2.0.14.tgz#3ea12b8d95987e64bc98876422ea7ad578cd022a" + integrity sha512-SBXXyWDkPEoaLTjLRyQzRHoBYH+P0NLcIjX1yPUxuJiMTvGOMzjpLWTuxYNVe/P0V0VQMrjpJFaJPjlViNLhzg== + dependencies: + "@pnpm/npm-package-arg" "^1.0.0" + "@pnpm/npm-resolver" "18.1.0" + "@pnpm/resolve-workspace-range" "5.0.1" + ramda "npm:@pnpm/ramda@0.28.1" + +"@sinclair/typebox@^0.32.14": + version "0.32.14" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.32.14.tgz#ef0a4ed981515fd430cadfb65cb6c2719a0b5539" + integrity sha512-EC77Mw8huT2z9YlYbWfpIQgN6shZE1tH4NP4/Trig8UBel9FZNMZRJ42ubJI8PLor2uIU+waLml1dce5ReCOPg== + +"@snyk/github-codeowners@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@snyk/github-codeowners/-/github-codeowners-1.1.0.tgz#45b99732c3c38b5f5b47e43d2b0c9db67a6d2bcc" + integrity sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw== dependencies: - "@octokit/openapi-types" "^18.0.0" + commander "^4.1.1" + ignore "^5.1.8" + p-map "^4.0.0" -"@sinclair/typebox@^0.31.28": - version "0.31.28" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.31.28.tgz#b68831e7bc7d09daac26968ea32f42bedc968ede" - integrity sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ== +"@types/json-schema@^7.0.12": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/libsodium-wrappers@^0.7.10": +"@types/libsodium-wrappers@^0.7.13": version "0.7.13" resolved "https://registry.yarnpkg.com/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#769c4ea01de96bb297207586a70777ebf066dcb4" integrity sha512-KeAKtlObirLJk/na6jHBFEdTDjDfFS6Vcr0eG2FjiHKn3Nw8axJFfIu0Y9TpwaauRldQBj/pZm/MHtK76r6OWg== -"@types/node@^18.15.11": - version "18.19.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.3.tgz#e4723c4cb385641d61b983f6fe0b716abd5f8fc0" - integrity sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg== +"@types/minimist@^1.2.0": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== + +"@types/node@^20.11.19": + version "20.11.19" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.19.tgz#b466de054e9cb5b3831bee38938de64ac7f81195" + integrity sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ== dependencies: undici-types "~5.26.4" +"@types/normalize-package-data@^2.4.0": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + +"@types/picomatch@2.3.3": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@types/picomatch/-/picomatch-2.3.3.tgz#be60498568c19e989e43fb39aa84be1ed3655e92" + integrity sha512-Yll76ZHikRFCyz/pffKGjrCwe/le2CDwOP5F210KQo27kpRE46U2rDnzikNlVn6/ezH3Mhn46bJMTfeVTtcYMg== + +"@types/semver@^7.5.0": + version "7.5.7" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.7.tgz#326f5fdda70d13580777bcaa1bc6fa772a5aef0e" + integrity sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg== + +"@typescript-eslint/eslint-plugin@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.1.tgz#407daffe09d964d57aceaf3ac51846359fbe61b0" + integrity sha512-OLvgeBv3vXlnnJGIAgCLYKjgMEU+wBGj07MQ/nxAaON+3mLzX7mJbhRYrVGiVvFiXtwFlkcBa/TtmglHy0UbzQ== + dependencies: + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "7.0.1" + "@typescript-eslint/type-utils" "7.0.1" + "@typescript-eslint/utils" "7.0.1" + "@typescript-eslint/visitor-keys" "7.0.1" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.0.1.tgz#e9c61d9a5e32242477d92756d36086dc40322eed" + integrity sha512-8GcRRZNzaHxKzBPU3tKtFNing571/GwPBeCvmAUw0yBtfE2XVd0zFKJIMSWkHJcPQi0ekxjIts6L/rrZq5cxGQ== + dependencies: + "@typescript-eslint/scope-manager" "7.0.1" + "@typescript-eslint/types" "7.0.1" + "@typescript-eslint/typescript-estree" "7.0.1" + "@typescript-eslint/visitor-keys" "7.0.1" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.0.1.tgz#611ec8e78c70439b152a805e1b10aaac36de7c00" + integrity sha512-v7/T7As10g3bcWOOPAcbnMDuvctHzCFYCG/8R4bK4iYzdFqsZTbXGln0cZNVcwQcwewsYU2BJLay8j0/4zOk4w== + dependencies: + "@typescript-eslint/types" "7.0.1" + "@typescript-eslint/visitor-keys" "7.0.1" + +"@typescript-eslint/type-utils@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.0.1.tgz#0fba92c1f81cad561d7b3adc812aa1cc0e35cdae" + integrity sha512-YtT9UcstTG5Yqy4xtLiClm1ZpM/pWVGFnkAa90UfdkkZsR1eP2mR/1jbHeYp8Ay1l1JHPyGvoUYR6o3On5Nhmw== + dependencies: + "@typescript-eslint/typescript-estree" "7.0.1" + "@typescript-eslint/utils" "7.0.1" + debug "^4.3.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/types@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.0.1.tgz#dcfabce192db5b8bf77ea3c82cfaabe6e6a3c901" + integrity sha512-uJDfmirz4FHib6ENju/7cz9SdMSkeVvJDK3VcMFvf/hAShg8C74FW+06MaQPODHfDJp/z/zHfgawIJRjlu0RLg== + +"@typescript-eslint/typescript-estree@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.1.tgz#1d52ac03da541693fa5bcdc13ad655def5046faf" + integrity sha512-SO9wHb6ph0/FN5OJxH4MiPscGah5wjOd0RRpaLvuBv9g8565Fgu0uMySFEPqwPHiQU90yzJ2FjRYKGrAhS1xig== + dependencies: + "@typescript-eslint/types" "7.0.1" + "@typescript-eslint/visitor-keys" "7.0.1" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "9.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.0.1.tgz#b8ceac0ba5fef362b4a03a33c0e1fedeea3734ed" + integrity sha512-oe4his30JgPbnv+9Vef1h48jm0S6ft4mNwi9wj7bX10joGn07QRfqIqFHoMiajrtoU88cIhXf8ahwgrcbNLgPA== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "7.0.1" + "@typescript-eslint/types" "7.0.1" + "@typescript-eslint/typescript-estree" "7.0.1" + semver "^7.5.4" + +"@typescript-eslint/visitor-keys@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.1.tgz#864680ac5a8010ec4814f8a818e57595f79f464e" + integrity sha512-hwAgrOyk++RTXrP4KzCg7zB2U0xt7RUU0ZdMSCsqF3eKUwkdXUMyTb0qdCuji7VIbcpG62kKTU9M1J1c9UpFBw== + dependencies: + "@typescript-eslint/types" "7.0.1" + eslint-visitor-keys "^3.4.1" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + "@uniswap/permit2-sdk@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@uniswap/permit2-sdk/-/permit2-sdk-1.2.0.tgz#ed86440a87a6c318169c8e6f161fc263ad040891" @@ -716,11 +1663,86 @@ ethers "^5.3.1" tiny-invariant "^1.3.1" +"@zkochan/retry@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@zkochan/retry/-/retry-0.2.0.tgz#cb52c9fce1976f3eed7b1979b739e70706f4a3d2" + integrity sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw== + +"@zkochan/rimraf@^2.1.2": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@zkochan/rimraf/-/rimraf-2.1.3.tgz#1074cb72d6e4997275285b04296a343b6ac7046b" + integrity sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A== + dependencies: + rimraf "^3.0.2" + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + aes-js@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.11.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-escapes@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" + integrity sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw== + dependencies: + type-fest "^3.0.0" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -728,46 +1750,101 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -array-buffer-byte-length@^1.0.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +arity-n@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" + integrity sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ== + +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-ify@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== + +array-last@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" + integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + is-number "^4.0.0" -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== +array-timsort@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926" + integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== -axios@^1.3.5: - version "1.6.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== +axios@^1.6.7: + version "1.6.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" + integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== dependencies: - follow-redirects "^1.15.0" + follow-redirects "^1.15.4" form-data "^4.0.0" proxy-from-env "^1.1.0" +babylon@^6.9.1: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -793,6 +1870,14 @@ bn.js@^5.2.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== +bole@^5.0.0: + version "5.0.11" + resolved "https://registry.yarnpkg.com/bole/-/bole-5.0.11.tgz#c4a165975422daee6f576360e882a425c8e40617" + integrity sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ== + dependencies: + fast-safe-stringify "^2.0.7" + individual "^3.0.0" + bottleneck@^2.15.3: version "2.19.5" resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" @@ -806,26 +1891,75 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +builtins@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0, callsites@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -chalk@^2.4.1: +chalk-template@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-1.1.0.tgz#ffc55db6dd745e9394b85327c8ac8466edb7a7b1" + integrity sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg== + dependencies: + chalk "^5.2.0" + +chalk@5.3.0, chalk@^5.2.0, chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -834,6 +1968,56 @@ chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +clear-module@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/clear-module/-/clear-module-4.1.2.tgz#5a58a5c9f8dccf363545ad7284cad3c887352a80" + integrity sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw== + dependencies: + parent-module "^2.0.0" + resolve-from "^5.0.0" + +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + +cli-truncate@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a" + integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== + dependencies: + slice-ansi "^5.0.0" + string-width "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -841,11 +2025,28 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -853,11 +2054,116 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -concat-map@0.0.1: +commander@11.1.0, commander@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + +commander@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +comment-json@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.2.3.tgz#50b487ebbf43abe44431f575ebda07d30d015365" + integrity sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw== + dependencies: + array-timsort "^1.0.3" + core-util-is "^1.0.3" + esprima "^4.0.1" + has-own-prop "^2.0.0" + repeat-string "^1.6.1" + +compare-func@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== + dependencies: + array-ify "^1.0.0" + dot-prop "^5.1.0" + +compose-function@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" + integrity sha512-xzhzTJ5eC+gmIzvZq+C3kCJHsp9os6tJkrigDRZclyGtOKINbZtE8n1Tzmeh32jW+BUDPbvZpibwvJHBLGMVwg== + dependencies: + arity-n "^1.0.4" + +concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +configstore@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +configstore@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" + integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== + dependencies: + dot-prop "^6.0.1" + graceful-fs "^4.2.6" + unique-string "^3.0.0" + write-file-atomic "^3.0.3" + xdg-basedir "^5.0.1" + +conventional-changelog-angular@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" + integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== + dependencies: + compare-func "^2.0.0" + +conventional-changelog-conventionalcommits@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz#aa5da0f1b2543094889e8cf7616ebe1a8f5c70d5" + integrity sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w== + dependencies: + compare-func "^2.0.0" + +conventional-commits-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#57f3594b81ad54d40c1b4280f04554df28627d9a" + integrity sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA== + dependencies: + JSONStream "^1.3.5" + is-text-path "^2.0.0" + meow "^12.0.1" + split2 "^4.0.0" + +core-util-is@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig-typescript-loader@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz#0d3becfe022a871f7275ceb2397d692e06045dc8" + integrity sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA== + dependencies: + jiti "^1.19.1" + +cosmiconfig@^8.3.6: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -869,14 +2175,200 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -define-data-property@^1.0.1, define-data-property@^1.1.1: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +crypto-random-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" + integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== + dependencies: + type-fest "^1.0.1" + +cspell-config-lib@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-config-lib/-/cspell-config-lib-8.3.2.tgz#050a6d782072a810cb6655efe11c08c80ae7636b" + integrity sha512-Wc98XhBNLwDxnxCzMtgRJALI9a69cu3C5Gf1rGjNTKSFo9JYiQmju0Ur3z25Pkx9Sa86f+2IjvNCf33rUDSoBQ== + dependencies: + "@cspell/cspell-types" "8.3.2" + comment-json "^4.2.3" + yaml "^2.3.4" + +cspell-dict-html@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/cspell-dict-html/-/cspell-dict-html-1.2.5.tgz#e670859986d7d2ea8feed29875cb8a411ad7c005" + integrity sha512-UgenFUHqMOZCH634DipKVWeSixlLTVJnmDGaPevLQuGPp057ucAb0QwDQlLRAAZh9RDfiBGvotX2hImFVN/l0Q== + dependencies: + "@cspell/dict-html" "^1.1.9" + configstore "^5.0.0" + +cspell-dictionary@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-dictionary/-/cspell-dictionary-8.3.2.tgz#6627a94501811a143f3b638e0e77f7262335dbd4" + integrity sha512-xyK95hO2BMPFxIo8zBwGml8035qOxSBdga1BMhwW/p2wDrQP8S4Cdm/54//tCDmKn6uRkFQvyOfWGaX2l8WMEg== + dependencies: + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-types" "8.3.2" + cspell-trie-lib "8.3.2" + fast-equals "^5.0.1" + gensequence "^6.0.0" + +cspell-gitignore@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-gitignore/-/cspell-gitignore-8.3.2.tgz#5cf244be494bf87257ca8715ac88b0849dd5fef3" + integrity sha512-3Qc9P5BVvl/cg//s2s+zIMGKcoH5v7oOtRgwn4UQry8yiyo19h0tiTKkSR574FMhF5NtcShTnwIwPSIXVBPFHA== + dependencies: + cspell-glob "8.3.2" + find-up-simple "^1.0.0" + +cspell-glob@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-8.3.2.tgz#4c208e4ddd5604d2871df534a3054c7a3fdc9998" + integrity sha512-KtIFxE+3l5dGEofND4/CdZffXP8XN1+XGQKxJ96lIzWsc01mkotfhxTkla6mgvfH039t7BsY/SWv0460KyGslQ== + dependencies: + micromatch "^4.0.5" + +cspell-grammar@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-grammar/-/cspell-grammar-8.3.2.tgz#69d7980c036c206745d5d417d32c95edaaff6107" + integrity sha512-tYCkOmRzJe1a6/R+8QGSwG7TwTgznLPqsHtepKzLmnS4YX54VXjKRI9zMARxXDzUVfyCSVdW5MyiY/0WTNoy+A== + dependencies: + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-types" "8.3.2" + +cspell-io@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-8.3.2.tgz#8ddd865fa9a1391852e3288789f5b2a6613239bd" + integrity sha512-WYpKsyBCQP0SY4gXnhW5fPuxcYchKYKG1PIXVV3ezFU4muSgW6GuLNbGuSfwv/8YNXRgFSN0e3hYH0rdBK2Aow== + dependencies: + "@cspell/cspell-service-bus" "8.3.2" + +cspell-lib@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-8.3.2.tgz#8225f8d3a20596bda4b9689a2ad958f7831f5a7d" + integrity sha512-wTvdaev/TyGB/ln6CVD1QbVs2D7/+QiajQ67S7yj1suLHM6YcNQQb/5sPAM8VPtj0E7PgwgPXf3bq18OtPvnFg== + dependencies: + "@cspell/cspell-bundled-dicts" "8.3.2" + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-resolver" "8.3.2" + "@cspell/cspell-types" "8.3.2" + "@cspell/dynamic-import" "8.3.2" + "@cspell/strong-weak-map" "8.3.2" + clear-module "^4.1.2" + comment-json "^4.2.3" + configstore "^6.0.0" + cspell-config-lib "8.3.2" + cspell-dictionary "8.3.2" + cspell-glob "8.3.2" + cspell-grammar "8.3.2" + cspell-io "8.3.2" + cspell-trie-lib "8.3.2" + fast-equals "^5.0.1" + gensequence "^6.0.0" + import-fresh "^3.3.0" + resolve-from "^5.0.0" + vscode-languageserver-textdocument "^1.0.11" + vscode-uri "^3.0.8" + +cspell-trie-lib@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-8.3.2.tgz#e1e8c9926f41a094bec7f0af85b931be06019fe7" + integrity sha512-8qh2FqzkLMwzlTlvO/5Z+89fhi30rrfekocpight/BmqKbE2XFJQD7wS2ml24e7q/rdHJLXVpJbY/V5mByucCA== + dependencies: + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-types" "8.3.2" + gensequence "^6.0.0" + +cspell@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell/-/cspell-8.3.2.tgz#56e7e919d87d38016b4c34b8c8ee745404c230a7" + integrity sha512-V8Ub3RO/a5lwSsltW/ib3Z3G/sczKtSpBBN1JChzbSCfEgaY2mJY8JW0BpkSV+Ug6uJitpXNOOaxa3Xr489i7g== + dependencies: + "@cspell/cspell-json-reporter" "8.3.2" + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-types" "8.3.2" + "@cspell/dynamic-import" "8.3.2" + chalk "^5.3.0" + chalk-template "^1.1.0" + commander "^11.1.0" + cspell-gitignore "8.3.2" + cspell-glob "8.3.2" + cspell-io "8.3.2" + cspell-lib "8.3.2" + fast-glob "^3.3.2" + fast-json-stable-stringify "^2.1.0" + file-entry-cache "^8.0.0" + get-stdin "^9.0.0" + semver "^7.5.4" + strip-ansi "^7.1.0" + vscode-uri "^3.0.8" + +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + +data-uri-to-buffer@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" + integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== + +debug@4.3.4, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decamelize-keys@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== dependencies: - get-intrinsic "^1.2.1" + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +deep-freeze@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" + integrity sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" gopd "^1.0.1" - has-property-descriptors "^1.0.0" define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -897,10 +2389,52 @@ deprecation@^2.0.0: resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -dotenv@^16.0.3: - version "16.3.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" - integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dot-prop@^5.1.0, dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +dotenv@^16.4.4: + version "16.4.4" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.4.tgz#a26e7bb95ebd36272ebb56edb80b826aecf224c1" + integrity sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +easy-table@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/easy-table/-/easy-table-1.2.0.tgz#ba9225d7138fee307bfd4f0b5bc3c04bdc7c54eb" + integrity sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww== + dependencies: + ansi-regex "^5.0.1" + optionalDependencies: + wcwidth "^1.0.1" elliptic@6.5.4: version "6.5.4" @@ -915,6 +2449,33 @@ elliptic@6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +emoji-regex@^10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" + integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encode-registry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/encode-registry/-/encode-registry-3.0.1.tgz#cb925d0db14ce59b18882b62c67133721b0846d1" + integrity sha512-6qOwkl1g0fv0DN3Y3ggr2EaZXN71aoAqPp3p/pVaWSBSIo+YjLOWN61Fva43oVyQNPf7kgm8lkudzlzojwE2jw== + dependencies: + mem "^8.0.0" + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -922,52 +2483,66 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: - version "1.22.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" - integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== +es-abstract@^1.22.1, es-abstract@^1.22.3: + version "1.22.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.4.tgz#26eb2e7538c3271141f5754d31aabfdb215f27bf" + integrity sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg== dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.5" - es-set-tostringtag "^2.0.1" + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.6" + call-bind "^1.0.7" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.2" es-to-primitive "^1.2.1" function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" globalthis "^1.0.3" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.2" has-proto "^1.0.1" has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" + hasown "^2.0.1" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-typed-array "^1.1.12" + is-typed-array "^1.1.13" is-weakref "^1.0.2" object-inspect "^1.13.1" object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.0" + safe-regex-test "^1.0.3" string.prototype.trim "^1.2.8" string.prototype.trimend "^1.0.7" string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" + typed-array-buffer "^1.0.1" 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.13" + which-typed-array "^1.1.14" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-set-tostringtag@^2.0.1: +es-set-tostringtag@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== @@ -985,67 +2560,192 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.17.15: - version "0.17.19" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" - integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== +esbuild@^0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.0.tgz#a7170b63447286cd2ff1f01579f09970e6965da4" + integrity sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA== optionalDependencies: - "@esbuild/android-arm" "0.17.19" - "@esbuild/android-arm64" "0.17.19" - "@esbuild/android-x64" "0.17.19" - "@esbuild/darwin-arm64" "0.17.19" - "@esbuild/darwin-x64" "0.17.19" - "@esbuild/freebsd-arm64" "0.17.19" - "@esbuild/freebsd-x64" "0.17.19" - "@esbuild/linux-arm" "0.17.19" - "@esbuild/linux-arm64" "0.17.19" - "@esbuild/linux-ia32" "0.17.19" - "@esbuild/linux-loong64" "0.17.19" - "@esbuild/linux-mips64el" "0.17.19" - "@esbuild/linux-ppc64" "0.17.19" - "@esbuild/linux-riscv64" "0.17.19" - "@esbuild/linux-s390x" "0.17.19" - "@esbuild/linux-x64" "0.17.19" - "@esbuild/netbsd-x64" "0.17.19" - "@esbuild/openbsd-x64" "0.17.19" - "@esbuild/sunos-x64" "0.17.19" - "@esbuild/win32-arm64" "0.17.19" - "@esbuild/win32-ia32" "0.17.19" - "@esbuild/win32-x64" "0.17.19" - -esbuild@~0.18.20: - version "0.18.20" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" - integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + "@esbuild/aix-ppc64" "0.20.0" + "@esbuild/android-arm" "0.20.0" + "@esbuild/android-arm64" "0.20.0" + "@esbuild/android-x64" "0.20.0" + "@esbuild/darwin-arm64" "0.20.0" + "@esbuild/darwin-x64" "0.20.0" + "@esbuild/freebsd-arm64" "0.20.0" + "@esbuild/freebsd-x64" "0.20.0" + "@esbuild/linux-arm" "0.20.0" + "@esbuild/linux-arm64" "0.20.0" + "@esbuild/linux-ia32" "0.20.0" + "@esbuild/linux-loong64" "0.20.0" + "@esbuild/linux-mips64el" "0.20.0" + "@esbuild/linux-ppc64" "0.20.0" + "@esbuild/linux-riscv64" "0.20.0" + "@esbuild/linux-s390x" "0.20.0" + "@esbuild/linux-x64" "0.20.0" + "@esbuild/netbsd-x64" "0.20.0" + "@esbuild/openbsd-x64" "0.20.0" + "@esbuild/sunos-x64" "0.20.0" + "@esbuild/win32-arm64" "0.20.0" + "@esbuild/win32-ia32" "0.20.0" + "@esbuild/win32-x64" "0.20.0" + +esbuild@~0.19.10: + version "0.19.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== optionalDependencies: - "@esbuild/android-arm" "0.18.20" - "@esbuild/android-arm64" "0.18.20" - "@esbuild/android-x64" "0.18.20" - "@esbuild/darwin-arm64" "0.18.20" - "@esbuild/darwin-x64" "0.18.20" - "@esbuild/freebsd-arm64" "0.18.20" - "@esbuild/freebsd-x64" "0.18.20" - "@esbuild/linux-arm" "0.18.20" - "@esbuild/linux-arm64" "0.18.20" - "@esbuild/linux-ia32" "0.18.20" - "@esbuild/linux-loong64" "0.18.20" - "@esbuild/linux-mips64el" "0.18.20" - "@esbuild/linux-ppc64" "0.18.20" - "@esbuild/linux-riscv64" "0.18.20" - "@esbuild/linux-s390x" "0.18.20" - "@esbuild/linux-x64" "0.18.20" - "@esbuild/netbsd-x64" "0.18.20" - "@esbuild/openbsd-x64" "0.18.20" - "@esbuild/sunos-x64" "0.18.20" - "@esbuild/win32-arm64" "0.18.20" - "@esbuild/win32-ia32" "0.18.20" - "@esbuild/win32-x64" "0.18.20" + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" + +escalade@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== + +eslint-plugin-prettier@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== + dependencies: + prettier-linter-helpers "^1.0.0" + synckit "^0.8.6" + +eslint-plugin-sonarjs@^0.24.0: + version "0.24.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.24.0.tgz#b594ccb9b1d6123edd3c3fe3a45b4392e14932d7" + integrity sha512-87zp50mbbNrSTuoEOebdRQBPa0mdejA5UEjyuScyIw8hEpEjfWP89Qhkq5xVZfVyVSRQKZc9alVm7yRKQvvUmg== + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.56.0: + version "8.56.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.56.0" + "@humanwhocodes/config-array" "^0.11.13" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + ethers@^5.3.1, ethers@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" @@ -1082,10 +2782,173 @@ ethers@^5.3.1, ethers@^5.7.2: "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" -follow-redirects@^1.15.0: - version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +execa@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-equals@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-5.0.1.tgz#a4eefe3c5d1c0d021aeed0bc10ba5e0c12ee405d" + integrity sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ== + +fast-glob@3.3.2, fast-glob@^3.2.9, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fastq@^1.15.0, fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +fetch-blob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-2.1.2.tgz#a7805db1361bd44c1ef62bb57fb5fe8ea173ef3c" + integrity sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow== + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== + dependencies: + flat-cache "^4.0.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +filter-iterator@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/filter-iterator/-/filter-iterator-0.0.1.tgz#0a2ecf07d6c06f96bdeb6846f8e88b57b8da1f37" + integrity sha512-v4lhL7Qa8XpbW3LN46CEnmhGk3eHZwxfNl5at20aEkreesht4YKb/Ba3BUIbnPhAC/r3dmu7ABaGk6MAvh2alA== + +filter-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" + integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== + +find-up-simple@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-up-simple/-/find-up-simple-1.0.0.tgz#21d035fde9fdbd56c8f4d2f63f32fd93a1cfc368" + integrity sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw== + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat-cache@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.0.tgz#d12437636f83bb8a12b8f300c36fd1614e1c7224" + integrity sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA== + dependencies: + flatted "^3.2.9" + keyv "^4.5.4" + rimraf "^5.0.5" + +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== + +follow-redirects@^1.15.4: + version "1.15.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== for-each@^0.3.3: version "0.3.3" @@ -1094,6 +2957,14 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -1103,6 +2974,20 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +fs-extra@10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" @@ -1128,23 +3013,55 @@ functions-have-names@^1.2.3: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +gensequence@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gensequence/-/gensequence-6.0.0.tgz#ae46a0f89ebd7cc334e45cfb8f1c99a65248694e" + integrity sha512-8WwuywE9pokJRAcg2QFR/plk3cVPebSUqRPzpGQh3WQ0wIiHAw+HyOQj5IuHyUTQBHpBKFoB2JUMu9zT3vJ16Q== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-east-asian-width@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" + integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" hasown "^2.0.0" -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== +get-stdin@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" + integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" get-tsconfig@^4.7.2: version "4.7.2" @@ -1153,6 +3070,75 @@ get-tsconfig@^4.7.2: dependencies: resolve-pkg-maps "^1.0.0" +git-raw-commits@^2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" + integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== + dependencies: + dargs "^7.0.0" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^10.2.2, glob@^10.3.7: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-directory@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/global-directory/-/global-directory-4.0.1.tgz#4d7ac7cfd2cb73f304c53b8810891748df5e361e" + integrity sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q== + dependencies: + ini "4.1.1" + +global-dirs@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== + dependencies: + ini "^1.3.4" + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + globalthis@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" @@ -1160,6 +3146,18 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + godb@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/godb/-/godb-0.6.2.tgz#0c380310558a7c9114f49aa70c1a1da67313120e" @@ -1172,11 +3170,21 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.2: +graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.6: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -1187,12 +3195,27 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== -has-property-descriptors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-own-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-own-prop/-/has-own-prop-2.0.0.tgz#f0f95d58f65804f5d218db32563bb85b8e0417af" + integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ== + +has-own-property@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-own-property/-/has-own-property-0.1.0.tgz#992b0f5bb3a25416f8d4d0cde53f497b9d7b1ea5" + integrity sha512-14qdBKoonU99XDhWcFKZTShK+QV47qU97u8zzoVo9cL5TZ3BmBHXogItSt9qJjR0KUMFRhcCW8uGIGl8nkl7Aw== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: - get-intrinsic "^1.2.2" + es-define-property "^1.0.0" has-proto@^1.0.1: version "1.0.1" @@ -1204,12 +3227,12 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" @@ -1219,10 +3242,10 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== +hasown@^2.0.0, hasown@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" + integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== dependencies: function-bind "^1.1.2" @@ -1240,28 +3263,112 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -inherits@^2.0.3, inherits@^2.0.4: +hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +hosted-git-info@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.1.tgz#9985fcb2700467fecf7f33a4d4874e30680b5322" + integrity sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA== + dependencies: + lru-cache "^10.0.1" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + +husky@^9.0.11: + version "9.0.11" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.11.tgz#fc91df4c756050de41b3e478b2158b87c1e79af9" + integrity sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw== + +identity-function@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/identity-function/-/identity-function-1.0.0.tgz#bea1159f0985239be3ca348edf40ce2f0dd2c21d" + integrity sha512-kNrgUK0qI+9qLTBidsH85HjDLpZfrrS0ElquKKe/fJFdB3D7VeKdXXEvOPDUHSHOzdZKCAAaQIWWyp0l2yq6pw== + +ignore@^5.1.8, ignore@^5.2.0, ignore@^5.2.4: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-meta-resolve@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz#0b1195915689f60ab00f830af0f15cc841e8919e" + integrity sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +individual@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/individual/-/individual-3.0.0.tgz#e7ca4f85f8957b018734f285750dc22ec2f9862d" + integrity sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== +ini@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" + integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" @@ -1288,7 +3395,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0: +is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.8.1: version "2.13.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== @@ -1302,6 +3409,40 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + +is-fullwidth-code-point@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz#9609efced7c2f97da7b60145ef481c787c7ba704" + integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== + dependencies: + get-east-asian-width "^1.0.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-iterable@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-iterable/-/is-iterable-1.1.1.tgz#71f9aa6f113e1d968ebe1d41cff4c8fb23a817bc" + integrity sha512-EdOZCr0NsGE00Pot+x1ZFx9MJK3C6wy91geZpXwvwexDLJvA4nzYyZf7r+EIwSeVsOLDdBz7ATg9NqKTzuNYuQ== + is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -1314,10 +3455,30 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== is-regex@^1.1.4: version "1.1.4" @@ -1334,6 +3495,16 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -1348,16 +3519,28 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-text-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636" + integrity sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw== dependencies: - which-typed-array "^1.1.11" + text-extensions "^2.0.0" -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" +is-typed-array@^1.1.10, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" @@ -1372,17 +3555,151 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + +iterable-lookahead@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/iterable-lookahead/-/iterable-lookahead-1.0.0.tgz#896dfcb78680bdb50036e97edb034c8b68a9737f" + integrity sha512-hJnEP2Xk4+44DDwJqUQGdXal5VbyeWLaPyDl2AQc242Zr7iqz4DgpQOrEzglWVMGHMDCkguLHEKxd1+rOsmgSQ== + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jiti@1.21.0, jiti@^1.19.1: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + js-sha3@0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.1.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -libsodium-wrappers@^0.7.11: +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-parse-even-better-errors@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" + integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +keyv@^4.5.3, keyv@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +knip@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/knip/-/knip-5.0.1.tgz#8967bf4ba179f2c3227e87610ca9a73dd97212f4" + integrity sha512-rvZbe2JIpx+3i+ZC3XpLpKPp6oII9f5w1MOMsXwS1JnuYVuNd4R2i4eon2hFds9a+pf8F10DC1Gvt1W8SIBw3A== + dependencies: + "@ericcornelissen/bash-parser" "0.5.2" + "@nodelib/fs.walk" "2.0.0" + "@npmcli/map-workspaces" "3.0.4" + "@npmcli/package-json" "5.0.0" + "@pnpm/logger" "5.0.0" + "@pnpm/workspace.pkgs-graph" "^2.0.14" + "@snyk/github-codeowners" "1.1.0" + "@types/picomatch" "2.3.3" + easy-table "1.2.0" + fast-glob "3.3.2" + jiti "1.21.0" + js-yaml "4.1.0" + micromatch "4.0.5" + minimist "1.2.8" + picocolors "1.0.0" + picomatch "4.0.1" + pretty-ms "9.0.0" + semver "7.6.0" + smol-toml "1.1.4" + strip-json-comments "5.0.1" + summary "2.1.0" + zod "3.22.4" + zod-validation-error "3.0.0" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +libsodium-wrappers@^0.7.13: version "0.7.13" resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" integrity sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw== @@ -1394,6 +3711,44 @@ libsodium@^0.7.13: resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.13.tgz#230712ec0b7447c57b39489c48a4af01985fb393" integrity sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw== +lilconfig@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" + integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lint-staged@^15.2.2: + version "15.2.2" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.2.tgz#ad7cbb5b3ab70e043fa05bff82a09ed286bc4c5f" + integrity sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw== + dependencies: + chalk "5.3.0" + commander "11.1.0" + debug "4.3.4" + execa "8.0.1" + lilconfig "3.0.0" + listr2 "8.0.1" + micromatch "4.0.5" + pidtree "0.6.0" + string-argv "0.3.2" + yaml "2.3.4" + +listr2@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.0.1.tgz#4d3f50ae6cec3c62bdf0e94f5c2c9edebd4b9c34" + integrity sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA== + dependencies: + cli-truncate "^4.0.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^6.0.0" + rfdc "^1.3.0" + wrap-ansi "^9.0.0" + load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -1404,11 +3759,210 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" +load-json-file@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" + integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== + dependencies: + graceful-fs "^4.1.15" + parse-json "^5.0.0" + strip-bom "^4.0.0" + type-fest "^0.6.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.curry@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" + integrity sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA== + +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.mergewith@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== + +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + +lodash@^4.17.15: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-update@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.0.0.tgz#0ddeb7ac6ad658c944c1de902993fce7c33f5e59" + integrity sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw== + dependencies: + ansi-escapes "^6.2.0" + cli-cursor "^4.0.0" + slice-ansi "^7.0.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" + +lru-cache@^10.0.1, lru-cache@^10.0.2, "lru-cache@^9.1.1 || ^10.0.0": + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.16.0.tgz#970ebb0da7193301285fb1aa650f39bdd81eb45a" + integrity sha512-c4BEos3y6G2qO0B9X7K0FVLOPT9uGrjYwYRLFmDqyl5YMboUviyecnXWp94fJTSMwPw2/sf+CEYt5AGpmklkkQ== + dependencies: + vlq "^0.2.1" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + integrity sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ== + +map-obj@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +mem@^6.0.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-6.1.1.tgz#ea110c2ebc079eca3022e6b08c85a795e77f6318" + integrity sha512-Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^3.0.0" + +mem@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" + integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^3.1.0" + memorystream@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== +meow@^12.0.1: + version "12.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6" + integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== + +meow@^8.0.0: + version "8.1.2" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@4.0.5, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" @@ -1421,6 +3975,26 @@ mime-types@^2.1.12: dependencies: mime-db "1.52.0" +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^3.0.0, mimic-fn@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -1431,26 +4005,74 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@^3.0.4: +minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@1.2.8, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3: + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +ndjson@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ndjson/-/ndjson-2.0.0.tgz#320ac86f6fe53f5681897349b86ac6f43bfa3a19" + integrity sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ== + dependencies: + json-stringify-safe "^5.0.1" + minimist "^1.2.5" + readable-stream "^3.6.0" + split2 "^3.0.0" + through2 "^4.0.0" + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -node-fetch@^2.6.7: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== +node-fetch@3.0.0-beta.9: + version "3.0.0-beta.9" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.0.0-beta.9.tgz#0a7554cfb824380dd6812864389923c783c80d9b" + integrity sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg== dependencies: - whatwg-url "^5.0.0" + data-uri-to-buffer "^3.0.1" + fetch-blob "^2.1.1" -normalize-package-data@^2.3.2: +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -1460,6 +4082,63 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" +normalize-package-data@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.0.tgz#68a96b3c11edd462af7189c837b6b1064a484196" + integrity sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg== + dependencies: + hosted-git-info "^7.0.0" + is-core-module "^2.8.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-install-checks@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== + +npm-package-arg@^11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.1.tgz#f208b0022c29240a1c532a449bdde3f0a4708ebc" + integrity sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ== + dependencies: + hosted-git-info "^7.0.0" + proc-log "^3.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-pick-manifest@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz#f87a4c134504a2c7931f2bb8733126e3c3bb7e8f" + integrity sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg== + dependencies: + npm-install-checks "^6.0.0" + npm-normalize-package-bin "^3.0.0" + npm-package-arg "^11.0.0" + semver "^7.3.5" + npm-run-all@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" @@ -1475,7 +4154,21 @@ npm-run-all@^4.1.5: shell-quote "^1.6.1" string.prototype.padend "^3.0.0" -object-inspect@^1.13.1, object-inspect@^1.9.0: +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npm-run-path@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" + integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== + dependencies: + path-key "^4.0.0" + +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -1485,7 +4178,17 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.4: +object-pairs@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-pairs/-/object-pairs-0.1.0.tgz#8276eed81d60b8549d69c5f73a682ab9da4ff32f" + integrity sha512-3ECr6K831I4xX/Mduxr9UC+HPOz/d6WKKYj9p4cmC8Lg8p7g8gitzsxNX5IWlSIgFWN/a4JgrJaoAMKn20oKwA== + +object-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/object-values/-/object-values-1.0.0.tgz#72af839630119e5b98c3b02bb8c27e3237158105" + integrity sha512-+8hwcz/JnQ9EpLIXzN0Rs7DLsBpJNT/xYehtB/jU93tHYr5BFEO8E+JGQNOSqE7opVzz5cGksKFHt7uUJVLSjQ== + +object.assign@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== @@ -1495,13 +4198,106 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -once@^1.4.0: +once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-memoize@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/p-memoize/-/p-memoize-4.0.1.tgz#6f4231857fec10de2504611fe820c808fa8c5f8b" + integrity sha512-km0sP12uE0dOZ5qP+s7kGVf07QngxyG0gS8sYFvFWhqlgzOsSy+m71aUejf/0akxj5W7gE//2G74qTv6b4iMog== + dependencies: + mem "^6.0.1" + mimic-fn "^3.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parent-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-2.0.0.tgz#fa71f88ff1a50c27e15d8ff74e0e3a9523bf8708" + integrity sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg== + dependencies: + callsites "^3.1.0" + parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -1510,16 +4306,73 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-ms@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-4.0.0.tgz#c0c058edd47c2a590151a718990533fd62803df4" + integrity sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw== + +parse-npm-tarball-url@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/parse-npm-tarball-url/-/parse-npm-tarball-url-3.0.0.tgz#4bcdd84b7eb824b9539182dea082f7bde2cbb24f" + integrity sha512-InpdgIdNe5xWMEUcrVQUniQKwnggBtJ7+SCwh7zQAZwbbIYZV9XdgJyhtmDSSvykFyQXoe4BINnzKTfCwWLs5g== + dependencies: + semver "^6.1.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-temp@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-temp/-/path-temp-2.1.0.tgz#cc68bb26d4fc301df799bb40b8c005cab0e62786" + integrity sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w== + dependencies: + unique-string "^2.0.0" + path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -1527,6 +4380,31 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.1.tgz#68c26c8837399e5819edce48590412ea07f17a07" + integrity sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pidtree@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + pidtree@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" @@ -1537,16 +4415,90 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== -prettier@^2.8.7: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== + +pretty-ms@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-9.0.0.tgz#53c57f81171c53be7ce3fd20bdd4265422bc5929" + integrity sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng== + dependencies: + parse-ms "^4.0.0" + +proc-log@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" + integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +"ramda@npm:@pnpm/ramda@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@pnpm/ramda/-/ramda-0.28.1.tgz#0f32abc5275d586a03e0dc1dd90a009ac668ff33" + integrity sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw== + +read-package-json-fast@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" + integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== + dependencies: + json-parse-even-better-errors "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -1556,14 +4508,82 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +rename-overwrite@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/rename-overwrite/-/rename-overwrite-5.0.0.tgz#ccd1f85aef47d41647ccc1c681d9b6d054cf5fc8" + integrity sha512-vSxE5Ww7Jnyotvaxi3Dj0vOMoojH8KMkBfs9xYeW/qNfJiLTcC1fmwTjrbGUq3mQSOCxkG0DbdcvwTUrpvBN4w== + dependencies: + "@zkochan/rimraf" "^2.1.2" + fs-extra "10.1.0" + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-global@1.0.0, resolve-global@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== + dependencies: + global-dirs "^0.1.1" resolve-pkg-maps@^1.0.0: version "1.0.0" @@ -1579,28 +4599,82 @@ resolve@^1.10.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -retry-axios@^3.0.0: +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry-axios@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/retry-axios/-/retry-axios-3.1.3.tgz#c263313e5148e8747b13d4861e3f8316f49088ed" integrity sha512-uwnlAjqg6twTcQB7RvH3OSgAqjqBDS9GFUOT+BhgADDYjoxsB7KfvS6SqYHOPjxM/Z/jVwSwGYdJnPE8at1PoA== -safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +reverse-arguments@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/reverse-arguments/-/reverse-arguments-1.0.0.tgz#c28095a3a921ac715d61834ddece9027992667cd" + integrity sha512-/x8uIPdTafBqakK0TmPNJzgkLP+3H+yxpUJhCQHsLBg1rYEVNR2D8BRYNWQhVBjyOd7oo1dZRVzIkwMY2oqfYQ== + +rfdc@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" + integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" + glob "^7.1.3" + +rimraf@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" + integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== + dependencies: + glob "^10.3.7" + +run-parallel@^1.1.9, run-parallel@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-array-concat@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" + integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== + dependencies: + call-bind "^1.0.5" + get-intrinsic "^1.2.2" has-symbols "^1.0.3" isarray "^2.0.5" -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" scrypt-js@3.0.1: @@ -1613,17 +4687,31 @@ scrypt-js@3.0.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== +semver@7.6.0, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.4.0, semver@^7.5.3, semver@^7.5.4: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: - define-data-property "^1.1.1" - get-intrinsic "^1.2.1" + lru-cache "^6.0.0" + +semver@^6.0.0, semver@^6.1.0: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +set-function-length@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== + dependencies: + define-data-property "^1.1.2" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" -set-function-name@^2.0.0: +set-function-name@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== @@ -1639,37 +4727,78 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote-word@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/shell-quote-word/-/shell-quote-word-1.0.1.tgz#e2bdfd22d599fd68886491677e38f560f9d469c9" + integrity sha512-lT297f1WLAdq0A4O+AknIFRP6kkiI3s8C913eJ0XqBxJbZPGWUNkRQk2u8zk4bEAjUJ5i+fSLwB6z1HzeT+DEg== + shell-quote@^1.6.1: version "1.8.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1, signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" -source-map-support@^0.5.21: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== +slice-ansi@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" + integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" + ansi-styles "^6.2.1" + is-fullwidth-code-point "^5.0.0" -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +smol-toml@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/smol-toml/-/smol-toml-1.1.4.tgz#08c23b105f56f17e57b0a77c7edcb10b75a62c5c" + integrity sha512-Y0OT8HezWsTNeEOSVxDnKOW/AyNXHQ4BwJNbAXlLTF5wWsBvrcHhIkE5Rf8kQMLmgf7nDX3PVOlgC6/Aiggu3Q== spdx-correct@^3.0.0: version "3.2.0" @@ -1680,9 +4809,9 @@ spdx-correct@^3.0.0: spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + version "2.5.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== spdx-expression-parse@^3.0.0: version "3.0.1" @@ -1693,9 +4822,65 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.16" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" - integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== + version "3.0.17" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c" + integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== + +split2@^3.0.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +ssri@10.0.5: + version "10.0.5" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== + dependencies: + minipass "^7.0.3" + +string-argv@0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== + +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string-width@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.1.0.tgz#d994252935224729ea3719c49f7206dc9c46550a" + integrity sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw== + dependencies: + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" + +string.fromcodepoint@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string.fromcodepoint/-/string.fromcodepoint-0.2.1.tgz#8d978333c0bc92538f50f383e4888f3e5619d653" + integrity sha512-n69H31OnxSGSZyZbgBlvYIXlrMhJQ0dQAX1js1QDhpaUH6zmU3QYlj07bCwCNlPOu3oRXIubGPl2gDGnHsiCqg== string.prototype.padend@^3.0.0: version "3.1.5" @@ -1733,11 +4918,69 @@ string.prototype.trimstart@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1, strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-5.0.1.tgz#0d8b7d01b23848ed7dbdf4baaaa31a8250d8cfa0" + integrity sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +summary@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/summary/-/summary-2.1.0.tgz#be8a49a0aa34eb6ceea56042cae88f8add4b0885" + integrity sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw== + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -1745,40 +4988,149 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +synckit@^0.8.6: + version "0.8.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + +text-extensions@^2.0.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" + integrity sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +through2@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + +"through@>=2.2.7 <3": + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + tiny-invariant@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +to-no-case@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/to-no-case/-/to-no-case-1.0.2.tgz#c722907164ef6b178132c8e69930212d1b4aa16a" + integrity sha512-Z3g735FxuZY8rodxV4gH7LxClE4H0hTIyHNIHdk+vpQxjLm0cwnKXq/OFVZ76SOQmto7txVcwSCwkU5kqp+FKg== -tsx@^3.12.6: - version "3.14.0" - resolved "https://registry.yarnpkg.com/tsx/-/tsx-3.14.0.tgz#be6e2176b6f210fe8f48124fb6e22e0f075e927b" - integrity sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg== +to-pascal-case@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-pascal-case/-/to-pascal-case-1.0.0.tgz#0bbdc8df448886ba01535e543327048d0aa1ce78" + integrity sha512-QGMWHqM6xPrcQW57S23c5/3BbYb0Tbe9p+ur98ckRnGDwD4wbbtDiYI38CfmMKNB5Iv0REjs5SNDntTwvDxzZA== dependencies: - esbuild "~0.18.20" + to-space-case "^1.0.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-space-case@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-space-case/-/to-space-case-1.0.0.tgz#b052daafb1b2b29dc770cea0163e5ec0ebc9fc17" + integrity sha512-rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA== + dependencies: + to-no-case "^1.0.0" + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +ts-api-utils@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz#f716c7e027494629485b21c0df6180f4d08f5e8b" + integrity sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA== + +tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tsx@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.7.1.tgz#27af6cbf4e1cdfcb9b5425b1c61bb7e668eb5e84" + integrity sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g== + dependencies: + esbuild "~0.19.10" get-tsconfig "^4.7.2" - source-map-support "^0.5.21" optionalDependencies: fsevents "~2.3.3" -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + prelude-ls "^1.2.1" + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-fest@^1.0.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^3.0.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" + integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== + +typed-array-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -1791,15 +5143,16 @@ typed-array-byte-length@^1.0.0: is-typed-array "^1.1.10" typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.1.tgz#5e2bcc1d93e1a332d50e8b363a48604a134692f8" + integrity sha512-tcqKMrTRXjqvHN9S3553NPCaGL0VPgFI92lXszmrE8DMhiDPLBYLlvo8Uu4WZAAX/aGqp/T1sbA4ph8EWjDF9Q== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + available-typed-arrays "^1.0.6" + call-bind "^1.0.7" for-each "^0.3.3" + gopd "^1.0.1" has-proto "^1.0.1" - is-typed-array "^1.1.10" + is-typed-array "^1.1.13" typed-array-length@^1.0.4: version "1.0.4" @@ -1810,7 +5163,14 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typescript@^5.1.6: +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typescript@^5.3.3: version "5.3.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== @@ -1830,12 +5190,50 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +unescape-js@^1.0.5: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unescape-js/-/unescape-js-1.1.4.tgz#4bc6389c499cb055a98364a0b3094e1c3d5da395" + integrity sha512-42SD8NOQEhdYntEiUQdYq/1V/YHwr1HLwlHuTJB5InVVdOSbgI6xu8jK5q65yIzuFCfczzyDF/7hbGzVbyCw0g== + dependencies: + string.fromcodepoint "^0.2.1" + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +unique-string@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" + integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== + dependencies: + crypto-random-string "^4.0.0" + universal-user-agent@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== -validate-npm-package-license@^3.0.1: +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== @@ -1843,18 +5241,48 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== +validate-npm-package-name@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747" + integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== + dependencies: + builtins "^5.0.0" -whatwg-url@^5.0.0: +validate-npm-package-name@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713" + integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ== + dependencies: + builtins "^5.0.0" + +version-selector-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/version-selector-type/-/version-selector-type-3.0.0.tgz#47c365fb4d9ca4a54e6dabcad6fb7a46265f7955" + integrity sha512-PSvMIZS7C1MuVNBXl/CDG2pZq8EXy/NW2dHIdm3bVP5N0PC8utDK8ttXLXj44Gn3J0lQE3U7Mpm1estAOd+eiA== + dependencies: + semver "^7.3.2" + +vlq@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" + integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== + +vscode-languageserver-textdocument@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz#0822a000e7d4dc083312580d7575fe9e3ba2e2bf" + integrity sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA== + +vscode-uri@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" + integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" + defaults "^1.0.3" which-boxed-primitive@^1.0.2: version "1.0.2" @@ -1867,16 +5295,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^1.2.9: version "1.3.1" @@ -1885,17 +5313,131 @@ which@^1.2.9: dependencies: isexe "^2.0.0" +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== + dependencies: + isexe "^3.1.1" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrap-ansi@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" + integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== + dependencies: + ansi-styles "^6.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + ws@7.4.6: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== -yaml@^2.2.2: +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xdg-basedir@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" + integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@2.3.4, yaml@^2.3.4: version "2.3.4" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" - integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== \ No newline at end of file + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + +yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.0.0: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yarn-upgrade-all@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/yarn-upgrade-all/-/yarn-upgrade-all-0.7.2.tgz#5d2afa9230661c55f22d3f848f22258db732ae20" + integrity sha512-iVxmoBuNdpxeahAIehJ039Pp6S8zQ/qTENQRMV5hp7x/2tLGUzytCODIKZFjfUwcRRKT3boGgHheUEWC7+VlQw== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zod-validation-error@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-3.0.0.tgz#69dee45a03ccf9739456bddb50b4d27f121c6f45" + integrity sha512-x+agsJJG9rvC7axF0xqTEdZhJkLHyIZkdOAWDJSmwGPzxNHMHwtU6w2yDOAAP6yuSfTAUhAMJRBfhVGY64ySEQ== + +zod@3.22.4: + version "3.22.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" + integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== From 6854e2fcd00744ee562aaf95b5f475476992711b Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Mon, 19 Feb 2024 11:38:55 +0000 Subject: [PATCH 81/85] fix: cspell err and exclude lib from prettier and lint --- .cspell.json | 3 ++- .prettierignore | 2 ++ README.md | 2 +- static/styles/rewards/claim-table.css | 2 +- static/styles/rewards/media-queries.css | 2 +- static/styles/rewards/pay.css | 2 +- static/styles/rewards/rewards.css | 2 +- 7 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 .prettierignore diff --git a/.cspell.json b/.cspell.json index 220cabe4..fb29ee7c 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,10 +1,11 @@ { "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", "version": "0.2", - "ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log"], + "ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log", "/lib"], "useGitignore": true, "language": "en", "words": [ + "solmate", "binkey", "binsec", "cirip", diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..69a671ca --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +node_modules +/lib \ No newline at end of file diff --git a/README.md b/README.md index e8083985..8038e097 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ http://localhost:8080?claim=eyJwZXJtaXQiOnsicGVybWl0dGVkIjp7InRva2VuIjoiMHgxMWZF This section describes how to invalidate the following [permit](https://github.com/ubiquity/ubiquity-dollar/issues/643#issuecomment-1607152588) (i.e. invalidate a permit2 nonce) -1. Setup `.env` file with the required env varibales: `NONCE` (nonce number), `NONCE_SIGNER_ADDRESS` (i.e. the bot's wallet) and `RPC_PROVIDER_URL`. For this [permit URL](https://github.com/ubiquity/ubiquity-dollar/issues/643#issuecomment-1607152588) the `.env` file will look like this: +1. Setup `.env` file with the required env variables: `NONCE` (nonce number), `NONCE_SIGNER_ADDRESS` (i.e. the bot's wallet) and `RPC_PROVIDER_URL`. For this [permit URL](https://github.com/ubiquity/ubiquity-dollar/issues/643#issuecomment-1607152588) the `.env` file will look like this: ``` NONCE="9867970486646789738815952475601005014850694197864057371518032581271992954680" diff --git a/static/styles/rewards/claim-table.css b/static/styles/rewards/claim-table.css index ed98f04e..121a462a 100644 --- a/static/styles/rewards/claim-table.css +++ b/static/styles/rewards/claim-table.css @@ -328,4 +328,4 @@ table td { } table th { padding-left: 16px; -} \ No newline at end of file +} diff --git a/static/styles/rewards/media-queries.css b/static/styles/rewards/media-queries.css index f1f64881..3cdf4011 100644 --- a/static/styles/rewards/media-queries.css +++ b/static/styles/rewards/media-queries.css @@ -37,4 +37,4 @@ header span:first-child::after { padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); } -} \ No newline at end of file +} diff --git a/static/styles/rewards/pay.css b/static/styles/rewards/pay.css index d1d90169..76cf477b 100644 --- a/static/styles/rewards/pay.css +++ b/static/styles/rewards/pay.css @@ -144,4 +144,4 @@ footer { canvas { width: 100vw; height: 100vh; -} \ No newline at end of file +} diff --git a/static/styles/rewards/rewards.css b/static/styles/rewards/rewards.css index 361b34a8..707ab0f4 100644 --- a/static/styles/rewards/rewards.css +++ b/static/styles/rewards/rewards.css @@ -5,4 +5,4 @@ @import url("../proxima.css"); @import url("../toast.css"); @import url("../fa.css"); -@import url("light-mode.css"); \ No newline at end of file +@import url("light-mode.css"); From 66cdb857662cd9d2cd1e2dd34850e1c7195d333b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Tue, 20 Feb 2024 07:39:12 +0900 Subject: [PATCH 82/85] feat: continuous deployment resolves https://github.com/ubiquity/pay.ubq.fi/issues/153 --- .github/workflows/build.yml | 68 +++++++++++++------------ .github/workflows/cloudflare-deploy.yml | 31 ----------- .github/workflows/continuous-deploy.yml | 38 -------------- 3 files changed, 35 insertions(+), 102 deletions(-) delete mode 100644 .github/workflows/cloudflare-deploy.yml delete mode 100644 .github/workflows/continuous-deploy.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7e8052a6..9de3c801 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,51 +1,53 @@ -name: Build +name: Build & Deploy on: push: - branches: - - development - pull_request: workflow_dispatch: jobs: build: - name: Build runs-on: ubuntu-22.04 permissions: contents: read - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - submodules: recursive + - name: Check out repository + uses: actions/checkout@v4 - - name: Setup Node - uses: actions/setup-node@v3 + - name: Set up Node.js + uses: actions/setup-node@v4 with: - node-version: "20.10.0" - - - name: Yarn Install - run: yarn install + node-version: 20.10.0 - name: Build - run: yarn utils:build - - - name: Add commit SHA file to build folder - run: echo -n $(echo "${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}" | cut -c1-7) > static/commit.txt - - - name: Prepare Deployment Artifact - env: - EVENT_NAME: ${{github.event_name}} - PR_NUMBER: ${{ github.event.number }} - SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} run: | - echo "event_name=$EVENT_NAME,pr_number=$PR_NUMBER,sha=$SHA" - mkdir -p ./pr - echo "event_name=$EVENT_NAME,pr_number=$PR_NUMBER,sha=$SHA," > ./pr/pr_number - cd ./static && zip -r ../pr/pull-request.zip ./* + yarn + yarn build - - uses: actions/upload-artifact@v3 + - name: Check Cloudflare API Token + id: check_token + run: | + if [[ -z "${{ secrets.CLOUDFLARE_API_TOKEN }}" ]]; then + echo "Cloudflare API token is not set. Skipping deployment." + echo "skip=true" >> $GITHUB_ENV + else + echo "skip=false" >> $GITHUB_ENV + fi + shell: bash + + - name: Deploy to Cloudflare + if: env.skip != 'true' + uses: ubiquity/cloudflare-deploy-action@main with: - name: pr - path: pr/ + cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }} + repository: ${{ github.repository }} + production_branch: ${{ github.event.repository.default_branch }} + output_directory: "dist" + current_branch: ${{ github.ref_name }} + pull_request_number: ${{ github.event.pull_request.number }} + commit_sha: ${{ github.sha }} + app_private_key: ${{ secrets.APP_PRIVATE_KEY }} + app_id: ${{ secrets.APP_ID }} + app_installation_id: ${{ secrets.APP_INSTALLATION_ID }} + # Add any environment variables you need to pass along here + # SUPABASE_URL: ${{ secrets.SUPABASE_URL }} + # SUPABASE_KEY: ${{ secrets.SUPABASE_KEY }} diff --git a/.github/workflows/cloudflare-deploy.yml b/.github/workflows/cloudflare-deploy.yml deleted file mode 100644 index 9301cefa..00000000 --- a/.github/workflows/cloudflare-deploy.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Deploy to Cloudflare Pages - -on: - push: - -jobs: - deploy-to-cloudflare: - name: Deploy to Cloudflare Pages - runs-on: ubuntu-22.04 - permissions: - contents: read - - steps: - - name: Check Cloudflare API Token - run: | - if [[ -z "${{ secrets.CLOUDFLARE_API_TOKEN }}" ]]; then - echo "CLOUDFLARE_API_TOKEN secret must be set" >&2 - exit 1 - fi - - name: Deploy to Cloudflare - uses: ubiquity/cloudflare-deploy-action@main - with: - cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }} - repository: ${{ github.repository }} - production_branch: ${{ github.event.repository.default_branch }} - output_directory: "static" - is_production: ${{ github.event_name == 'push' && github.ref == 'refs/heads/${{ github.event.repository.default_branch }}' }} - # env: - # Add any environment variables you need to pass along here - # SUPABASE_URL: ${{ secrets.SUPABASE_URL }} - # SUPABASE_KEY: ${{ secrets.SUPABASE_KEY }} diff --git a/.github/workflows/continuous-deploy.yml b/.github/workflows/continuous-deploy.yml deleted file mode 100644 index 6f11eeff..00000000 --- a/.github/workflows/continuous-deploy.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Deploy to Cloudflare Pages - -on: - workflow_run: - workflows: ["Build"] - types: - - completed - -jobs: - get-default-branch: - runs-on: ubuntu-latest - outputs: - isDefault: ${{ steps.check.outputs.isDefault }} - steps: - - name: Check if current branch is default - id: check - run: | - DEFAULT_BRANCH=$(curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/${{ github.repository }} | jq -r '.default_branch') - IS_DEFAULT=false - if [ "$DEFAULT_BRANCH" = "${{ github.ref }}" ]; then - IS_DEFAULT=true - fi - echo "::set-output name=isDefault::$IS_DEFAULT" - - deploy-to-cloudflare: - name: Deploy to Cloudflare Pages - if: ${{ github.event.workflow_run.conclusion == 'success' }} - uses: ubiquity/.github/.github/workflows/deploy.yml@main - with: - deploy_preview_branches: ${{ needs.get-default-branch.outputs.isDefault }} - permissions: - contents: read - pull-requests: write - secrets: - CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - APP_ID: ${{ secrets.APP_ID }} - APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} From 583b5365013e80d6751d593f272e94986adfbfdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Tue, 20 Feb 2024 07:58:46 +0900 Subject: [PATCH 83/85] fix: update to latest commit --- .github/workflows/build.yml | 1 + lib/ubiquibot | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9de3c801..9c44ac7b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,6 +22,7 @@ jobs: run: | yarn yarn build + echo -n $(echo "${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}" | cut -c1-7) > static/commit.txt - name: Check Cloudflare API Token id: check_token diff --git a/lib/ubiquibot b/lib/ubiquibot index 8afd7cfa..cb084909 160000 --- a/lib/ubiquibot +++ b/lib/ubiquibot @@ -1 +1 @@ -Subproject commit 8afd7cfa13e9731fb49b5f5a03f605258458d649 +Subproject commit cb084909ab332f67bba271b5a17b907d21716bd1 From 3c59ca011f3232a0f33fa54037aadc6cdb91e1c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Tue, 20 Feb 2024 08:14:13 +0900 Subject: [PATCH 84/85] fix: updated types Related: https://github.com/ubiquity/pay.ubq.fi/pull/154 --- static/scripts/onboarding/onboarding.ts | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/static/scripts/onboarding/onboarding.ts b/static/scripts/onboarding/onboarding.ts index 478f3266..4f263bbe 100644 --- a/static/scripts/onboarding/onboarding.ts +++ b/static/scripts/onboarding/onboarding.ts @@ -6,8 +6,7 @@ import { ethers } from "ethers"; import { parseUnits } from "ethers/lib/utils"; import _sodium from "libsodium-wrappers"; import YAML from "yaml"; -import { DefaultConfig } from "../../../lib/ubiquibot/src/configs/ubiquibot-config-default"; -import { MergedConfig } from "../../../lib/ubiquibot/src/types"; +import { BotConfig } from "../../../lib/ubiquibot/src/types/configuration-types"; import { erc20Abi } from "../rewards/abis/erc20Abi"; import { getNetworkName, NetworkIds, Tokens } from "../rewards/constants"; @@ -26,7 +25,7 @@ const loader = document.querySelector(".loader-wrap") as HTMLElement; const APP_ID = 236521; const REPO_NAME = "ubiquibot-config"; const KEY_PATH = ".github/ubiquibot-config.yml"; -const PRIVATE_ENCRYPTED_KEY_NAME = "privateKeyEncrypted"; +const PRIVATE_ENCRYPTED_KEY_NAME = "evmPrivateEncrypted"; const EVM_NETWORK_KEY_NAME = "evmNetworkId"; const KEY_PREFIX = "HSK_"; // cspell:disable-next-line @@ -35,7 +34,7 @@ const STATUS_LOG = ".status-log"; let encryptedValue = ""; -const defaultConf = DefaultConfig; +const defaultConf = {} as BotConfig; export async function parseYAML(data: string | undefined) { if (!data) return undefined; @@ -60,7 +59,7 @@ export async function parseJSON(data: string) { } } -export function stringifyYAML(value: MergedConfig): string { +export function stringifyYAML(value: BotConfig): string { return YAML.stringify(value, { defaultKeyType: "PLAIN", defaultStringType: "QUOTE_DOUBLE", lineWidth: 0 }); } @@ -148,8 +147,8 @@ async function sodiumEncryptedSeal(publicKey: string, secret: string) { const binsec = sodium.from_string(secret); const encBytes = sodium.crypto_box_seal(binsec, binkey); const output = sodium.to_base64(encBytes, sodium.base64_variants.URLSAFE_NO_PADDING); - defaultConf[PRIVATE_ENCRYPTED_KEY_NAME] = output; - defaultConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); + defaultConf.keys[PRIVATE_ENCRYPTED_KEY_NAME] = output; + defaultConf.payments[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); outKey.value = stringifyYAML(defaultConf); outKey.style.height = getTextBox(outKey.value); encryptedValue = output; @@ -220,9 +219,9 @@ async function handleInstall( const conf = await getConf(); const updatedConf = defaultConf; - const parsedConf = await parseYAML(conf); - updatedConf[PRIVATE_ENCRYPTED_KEY_NAME] = encryptedValue; - updatedConf[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); + const parsedConf = await parseYAML(conf); + updatedConf.keys[PRIVATE_ENCRYPTED_KEY_NAME] = encryptedValue; + updatedConf.payments[EVM_NETWORK_KEY_NAME] = Number(chainIdSelect.value); // combine configs (default + remote org wide) const combinedConf = Object.assign(updatedConf, parsedConf); @@ -491,7 +490,7 @@ async function step2Handler() { async function init() { if (defaultConf !== undefined) { try { - defaultConf[PRIVATE_ENCRYPTED_KEY_NAME] = undefined; + defaultConf.keys[PRIVATE_ENCRYPTED_KEY_NAME] = undefined; setInputListeners(); setBtn.addEventListener("click", async () => { From 2c2b773b7f965f784f1a5c92647ffdc5e11ba694 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Tue, 20 Feb 2024 08:19:25 +0900 Subject: [PATCH 85/85] fix: cd --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9c44ac7b..503dac78 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,7 +42,7 @@ jobs: cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }} repository: ${{ github.repository }} production_branch: ${{ github.event.repository.default_branch }} - output_directory: "dist" + output_directory: "static" current_branch: ${{ github.ref_name }} pull_request_number: ${{ github.event.pull_request.number }} commit_sha: ${{ github.sha }}