From 5b29c8b742c0f852c0492c0d46771c2702995b36 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sun, 10 Dec 2023 14:42:08 -0800 Subject: [PATCH 01/26] upgrade test suite --- tests/autofix.spec.ts | 64 +- tests/config.spec.ts | 46 +- tests/config/tsconfig.json | 12 + tests/fixtures/autofix.input.ts | 30 +- ...utofix.output.ts => recommended.output.ts} | 46 +- tests/fixtures/requiredFirst.output.ts | 46 +- tests/helpers/cases/index.ts | 39 + tests/helpers/cases/preprocess.ts | 147 ++ tests/helpers/cases/process.ts | 44 + tests/helpers/cases/types.ts | 17 + tests/helpers/configs.ts | 23 +- tests/helpers/eslint.ts | 32 + tests/helpers/options.ts | 116 ++ tests/helpers/strings.ts | 74 + tests/helpers/tsconfig.json | 10 - tests/helpers/util.ts | 46 - tests/rules/enum/enum.spec.ts | 502 +++++ tests/rules/enum/string-enum.spec.ts | 447 ++++ tests/rules/interface.spec.ts | 1802 ----------------- tests/rules/interface/interface.spec.ts | 856 ++++++++ tests/rules/string-enum.spec.ts | 859 -------- tests/tsconfig.json | 12 +- 22 files changed, 2437 insertions(+), 2833 deletions(-) create mode 100644 tests/config/tsconfig.json rename tests/fixtures/{autofix.output.ts => recommended.output.ts} (58%) create mode 100644 tests/helpers/cases/index.ts create mode 100644 tests/helpers/cases/preprocess.ts create mode 100644 tests/helpers/cases/process.ts create mode 100644 tests/helpers/cases/types.ts create mode 100644 tests/helpers/eslint.ts create mode 100644 tests/helpers/options.ts create mode 100644 tests/helpers/strings.ts delete mode 100644 tests/helpers/tsconfig.json delete mode 100644 tests/helpers/util.ts create mode 100644 tests/rules/enum/enum.spec.ts create mode 100644 tests/rules/enum/string-enum.spec.ts delete mode 100644 tests/rules/interface.spec.ts create mode 100644 tests/rules/interface/interface.spec.ts delete mode 100644 tests/rules/string-enum.spec.ts diff --git a/tests/autofix.spec.ts b/tests/autofix.spec.ts index 8128029..983ac30 100644 --- a/tests/autofix.spec.ts +++ b/tests/autofix.spec.ts @@ -1,64 +1,42 @@ -import path from 'path' +import { ESLint } from '@typescript-eslint/utils/ts-eslint' import fs from 'fs' +import path from 'path' import tmp from 'tmp' -import { ESLint, Linter } from 'eslint' - -import plugin from '../src' -import recommended from 'config/recommended' -import { SortingOrder } from 'common/options' -import { typescript } from './helpers/configs' +import { Config, getESLint } from './helpers/eslint' describe('autofix', () => { beforeEach(() => { tmp.setGracefulCleanup() }) - it.each([ - [recommended, 'autofix.output.ts'], - [ - { - plugins: recommended.plugins, - rules: { - ...recommended.rules, - 'typescript-sort-keys/interface': [ - 'error' as const, - SortingOrder.Ascending, - { caseSensitive: true, natural: true, requiredFirst: true }, - ] as Linter.RuleEntry, - }, - }, - 'requiredFirst.output.ts', - ], - ])( - 'should autofix and properly format comments and indent level', - async (config, fileName) => { + const cases: Array<[Config, string]> = [ + [Config.Recommended, 'recommended.output.ts'], + [Config.RequiredFirst, 'requiredFirst.output.ts'], + ] + + it.each(cases)( + `should autofix (config=%s, output=%s)`, + async (configName, outputFileName) => { const { name: tmpDir } = tmp.dirSync({ prefix: 'typescript-sort-keys-', unsafeCleanup: true, }) - const testFilePath = path.join(tmpDir, 'autofix.ts') + const testFilePath = path.join(tmpDir, `autofix-${configName}.ts`) const input = fs.readFileSync('tests/fixtures/autofix.input.ts', 'utf8') - const expected = fs.readFileSync(`tests/fixtures/${fileName}`, 'utf8') + const expectedOutput = fs.readFileSync(`tests/fixtures/${outputFileName}`, 'utf8') fs.writeFileSync(testFilePath, input) - const eslint = new ESLint({ - overrideConfig: { - ...config, - parser: typescript.parser, - parserOptions: { sourceType: 'module' }, - }, - plugins: { - 'typescript-sort-keys': plugin, - }, - useEslintrc: false, - fix: true, - }) - + const eslint = getESLint(configName) const results = await eslint.lintFiles(testFilePath) const result = results[0] + // For debugging when output is malformed + // eslint-disable-next-line no-console + if (process.env.DEBUG === 'true') console.log(result.output) + + // Validate no issues linting expect(result.messages).toHaveLength(0) expect(result.errorCount).toBe(0) expect(result.warningCount).toBe(0) @@ -68,8 +46,8 @@ describe('autofix', () => { await ESLint.outputFixes(results) const output = fs.readFileSync(testFilePath, 'utf8') - - expect(output).toStrictEqual(expected) + // Validate correctness + expect(output).toStrictEqual(expectedOutput) }, ) }) diff --git a/tests/config.spec.ts b/tests/config.spec.ts index 74a0ccf..02dfe98 100644 --- a/tests/config.spec.ts +++ b/tests/config.spec.ts @@ -1,53 +1,45 @@ import { readdirSync } from 'fs' +import { RuleModule } from '@typescript-eslint/utils/ts-eslint' + import plugin from '../src' +import { PLUGIN_NAME } from '../src/config/constants' +import { isNotDeprecated } from './helpers/configs' describe('recommended config', () => { - const RULE_NAME_PREFIX = 'typescript-sort-keys/' const { - rules, + rules: allRules, configs: { - recommended: { rules: configRules }, + recommended: { rules: pluginRules }, }, } = plugin - const entriesToObject = ( - value: readonly [string, T][], - ): Record => { - return value.reduce>((memo, [k, v]) => { - memo[k] = v - return memo - }, {}) - } - - const ruleConfigs = Object.entries(rules) - .filter(([, rule]) => rule.meta.docs && rule.meta.docs.recommended !== false) - .map<[string, string]>(([name, rule]) => [ - `${RULE_NAME_PREFIX}${name}`, - rule.meta.docs && rule.meta.docs.recommended ? 'error' : 'off', - ]) - it('contains all recommended rules', () => { - expect(entriesToObject(ruleConfigs)).toEqual(configRules) + // Get non-deprecated rules with recommended set and map to config format + const recommendedRules = Object.fromEntries( + ( + Object.entries(allRules).filter( + ([name, rule]) => !!rule.meta.docs?.recommended && isNotDeprecated(name), + ) as Array<[string, RuleModule]> + ).map(([name]) => [`${PLUGIN_NAME}/${name}`, 'error']), + ) + + expect(recommendedRules).toEqual(pluginRules) }) }) -describe('plugin', () => { +describe('recommended plugin', () => { const ruleFiles: readonly string[] = readdirSync('./src/rules').filter( file => file !== 'index.ts' && file.endsWith('.ts'), ) - const configFiles: readonly string[] = readdirSync('./src/config').filter( - file => file !== 'index.ts' && file.endsWith('.ts'), - ) - it('should have all the rules', () => { expect(plugin).toHaveProperty('rules') expect(Object.keys(plugin.rules)).toHaveLength(ruleFiles.length) }) - it('should have all the configs', () => { + it('should have the recommended config', () => { expect(plugin).toHaveProperty('configs') - expect(Object.keys(plugin.configs)).toHaveLength(configFiles.length) + expect(Object.keys(plugin.configs)).toHaveLength(1) }) }) diff --git a/tests/config/tsconfig.json b/tests/config/tsconfig.json new file mode 100644 index 0000000..a952331 --- /dev/null +++ b/tests/config/tsconfig.json @@ -0,0 +1,12 @@ +{ + // Config for eslint test runner + "compilerOptions": { + "lib": ["ESNext"], + "module": "NodeNext", + "moduleResolution": "NodeNext", + "skipLibCheck": true, + "target": "ESNext" + }, + // Corresponds to filename in ./configs.ts + "files": ["file.ts"] +} diff --git a/tests/fixtures/autofix.input.ts b/tests/fixtures/autofix.input.ts index a27704f..1c9b215 100644 --- a/tests/fixtures/autofix.input.ts +++ b/tests/fixtures/autofix.input.ts @@ -1,5 +1,5 @@ // So typescript treats this as a module -export {}; +export { }; class GraphQLExtension {_: T} @@ -13,21 +13,29 @@ const inlineArrow: (props: {foo: boolean; baz?: boolean; bar: boolean}) => null const inlineArrow2: (props: {foo: boolean; bar?: boolean; baz: boolean}) => null = ({...props}) => null; -const inlineWeird: (props: {foo?: boolean;baz: boolean, - bar: boolean}) => null = ({...props}) => null; +const inlineNewline: (props: {/* foo0 */ foo?: boolean /* foo1 */;baz: boolean, + /* bar0 */ bar: boolean /* bar1 */}) => null = ({...props}) => null; + +const inlineArrowEmbedded: (props: {foo: {y: string; x: string;}; bar: boolean; baz?: boolean}) => null = ({...props}) => null; function inlineGeneric({...props}: T | {foo: boolean; bar: boolean; baz?: boolean}) { return null } -enum InlineEnum {e="T", c="T", d="T", b="T", a="T"} +enum InlineEnum { e="T", c="T", d="T", b="T", a="T"} enum InlineEnum2 {Foo = 'FOO',Baz = 'BAZ', Bar = 'BAR' } enum InlineEnum3 {b_="T", c="T", C="T"} enum WeirdEnum { - Foo = 'FOO',Baz = 'BAZ', Bar = 'BAR',} + Foo = 'FOO',Baz = 'BAZ', Bar = 'BAR', } + +enum WeirderEnum { Foo = 'FOO', // FOO +Baz = 'BAZ', Bar = 'BAR', } + +enum WeirdestEnum { Gorp = 'GORP', Foo = 'FOO', // FOO +Baz = 'BAZ', Bar = 'BAR', } interface InlineInterface {e: "T"; c?:"T"; d:"T"; b:"T"; a?:"T"} @@ -52,6 +60,7 @@ interface Interface { baz?: boolean; // %bar bar: boolean; + // end comment no sort } type Type1 = Partial<{ @@ -78,7 +87,7 @@ type Type1 = Partial<{ enum StringEnum { /* %foo */ - Foo = 'FOO', + Foo = 'FOO', //Fooend // %baz Baz = 'BAZ', @@ -87,10 +96,16 @@ enum StringEnum { * %bar */ Bar = 'BAR', + // end comment no sort +} + +enum BasicEnum { + Foo = 'FOO', + Bar = 'BAR', } type Type2 = {/* %foo */ - foo?: boolean; + foo?: boolean; //fooend // %baz baz: boolean; @@ -98,6 +113,7 @@ type Type2 = {/* %foo */ * %bar */ bar: boolean; + // end comment no sort } interface ClockConstructor { diff --git a/tests/fixtures/autofix.output.ts b/tests/fixtures/recommended.output.ts similarity index 58% rename from tests/fixtures/autofix.output.ts rename to tests/fixtures/recommended.output.ts index 5040f5a..49040ff 100644 --- a/tests/fixtures/autofix.output.ts +++ b/tests/fixtures/recommended.output.ts @@ -1,5 +1,5 @@ // So typescript treats this as a module -export {}; +export { }; class GraphQLExtension {_: T} @@ -9,27 +9,37 @@ namespace Koa { export interface Context {} } -const inlineArrow: (props: {bar: boolean, baz?: boolean; foo: boolean;}) => null = ({...props}) => null; +const inlineArrow: (props: {bar: boolean; baz?: boolean; foo: boolean;}) => null = ({...props}) => null; -const inlineArrow2: (props: {bar?: boolean; baz: boolean, foo: boolean;}) => null = ({...props}) => null; +const inlineArrow2: (props: {bar?: boolean; baz: boolean; foo: boolean;}) => null = ({...props}) => null; -const inlineWeird: (props: {bar: boolean,baz: boolean, - foo?: boolean;}) => null = ({...props}) => null; +const inlineNewline: (props: {/* bar0 */ bar: boolean /* bar1 */;baz: boolean; + /* foo0 */ foo?: boolean /* foo1 */;}) => null = ({...props}) => null; -function inlineGeneric({...props}: T | {bar: boolean; baz?: boolean, foo: boolean;}) { +const inlineArrowEmbedded: (props: {bar: boolean; baz?: boolean; foo: {x: string; y: string;};}) => null = ({...props}) => null; + +function inlineGeneric({...props}: T | {bar: boolean; baz?: boolean; foo: boolean;}) { return null } -enum InlineEnum {a="T", b="T", c="T", d="T", e="T"} +enum InlineEnum { a="T", b="T", c="T", d="T", e="T"} enum InlineEnum2 {Bar = 'BAR',Baz = 'BAZ', Foo = 'FOO' } enum InlineEnum3 {C="T", b_="T", c="T"} enum WeirdEnum { - Bar = 'BAR',Baz = 'BAZ', Foo = 'FOO'} + Bar = 'BAR',Baz = 'BAZ', Foo = 'FOO' } + +enum WeirderEnum { Bar = 'BAR', +Baz = 'BAZ', Foo = 'FOO' // FOO + } + +enum WeirdestEnum { Bar = 'BAR', Baz = 'BAZ', +Foo = 'FOO', // FOO + Gorp = 'GORP' } -interface InlineInterface {a?:"T", b:"T"; c?:"T"; d:"T"; e: "T";} +interface InlineInterface {a?:"T"; b:"T"; c?:"T"; d:"T"; e: "T";} class Class extends GraphQLExtension<{ context?: Koa.Context; @@ -38,7 +48,7 @@ class Class extends GraphQLExtension<{ public method(o: { context?: Koa.Context; graphqlResponse: GraphQLResponse; - }): void | { context?: Koa.Context, graphqlResponse?: GraphQLResponse; } { + }): void | { context?: Koa.Context; graphqlResponse?: GraphQLResponse; } { // } } @@ -52,6 +62,7 @@ interface Interface { * %foo */ foo: boolean; + // end comment no sort } type Type1 = Partial<{ @@ -63,8 +74,7 @@ type Type1 = Partial<{ // %foo foo?: boolean; -}> & { - /** +}> & {/** * %bar */ bar: boolean; @@ -87,11 +97,16 @@ enum StringEnum { Baz = 'BAZ', /* %foo */ + Foo = 'FOO' //Fooend + // end comment no sort +} + +enum BasicEnum { + Bar = 'BAR', Foo = 'FOO' } -type Type2 = { - /** +type Type2 = {/** * %bar */ bar: boolean; @@ -99,7 +114,8 @@ type Type2 = { // %baz baz: boolean; /* %foo */ - foo?: boolean; + foo?: boolean; //fooend + // end comment no sort } interface ClockConstructor { diff --git a/tests/fixtures/requiredFirst.output.ts b/tests/fixtures/requiredFirst.output.ts index 2ec662d..6ee91b5 100644 --- a/tests/fixtures/requiredFirst.output.ts +++ b/tests/fixtures/requiredFirst.output.ts @@ -1,5 +1,5 @@ // So typescript treats this as a module -export {}; +export { }; class GraphQLExtension {_: T} @@ -9,27 +9,37 @@ namespace Koa { export interface Context {} } -const inlineArrow: (props: {bar: boolean, foo: boolean; baz?: boolean;}) => null = ({...props}) => null; +const inlineArrow: (props: {bar: boolean; foo: boolean; baz?: boolean;}) => null = ({...props}) => null; -const inlineArrow2: (props: {baz: boolean, foo: boolean; bar?: boolean;}) => null = ({...props}) => null; +const inlineArrow2: (props: {baz: boolean; foo: boolean; bar?: boolean;}) => null = ({...props}) => null; -const inlineWeird: (props: {bar: boolean,baz: boolean, - foo?: boolean;}) => null = ({...props}) => null; +const inlineNewline: (props: {/* bar0 */ bar: boolean /* bar1 */;baz: boolean; + /* foo0 */ foo?: boolean /* foo1 */;}) => null = ({...props}) => null; -function inlineGeneric({...props}: T | {bar: boolean; foo: boolean; baz?: boolean}) { +const inlineArrowEmbedded: (props: {bar: boolean; foo: {x: string; y: string;}; baz?: boolean;}) => null = ({...props}) => null; + +function inlineGeneric({...props}: T | {bar: boolean; foo: boolean; baz?: boolean;}) { return null } -enum InlineEnum {a="T", b="T", c="T", d="T", e="T"} +enum InlineEnum { a="T", b="T", c="T", d="T", e="T"} enum InlineEnum2 {Bar = 'BAR',Baz = 'BAZ', Foo = 'FOO' } enum InlineEnum3 {C="T", b_="T", c="T"} enum WeirdEnum { - Bar = 'BAR',Baz = 'BAZ', Foo = 'FOO'} + Bar = 'BAR',Baz = 'BAZ', Foo = 'FOO' } + +enum WeirderEnum { Bar = 'BAR', +Baz = 'BAZ', Foo = 'FOO' // FOO + } + +enum WeirdestEnum { Bar = 'BAR', Baz = 'BAZ', +Foo = 'FOO', // FOO + Gorp = 'GORP' } -interface InlineInterface {b:"T"; d:"T"; e: "T"; a?:"T", c?:"T";} +interface InlineInterface {b:"T"; d:"T"; e: "T"; a?:"T"; c?:"T";} class Class extends GraphQLExtension<{ graphqlResponse: GraphQLResponse; @@ -38,7 +48,7 @@ class Class extends GraphQLExtension<{ public method(o: { graphqlResponse: GraphQLResponse; context?: Koa.Context; - }): void | { context?: Koa.Context, graphqlResponse?: GraphQLResponse; } { + }): void | { context?: Koa.Context; graphqlResponse?: GraphQLResponse; } { // } } @@ -52,6 +62,7 @@ interface Interface { foo: boolean; /* %baz */ baz?: boolean; + // end comment no sort } type Type1 = Partial<{ @@ -63,8 +74,7 @@ type Type1 = Partial<{ // %foo foo?: boolean; -}> & { - /** +}> & {/** * %bar */ bar: boolean; @@ -87,11 +97,16 @@ enum StringEnum { Baz = 'BAZ', /* %foo */ + Foo = 'FOO' //Fooend + // end comment no sort +} + +enum BasicEnum { + Bar = 'BAR', Foo = 'FOO' } -type Type2 = { - /** +type Type2 = {/** * %bar */ bar: boolean; @@ -99,7 +114,8 @@ type Type2 = { // %baz baz: boolean; /* %foo */ - foo?: boolean; + foo?: boolean; //fooend + // end comment no sort } interface ClockConstructor { diff --git a/tests/helpers/cases/index.ts b/tests/helpers/cases/index.ts new file mode 100644 index 0000000..d51012c --- /dev/null +++ b/tests/helpers/cases/index.ts @@ -0,0 +1,39 @@ +import { Rule, RuleTester } from 'eslint' + +import { Linter } from '@typescript-eslint/utils/ts-eslint' + +import { CaseCategory } from '../strings' +import { PreInvalidTestCaseObject, PreValidTestCaseObject } from './' +import { processInvalidTestCase, processValidTestCase } from './process' + +export * from './types' +export { processInvalidTestCase, processValidTestCase } from './process' + +export function runCases( + { + name, + rule, + typescriptConfig, + }: { name: string; rule: Rule.RuleModule; typescriptConfig: Linter.ConfigType }, + valid: PreValidTestCaseObject, + invalid: PreInvalidTestCaseObject, + runOptions: { withRequiredFirstOption: boolean; category: CaseCategory }, +) { + const usedOptionsKeys = new Set(Object.keys(invalid).concat(Object.keys(valid))) + for (const optionsSetKey of usedOptionsKeys) { + describe(optionsSetKey, () => { + const ruleTester = new RuleTester(typescriptConfig) + ruleTester.run(name, rule as unknown as Rule.RuleModule, { + valid: processValidTestCase( + { [optionsSetKey]: valid[optionsSetKey] }, + runOptions.withRequiredFirstOption, + ), + invalid: processInvalidTestCase( + { [optionsSetKey]: invalid[optionsSetKey] }, + runOptions.category, + runOptions.withRequiredFirstOption, + ), + }) + }) + } +} diff --git a/tests/helpers/cases/preprocess.ts b/tests/helpers/cases/preprocess.ts new file mode 100644 index 0000000..2ff06c8 --- /dev/null +++ b/tests/helpers/cases/preprocess.ts @@ -0,0 +1,147 @@ +import { AllRuleOptions } from '../../../src/types' +import { + OptionsSetsKey, + optionsSetsNoRequired, + optionsSetsWithRequiredFirst, +} from '../options' +import { + CaseCategory, + getCountErrorString, + getEndErrorString, + getSwapErrorString, +} from '../strings' +import { + InvalidTestCase, + PreInvalidTestCaseList, + PreInvalidTestCaseObject, + PreValidTestCaseObject, + ValidTestCase, +} from './types' + +/** + * Get error messages based on args provided in test cases + * + * Array length 1 maps to the "x should be end" message + * Array length 2 maps to the "x should be before y" message + */ +function processErrorArgs( + category: CaseCategory, + optionsSetsKey: OptionsSetsKey, + errorArgs: Array | number, + omitInferredErrorCount: boolean, +) { + const errorMessages: string[] = [] + if (!Array.isArray(errorArgs)) { + // Can return count of errors for test case instead of strings + return errorArgs + } + + if (!omitInferredErrorCount) + errorMessages.push(getCountErrorString(category, errorArgs.length)) + + for (const args of errorArgs) { + if (Array.isArray(args)) { + switch (args.length) { + case 1: + errorMessages.push(getEndErrorString(category, optionsSetsKey, args[0])) + break + case 2: + errorMessages.push( + getSwapErrorString(category, optionsSetsKey, args[0], args[1]), + ) + break + } + } else { + errorMessages.push(getCountErrorString(category, args)) + } + } + return errorMessages +} + +// First processing step to put cases in the shape of InvalidTestCase +export function preProcessInvalidTestCases( + testCases: PreInvalidTestCaseObject, + category: CaseCategory, + withRequiredFirstOption: boolean, +): InvalidTestCase[] { + const processedCases = [] as InvalidTestCase[] + + for (const key in testCases) { + const optionsSetsKey = key as OptionsSetsKey + const cases = testCases[optionsSetsKey] + if (cases && cases.length > 0) { + processedCases.push( + ...convertPreInvalidCasesToProcessed( + cases, + category, + withRequiredFirstOption, + optionsSetsKey, + ), + ) + } + } + return processedCases +} + +function convertPreInvalidCasesToProcessed( + cases: PreInvalidTestCaseList, + category: CaseCategory, + withRequiredFirstOption: boolean, + optionsSetsKey: OptionsSetsKey, +) { + return cases.map(({ code, output, errors: errorArgs, omitInferredErrorCount }) => { + const errors = processErrorArgs( + category, + optionsSetsKey, + errorArgs, + !!omitInferredErrorCount, + ) + const optionsSet = ( + withRequiredFirstOption ? optionsSetsWithRequiredFirst : optionsSetsNoRequired + )[optionsSetsKey] as AllRuleOptions[] + return { + code, + output, + errors, + optionsSet, + } as InvalidTestCase + }) +} + +// First processing step to put cases in the shape of ValidTestCase +export function preProcessValidTestCases( + testCases: PreValidTestCaseObject, + withRequiredFirstOption: boolean, +): ValidTestCase[] { + const processedCases = [] as ValidTestCase[] + for (const key in testCases) { + const optionsSetsKey = key as OptionsSetsKey + const cases = testCases[optionsSetsKey] + if (cases && cases.length > 0) { + processedCases.push( + ...convertPreValidCasesToProcessed( + cases, + withRequiredFirstOption, + optionsSetsKey, + ), + ) + } + } + return processedCases +} + +function convertPreValidCasesToProcessed( + cases: string[], + withRequiredFirstOption: boolean, + optionsSetsKey: OptionsSetsKey, +) { + return cases.map(code => { + const optionsSet = ( + withRequiredFirstOption ? optionsSetsWithRequiredFirst : optionsSetsNoRequired + )[optionsSetsKey] as AllRuleOptions[] + return { + code, + optionsSet, + } + }) +} diff --git a/tests/helpers/cases/process.ts b/tests/helpers/cases/process.ts new file mode 100644 index 0000000..803bb18 --- /dev/null +++ b/tests/helpers/cases/process.ts @@ -0,0 +1,44 @@ +import { RuleTester as ESLintRuleTester } from 'eslint' +import { filename } from '../configs' +import { CaseCategory } from '../strings' +import { preProcessInvalidTestCases, preProcessValidTestCases } from './preprocess' +import { + InvalidTestCase, + PreInvalidTestCaseObject, + PreValidTestCaseObject, + ValidTestCase, +} from './types' + +// Second processing step to put cases in the shape expected by eslint test runner +function processTestCases(cases: (InvalidTestCase | ValidTestCase)[]) { + return cases.flatMap(testCase => + testCase.optionsSet.map(options => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { optionsSet, ...eslintTestCase } = testCase + return { filename, ...eslintTestCase, options } + }), + ) as T[] +} + +/** + * Convert our test cases into ones eslint test runner is expecting. + */ +export function processInvalidTestCase( + testCases: PreInvalidTestCaseObject, + category: CaseCategory, + withRequiredFirstOption: boolean, +): ESLintRuleTester.InvalidTestCase[] { + return processTestCases( + preProcessInvalidTestCases(testCases, category, withRequiredFirstOption), + ) +} + +/** + * Convert our test cases into ones eslint test runner is expecting. + */ +export function processValidTestCase( + testCases: PreValidTestCaseObject, + withRequiredFirstOption: boolean, +): ESLintRuleTester.ValidTestCase[] { + return processTestCases(preProcessValidTestCases(testCases, withRequiredFirstOption)) +} diff --git a/tests/helpers/cases/types.ts b/tests/helpers/cases/types.ts new file mode 100644 index 0000000..859fdaf --- /dev/null +++ b/tests/helpers/cases/types.ts @@ -0,0 +1,17 @@ +import { OptionsSet, OptionsSetsKey } from '../options' +import { RuleTester as ESLintRuleTester } from 'eslint' + +/* Types for processing test cases */ +export type ValidTestCase = Omit & OptionsSet +export type InvalidTestCase = Omit & + OptionsSet + +/* Types for preprocessing test cases */ +export type PreInvalidTestCaseList = (Omit & { + errors: Array | number + omitInferredErrorCount?: boolean +})[] +export type PreInvalidTestCaseObject = Partial< + Record +> +export type PreValidTestCaseObject = Partial> diff --git a/tests/helpers/configs.ts b/tests/helpers/configs.ts index fb17fd3..7b67968 100644 --- a/tests/helpers/configs.ts +++ b/tests/helpers/configs.ts @@ -1,12 +1,25 @@ -import { Linter } from 'eslint' -import * as path from 'path' +import path from 'path' -export const filename = path.join(__dirname, 'file.ts') +import { Linter } from '@typescript-eslint/utils/ts-eslint' -export const typescript: Linter.Config = { +import { name as enumRuleNameDeprecated } from '../../src/rules/string-enum' + +const configPath = path.resolve(__dirname, '../config') +export const filename = path.join(configPath, 'file.ts') + +export const typescriptConfig: Linter.ConfigType = { parser: require.resolve('@typescript-eslint/parser'), parserOptions: { sourceType: 'module', - project: path.join(__dirname, './tsconfig.json'), + project: path.join(configPath, 'tsconfig.json'), }, } + +export function isNotDeprecated(name) { + switch (name) { + case enumRuleNameDeprecated: + return false + default: + return true + } +} diff --git a/tests/helpers/eslint.ts b/tests/helpers/eslint.ts new file mode 100644 index 0000000..08476ab --- /dev/null +++ b/tests/helpers/eslint.ts @@ -0,0 +1,32 @@ +import { ESLint } from '@typescript-eslint/utils/ts-eslint' + +import plugin from '../../src' +import recommended from '../../src/config/recommended.config' +import requiredFirst from '../../src/config/requiredFirst.config' +import { typescriptConfig } from './configs' + +export enum Config { + Recommended, + RequiredFirst, +} + +/** + * @param config Enum deciding which config from src/config to use + * @param fix Boolean telling ESLint to emit fixes or not + * @returns ESLint instance configured with the local plugin + */ +export function getESLint(config: Config, fix = true) { + const eslint = new ESLint({ + overrideConfig: { + ...(config === Config.Recommended ? recommended : requiredFirst), + ...typescriptConfig, + parserOptions: { sourceType: 'module' }, // Exclude project property for generated input files + }, + plugins: { + 'typescript-sort-keys': plugin, + }, + useEslintrc: false, + fix, + }) + return eslint +} diff --git a/tests/helpers/options.ts b/tests/helpers/options.ts new file mode 100644 index 0000000..b0750a0 --- /dev/null +++ b/tests/helpers/options.ts @@ -0,0 +1,116 @@ +import { AllRuleOptions, SortingOrder, SortingParamsOptions } from 'types' + +export type OptionsSet = { + /** + * The set of options this test case should pass for. + */ + readonly optionsSet: readonly (AllRuleOptions | [])[] +} +/** + * Option sets by test category + */ +export const optionsSetsWithRequiredFirst = { + ascendingOnly: [[SortingOrder.Ascending]], + ascending: [ + [], + [SortingOrder.Ascending], + [SortingOrder.Ascending, { caseSensitive: true }], + [SortingOrder.Ascending, { natural: false }], + [SortingOrder.Ascending, { caseSensitive: true, natural: false }], + [ + SortingOrder.Ascending, + { caseSensitive: true, natural: false, requiredFirst: false }, + ], + ], + ascendingInsensitive: [[SortingOrder.Ascending, { caseSensitive: false }]], + ascendingNatural: [[SortingOrder.Ascending, { natural: true }]], + ascendingInsensitiveNatural: [ + [SortingOrder.Ascending, { natural: true, caseSensitive: false }], + ], + ascendingSensitive: [ + [], + [SortingOrder.Ascending], + [SortingOrder.Ascending, { caseSensitive: true }], + [SortingOrder.Ascending, { natural: false }], + [SortingOrder.Ascending, { caseSensitive: true, natural: false }], + [ + SortingOrder.Ascending, + { caseSensitive: true, natural: false, requiredFirst: false }, + ], + ], + ascendingInsensitiveNaturalRequired: [ + [ + SortingOrder.Ascending, + { natural: true, caseSensitive: false, requiredFirst: true }, + ], + ], + ascendingInsensitiveNaturalNotRequired: [ + [ + SortingOrder.Ascending, + { natural: true, caseSensitive: false, requiredFirst: false }, + ], + ], + ascendingRequired: [[SortingOrder.Ascending, { requiredFirst: true }]], + descendingOnly: [[SortingOrder.Descending]], + descending: [ + [SortingOrder.Descending], + [SortingOrder.Descending, { caseSensitive: true }], + [SortingOrder.Descending, { natural: false }], + [SortingOrder.Descending, { caseSensitive: true, natural: false }], + [ + SortingOrder.Descending, + { caseSensitive: true, natural: false, requiredFirst: false }, + ], + ], + descendingInsensitive: [[SortingOrder.Descending, { caseSensitive: false }]], + descendingInsensitiveNonNatural: [ + [SortingOrder.Descending, { caseSensitive: false }], + [SortingOrder.Descending, { caseSensitive: false, natural: false }], + ], + descendingNatural: [[SortingOrder.Descending, { natural: true }]], + descendingInsensitiveNatural: [ + [SortingOrder.Descending, { natural: true, caseSensitive: false }], + ], + descendingSensitiveNatural: [ + [SortingOrder.Descending, { natural: true }], + [SortingOrder.Descending, { natural: true, caseSensitive: true }], + ], + descendingInsensitiveNaturalRequired: [ + [ + SortingOrder.Descending, + { natural: true, caseSensitive: false, requiredFirst: true }, + ], + ], + descendingInsensitiveNaturalNotRequired: [ + [ + SortingOrder.Descending, + { natural: true, caseSensitive: false, requiredFirst: false }, + ], + ], + descendingRequired: [[SortingOrder.Descending, { requiredFirst: true }]], + noOptions: [[]], +} + +// Delete requiredFirst, so we can keep the schemas strict +export const optionsSetsNoRequired: Record< + OptionsSetsKey, + Array +> = Object.entries(optionsSetsWithRequiredFirst).reduce( + (acc, [key, value]) => ({ + ...acc, + [key as OptionsSetsKey]: value.map(opts => { + if (opts.length < 2) return opts + return [ + opts[0] as SortingOrder, + Object.fromEntries( + Object.entries(opts[1] as SortingParamsOptions).filter( + ([key]) => key !== 'requiredFirst', + ) as Array<[string, SortingParamsOptions[keyof SortingParamsOptions]]>, + ), + ] + }), + }), + {}, +) as Record> + +export type OptionsSetsKey = keyof typeof optionsSetsWithRequiredFirst diff --git a/tests/helpers/strings.ts b/tests/helpers/strings.ts new file mode 100644 index 0000000..4befe8b --- /dev/null +++ b/tests/helpers/strings.ts @@ -0,0 +1,74 @@ +import { OptionsSetsKey } from './options' + +export const orderStrings: Record = { + ascending: 'ascending', + ascendingInsensitive: 'insensitive ascending', + ascendingNatural: 'natural ascending', + ascendingInsensitiveNatural: 'insensitive natural ascending', + descendingOnly: 'descending', + descendingInsensitive: 'insensitive descending', + descendingNatural: 'natural descending', + descendingInsensitiveNatural: 'insensitive natural descending', + noOptions: '', + ascendingOnly: 'ascending', + ascendingSensitive: 'ascending', + ascendingInsensitiveNaturalRequired: 'required first insensitive natural ascending', + ascendingInsensitiveNaturalNotRequired: 'insensitive natural ascending', + ascendingRequired: '', + descending: 'descending', + descendingInsensitiveNonNatural: '', + descendingSensitiveNatural: '', + descendingInsensitiveNaturalRequired: 'required first insensitive natural descending', + descendingInsensitiveNaturalNotRequired: 'insensitive natural descending', + descendingRequired: '', +} + +export enum CaseCategory { + Interface, + Enum, +} + +function getCategoryErrorString(category: CaseCategory) { + switch (category) { + case CaseCategory.Interface: + return 'interface keys' + case CaseCategory.Enum: + default: + return 'enum members' + } +} + +function getCategoryParentErrorString(category: CaseCategory) { + switch (category) { + case CaseCategory.Interface: + return 'key' + case CaseCategory.Enum: + default: + return 'member' + } +} + +export const getSwapErrorString = ( + category: CaseCategory, + order: OptionsSetsKey, + a: string, + b: string, +) => { + return `Expected ${getCategoryErrorString(category)} to be in ${ + orderStrings[order] + } order. '${a}' should be before '${b}'. Run autofix to sort entire body.` +} + +export const getEndErrorString = ( + category: CaseCategory, + order: OptionsSetsKey, + a: string, +) => + `Expected ${getCategoryErrorString(category)} to be in ${ + orderStrings[order] + } order. '${a}' should be at the end. Run autofix to sort entire body.` + +export const getCountErrorString = (category: CaseCategory, count: number) => + `Found ${count} ${getCategoryParentErrorString(category)}${ + count > 1 ? 's' : '' + } out of order.` diff --git a/tests/helpers/tsconfig.json b/tests/helpers/tsconfig.json deleted file mode 100644 index c0f1603..0000000 --- a/tests/helpers/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "compilerOptions": { - "lib": ["es2017"], - "module": "commonjs", - "moduleResolution": "node", - "skipLibCheck": true, - "target": "es2017" - }, - "files": ["file.ts"] -} diff --git a/tests/helpers/util.ts b/tests/helpers/util.ts deleted file mode 100644 index e1c0d8b..0000000 --- a/tests/helpers/util.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { RuleTester as ESLintRuleTester } from 'eslint' -import { filename } from './configs' - -type OptionsSet = { - /** - * The set of options this test case should pass for. - */ - readonly optionsSet: readonly (Options | [])[] -} - -export type ValidTestCase = Omit< - ESLintRuleTester.ValidTestCase, - 'options' -> & - OptionsSet - -export type InvalidTestCase = Omit< - ESLintRuleTester.InvalidTestCase, - 'options' -> & - OptionsSet - -/** - * Convert our test cases into ones eslint test runner is expecting. - */ -export function processInvalidTestCase( - testCases: readonly InvalidTestCase[], -): ESLintRuleTester.InvalidTestCase[] { - return testCases.flatMap(testCase => - testCase.optionsSet.map(options => { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { optionsSet, ...eslintTestCase } = testCase - - return { filename, ...eslintTestCase, options } - }), - ) -} - -/** - * Convert our test cases into ones eslint test runner is expecting. - */ -export function processValidTestCase( - testCases: readonly ValidTestCase[], -): ESLintRuleTester.ValidTestCase[] { - return processInvalidTestCase(testCases as any) -} diff --git a/tests/rules/enum/enum.spec.ts b/tests/rules/enum/enum.spec.ts new file mode 100644 index 0000000..22e721b --- /dev/null +++ b/tests/rules/enum/enum.spec.ts @@ -0,0 +1,502 @@ +import { Rule } from 'eslint' + +import { name, rule } from '../../../src/rules/enum' +import { PreInvalidTestCaseObject, PreValidTestCaseObject, runCases } from '../../helpers/cases' +import { typescriptConfig } from '../../helpers/configs' +import { CaseCategory } from '../../helpers/strings' + +const valid: PreValidTestCaseObject = { + /** + * ascending (default) + */ + ascending: [ + 'enum U {a="b", }', + 'enum U {a="b", b="c"}', + 'enum U {_="a", a="b", b="c"}', + 'enum U {a="a", b="b", c="c"}', + 'enum U {a="a", b="b", b_="c"}', + 'enum U {C="a", b_="b", c="c"}', + 'enum U {$="a", A="b", _="c", a="d"}', + "enum U {'#'='a', 'Z'='b', À='c', è='d'}", + 'enum U {_="T", a="T", b="T"}', + 'enum U {a="T", b="T", c="T"}', + 'enum U {a="T", b="T", b_="T"}', + 'enum U {C="T", b_="T", c="T"}', + 'enum U {$="T", A="T", _="T", a="T"}', + "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + /** + * computed + */ + '{a="T", ["aa"]="T", b="T", c="T"}', + ], + /** + * ascending, natureal, case sensitive + */ + ascendingNatural: [ + 'enum U {_="T", a="T", b="T"}', + 'enum U {a="T", b="T", c="T"}', + 'enum U {a="T", b="T", b_="T"}', + 'enum U {C="T", b_="T", c="T"}', + 'enum U {$="T", _="T", A="T", a="T"}', + "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + ], + /** + * ascending, natural, insensitive + */ + ascendingInsensitiveNatural: [ + 'enum U {_="T", a="T", b="T"}', + 'enum U {a="T", b="T", c="T"}', + 'enum U {a="T", b="T", b_="T"}', + 'enum U {b_="T", C="T", c="T"}', + 'enum U {b_="T", c="T", C="T"}', + 'enum U {$="T", _="T", A="T", a="T"}', + "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + ], + /** + * descending + */ + descendingOnly: [ + 'enum U {b="T", a="T", _="T"}', + 'enum U {c="T", b="T", a="T"}', + 'enum U {b_="T", b="T", a="T"}', + 'enum U {c="T", b_="T", C="T"}', + 'enum U {a="T", _="T", A="T", $="T"}', + "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + ], + /** + * descending, insensitive + */ + descendingInsensitive: [ + 'enum U {b="T", a="T", _="T"}', + 'enum U {c="T", b="T", a="T"}', + 'enum U {b_="T", b="T", a="T"}', + 'enum U {c="T", C="T", b_="T"}', + 'enum U {C="T", c="T", b_="T"}', + 'enum U {a="T", A="T", _="T", $="T"}', + "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + ], + /** + * descending, natural + */ + descendingNatural: [ + 'enum U {b="T", a="T", _="T"}', + 'enum U {c="T", b="T", a="T"}', + 'enum U {b_="T", b="T", a="T"}', + 'enum U {c="T", b_="T", C="T"}', + 'enum U {a="T", A="T", _="T", $="T"}', + "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + ], + /** + * descending, natural, insensitive + */ + descendingInsensitiveNatural: [ + 'enum U {b="T", a="T", _="T"}', + 'enum U {c="T", b="T", a="T"}', + 'enum U {b_="T", b="T", a="T"}', + 'enum U {c="T", C="T", b_="T"}', + 'enum U {C="T", c="T", b_="T"}', + 'enum U {a="T", A="T", _="T", $="T"}', + "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + ], + descending: [ + 'enum U {c, b, a}', + 'enum U {c=a(), b, a}', + 'enum U {c=0, b, a}', + 'enum U {c=3, b, a}', + 'enum U {c=1<<1, b, a}', + 'enum U {c=M|N, b, a}', + 'enum U {c="123".length, b, a}', + 'enum U {c=0, b="b", a}', + 'const enum U {B=1, A=B*2}', + ], +} + +const invalid: PreInvalidTestCaseObject = { + // /** + // * ascending (default case sensitive) + // */ + ascending: [ + { + code: 'enum U {c="123".length, b, a}', + output: 'enum U {a, b, c="123".length}', + errors: [['c'], ['a', 'b']], + }, + { + code: 'enum U {c=1<<1, b, a}', + output: 'enum U {a, b, c=1<<1}', + errors: [['c'], ['a', 'b']], + }, + { + code: 'enum U {b, a}', + output: 'enum U {a, b}', + errors: [['b'], ['a', 'b']], + }, + { + code: 'enum U {b="c", a="a"}', + output: 'enum U {a="a", b="c"}', + errors: [['b'], ['a', 'b']], + }, + { + code: 'enum U {a="a", _="b", b="c"}', + output: 'enum U {_="b", a="a", b="c"}', + errors: [ + ['a', 'b'], + ['_', 'a'], + ], + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {a="T", b="T", c="T"}', + errors: [['c'], ['b', 'c']], + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {a="T", b="T", b_="T"}', + errors: [['b_'], ['b', 'b_']], + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {C="T", b_="T", c="T"}', + errors: [['c'], ['C', 'b_']], + }, + { + code: 'enum U {$="T", _="T", A="T", a="T"}', + output: 'enum U {$="T", A="T", _="T", a="T"}', + errors: [ + ['_', 'a'], + ['A', '_'], + ], + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + errors: [ + ['À', 'è'], + ['Z', 'À'], + ], + }, + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {_="T", a="T", b="T"}', + errors: [ + ['a', 'b'], + ['_', 'a'], + ], + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {a="T", b="T", c="T"}', + errors: [['c'], ['b', 'c']], + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {a="T", b="T", b_="T"}', + errors: [['b_'], ['b', 'b_']], + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {C="T", b_="T", c="T"}', + errors: [['c'], ['C', 'b_']], + }, + { + code: 'enum U {$="T", _="T", A="T", a="T"}', + output: 'enum U {$="T", A="T", _="T", a="T"}', + errors: [ + ['_', 'a'], + ['A', '_'], + ], + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + errors: [ + ['À', 'è'], + ['Z', 'À'], + ], + }, + /** + * not ignore simple computed properties. + */ + { + code: 'enum U {a="T", b="T", ["aa"]="T", c="T"}', + output: 'enum U {a="T", ["aa"]="T", b="T", c="T"}', + errors: [ + ['b', 'c'], + ['aa', 'b'], + ], + }, + ], + // /** + // * ascending, insensitive + // */ + ascendingInsensitive: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {_="T", a="T", b="T"}', + errors: [ + ['a', 'b'], + ['_', 'a'], + ], + }, + { + code: 'enum U {c="T", a="T", b="T"}', + output: 'enum U {a="T", b="T", c="T"}', + errors: [['c'], ['b', 'c']], + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {a="T", b="T", b_="T"}', + errors: [['b_'], ['b', 'b_']], + }, + { + code: 'enum U {$="T", A="T", _="T", a="T"}', + output: 'enum U {$="T", _="T", A="T", a="T"}', + errors: [ + ['A', 'a'], + ['_', 'A'], + ], + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + errors: [ + ['À', 'è'], + ['Z', 'À'], + ], + }, + ], + // /** + // * ascending, natural + // */ + ascendingNatural: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {_="T", a="T", b="T"}', + errors: [ + ['a', 'b'], + ['_', 'a'], + ], + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {a="T", b="T", c="T"}', + errors: [['c'], ['b', 'c']], + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {a="T", b="T", b_="T"}', + errors: [['b_'], ['b', 'b_']], + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {C="T", b_="T", c="T"}', + errors: [['c'], ['C', 'b_']], + }, + { + code: 'enum U {$="T", A="T", _="T", a="T"}', + output: 'enum U {$="T", _="T", A="T", a="T"}', + errors: [ + ['A', 'a'], + ['_', 'A'], + ], + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + errors: [ + ['À', 'è'], + ['Z', 'À'], + ], + }, + ], + // /** + // * ascending, natural, insensitive + // */ + ascendingInsensitiveNatural: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {_="T", a="T", b="T"}', + errors: [ + ['a', 'b'], + ['_', 'a'], + ], + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {a="T", b="T", c="T"}', + errors: [['c'], ['b', 'c']], + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {a="T", b="T", b_="T"}', + errors: [['b_'], ['b', 'b_']], + }, + { + code: 'enum U {$="T", A="T", _="T", a="T"}', + output: 'enum U {$="T", _="T", A="T", a="T"}', + errors: [ + ['A', 'a'], + ['_', 'A'], + ], + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + errors: [ + ['À', 'è'], + ['Z', 'À'], + ], + }, + ], + // /** + // * descending (case sensitive) + // */ + descendingOnly: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {b="T", a="T", _="T"}', + errors: [['_'], ['b', 'a']], + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {c="T", b="T", a="T"}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {b_="T", b="T", a="T"}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {c="T", b_="T", C="T"}', + errors: [ + ['b_', 'C'], + ['c', 'b_'], + ], + }, + { + code: 'enum U {$="T", _="T", A="T", a="T"}', + output: 'enum U {a="T", _="T", A="T", $="T"}', + errors: [['$'], ['a', '_']], + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + errors: [['#'], ['è', 'À']], + }, + ], + // /** + // * descending, insensitive + // */ + descendingInsensitive: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {b="T", a="T", _="T"}', + errors: [['_'], ['b', 'a']], + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {c="T", b="T", a="T"}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {b_="T", b="T", a="T"}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {c="T", C="T", b_="T"}', + errors: [['b_'], ['C', 'b_']], + }, + { + code: 'enum U {$="T", _="T", A="T", a="T"}', + output: 'enum U {A="T", a="T", _="T", $="T"}', + errors: [['$'], ['_', '$'], ['a', '_']], + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + errors: [['#'], ['è', 'À']], + }, + ], + // /** + // * descending, natural + // */ + descendingNatural: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {b="T", a="T", _="T"}', + errors: [['_'], ['b', 'a']], + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {c="T", b="T", a="T"}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {b_="T", b="T", a="T"}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {c="T", b_="T", C="T"}', + errors: [ + ['b_', 'C'], + ['c', 'b_'], + ], + }, + { + code: 'enum U {$="T", _="T", A="T", a="T"}', + output: 'enum U {a="T", A="T", _="T", $="T"}', + errors: [['$'], ['_', '$'], ['A', '_'], ['a', 'A']], + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + errors: [['#'], ['è', 'À']], + }, + ], + /** + * descending, natural, insensitive + */ + descendingInsensitiveNatural: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {b="T", a="T", _="T"}', + errors: [['_'], ['b', 'a']], + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {c="T", b="T", a="T"}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {b_="T", b="T", a="T"}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {c="T", C="T", b_="T"}', + errors: [['b_'], ['C', 'b_']], + }, + { + code: 'enum U {$="T", _="T", A="T", a="T"}', + output: 'enum U {A="T", a="T", _="T", $="T"}', + errors: [['$'], ['_', '$'], ['a', '_']], + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + errors: [['#'], ['è', 'À']], + }, + ], +} + +runCases({ name, rule: rule as unknown as Rule.RuleModule, typescriptConfig }, valid, invalid, { + category: CaseCategory.Enum, + withRequiredFirstOption: false, +}) diff --git a/tests/rules/enum/string-enum.spec.ts b/tests/rules/enum/string-enum.spec.ts new file mode 100644 index 0000000..3b33dd4 --- /dev/null +++ b/tests/rules/enum/string-enum.spec.ts @@ -0,0 +1,447 @@ +import { Rule } from 'eslint' + +import { name, rule } from '../../../src/rules/string-enum' +import { PreInvalidTestCaseObject, PreValidTestCaseObject, runCases } from '../../helpers/cases' +import { typescriptConfig } from '../../helpers/configs' +import { CaseCategory } from '../../helpers/strings' + +const valid: PreValidTestCaseObject = { + /** + * ignores + */ + noOptions: [ + 'enum U {c, b, a}', + 'enum U {c=a(), b, a}', + 'enum U {c=0, b, a}', + 'enum U {c=3, b, a}', + 'enum U {c=1<<1, b, a}', + 'enum U {c=M|N, b, a}', + 'enum U {c="123".length, b, a}', + 'enum U {c=0, b="b", a}', + 'const enum U {A=1, B=A*2}', + ], + /** + * ascending (default) + */ + ascending: [ + 'enum U {a="b", }', + 'enum U {a="b", b="c"}', + 'enum U {_="a", a="b", b="c"}', + 'enum U {a="a", b="b", c="c"}', + 'enum U {a="a", b="b", b_="c"}', + 'enum U {C="a", b_="b", c="c"}', + 'enum U {$="a", A="b", _="c", a="d"}', + "enum U {'#'='a', 'Z'='b', À='c', è='d'}", + 'enum U {_="T", a="T", b="T"}', + 'enum U {a="T", b="T", c="T"}', + 'enum U {a="T", b="T", b_="T"}', + 'enum U {C="T", b_="T", c="T"}', + 'enum U {$="T", A="T", _="T", a="T"}', + "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + /** + * computed + */ + '{a="T", ["aa"]="T", b="T", c="T"}', + ], + /** + * ascending, natureal, case sensitive + */ + ascendingNatural: [ + 'enum U {_="T", a="T", b="T"}', + 'enum U {a="T", b="T", c="T"}', + 'enum U {a="T", b="T", b_="T"}', + 'enum U {C="T", b_="T", c="T"}', + 'enum U {$="T", _="T", A="T", a="T"}', + "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + ], + /** + * ascending, natural, insensitive + */ + ascendingInsensitiveNatural: [ + 'enum U {_="T", a="T", b="T"}', + 'enum U {a="T", b="T", c="T"}', + 'enum U {a="T", b="T", b_="T"}', + 'enum U {b_="T", C="T", c="T"}', + 'enum U {b_="T", c="T", C="T"}', + 'enum U {$="T", _="T", A="T", a="T"}', + "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + ], + /** + * descending + */ + descendingOnly: [ + 'enum U {b="T", a="T", _="T"}', + 'enum U {c="T", b="T", a="T"}', + 'enum U {b_="T", b="T", a="T"}', + 'enum U {c="T", b_="T", C="T"}', + 'enum U {a="T", _="T", A="T", $="T"}', + "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + ], + /** + * descending, insensitive + */ + descendingInsensitive: [ + 'enum U {b="T", a="T", _="T"}', + 'enum U {c="T", b="T", a="T"}', + 'enum U {b_="T", b="T", a="T"}', + 'enum U {c="T", C="T", b_="T"}', + 'enum U {C="T", c="T", b_="T"}', + 'enum U {a="T", A="T", _="T", $="T"}', + "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + ], + /** + * descending, natural + */ + descendingNatural: [ + 'enum U {b="T", a="T", _="T"}', + 'enum U {c="T", b="T", a="T"}', + 'enum U {b_="T", b="T", a="T"}', + 'enum U {c="T", b_="T", C="T"}', + 'enum U {a="T", A="T", _="T", $="T"}', + "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + ], + /** + * descending, natural, insensitive + */ + descendingInsensitiveNatural: [ + 'enum U {b="T", a="T", _="T"}', + 'enum U {c="T", b="T", a="T"}', + 'enum U {b_="T", b="T", a="T"}', + 'enum U {c="T", C="T", b_="T"}', + 'enum U {C="T", c="T", b_="T"}', + 'enum U {a="T", A="T", _="T", $="T"}', + "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + ], + descending: [ + 'enum U {c, b, a}', + 'enum U {c=a(), b, a}', + 'enum U {c=0, b, a}', + 'enum U {c=3, b, a}', + 'enum U {c=1<<1, b, a}', + 'enum U {c=M|N, b, a}', + 'enum U {c="123".length, b, a}', + 'enum U {c=0, b="b", a}', + 'const enum U {B=1, A=B*2}', + ], +} + +const invalid: PreInvalidTestCaseObject = { + // /** + // * ascending (default case sensitive) + // */ + ascending: [ + { + code: 'enum U {b="c", a="a"}', + output: 'enum U {a="a", b="c"}', + errors: 3, + }, + { + code: 'enum U {a="a", _="b", b="c"}', + output: 'enum U {_="b", a="a", b="c"}', + errors: 3, + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {a="T", b="T", c="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {a="T", b="T", b_="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {C="T", b_="T", c="T"}', + errors: 3, + }, + { + code: 'enum U {$="T", _="T", A="T", a="T"}', + output: 'enum U {$="T", A="T", _="T", a="T"}', + errors: 3, + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + errors: 3, + }, + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {_="T", a="T", b="T"}', + errors: 3, + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {a="T", b="T", c="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {a="T", b="T", b_="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {C="T", b_="T", c="T"}', + errors: 3, + }, + { + code: 'enum U {$="T", _="T", A="T", a="T"}', + output: 'enum U {$="T", A="T", _="T", a="T"}', + errors: 3, + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + errors: 3, + }, + /** + * not ignore simple computed properties. + */ + { + code: 'enum U {a="T", b="T", ["aa"]="T", c="T"}', + output: 'enum U {a="T", ["aa"]="T", b="T", c="T"}', + errors: 3, + }, + ], + // /** + // * ascending, insensitive + // */ + ascendingInsensitive: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {_="T", a="T", b="T"}', + errors: 3, + }, + { + code: 'enum U {c="T", a="T", b="T"}', + output: 'enum U {a="T", b="T", c="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {a="T", b="T", b_="T"}', + errors: 3, + }, + { + code: 'enum U {$="T", A="T", _="T", a="T"}', + output: 'enum U {$="T", _="T", A="T", a="T"}', + errors: 3, + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + errors: 3, + }, + ], + // /** + // * ascending, natural + // */ + ascendingNatural: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {_="T", a="T", b="T"}', + errors: 3, + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {a="T", b="T", c="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {a="T", b="T", b_="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {C="T", b_="T", c="T"}', + errors: 3, + }, + { + code: 'enum U {$="T", A="T", _="T", a="T"}', + output: 'enum U {$="T", _="T", A="T", a="T"}', + errors: 3, + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + errors: 3, + }, + ], + // /** + // * ascending, natural, insensitive + // */ + ascendingInsensitiveNatural: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {_="T", a="T", b="T"}', + errors: 3, + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {a="T", b="T", c="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {a="T", b="T", b_="T"}', + errors: 3, + }, + { + code: 'enum U {$="T", A="T", _="T", a="T"}', + output: 'enum U {$="T", _="T", A="T", a="T"}', + errors: 3, + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + errors: 3, + }, + ], + // /** + // * descending (case sensitive) + // */ + descendingOnly: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {b="T", a="T", _="T"}', + errors: 3, + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {c="T", b="T", a="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {b_="T", b="T", a="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {c="T", b_="T", C="T"}', + errors: 3, + }, + { + code: 'enum U {$="T", _="T", A="T", a="T"}', + output: 'enum U {a="T", _="T", A="T", $="T"}', + errors: 3, + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + errors: 3, + }, + ], + // /** + // * descending, insensitive + // */ + descendingInsensitive: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {b="T", a="T", _="T"}', + errors: 3, + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {c="T", b="T", a="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {b_="T", b="T", a="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {c="T", C="T", b_="T"}', + errors: 3, + }, + { + code: 'enum U {$="T", _="T", A="T", a="T"}', + output: 'enum U {A="T", a="T", _="T", $="T"}', + errors: 4, + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + errors: 3, + }, + ], + // /** + // * descending, natural + // */ + descendingNatural: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {b="T", a="T", _="T"}', + errors: 3, + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {c="T", b="T", a="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {b_="T", b="T", a="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {c="T", b_="T", C="T"}', + errors: 3, + }, + { + code: 'enum U {$="T", _="T", A="T", a="T"}', + output: 'enum U {a="T", A="T", _="T", $="T"}', + errors: 5, + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + errors: 3, + }, + ], + /** + * descending, natural, insensitive + */ + descendingInsensitiveNatural: [ + { + code: 'enum U {a="T", _="T", b="T"}', + output: 'enum U {b="T", a="T", _="T"}', + errors: 3, + }, + { + code: 'enum U {a="T", c="T", b="T"}', + output: 'enum U {c="T", b="T", a="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", a="T", b="T"}', + output: 'enum U {b_="T", b="T", a="T"}', + errors: 3, + }, + { + code: 'enum U {b_="T", c="T", C="T"}', + output: 'enum U {c="T", C="T", b_="T"}', + errors: 3, + }, + { + code: 'enum U {$="T", _="T", A="T", a="T"}', + output: 'enum U {A="T", a="T", _="T", $="T"}', + errors: 4, + }, + { + code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", + output: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + errors: 3, + }, + ], +} + +runCases({ name, rule: rule as unknown as Rule.RuleModule, typescriptConfig }, valid, invalid, { + category: CaseCategory.Enum, + withRequiredFirstOption: false, +}) diff --git a/tests/rules/interface.spec.ts b/tests/rules/interface.spec.ts deleted file mode 100644 index 95c17c5..0000000 --- a/tests/rules/interface.spec.ts +++ /dev/null @@ -1,1802 +0,0 @@ -import { Rule, RuleTester } from 'eslint' - -import { rule, name, Options } from 'rules/interface' -import { SortingOrder } from 'common/options' -import { typescript } from '../helpers/configs' -import { - InvalidTestCase, - processInvalidTestCase, - processValidTestCase, - ValidTestCase, -} from '../helpers/util' - -const valid: readonly ValidTestCase[] = [ - /** - * default, asc, caseSensitive - */ - { - code: 'interface U {_:T; a:T; b:T;}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {a:T; b:T; c:T;}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {a:T; b:T; b_:T;}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {C:T; b_:T; c:T;}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {$:T; A:T; _:T; a:T;}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: "interface U {1:T; '11':T; 2:T; A:T;}", - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: "interface U {'#':T; 'Z':T; À:T; è:T;}", - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - - /** - * computed - */ - { - code: 'interface U {a:T; ["ab"]:T; b:T; c:T;}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - - /** - * nested - */ - { - code: 'interface U {a:T; b:{x:T; y:T;}; c:T;}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {a:T; b:{x:T; y:T; z:{i:T; j:T;};}; c:T;}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'type U = {a:T; b:{x:T; y:T;}; c:T;}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'type U = {a:T; b:{x:T; y:T; z:{i:T; j:T;};}; c:T;}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - - /** - * asc, insensitive - */ - { - code: 'interface U {_:T; a:T; b:T;}', - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'interface U {a:T; b:T; c:T;}', - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'interface U {a:T; b:T; b_:T;}', - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'interface U {b_:T; C:T; c:T;}', - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'interface U {b_:T; c:T; C:T;}', - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'interface U {$:T; _:T; A:T; a:T;}', - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: "interface U {1:T; '11':T; 2:T; A:T;}", - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - - { - code: "interface U {'#':T; 'Z':T; À:T; è:T;}", - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - - /** - * asc, natural, insensitive - */ - { - code: 'interface U {_:T; a:T; b:T;}', - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {a:T; b:T; c:T;}', - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {a:T; b:T; b_:T;}', - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {b_:T; C:T; c:T;}', - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {b_:T; c:T; C:T;}', - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {$:T; _:T; A:T; a:T;}', - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: "interface U {1:T; 2:T; '11':T; A:T;}", - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: "interface U {'#':T; 'Z':T; À:T; è:T;}", - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - - /** - * asc, natural, insensitive, required - */ - { - code: 'interface U {_:T; b:T; a?:T;}', - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {a:T; c:T; b?:T;}', - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {b:T; b_:T; a?:T;}', - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {C:T; c:T; b_?:T;}', - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {c:T; C:T; b_?:T;}', - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {$:T; _:T; A?:T; a?:T;}', - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: "interface U {1:T; '11':T; A:T; 2?:T;}", - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: "interface U {'Z':T; À:T; è:T; '#'?:T;}", - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - - /** - * asc, required - */ - { - code: 'interface U {_:T; b:T; a?:T;}', - optionsSet: [[SortingOrder.Ascending, { requiredFirst: true }]], - }, - { - code: 'interface U {a:T; c:T; b?:T;}', - optionsSet: [[SortingOrder.Ascending, { requiredFirst: true }]], - }, - { - code: 'interface U {b:T; b_:T; a?:T;}', - optionsSet: [[SortingOrder.Ascending, { requiredFirst: true }]], - }, - { - code: 'interface U {C:T; c:T; b_?:T;}', - optionsSet: [[SortingOrder.Ascending, { requiredFirst: true }]], - }, - { - code: 'interface U {1:T; 11:T; 9:T; 111?:T;}', - optionsSet: [[SortingOrder.Ascending, { requiredFirst: true }]], - }, - { - code: 'interface U {$:T; _:T; A?:T; a?:T;}', - optionsSet: [[SortingOrder.Ascending, { requiredFirst: true }]], - }, - { - code: "interface U {10:T; '11':T; 1?:T; 12?:T; 2?:T;}", - optionsSet: [[SortingOrder.Ascending, { requiredFirst: true }]], - }, - { - code: "interface U {'Z':T; À:T; è:T; '#'?:T;}", - optionsSet: [[SortingOrder.Ascending, { requiredFirst: true }]], - }, - - /** - * asc, natural, insensitive, not-required - */ - { - code: 'interface U {_:T; a?:T; b:T;}', - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {a:T; b?:T; c:T;}', - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {a?:T; b:T; b_:T;}', - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {b_?:T; C:T; c:T;}', - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {b_?:T; c:T; C:T;}', - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {$:T; _:T; A?:T; a?:T;}', - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: "interface U {1:T; 2?:T; '11':T; A:T;}", - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: "interface U {'#'?:T; 'Z':T; À:T; è:T;}", - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - - /** - * desc - */ - { - code: 'interface U {b:T; a:T; _:T;}', - optionsSet: [ - [SortingOrder.Descending], - [SortingOrder.Descending, { caseSensitive: true }], - [SortingOrder.Descending, { natural: false }], - [SortingOrder.Descending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'interface U {c:T; b:T; a:T;}', - optionsSet: [ - [SortingOrder.Descending], - [SortingOrder.Descending, { caseSensitive: true }], - [SortingOrder.Descending, { natural: false }], - [SortingOrder.Descending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'interface U {b_:T; b:T; a:T;}', - optionsSet: [ - [SortingOrder.Descending], - [SortingOrder.Descending, { caseSensitive: true }], - [SortingOrder.Descending, { natural: false }], - [SortingOrder.Descending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'interface U {c:T; b_:T; C:T;}', - optionsSet: [ - [SortingOrder.Descending], - [SortingOrder.Descending, { caseSensitive: true }], - [SortingOrder.Descending, { natural: false }], - [SortingOrder.Descending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'interface U {a:T; _:T; A:T; $:T;}', - optionsSet: [ - [SortingOrder.Descending], - [SortingOrder.Descending, { caseSensitive: true }], - [SortingOrder.Descending, { natural: false }], - [SortingOrder.Descending, { caseSensitive: true, natural: false }], - ], - }, - { - code: "interface U {A:T; 2:T; '11':T; 1:T;}", - optionsSet: [ - [SortingOrder.Descending], - [SortingOrder.Descending, { caseSensitive: true }], - [SortingOrder.Descending, { natural: false }], - [SortingOrder.Descending, { caseSensitive: true, natural: false }], - ], - }, - { - code: "interface U {è:T; À:T; 'Z':T; '#':T;}", - optionsSet: [ - [SortingOrder.Descending], - [SortingOrder.Descending, { caseSensitive: true }], - [SortingOrder.Descending, { natural: false }], - [SortingOrder.Descending, { caseSensitive: true, natural: false }], - ], - }, - - /** - * desc, insensitive - */ - { - code: 'interface U {b:T; a:T; _:T;}', - optionsSet: [ - [SortingOrder.Descending, { caseSensitive: false }], - [SortingOrder.Descending, { caseSensitive: false, natural: false }], - ], - }, - { - code: 'interface U {c:T; b:T; a:T;}', - optionsSet: [ - [SortingOrder.Descending, { caseSensitive: false }], - [SortingOrder.Descending, { caseSensitive: false, natural: false }], - ], - }, - { - code: 'interface U {b_:T; b:T; a:T;}', - optionsSet: [ - [SortingOrder.Descending, { caseSensitive: false }], - [SortingOrder.Descending, { caseSensitive: false, natural: false }], - ], - }, - { - code: 'interface U {c:T; C:T; b_:T;}', - optionsSet: [ - [SortingOrder.Descending, { caseSensitive: false }], - [SortingOrder.Descending, { caseSensitive: false, natural: false }], - ], - }, - { - code: 'interface U {C:T; c:T; b_:T;}', - optionsSet: [ - [SortingOrder.Descending, { caseSensitive: false }], - [SortingOrder.Descending, { caseSensitive: false, natural: false }], - ], - }, - { - code: 'interface U {a:T; A:T; _:T; $:T;}', - optionsSet: [ - [SortingOrder.Descending, { caseSensitive: false }], - [SortingOrder.Descending, { caseSensitive: false, natural: false }], - ], - }, - { - code: "interface U {A:T; 2:T; '11':T; 1:T;}", - optionsSet: [ - [SortingOrder.Descending, { caseSensitive: false }], - [SortingOrder.Descending, { caseSensitive: false, natural: false }], - ], - }, - { - code: "interface U {è:T; À:T; 'Z':T; '#':T;}", - optionsSet: [ - [SortingOrder.Descending, { caseSensitive: false }], - [SortingOrder.Descending, { caseSensitive: false, natural: false }], - ], - }, - - /** - * desc, natural - */ - { - code: 'interface U {b:T; a:T; _:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true }], - [SortingOrder.Descending, { natural: true, caseSensitive: true }], - ], - }, - { - code: 'interface U {c:T; b:T; a:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true }], - [SortingOrder.Descending, { natural: true, caseSensitive: true }], - ], - }, - { - code: 'interface U {b_:T; b:T; a:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true }], - [SortingOrder.Descending, { natural: true, caseSensitive: true }], - ], - }, - { - code: 'interface U {c:T; b_:T; C:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true }], - [SortingOrder.Descending, { natural: true, caseSensitive: true }], - ], - }, - { - code: 'interface U {a:T; A:T; _:T; $:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true }], - [SortingOrder.Descending, { natural: true, caseSensitive: true }], - ], - }, - { - code: "interface U {A:T; '11':T; 2:T; 1:T;}", - optionsSet: [ - [SortingOrder.Descending, { natural: true }], - [SortingOrder.Descending, { natural: true, caseSensitive: true }], - ], - }, - { - code: "interface U {è:T; À:T; 'Z':T; '#':T;}", - optionsSet: [ - [SortingOrder.Descending, { natural: true }], - [SortingOrder.Descending, { natural: true, caseSensitive: true }], - ], - }, - - /** - * desc, natural, insensitive - */ - { - code: 'interface U {b:T; a:T; _:T;}', - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {c:T; b:T; a:T;}', - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {b_:T; b:T; a:T;}', - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {c:T; C:T; b_:T;}', - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {C:T; c:T; b_:T;}', - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {a:T; A:T; _:T; $:T;}', - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: "interface U {A:T; '11':T; 2:T; 1:T;}", - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: "interface U {è:T; À:T; 'Z':T; '#':T;}", - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - - /** - * desc, natural, insensitive, required - */ - { - code: 'interface U {b:T; _:T; a?:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {c:T; a:T; b?:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {b_:T; b:T; a?:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {c:T; C:T; b_?:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {C:T; c:T; b_?:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {_:T; $:T; a?:T; A?:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: "interface U { A:T; '11':T; 1:T; 2?:T;}", - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: "interface U {è:T; 'Z':T; À?:T; '#'?:T;}", - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - - /** - * desc, required - */ - { - code: 'interface U {b:T; _:T; a?:T;}', - optionsSet: [[SortingOrder.Descending, { requiredFirst: true }]], - }, - { - code: 'interface U {c:T; a:T; b?:T;}', - optionsSet: [[SortingOrder.Descending, { requiredFirst: true }]], - }, - { - code: 'interface U {b_:T; b:T; a?:T;}', - optionsSet: [[SortingOrder.Descending, { requiredFirst: true }]], - }, - { - code: 'interface U {c:T; C:T; b_?:T;}', - optionsSet: [[SortingOrder.Descending, { requiredFirst: true }]], - }, - { - code: 'interface U {9:T; 11:T; 1:T; 111?:T;}', - optionsSet: [[SortingOrder.Descending, { requiredFirst: true }]], - }, - { - code: 'interface U {_:T; $:T; a?:T; A?:T;}', - optionsSet: [[SortingOrder.Descending, { requiredFirst: true }]], - }, - { - code: "interface U {'11':T; 10:T; 2?:T; 12?:T; 1?:T;}", - optionsSet: [[SortingOrder.Descending, { requiredFirst: true }]], - }, - { - code: "interface U {è:T; À:T; 'Z':T; '#'?:T;}", - optionsSet: [[SortingOrder.Descending, { requiredFirst: true }]], - }, - - /** - * desc, natural, insensitive, not-required - */ - { - code: 'interface U {b:T; a?:T; _:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {c:T; b?:T; a:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {b_:T; b:T; a?:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {c:T; C:T; b_?:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {C:T; c:T; b_?:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {a?:T; A?:T; _:T; $:T;}', - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: "interface U {A:T; '11':T; 2?:T; 1:T;}", - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: "interface U {è:T; À:T; 'Z':T; '#'?:T;}", - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - - /** - * index signatures - */ - { - code: `interface U { [nkey: number]: T; [skey: string]: T; $: T; A: T; _: T; a: T; }`, - optionsSet: [[SortingOrder.Ascending]], - }, - { - code: `interface U { a: T; _: T; A: T; $: T; [skey: string]: T; [nkey: number]: T; }`, - optionsSet: [[SortingOrder.Descending]], - }, -] - -const invalid: readonly InvalidTestCase[] = [ - /** - * default (asc) - */ - { - code: 'interface U {a:T; _:T; b:T;}', - output: 'interface U {_:T; a:T; b:T;}', - errors: ["Expected interface keys to be in ascending order. '_' should be before 'a'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {a:T; c:T; b:T;}', - output: 'interface U {a:T; b:T; c:T;}', - errors: ["Expected interface keys to be in ascending order. 'b' should be before 'c'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {b_:T; a:T; b:T;}', - output: 'interface U {a:T; b_:T; b:T;}', - errors: ["Expected interface keys to be in ascending order. 'a' should be before 'b_'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {b_:T; c:T; C:T;}', - output: 'interface U {C:T; c:T; b_:T;}', - errors: ["Expected interface keys to be in ascending order. 'C' should be before 'c'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {$:T; _:T; A:T; a:T;}', - output: 'interface U {$:T; A:T; _:T; a:T;}', - errors: ["Expected interface keys to be in ascending order. 'A' should be before '_'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: "interface U {1:T; 2:T; A:T; '11':T;}", - output: "interface U {1:T; '11':T; A:T; 2:T;}", - errors: ["Expected interface keys to be in ascending order. '11' should be before 'A'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: "interface U {'#':T; À:T; 'Z':T; è:T;}", - output: "interface U {'#':T; 'Z':T; À:T; è:T;}", - errors: ["Expected interface keys to be in ascending order. 'Z' should be before 'À'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - - /** - * methods - */ - { - code: "interface U {1:T; 2:T; A():T; '11':T;}", - output: "interface U {1:T; '11':T; A():T; 2:T;}", - errors: ["Expected interface keys to be in ascending order. '11' should be before 'A'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: "interface U {'#'():T; À():T; 'Z':T; è:T;}", - output: "interface U {'#'():T; 'Z':T; À():T; è:T;}", - errors: ["Expected interface keys to be in ascending order. 'Z' should be before 'À'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - - /** - * not ignore simple computed properties. - */ - { - code: 'interface U {a:T; b:T; ["a"]:T; c:T;}', - output: 'interface U {a:T; ["a"]:T; b:T; c:T;}', - errors: ["Expected interface keys to be in ascending order. 'a' should be before 'b'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - - /** - * nested - */ - { - code: 'interface U {a:T; c:{y:T; x:T;}, b:T;}', - output: 'interface U {a:T; b:T; c:{y:T; x:T;}}', - errors: [ - "Expected interface keys to be in ascending order. 'x' should be before 'y'.", - "Expected interface keys to be in ascending order. 'b' should be before 'c'.", - ], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'type U = {a:T; c:{y:T; x:T;}, b:T;}', - output: 'type U = {a:T; b:T; c:{y:T; x:T;}}', - errors: [ - "Expected interface keys to be in ascending order. 'x' should be before 'y'.", - "Expected interface keys to be in ascending order. 'b' should be before 'c'.", - ], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - - /** - * asc - */ - { - code: 'interface U {a:T; _:T; b:T;}', - output: 'interface U {_:T; a:T; b:T;}', - errors: ["Expected interface keys to be in ascending order. '_' should be before 'a'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {a:T; c:T; b:T;}', - output: 'interface U {a:T; b:T; c:T;}', - errors: ["Expected interface keys to be in ascending order. 'b' should be before 'c'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {b_:T; a:T; b:T;}', - output: 'interface U {a:T; b_:T; b:T;}', - errors: ["Expected interface keys to be in ascending order. 'a' should be before 'b_'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {b_:T; c:T; C:T;}', - output: 'interface U {C:T; c:T; b_:T;}', - errors: ["Expected interface keys to be in ascending order. 'C' should be before 'c'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {$:T; _:T; A:T; a:T;}', - output: 'interface U {$:T; A:T; _:T; a:T;}', - errors: ["Expected interface keys to be in ascending order. 'A' should be before '_'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: "interface U {1:T; 2:T; A:T; '11':T;}", - output: "interface U {1:T; '11':T; A:T; 2:T;}", - errors: ["Expected interface keys to be in ascending order. '11' should be before 'A'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }], - ], - }, - { - code: "interface U {'#':T; À:T; 'Z':T; è:T;}", - output: "interface U {'#':T; 'Z':T; À:T; è:T;}", - errors: ["Expected interface keys to be in ascending order. 'Z' should be before 'À'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - - /** - * asc, insensitive - */ - { - code: 'interface U {a:T; _:T; b:T;}', - output: 'interface U {_:T; a:T; b:T;}', - errors: [ - "Expected interface keys to be in insensitive ascending order. '_' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'interface U {a:T; c:T; b:T;}', - output: 'interface U {a:T; b:T; c:T;}', - errors: [ - "Expected interface keys to be in insensitive ascending order. 'b' should be before 'c'.", - ], - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'interface U {b_:T; a:T; b:T;}', - output: 'interface U {a:T; b_:T; b:T;}', - errors: [ - "Expected interface keys to be in insensitive ascending order. 'a' should be before 'b_'.", - ], - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'interface U {$:T; A:T; _:T; a:T;}', - output: 'interface U {$:T; _:T; A:T; a:T;}', - errors: [ - "Expected interface keys to be in insensitive ascending order. '_' should be before 'A'.", - ], - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: "interface U {1:T; 2:T; A:T; '11':T;}", - output: "interface U {1:T; '11':T; A:T; 2:T;}", - errors: [ - "Expected interface keys to be in insensitive ascending order. '11' should be before 'A'.", - ], - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: "interface U {'#':T; À:T; 'Z':T; è:T;}", - output: "interface U {'#':T; 'Z':T; À:T; è:T;}", - errors: [ - "Expected interface keys to be in insensitive ascending order. 'Z' should be before 'À'.", - ], - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - - /** - * asc, natural - */ - { - code: 'interface U {a:T; _:T; b:T;}', - output: 'interface U {_:T; a:T; b:T;}', - errors: ["Expected interface keys to be in natural ascending order. '_' should be before 'a'."], - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - { - code: 'interface U {a:T; c:T; b:T;}', - output: 'interface U {a:T; b:T; c:T;}', - errors: ["Expected interface keys to be in natural ascending order. 'b' should be before 'c'."], - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - { - code: 'interface U {b_:T; a:T; b:T;}', - output: 'interface U {a:T; b_:T; b:T;}', - errors: [ - "Expected interface keys to be in natural ascending order. 'a' should be before 'b_'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - { - code: 'interface U {b_:T; c:T; C:T;}', - output: 'interface U {C:T; c:T; b_:T;}', - errors: ["Expected interface keys to be in natural ascending order. 'C' should be before 'c'."], - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - { - code: 'interface U {$:T; A:T; _:T; a:T;}', - output: 'interface U {$:T; _:T; A:T; a:T;}', - errors: ["Expected interface keys to be in natural ascending order. '_' should be before 'A'."], - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - { - code: "interface U {1:T; 2:T; A:T; '11':T;}", - output: "interface U {1:T; 2:T; '11':T; A:T;}", - errors: [ - "Expected interface keys to be in natural ascending order. '11' should be before 'A'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - { - code: "interface U {'#':T; À:T; 'Z':T; è:T;}", - output: "interface U {'#':T; 'Z':T; À:T; è:T;}", - errors: ["Expected interface keys to be in natural ascending order. 'Z' should be before 'À'."], - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - - /** - * asc, natural, insensitive - */ - { - code: 'interface U {a:T; _:T; b:T;}', - output: 'interface U {_:T; a:T; b:T;}', - errors: [ - "Expected interface keys to be in natural insensitive ascending order. '_' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {a:T; c:T; b:T;}', - output: 'interface U {a:T; b:T; c:T;}', - errors: [ - "Expected interface keys to be in natural insensitive ascending order. 'b' should be before 'c'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {b_:T; a:T; b:T;}', - output: 'interface U {a:T; b_:T; b:T;}', - errors: [ - "Expected interface keys to be in natural insensitive ascending order. 'a' should be before 'b_'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {$:T; A:T; _:T; a:T;}', - output: 'interface U {$:T; _:T; A:T; a:T;}', - errors: [ - "Expected interface keys to be in natural insensitive ascending order. '_' should be before 'A'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: "interface U {1:T; '11':T; 2:T; A:T;}", - output: "interface U {1:T; 2:T; '11':T; A:T;}", - errors: [ - "Expected interface keys to be in natural insensitive ascending order. '2' should be before '11'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: "interface U {'#':T; À:T; 'Z':T; è:T;}", - output: "interface U {'#':T; 'Z':T; À:T; è:T;}", - errors: [ - "Expected interface keys to be in natural insensitive ascending order. 'Z' should be before 'À'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - - /** - * asc, natural, insensitive, required - */ - { - code: 'interface U {_:T; a?:T; b:T;}', - output: 'interface U {_:T; b:T; a?:T;}', - errors: [ - "Expected interface keys to be in required first natural insensitive ascending order. 'b' should be before 'a'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {a:T; b?:T; c:T;}', - output: 'interface U {a:T; c:T; b?:T;}', - errors: [ - "Expected interface keys to be in required first natural insensitive ascending order. 'c' should be before 'b'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {b:T; a?:T; b_:T;}', - output: 'interface U {b:T; b_:T; a?:T;}', - errors: [ - "Expected interface keys to be in required first natural insensitive ascending order. 'b_' should be before 'a'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {C:T; b_?:T; c:T;}', - output: 'interface U {C:T; c:T; b_?:T;}', - errors: [ - "Expected interface keys to be in required first natural insensitive ascending order. 'c' should be before 'b_'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {C:T; b_?:T; c:T;}', - output: 'interface U {C:T; c:T; b_?:T;}', - errors: [ - "Expected interface keys to be in required first natural insensitive ascending order. 'c' should be before 'b_'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {$:T; A?:T; _:T; a?:T;}', - output: 'interface U {$:T; _:T; A?:T; a?:T;}', - errors: [ - "Expected interface keys to be in required first natural insensitive ascending order. '_' should be before 'A'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: "interface U {1:T; '11':T; 2?:T; A:T;}", - output: "interface U {1:T; '11':T; A:T; 2?:T;}", - errors: [ - "Expected interface keys to be in required first natural insensitive ascending order. 'A' should be before '2'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: "interface U {'Z':T; À:T; '#'?:T; è:T;}", - output: "interface U {'Z':T; À:T; è:T; '#'?:T;}", - errors: [ - "Expected interface keys to be in required first natural insensitive ascending order. 'è' should be before '#'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - - /** - * asc, natural, insensitive, not-required - */ - { - code: 'interface U {_:T; b:T; a?:T;}', - output: 'interface U {_:T; a?:T; b:T;}', - errors: [ - "Expected interface keys to be in natural insensitive ascending order. 'a' should be before 'b'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {b?:T; a:T; c:T;}', - output: 'interface U {a:T; b?:T; c:T;}', - errors: [ - "Expected interface keys to be in natural insensitive ascending order. 'a' should be before 'b'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {b:T; a?:T; b_:T;}', - output: 'interface U {a?:T; b:T; b_:T;}', - errors: [ - "Expected interface keys to be in natural insensitive ascending order. 'a' should be before 'b'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {C:T; c:T; b_?:T;}', - output: 'interface U {b_?:T; c:T; C:T;}', - errors: [ - "Expected interface keys to be in natural insensitive ascending order. 'b_' should be before 'c'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {C:T; b_?:T; c:T;}', - output: 'interface U {b_?:T; C:T; c:T;}', - errors: [ - "Expected interface keys to be in natural insensitive ascending order. 'b_' should be before 'C'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {$:T; A?:T; _:T; a?:T;}', - output: 'interface U {$:T; _:T; A?:T; a?:T;}', - errors: [ - "Expected interface keys to be in natural insensitive ascending order. '_' should be before 'A'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: "interface U {1:T; '11':T; 2?:T; A:T;}", - output: "interface U {1:T; 2?:T; '11':T; A:T;}", - errors: [ - "Expected interface keys to be in natural insensitive ascending order. '2' should be before '11'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: "interface U {'Z':T; À:T; '#'?:T; è:T;}", - output: "interface U {'#'?:T; À:T; 'Z':T; è:T;}", - errors: [ - "Expected interface keys to be in natural insensitive ascending order. '#' should be before 'À'.", - ], - optionsSet: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - - /** - * desc - */ - { - code: 'interface U {a:T; _:T; b:T;}', - output: 'interface U {b:T; _:T; a:T;}', - errors: ["Expected interface keys to be in descending order. 'b' should be before '_'."], - optionsSet: [[SortingOrder.Descending]], - }, - { - code: 'interface U {a:T; c:T; b:T;}', - output: 'interface U {c:T; a:T; b:T;}', - errors: ["Expected interface keys to be in descending order. 'c' should be before 'a'."], - optionsSet: [[SortingOrder.Descending]], - }, - { - code: 'interface U {b_:T; a:T; b:T;}', - output: 'interface U {b_:T; b:T; a:T;}', - errors: ["Expected interface keys to be in descending order. 'b' should be before 'a'."], - optionsSet: [[SortingOrder.Descending]], - }, - { - code: 'interface U {b_:T; c:T; C:T;}', - output: 'interface U {c:T; b_:T; C:T;}', - errors: ["Expected interface keys to be in descending order. 'c' should be before 'b_'."], - optionsSet: [[SortingOrder.Descending]], - }, - { - code: 'interface U {$:T; _:T; A:T; a:T;}', - output: 'interface U {a:T; _:T; A:T; $:T;}', - errors: [ - "Expected interface keys to be in descending order. '_' should be before '$'.", - "Expected interface keys to be in descending order. 'a' should be before 'A'.", - ], - optionsSet: [[SortingOrder.Descending]], - }, - { - code: "interface U {1:T; 2:T; A:T; '11':T;}", - output: "interface U {A:T; 2:T; 1:T; '11':T;}", - errors: [ - "Expected interface keys to be in descending order. '2' should be before '1'.", - "Expected interface keys to be in descending order. 'A' should be before '2'.", - ], - optionsSet: [[SortingOrder.Descending]], - }, - { - code: "interface U {'#':T; À:T; 'Z':T; è:T;}", - output: "interface U {è:T; À:T; 'Z':T; '#':T;}", - errors: [ - "Expected interface keys to be in descending order. 'À' should be before '#'.", - "Expected interface keys to be in descending order. 'è' should be before 'Z'.", - ], - optionsSet: [[SortingOrder.Descending]], - }, - - /** - * desc, insensitive - */ - { - code: 'interface U {a:T; _:T; b:T;}', - output: 'interface U {b:T; _:T; a:T;}', - errors: [ - "Expected interface keys to be in insensitive descending order. 'b' should be before '_'.", - ], - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: 'interface U {a:T; c:T; b:T;}', - output: 'interface U {c:T; a:T; b:T;}', - errors: [ - "Expected interface keys to be in insensitive descending order. 'c' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: 'interface U {b_:T; a:T; b:T;}', - output: 'interface U {b_:T; b:T; a:T;}', - errors: [ - "Expected interface keys to be in insensitive descending order. 'b' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: 'interface U {b_:T; c:T; C:T;}', - output: 'interface U {c:T; b_:T; C:T;}', - errors: [ - "Expected interface keys to be in insensitive descending order. 'c' should be before 'b_'.", - ], - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: 'interface U {$:T; _:T; A:T; a:T;}', - output: 'interface U {A:T; _:T; $:T; a:T;}', - errors: [ - "Expected interface keys to be in insensitive descending order. '_' should be before '$'.", - "Expected interface keys to be in insensitive descending order. 'A' should be before '_'.", - ], - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: "interface U {1:T; 2:T; A:T; '11':T;}", - output: "interface U {A:T; 2:T; 1:T; '11':T;}", - errors: [ - "Expected interface keys to be in insensitive descending order. '2' should be before '1'.", - "Expected interface keys to be in insensitive descending order. 'A' should be before '2'.", - ], - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: "interface U {'#':T; À:T; 'Z':T; è:T;}", - output: "interface U {è:T; À:T; 'Z':T; '#':T;}", - errors: [ - "Expected interface keys to be in insensitive descending order. 'À' should be before '#'.", - "Expected interface keys to be in insensitive descending order. 'è' should be before 'Z'.", - ], - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - - /** - * desc, natural - */ - { - code: 'interface U {a:T; _:T; b:T;}', - output: 'interface U {b:T; _:T; a:T;}', - errors: [ - "Expected interface keys to be in natural descending order. 'b' should be before '_'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: 'interface U {a:T; c:T; b:T;}', - output: 'interface U {c:T; a:T; b:T;}', - errors: [ - "Expected interface keys to be in natural descending order. 'c' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: 'interface U {b_:T; a:T; b:T;}', - output: 'interface U {b_:T; b:T; a:T;}', - errors: [ - "Expected interface keys to be in natural descending order. 'b' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: 'interface U {b_:T; c:T; C:T;}', - output: 'interface U {c:T; b_:T; C:T;}', - errors: [ - "Expected interface keys to be in natural descending order. 'c' should be before 'b_'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: 'interface U {$:T; _:T; A:T; a:T;}', - output: 'interface U {a:T; _:T; A:T; $:T;}', - errors: [ - "Expected interface keys to be in natural descending order. '_' should be before '$'.", - "Expected interface keys to be in natural descending order. 'A' should be before '_'.", - "Expected interface keys to be in natural descending order. 'a' should be before 'A'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: "interface U {1:T; 2:T; A:T; '11':T;}", - output: "interface U {A:T; 2:T; 1:T; '11':T;}", - errors: [ - "Expected interface keys to be in natural descending order. '2' should be before '1'.", - "Expected interface keys to be in natural descending order. 'A' should be before '2'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: "interface U {'#':T; À:T; 'Z':T; è:T;}", - output: "interface U {è:T; À:T; 'Z':T; '#':T;}", - errors: [ - "Expected interface keys to be in natural descending order. 'À' should be before '#'.", - "Expected interface keys to be in natural descending order. 'è' should be before 'Z'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - - /** - * desc, natural, insensitive - */ - { - code: 'interface U {a:T; _:T; b:T;}', - output: 'interface U {b:T; _:T; a:T;}', - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'b' should be before '_'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {a:T; c:T; b:T;}', - output: 'interface U {c:T; a:T; b:T;}', - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'c' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {b_:T; a:T; b:T;}', - output: 'interface U {b_:T; b:T; a:T;}', - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'b' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {b_:T; c:T; C:T;}', - output: 'interface U {c:T; b_:T; C:T;}', - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'c' should be before 'b_'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'interface U {$:T; _:T; A:T; a:T;}', - output: 'interface U {A:T; _:T; $:T; a:T;}', - errors: [ - "Expected interface keys to be in natural insensitive descending order. '_' should be before '$'.", - "Expected interface keys to be in natural insensitive descending order. 'A' should be before '_'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: "interface U {1:T; 2:T; '11':T; A:T;}", - output: "interface U {A:T; 2:T; '11':T; 1:T;}", - errors: [ - "Expected interface keys to be in natural insensitive descending order. '2' should be before '1'.", - "Expected interface keys to be in natural insensitive descending order. '11' should be before '2'.", - "Expected interface keys to be in natural insensitive descending order. 'A' should be before '11'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: "interface U {'#':T; À:T; 'Z':T; è:T;}", - output: "interface U {è:T; À:T; 'Z':T; '#':T;}", - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'À' should be before '#'.", - "Expected interface keys to be in natural insensitive descending order. 'è' should be before 'Z'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - - /** - * desc, natural, insensitive, required - */ - { - code: 'interface U {_:T; a?:T; b:T;}', - output: 'interface U {b:T; a?:T; _:T;}', - errors: [ - "Expected interface keys to be in required first natural insensitive descending order. 'b' should be before 'a'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {b:T; a?:T; _:T;}', - output: 'interface U {b:T; _:T; a?:T;}', - errors: [ - "Expected interface keys to be in required first natural insensitive descending order. '_' should be before 'a'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {b:T; b_:T; a?:T;}', - output: 'interface U {b_:T; b:T; a?:T;}', - errors: [ - "Expected interface keys to be in required first natural insensitive descending order. 'b_' should be before 'b'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {c:T; b_?:T; C:T;}', - output: 'interface U {c:T; C:T; b_?:T;}', - errors: [ - "Expected interface keys to be in required first natural insensitive descending order. 'C' should be before 'b_'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {b_?:T; C:T; c:T;}', - output: 'interface U {C:T; b_?:T; c:T;}', - errors: [ - "Expected interface keys to be in required first natural insensitive descending order. 'C' should be before 'b_'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: 'interface U {_:T; a?:T; $:T; A?:T;}', - output: 'interface U {_:T; $:T; a?:T; A?:T;}', - errors: [ - "Expected interface keys to be in required first natural insensitive descending order. '$' should be before 'a'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: "interface U {2?:T; A:T; 1:T; '11':T;}", - output: "interface U {A:T; 2?:T; 1:T; '11':T;}", - errors: [ - "Expected interface keys to be in required first natural insensitive descending order. 'A' should be before '2'.", - "Expected interface keys to be in required first natural insensitive descending order. '11' should be before '1'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: "interface U {è:T; 'Z':T; '#'?:T; À?:T;}", - output: "interface U {è:T; 'Z':T; À?:T; '#'?:T;}", - errors: [ - "Expected interface keys to be in required first natural insensitive descending order. 'À' should be before '#'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - { - code: "interface U {À?:T; 'Z':T; '#'?:T; è:T;}", - output: "interface U {è:T; 'Z':T; '#'?:T; À?:T;}", - errors: [ - "Expected interface keys to be in required first natural insensitive descending order. 'Z' should be before 'À'.", - "Expected interface keys to be in required first natural insensitive descending order. 'è' should be before '#'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: true }], - ], - }, - - /** - * desc, natural, insensitive, not-required - */ - { - code: 'interface U {_:T; a?:T; b:T;}', - output: 'interface U {b:T; a?:T; _:T;}', - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'a' should be before '_'.", - "Expected interface keys to be in natural insensitive descending order. 'b' should be before 'a'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {a?:T; b:T; _:T;}', - output: 'interface U {b:T; a?:T; _:T;}', - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'b' should be before 'a'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {b:T; b_:T; a?:T;}', - output: 'interface U {b_:T; b:T; a?:T;}', - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'b_' should be before 'b'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {c:T; b_?:T; C:T;}', - output: 'interface U {c:T; C:T; b_?:T;}', - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'C' should be before 'b_'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {b_?:T; C:T; c:T;}', - output: 'interface U {C:T; b_?:T; c:T;}', - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'C' should be before 'b_'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: 'interface U {_:T; a?:T; $:T; A?:T;}', - output: 'interface U {a?:T; _:T; $:T; A?:T;}', - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'a' should be before '_'.", - "Expected interface keys to be in natural insensitive descending order. 'A' should be before '$'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: "interface U {2?:T; A:T; 1:T; '11':T;}", - output: "interface U {A:T; 2?:T; 1:T; '11':T;}", - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'A' should be before '2'.", - "Expected interface keys to be in natural insensitive descending order. '11' should be before '1'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: "interface U {è:T; 'Z':T; '#'?:T; À?:T;}", - output: "interface U {è:T; À?:T; '#'?:T; 'Z':T;}", - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'À' should be before '#'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - { - code: "interface U {À?:T; 'Z':T; '#'?:T; è:T;}", - output: "interface U {è:T; 'Z':T; '#'?:T; À?:T;}", - errors: [ - "Expected interface keys to be in natural insensitive descending order. 'è' should be before '#'.", - ], - optionsSet: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false, requiredFirst: false }], - ], - }, - - /** - * index signatures - */ - { - code: 'interface U { A: T; [skey: string]: T; _: T; }', - output: 'interface U { [skey: string]: T; A: T; _: T; }', - errors: [ - "Expected interface keys to be in ascending order. '[index: skey]' should be before 'A'.", - ], - optionsSet: [[SortingOrder.Ascending]], - }, - { - code: 'interface U { _: T; [skey: string]: T; A: T; }', - output: 'interface U { _: T; A: T; [skey: string]: T; }', - errors: [ - "Expected interface keys to be in descending order. 'A' should be before '[index: skey]'.", - ], - optionsSet: [[SortingOrder.Descending]], - }, -] - -describe('TypeScript', () => { - const ruleTester = new RuleTester(typescript) - - ruleTester.run(name, rule as unknown as Rule.RuleModule, { - valid: processValidTestCase(valid), - invalid: processInvalidTestCase(invalid), - }) -}) diff --git a/tests/rules/interface/interface.spec.ts b/tests/rules/interface/interface.spec.ts new file mode 100644 index 0000000..f579eba --- /dev/null +++ b/tests/rules/interface/interface.spec.ts @@ -0,0 +1,856 @@ +import { Rule, RuleTester } from 'eslint' + +import { name, rule } from '../../../src/rules/interface' +import { + PreInvalidTestCaseObject, + PreValidTestCaseObject, + processInvalidTestCase, + processValidTestCase, + runCases, +} from '../../helpers/cases' +import { typescriptConfig } from '../../helpers/configs' +import { CaseCategory } from '../../helpers/strings' + +const valid: PreValidTestCaseObject = { + /** + * ascending, caseSensitive (default) + */ + ascendingSensitive: [ + 'interface U {a:T;}', + 'interface U {a:T; b:T;}', + 'interface U {_:T; a:T; b:T;}', + 'interface U {a:T; b:T; c:T;}', + 'interface U {a:T; b:T; b_:T;}', + 'interface U {C:T; b_:T; c:T;}', + 'interface U {$:T; A:T; _:T; a:T;}', + "interface U {1:T; '11':T; 2:T; A:T;}", + "interface U {'#':T; 'Z':T; À:T; è:T;}", + /** + * computed + */ + 'interface U {a:T; ["ab"]:T; b:T; c:T;}', + /** + * nested + */ + 'interface U {a:T; b:{x:T; y:T;}; c:T;}', + 'interface U {a:T; b:{x:T; y:T; z:{i:T; j:T;};}; c:T;}', + 'type U = {a:T; b:{x:T; y:T;}; c:T;}', + 'type U = {a:T; b:{x:T; y:T; z:{i:T; j:T;};}; c:T;}', + ], + /** + * ascending, insensitive + */ + ascendingInsensitive: [ + 'interface U {_:T;}', + 'interface U {_:T; a:T; b:T;}', + 'interface U {a:T; b:T; c:T;}', + 'interface U {a:T; b:T; b_:T;}', + 'interface U {b_:T; C:T; c:T;}', + 'interface U {b_:T; c:T; C:T;}', + 'interface U {$:T; _:T; A:T; a:T;}', + "interface U {1:T; '11':T; 2:T; A:T;}", + ], + ascendingNatural: ["interface U {'#':T; 'Z':T; À:T; è:T;}"], + /** + * ascending, natural, insensitive + */ + ascendingInsensitiveNatural: [ + 'interface U {_:T; a:T; b:T;}', + 'interface U {a:T; b:T; c:T;}', + 'interface U {a:T; b:T; b_:T;}', + 'interface U {b_:T; C:T; c:T;}', + 'interface U {b_:T; c:T; C:T;}', + 'interface U {$:T; _:T; A:T; a:T;}', + "interface U {1:T; 2:T; '11':T; A:T;}", + "interface U {'#':T; 'Z':T; À:T; è:T;}", + ], + /** + * ascending, natural, insensitive, required first + */ + ascendingInsensitiveNaturalRequired: [ + 'interface U {_:T; b:T; a?:T;}', + 'interface U {a:T; c:T; b?:T;}', + 'interface U {b:T; b_:T; a?:T;}', + 'interface U {C:T; c:T; b_?:T;}', + 'interface U {c:T; C:T; b_?:T;}', + 'interface U {$:T; _:T; A?:T; a?:T;}', + "interface U {1:T; '11':T; A:T; 2?:T;}", + "interface U {'Z':T; À:T; è:T; '#'?:T;}", + ], + /** + * ascending, required first + */ + ascendingRequired: [ + 'interface U {_:T; b:T; a?:T;}', + 'interface U {a:T; c:T; b?:T;}', + 'interface U {b:T; b_:T; a?:T;}', + 'interface U {C:T; c:T; b_?:T;}', + 'interface U {1:T; 11:T; 9:T; 111?:T;}', + 'interface U {$:T; _:T; A?:T; a?:T;}', + "interface U {10:T; '11':T; 1?:T; 12?:T; 2?:T;}", + "interface U {'Z':T; À:T; è:T; '#'?:T;}", + ], + /** + * ascending, natural, insensitive, not-required first + */ + ascendingInsensitiveNaturalNotRequired: [ + 'interface U {_:T; a?:T; b:T;}', + 'interface U {a:T; b?:T; c:T;}', + 'interface U {a?:T; b:T; b_:T;}', + 'interface U {b_?:T; C:T; c:T;}', + 'interface U {b_?:T; c:T; C:T;}', + 'interface U {$:T; _:T; A?:T; a?:T;}', + "interface U {1:T; 2?:T; '11':T; A:T;}", + "interface U {'#'?:T; 'Z':T; À:T; è:T;}", + ], + /** + * descending + */ + descending: [ + 'interface U {b:T; a:T; _:T;}', + 'interface U {c:T; b:T; a:T;}', + 'interface U {b_:T; b:T; a:T;}', + 'interface U {c:T; b_:T; C:T;}', + 'interface U {a:T; _:T; A:T; $:T;}', + "interface U {A:T; 2:T; '11':T; 1:T;}", + "interface U {è:T; À:T; 'Z':T; '#':T;}", + ], + /** + * descending, insensitive, non-natural + */ + descendingInsensitiveNonNatural: [ + 'interface U {b:T; a:T; _:T;}', + 'interface U {c:T; b:T; a:T;}', + 'interface U {b_:T; b:T; a:T;}', + 'interface U {c:T; C:T; b_:T;}', + 'interface U {C:T; c:T; b_:T;}', + 'interface U {a:T; A:T; _:T; $:T;}', + "interface U {A:T; 2:T; '11':T; 1:T;}", + "interface U {è:T; À:T; 'Z':T; '#':T;}", + ], + /** + * descending, case-sensitive, natural + */ + descendingSensitiveNatural: [ + 'interface U {b:T; a:T; _:T;}', + 'interface U {_:T;}', + 'interface U {c:T; b:T; a:T;}', + 'interface U {b_:T; b:T; a:T;}', + 'interface U {c:T; b_:T; C:T;}', + 'interface U {a:T; A:T; _:T; $:T;}', + "interface U {A:T; '11':T; 2:T; 1:T;}", + "interface U {è:T; À:T; 'Z':T; '#':T;}", + ], + /** + * descending, natural, insensitive + */ + descendingInsensitiveNatural: [ + 'interface U {b:T; a:T; _:T;}', + 'interface U {c:T; b:T; a:T;}', + 'interface U {b_:T; b:T; a:T;}', + 'interface U {c:T; C:T; b_:T;}', + 'interface U {C:T; c:T; b_:T;}', + 'interface U {a:T; A:T; _:T; $:T;}', + "interface U {A:T; '11':T; 2:T; 1:T;}", + "interface U {è:T; À:T; 'Z':T; '#':T;}", + ], + /** + * descending, natural, insensitive, required first + */ + descendingInsensitiveNaturalRequired: [ + 'interface U {b:T; _:T; a?:T;}', + 'interface U {c:T; a:T; b?:T;}', + 'interface U {b_:T; b:T; a?:T;}', + 'interface U {c:T; C:T; b_?:T;}', + 'interface U {C:T; c:T; b_?:T;}', + 'interface U {_:T; $:T; a?:T; A?:T;}', + "interface U { A:T; '11':T; 1:T; 2?:T;}", + "interface U {è:T; 'Z':T; À?:T; '#'?:T;}", + ], + /** + * descending, required first + */ + descendingRequired: [ + 'interface U {b:T; _:T; a?:T;}', + 'interface U {c:T; a:T; b?:T;}', + 'interface U {b_:T; b:T; a?:T;}', + 'interface U {c:T; C:T; b_?:T;}', + 'interface U {9:T; 11:T; 1:T; 111?:T;}', + 'interface U {_:T; $:T; a?:T; A?:T;}', + "interface U {'11':T; 10:T; 2?:T; 12?:T; 1?:T;}", + "interface U {è:T; À:T; 'Z':T; '#'?:T;}", + ], + /** + * descending, natural, insensitive, not-required first + */ + descendingInsensitiveNaturalNotRequired: [ + 'interface U {b:T; a?:T; _:T;}', + 'interface U {c:T; b?:T; a:T;}', + 'interface U {b_:T; b:T; a?:T;}', + 'interface U {c:T; C:T; b_?:T;}', + 'interface U {C:T; c:T; b_?:T;}', + 'interface U {a?:T; A?:T; _:T; $:T;}', + "interface U {A:T; '11':T; 2?:T; 1:T;}", + "interface U {è:T; À:T; 'Z':T; '#'?:T;}", + ], + /** + * index signatures + */ + ascendingOnly: [ + `interface U { [nkey: number]: T; [skey: string]: T; $: T; A: T; _: T; a: T; }`, + ], + descendingOnly: [ + `interface U { a: T; _: T; A: T; $: T; [skey: string]: T; [nkey: number]: T; }`, + ], +} + +const invalid: PreInvalidTestCaseObject = { + /** + * index signatures + */ + ascendingOnly: [ + { + code: 'interface U { A: T; [skey: string]: T; _: T; }', + output: 'interface U { [skey: string]: T; A: T; _: T; }', + errors: [ + ['A', '_'], + ['[index: skey]', 'A'], + ], + }, + ], + /** + * ascending sensitive (default) + */ + ascendingSensitive: [ + { + code: 'interface U {b:T; a:T;}', + output: 'interface U {a:T; b:T;}', + errors: [['b'], ['a', 'b']], + }, + { + code: 'interface U {b_:T; a:T; b:T;}', + output: 'interface U {a:T; b:T; b_:T;}', + errors: [['b_'], ['b', 'b_']], + }, + { + code: 'interface U {b_:T; c:T; C:T;}', + output: 'interface U {C:T; b_:T; c:T;}', + errors: [['c'], ['C', 'b_']], + }, + { + code: "interface U {1:T; 2:T; A:T; '11':T;}", + output: "interface U {1:T; '11':T; 2:T; A:T;}", + errors: [['A'], ['11', '2']], + }, + { + code: 'interface U {a:T; _:T; b:T;}', + output: 'interface U {_:T; a:T; b:T;}', + errors: [ + ['a', 'b'], + ['_', 'a'], + ], + }, + { + code: 'interface U {a:T; c:T; b:T;}', + output: 'interface U {a:T; b:T; c:T;}', + errors: [['c'], ['b', 'c']], + }, + { + code: 'interface U {$:T; _:T; A:T; a:T;}', + output: 'interface U {$:T; A:T; _:T; a:T;}', + errors: [ + ['_', 'a'], + ['A', '_'], + ], + }, + { + code: "interface U {'#':T; À:T; 'Z':T; è:T;}", + output: "interface U {'#':T; 'Z':T; À:T; è:T;}", + errors: [ + ['À', 'è'], + ['Z', 'À'], + ], + }, + /** + * methods + */ + { + code: "interface U {1:T; 2:T; A():T; '11':T;}", + output: "interface U {1:T; '11':T; 2:T; A():T;}", + errors: [['A'], ['11', '2']], + }, + { + code: "interface U {'#'():T; À():T; 'Z':T; è:T;}", + output: "interface U {'#'():T; 'Z':T; À():T; è:T;}", + errors: [ + ['À', 'è'], + ['Z', 'À'], + ], + }, + /** + * not ignore simple computed properties. + */ + { + code: 'interface U {a:T; b:T; ["a"]:T; c:T;}', + output: 'interface U {a:T; ["a"]:T; b:T; c:T;}', + errors: [ + ['b', 'c'], + ['a', 'b'], + ], + }, + /** + * nested + */ + // TODO sorted nested interface getting overwritten by value of node from parent sort + { + code: 'interface U {a:T; c:{y:T; x:T;}, b:T;}', + output: 'interface U {a:T; b:T; c:{y:T; x:T;};}', + errors: [2, ['c'], 2, ['y'], ['x', 'y'], ['b', 'c']], + omitInferredErrorCount: true, + }, + { + code: 'type U = {a:T; c:{y:T; x:T;}, b:T;}', + output: 'type U = {a:T; b:T; c:{y:T; x:T;};}', + errors: [2, ['c'], 2, ['y'], ['x', 'y'], ['b', 'c']], + omitInferredErrorCount: true, + }, + ], + /** + * ascending, insensitive + */ + ascendingInsensitive: [ + { + code: 'interface U {a:T; _:T; b:T;}', + output: 'interface U {_:T; a:T; b:T;}', + errors: [ + ['a', 'b'], + ['_', 'a'], + ], + }, + { + code: 'interface U {a:T; c:T; b:T;}', + output: 'interface U {a:T; b:T; c:T;}', + errors: [['c'], ['b', 'c']], + }, + { + code: 'interface U {b_:T; a:T; b:T;}', + output: 'interface U {a:T; b:T; b_:T;}', + errors: [['b_'], ['b', 'b_']], + }, + { + code: 'interface U {$:T; A:T; _:T; a:T;}', + output: 'interface U {$:T; _:T; A:T; a:T;}', + errors: [ + ['A', 'a'], + ['_', 'A'], + ], + }, + { + code: "interface U {1:T; 2:T; A:T; '11':T;}", + output: "interface U {1:T; '11':T; 2:T; A:T;}", + errors: [['A'], ['11', '2']], + }, + { + code: "interface U {'#':T; À:T; 'Z':T; è:T;}", + output: "interface U {'#':T; 'Z':T; À:T; è:T;}", + errors: [ + ['À', 'è'], + ['Z', 'À'], + ], + }, + ], + // /** + // * ascending, natural + // */ + ascendingNatural: [ + { + code: 'interface U {a:T; _:T; b:T;}', + output: 'interface U {_:T; a:T; b:T;}', + errors: [ + ['a', 'b'], + ['_', 'a'], + ], + }, + { + code: 'interface U {a:T; c:T; b:T;}', + output: 'interface U {a:T; b:T; c:T;}', + errors: [['c'], ['b', 'c']], + }, + { + code: 'interface U {b_:T; a:T; b:T;}', + output: 'interface U {a:T; b:T; b_:T;}', + errors: [['b_'], ['b', 'b_']], + }, + { + code: 'interface U {b_:T; c:T; C:T;}', + output: 'interface U {C:T; b_:T; c:T;}', + errors: [['c'], ['C', 'b_']], + }, + { + code: 'interface U {$:T; A:T; _:T; a:T;}', + output: 'interface U {$:T; _:T; A:T; a:T;}', + errors: [ + ['A', 'a'], + ['_', 'A'], + ], + }, + { + code: "interface U {1:T; 2:T; A:T; '11':T;}", + output: "interface U {1:T; 2:T; '11':T; A:T;}", + errors: [['A'], ['11', 'A']], + }, + { + code: "interface U {'#':T; À:T; 'Z':T; è:T;}", + output: "interface U {'#':T; 'Z':T; À:T; è:T;}", + errors: [ + ['À', 'è'], + ['Z', 'À'], + ], + }, + ], + /** + * ascending, natural, insensitive + */ + ascendingInsensitiveNatural: [ + { + code: 'interface U {a:T; _:T; b:T;}', + output: 'interface U {_:T; a:T; b:T;}', + errors: [ + ['a', 'b'], + ['_', 'a'], + ], + }, + { + code: 'interface U {a:T; c:T; b:T;}', + output: 'interface U {a:T; b:T; c:T;}', + errors: [['c'], ['b', 'c']], + }, + { + code: 'interface U {b_:T; a:T; b:T;}', + output: 'interface U {a:T; b:T; b_:T;}', + errors: [['b_'], ['b', 'b_']], + }, + { + code: 'interface U {$:T; A:T; _:T; a:T;}', + output: 'interface U {$:T; _:T; A:T; a:T;}', + errors: [ + ['A', 'a'], + ['_', 'A'], + ], + }, + { + code: "interface U {1:T; '11':T; 2:T; A:T;}", + output: "interface U {1:T; 2:T; '11':T; A:T;}", + errors: [ + ['11', 'A'], + ['2', '11'], + ], + }, + { + code: "interface U {'#':T; À:T; 'Z':T; è:T;}", + output: "interface U {'#':T; 'Z':T; À:T; è:T;}", + errors: [ + ['À', 'è'], + ['Z', 'À'], + ], + }, + ], + /** + * ascending, natural, insensitive, required first + */ + ascendingInsensitiveNaturalRequired: [ + { + code: 'interface U {_:T; a?:T; b:T;}', + output: 'interface U {_:T; b:T; a?:T;}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'interface U {a:T; b?:T; c:T;}', + output: 'interface U {a:T; c:T; b?:T;}', + errors: [['b'], ['c', 'b']], + }, + { + code: 'interface U {b:T; a?:T; b_:T;}', + output: 'interface U {b:T; b_:T; a?:T;}', + errors: [['a'], ['b_', 'a']], + }, + { + code: 'interface U {C:T; b_?:T; c:T;}', + output: 'interface U {C:T; c:T; b_?:T;}', + errors: [['b_'], ['c', 'b_']], + }, + { + code: 'interface U {$:T; A?:T; _:T; a?:T;}', + output: 'interface U {$:T; _:T; A?:T; a?:T;}', + errors: [ + ['A', 'a'], + ['_', 'A'], + ], + }, + { + code: "interface U {1:T; '11':T; 2?:T; A:T;}", + output: "interface U {1:T; '11':T; A:T; 2?:T;}", + errors: [['2'], ['A', '2']], + }, + { + code: "interface U {'Z':T; À:T; '#'?:T; è:T;}", + output: "interface U {'Z':T; À:T; è:T; '#'?:T;}", + errors: [['#'], ['è', '#']], + }, + ], + /** + * ascending, natural, insensitive, not-required first + */ + ascendingInsensitiveNaturalNotRequired: [ + { + code: 'interface U {_:T; b:T; a?:T;}', + output: 'interface U {_:T; a?:T; b:T;}', + errors: [['b'], ['a', 'b']], + }, + { + code: 'interface U {b?:T; a:T; c:T;}', + output: 'interface U {a:T; b?:T; c:T;}', + errors: [ + ['b', 'c'], + ['a', 'b'], + ], + }, + { + code: 'interface U {b:T; a?:T; b_:T;}', + output: 'interface U {a?:T; b:T; b_:T;}', + errors: [ + ['b', 'b_'], + ['a', 'b'], + ], + }, + { + code: 'interface U {C:T; b_?:T; c:T;}', + output: 'interface U {b_?:T; C:T; c:T;}', + errors: [ + ['C', 'c'], + ['b_', 'C'], + ], + }, + { + code: 'interface U {$:T; A?:T; _:T; a?:T;}', + output: 'interface U {$:T; _:T; A?:T; a?:T;}', + errors: [ + ['A', 'a'], + ['_', 'A'], + ], + }, + { + code: "interface U {1:T; '11':T; 2?:T; A:T;}", + output: "interface U {1:T; 2?:T; '11':T; A:T;}", + errors: [ + ['11', 'A'], + ['2', '11'], + ], + }, + { + code: "interface U {'Z':T; À:T; '#'?:T; è:T;}", + output: "interface U {'#'?:T; 'Z':T; À:T; è:T;}", + errors: [ + ['À', 'è'], + ['#', 'Z'], + ], + }, + ], + /** + * descending + */ + descendingOnly: [ + { + code: 'interface U {a:T; _:T; b:T;}', + output: 'interface U {b:T; a:T; _:T;}', + errors: [['_'], ['b', 'a']], + }, + { + code: 'interface U {a:T; c:T; b:T;}', + output: 'interface U {c:T; b:T; a:T;}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'interface U {b_:T; a:T; b:T;}', + output: 'interface U {b_:T; b:T; a:T;}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'interface U {b_:T; c:T; C:T;}', + output: 'interface U {c:T; b_:T; C:T;}', + errors: [ + ['b_', 'C'], + ['c', 'b_'], + ], + }, + { + code: 'interface U {$:T; _:T; A:T; a:T;}', + output: 'interface U {a:T; _:T; A:T; $:T;}', + errors: [['$'], ['a', '_']], + }, + { + code: "interface U {1:T; 2:T; A:T; '11':T;}", + output: "interface U {A:T; 2:T; '11':T; 1:T;}", + errors: [['1'], ['A', '2'], ['11', '1']], + }, + { + code: "interface U {'#':T; À:T; 'Z':T; è:T;}", + output: "interface U {è:T; À:T; 'Z':T; '#':T;}", + errors: [['#'], ['è', 'À']], + }, + { + code: 'interface U { _: T; [skey: string]: T; A: T; }', + output: 'interface U { _: T; A: T; [skey: string]: T; }', + errors: [['[index: skey]'], ['A', '[index: skey]']], + }, + ], + /** + * descending, insensitive + */ + descendingInsensitive: [ + { + code: 'interface U {a:T; _:T; b:T;}', + output: 'interface U {b:T; a:T; _:T;}', + errors: [['_'], ['b', 'a']], + }, + { + code: 'interface U {a:T; c:T; b:T;}', + output: 'interface U {c:T; b:T; a:T;}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'interface U {b_:T; a:T; b:T;}', + output: 'interface U {b_:T; b:T; a:T;}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'interface U {b_:T; c:T; C:T;}', + output: 'interface U {c:T; C:T; b_:T;}', + errors: [['b_'], ['C', 'b_']], + }, + { + code: 'interface U {$:T; _:T; A:T; a:T;}', + output: 'interface U {A:T; a:T; _:T; $:T;}', + errors: [['$'], ['_', '$'], ['a', '_']], + }, + { + code: "interface U {1:T; 2:T; A:T; '11':T;}", + output: "interface U {A:T; 2:T; '11':T; 1:T;}", + errors: [['1'], ['A', '2'], ['11', '1']], + }, + { + code: "interface U {'#':T; À:T; 'Z':T; è:T;}", + output: "interface U {è:T; À:T; 'Z':T; '#':T;}", + errors: [['#'], ['è', 'À']], + }, + ], + /** + * descending, natural + */ + descendingNatural: [ + { + code: 'interface U {a:T; _:T; b:T;}', + output: 'interface U {b:T; a:T; _:T;}', + errors: [['_'], ['b', 'a']], + }, + { + code: 'interface U {a:T; c:T; b:T;}', + output: 'interface U {c:T; b:T; a:T;}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'interface U {b_:T; a:T; b:T;}', + output: 'interface U {b_:T; b:T; a:T;}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'interface U {b_:T; c:T; C:T;}', + output: 'interface U {c:T; b_:T; C:T;}', + errors: [ + ['b_', 'C'], + ['c', 'b_'], + ], + }, + { + code: 'interface U {$:T; _:T; A:T; a:T;}', + output: 'interface U {a:T; A:T; _:T; $:T;}', + errors: [['$'], ['_', '$'], ['A', '_'], ['a', 'A']], + }, + { + code: "interface U {1:T; 2:T; A:T; '11':T;}", + output: "interface U {A:T; '11':T; 2:T; 1:T;}", + errors: [['1'], ['2', '1'], ['11', '2']], + }, + { + code: "interface U {'#':T; À:T; 'Z':T; è:T;}", + output: "interface U {è:T; À:T; 'Z':T; '#':T;}", + errors: [['#'], ['è', 'À']], + }, + ], + // /** + // * descending, natural, insensitive + // */ + descendingInsensitiveNatural: [ + { + code: 'interface U {a:T; _:T; b:T;}', + output: 'interface U {b:T; a:T; _:T;}', + errors: [['_'], ['b', 'a']], + }, + { + code: 'interface U {a:T; c:T; b:T;}', + output: 'interface U {c:T; b:T; a:T;}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'interface U {b_:T; a:T; b:T;}', + output: 'interface U {b_:T; b:T; a:T;}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'interface U {b_:T; c:T; C:T;}', + output: 'interface U {c:T; C:T; b_:T;}', + errors: [['b_'], ['C', 'b_']], + }, + { + code: 'interface U {$:T; _:T; A:T; a:T;}', + output: 'interface U {A:T; a:T; _:T; $:T;}', + errors: [['$'], ['_', '$'], ['a', '_']], + }, + { + code: "interface U {1:T; 2:T; '11':T; A:T;}", + output: "interface U {A:T; '11':T; 2:T; 1:T;}", + errors: [['1'], ['2', '1'], ['11', '2'], ['A', '11']], + }, + { + code: "interface U {'#':T; À:T; 'Z':T; è:T;}", + output: "interface U {è:T; À:T; 'Z':T; '#':T;}", + errors: [['#'], ['è', 'À']], + }, + ], + /** + * descending, natural, insensitive, required first + */ + descendingInsensitiveNaturalRequired: [ + { + code: 'interface U {_:T; a?:T; b:T;}', + output: 'interface U {b:T; _:T; a?:T;}', + errors: [['a'], ['b', '_']], + }, + { + code: 'interface U {b:T; a?:T; _:T;}', + output: 'interface U {b:T; _:T; a?:T;}', + errors: [['a'], ['_', 'a']], + }, + { + code: 'interface U {b:T; b_:T; a?:T;}', + output: 'interface U {b_:T; b:T; a?:T;}', + errors: [ + ['b', 'a'], + ['b_', 'b'], + ], + }, + { + code: 'interface U {c:T; b_?:T; C:T;}', + output: 'interface U {c:T; C:T; b_?:T;}', + errors: [['b_'], ['C', 'b_']], + }, + { + code: 'interface U {b_?:T; C:T; c:T;}', + output: 'interface U {C:T; c:T; b_?:T;}', + errors: [['b_'], ['c', 'b_']], + }, + { + code: 'interface U {_:T; a?:T; $:T; A?:T;}', + output: 'interface U {_:T; $:T; a?:T; A?:T;}', + errors: [ + ['a', 'A'], + ['$', 'a'], + ], + }, + { + code: "interface U {2?:T; A:T; 1:T; '11':T;}", + output: "interface U {A:T; '11':T; 1:T; 2?:T;}", + errors: [['2'], ['A', '11'], ['11', '1']], + }, + { + code: "interface U {è:T; 'Z':T; '#'?:T; À?:T;}", + output: "interface U {è:T; 'Z':T; À?:T; '#'?:T;}", + errors: [['#'], ['À', '#']], + }, + { + code: "interface U {À?:T; 'Z':T; '#'?:T; è:T;}", + output: "interface U {è:T; 'Z':T; À?:T; '#'?:T;}", + errors: [['À', '#'], ['#'], ['è', 'Z']], + }, + ], + /** + * descending, natural, insensitive, not-required first + */ + descendingInsensitiveNaturalNotRequired: [ + { + code: 'interface U {_:T; a?:T; b:T;}', + output: 'interface U {b:T; a?:T; _:T;}', + errors: [['_'], ['b', 'a']], + }, + { + code: 'interface U {a?:T; b:T; _:T;}', + output: 'interface U {b:T; a?:T; _:T;}', + errors: [ + ['a', '_'], + ['b', 'a'], + ], + }, + { + code: 'interface U {b:T; b_:T; a?:T;}', + output: 'interface U {b_:T; b:T; a?:T;}', + errors: [ + ['b', 'a'], + ['b_', 'b'], + ], + }, + { + code: 'interface U {c:T; b_?:T; C:T;}', + output: 'interface U {c:T; C:T; b_?:T;}', + errors: [['b_'], ['C', 'b_']], + }, + { + code: 'interface U {b_?:T; C:T; c:T;}', + output: 'interface U {C:T; c:T; b_?:T;}', + errors: [['b_'], ['c', 'b_']], + }, + { + code: 'interface U {_:T; a?:T; $:T; A?:T;}', + output: 'interface U {a?:T; A?:T; _:T; $:T;}', + errors: [['_', '$'], ['a', 'A'], ['$'], ['A', '_']], + }, + { + code: "interface U {2?:T; A:T; 1:T; '11':T;}", + output: "interface U {A:T; '11':T; 2?:T; 1:T;}", + errors: [['2', '1'], ['A', '11'], ['1'], ['11', '2']], + }, + { + code: "interface U {è:T; 'Z':T; '#'?:T; À?:T;}", + output: "interface U {è:T; À?:T; 'Z':T; '#'?:T;}", + errors: [['#'], ['À', 'Z']], + }, + { + code: "interface U {À?:T; 'Z':T; '#'?:T; è:T;}", + output: "interface U {è:T; À?:T; 'Z':T; '#'?:T;}", + errors: [['#'], ['è', 'À']], + }, + ], +} + +describe('TypeScript', () => { + const ruleTester = new RuleTester(typescriptConfig) + + ruleTester.run(name, rule as unknown as Rule.RuleModule, { + valid: processValidTestCase(valid, true), + invalid: processInvalidTestCase(invalid, CaseCategory.Interface, true), + }) +}) + +runCases({ name, rule: rule as unknown as Rule.RuleModule, typescriptConfig }, valid, invalid, { + category: CaseCategory.Interface, + withRequiredFirstOption: true, +}) diff --git a/tests/rules/string-enum.spec.ts b/tests/rules/string-enum.spec.ts deleted file mode 100644 index 6f15398..0000000 --- a/tests/rules/string-enum.spec.ts +++ /dev/null @@ -1,859 +0,0 @@ -import { Rule, RuleTester } from 'eslint' - -import { rule, name, Options } from 'rules/string-enum' -import { SortingOrder } from 'common/options' -import { typescript } from '../helpers/configs' -import { - InvalidTestCase, - processInvalidTestCase, - processValidTestCase, - ValidTestCase, -} from '../helpers/util' - -const valid: readonly ValidTestCase[] = [ - /** - * ignores - */ - { code: 'enum U {c, b, a}', optionsSet: [[]] }, - { code: 'enum U {c=a(), b, a}', optionsSet: [[]] }, - { code: 'enum U {c=0, b, a}', optionsSet: [[]] }, - { code: 'enum U {c=3, b, a}', optionsSet: [[]] }, - { code: 'enum U {c=1<<1, b, a}', optionsSet: [[]] }, - { code: 'enum U {c=M|N, b, a}', optionsSet: [[]] }, - { code: 'enum U {c="123".length, b, a}', optionsSet: [[]] }, - { code: 'enum U {c=0, b="b", a}', optionsSet: [[]] }, - { code: 'const enum U {A=1, B=A*2}', optionsSet: [[]] }, - - /** - * default (asc) - */ - { - code: 'enum U {_="a", a="b", b="c"}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {a="a", b="b", c="c"}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {a="a", b="b", b_="c"}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {C="a", b_="b", c="c"}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {$="a", A="b", _="c", a="d"}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: "enum U {'#'='a', 'Z'='b', À='c', è='d'}", - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - - { - code: 'enum U {_="T", a="T", b="T"}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {a="T", b="T", c="T"}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {a="T", b="T", b_="T"}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {C="T", b_="T", c="T"}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {$="T", A="T", _="T", a="T"}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - - /** - * computed - */ - { - code: '{a="T", ["aa"]="T", b="T", c="T"}', - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - - /** - * asc, insensitive - */ - { - code: 'enum U {_="T", a="T", b="T"}', - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'enum U {a="T", b="T", c="T"}', - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'enum U {a="T", b="T", b_="T"}', - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'enum U {b_="T", C="T", c="T"}', - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'enum U {b_="T", c="T", C="T"}', - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'enum U {$="T", _="T", A="T", a="T"}', - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - - /** - * asc, natural, insensitive - */ - { - code: 'enum U {_="T", a="T", b="T"}', - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {a="T", b="T", c="T"}', - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {a="T", b="T", b_="T"}', - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {b_="T", C="T", c="T"}', - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {b_="T", c="T", C="T"}', - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {$="T", _="T", A="T", a="T"}', - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - - /** - * desc - */ - { code: 'enum U {b="T", a="T", _="T"}', optionsSet: [[SortingOrder.Descending]] }, - { code: 'enum U {c="T", b="T", a="T"}', optionsSet: [[SortingOrder.Descending]] }, - { code: 'enum U {b_="T", b="T", a="T"}', optionsSet: [[SortingOrder.Descending]] }, - { code: 'enum U {c="T", b_="T", C="T"}', optionsSet: [[SortingOrder.Descending]] }, - { code: 'enum U {a="T", _="T", A="T", $="T"}', optionsSet: [[SortingOrder.Descending]] }, - { code: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", optionsSet: [[SortingOrder.Descending]] }, - - /** - * desc, insensitive - */ - { - code: 'enum U {b="T", a="T", _="T"}', - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: 'enum U {c="T", b="T", a="T"}', - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: 'enum U {b_="T", b="T", a="T"}', - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: 'enum U {c="T", C="T", b_="T"}', - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: 'enum U {C="T", c="T", b_="T"}', - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: 'enum U {a="T", A="T", _="T", $="T"}', - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - - /** - * desc, natural - */ - { - code: 'enum U {b="T", a="T", _="T"}', - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: 'enum U {c="T", b="T", a="T"}', - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: 'enum U {b_="T", b="T", a="T"}', - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: 'enum U {c="T", b_="T", C="T"}', - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: 'enum U {a="T", A="T", _="T", $="T"}', - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - - /** - * desc, natural, insensitive - */ - { - code: 'enum U {b="T", a="T", _="T"}', - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {c="T", b="T", a="T"}', - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {b_="T", b="T", a="T"}', - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {c="T", C="T", b_="T"}', - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {C="T", c="T", b_="T"}', - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {a="T", A="T", _="T", $="T"}', - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, -] - -const invalid: readonly InvalidTestCase[] = [ - /** - * default (asc) - */ - { - code: 'enum U {a="a", _="b", b="c"}', - output: 'enum U {_="b", a="a", b="c"}', - errors: ["Expected string enum members to be in ascending order. '_' should be before 'a'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {a="T", c="T", b="T"}', - output: 'enum U {a="T", b="T", c="T"}', - errors: ["Expected string enum members to be in ascending order. 'b' should be before 'c'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {b_="T", a="T", b="T"}', - output: 'enum U {a="T", b_="T", b="T"}', - errors: ["Expected string enum members to be in ascending order. 'a' should be before 'b_'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {b_="T", c="T", C="T"}', - output: 'enum U {C="T", c="T", b_="T",}', - errors: ["Expected string enum members to be in ascending order. 'C' should be before 'c'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {$="T", _="T", A="T", a="T"}', - output: 'enum U {$="T", A="T", _="T", a="T"}', - errors: ["Expected string enum members to be in ascending order. 'A' should be before '_'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", - output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: ["Expected string enum members to be in ascending order. 'Z' should be before 'À'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - - /** - * not ignore simple computed properties. - */ - { - code: 'enum U {a="T", b="T", ["aa"]="T", c="T"}', - output: 'enum U {a="T", ["aa"]="T", b="T", c="T"}', - errors: ["Expected string enum members to be in ascending order. 'aa' should be before 'b'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - - /** - * asc - */ - { - code: 'enum U {a="T", _="T", b="T"}', - output: 'enum U {_="T", a="T", b="T"}', - errors: ["Expected string enum members to be in ascending order. '_' should be before 'a'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {a="T", c="T", b="T"}', - output: 'enum U {a="T", b="T", c="T"}', - errors: ["Expected string enum members to be in ascending order. 'b' should be before 'c'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {b_="T", a="T", b="T"}', - output: 'enum U {a="T", b_="T", b="T"}', - errors: ["Expected string enum members to be in ascending order. 'a' should be before 'b_'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {b_="T", c="T", C="T"}', - output: 'enum U {C="T", c="T", b_="T",}', - errors: ["Expected string enum members to be in ascending order. 'C' should be before 'c'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: 'enum U {$="T", _="T", A="T", a="T"}', - output: 'enum U {$="T", A="T", _="T", a="T"}', - errors: ["Expected string enum members to be in ascending order. 'A' should be before '_'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - { - code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", - output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: ["Expected string enum members to be in ascending order. 'Z' should be before 'À'."], - optionsSet: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], - ], - }, - - /** - * asc, insensitive - */ - { - code: 'enum U {a="T", _="T", b="T"}', - output: 'enum U {_="T", a="T", b="T"}', - errors: [ - "Expected string enum members to be in insensitive ascending order. '_' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'enum U {a="T", c="T", b="T"}', - output: 'enum U {a="T", b="T", c="T"}', - errors: [ - "Expected string enum members to be in insensitive ascending order. 'b' should be before 'c'.", - ], - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'enum U {b_="T", a="T", b="T"}', - output: 'enum U {a="T", b_="T", b="T"}', - errors: [ - "Expected string enum members to be in insensitive ascending order. 'a' should be before 'b_'.", - ], - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: 'enum U {$="T", A="T", _="T", a="T"}', - output: 'enum U {$="T", _="T", A="T", a="T"}', - errors: [ - "Expected string enum members to be in insensitive ascending order. '_' should be before 'A'.", - ], - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - { - code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", - output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: [ - "Expected string enum members to be in insensitive ascending order. 'Z' should be before 'À'.", - ], - optionsSet: [[SortingOrder.Ascending, { caseSensitive: false }]], - }, - - /** - * asc, natural - */ - { - code: 'enum U {a="T", _="T", b="T"}', - output: 'enum U {_="T", a="T", b="T"}', - errors: [ - "Expected string enum members to be in natural ascending order. '_' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - { - code: 'enum U {a="T", c="T", b="T"}', - output: 'enum U {a="T", b="T", c="T"}', - errors: [ - "Expected string enum members to be in natural ascending order. 'b' should be before 'c'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - { - code: 'enum U {b_="T", a="T", b="T"}', - output: 'enum U {a="T", b_="T", b="T"}', - errors: [ - "Expected string enum members to be in natural ascending order. 'a' should be before 'b_'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - { - code: 'enum U {b_="T", c="T", C="T"}', - output: 'enum U {C="T", c="T", b_="T",}', - errors: [ - "Expected string enum members to be in natural ascending order. 'C' should be before 'c'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - { - code: 'enum U {$="T", A="T", _="T", a="T"}', - output: 'enum U {$="T", _="T", A="T", a="T"}', - errors: [ - "Expected string enum members to be in natural ascending order. '_' should be before 'A'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - { - code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", - output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: [ - "Expected string enum members to be in natural ascending order. 'Z' should be before 'À'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true }]], - }, - - /** - * asc, natural, insensitive - */ - { - code: 'enum U {a="T", _="T", b="T"}', - output: 'enum U {_="T", a="T", b="T"}', - errors: [ - "Expected string enum members to be in natural insensitive ascending order. '_' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {a="T", c="T", b="T"}', - output: 'enum U {a="T", b="T", c="T"}', - errors: [ - "Expected string enum members to be in natural insensitive ascending order. 'b' should be before 'c'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {b_="T", a="T", b="T"}', - output: 'enum U {a="T", b_="T", b="T"}', - errors: [ - "Expected string enum members to be in natural insensitive ascending order. 'a' should be before 'b_'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {$="T", A="T", _="T", a="T"}', - output: 'enum U {$="T", _="T", A="T", a="T"}', - errors: [ - "Expected string enum members to be in natural insensitive ascending order. '_' should be before 'A'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - { - code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", - output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: [ - "Expected string enum members to be in natural insensitive ascending order. 'Z' should be before 'À'.", - ], - optionsSet: [[SortingOrder.Ascending, { natural: true, caseSensitive: false }]], - }, - - /** - * desc - */ - { - code: 'enum U {a="T", _="T", b="T"}', - output: 'enum U {b="T", _="T", a="T",}', - errors: ["Expected string enum members to be in descending order. 'b' should be before '_'."], - optionsSet: [[SortingOrder.Descending]], - }, - { - code: 'enum U {a="T", c="T", b="T"}', - output: 'enum U {c="T", a="T", b="T"}', - errors: ["Expected string enum members to be in descending order. 'c' should be before 'a'."], - optionsSet: [[SortingOrder.Descending]], - }, - { - code: 'enum U {b_="T", a="T", b="T"}', - output: 'enum U {b_="T", b="T", a="T"}', - errors: ["Expected string enum members to be in descending order. 'b' should be before 'a'."], - optionsSet: [[SortingOrder.Descending]], - }, - { - code: 'enum U {b_="T", c="T", C="T"}', - output: 'enum U {c="T", b_="T", C="T"}', - errors: ["Expected string enum members to be in descending order. 'c' should be before 'b_'."], - optionsSet: [[SortingOrder.Descending]], - }, - { - code: 'enum U {$="T", _="T", A="T", a="T"}', - output: 'enum U {a="T", _="T", A="T", $="T"}', - errors: [ - "Expected string enum members to be in descending order. '_' should be before '$'.", - "Expected string enum members to be in descending order. 'a' should be before 'A'.", - ], - optionsSet: [[SortingOrder.Descending]], - }, - { - code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", - output: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", - errors: [ - "Expected string enum members to be in descending order. 'À' should be before '#'.", - "Expected string enum members to be in descending order. 'è' should be before 'Z'.", - ], - optionsSet: [[SortingOrder.Descending]], - }, - - /** - * desc, insensitive - */ - { - code: 'enum U {a="T", _="T", b="T"}', - output: 'enum U {b="T", _="T", a="T",}', - errors: [ - "Expected string enum members to be in insensitive descending order. 'b' should be before '_'.", - ], - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: 'enum U {a="T", c="T", b="T"}', - output: 'enum U {c="T", a="T", b="T"}', - errors: [ - "Expected string enum members to be in insensitive descending order. 'c' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: 'enum U {b_="T", a="T", b="T"}', - output: 'enum U {b_="T", b="T", a="T"}', - errors: [ - "Expected string enum members to be in insensitive descending order. 'b' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: 'enum U {b_="T", c="T", C="T"}', - output: 'enum U {c="T", b_="T", C="T"}', - errors: [ - "Expected string enum members to be in insensitive descending order. 'c' should be before 'b_'.", - ], - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: 'enum U {$="T", _="T", A="T", a="T"}', - output: 'enum U {A="T", _="T", $="T", a="T"}', - errors: [ - "Expected string enum members to be in insensitive descending order. '_' should be before '$'.", - "Expected string enum members to be in insensitive descending order. 'A' should be before '_'.", - ], - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - { - code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", - output: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", - errors: [ - "Expected string enum members to be in insensitive descending order. 'À' should be before '#'.", - "Expected string enum members to be in insensitive descending order. 'è' should be before 'Z'.", - ], - optionsSet: [[SortingOrder.Descending, { caseSensitive: false }]], - }, - - /** - * desc, natural - */ - { - code: 'enum U {a="T", _="T", b="T"}', - output: 'enum U {b="T", _="T", a="T",}', - errors: [ - "Expected string enum members to be in natural descending order. 'b' should be before '_'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: 'enum U {a="T", c="T", b="T"}', - output: 'enum U {c="T", a="T", b="T"}', - errors: [ - "Expected string enum members to be in natural descending order. 'c' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: 'enum U {b_="T", a="T", b="T"}', - output: 'enum U {b_="T", b="T", a="T"}', - errors: [ - "Expected string enum members to be in natural descending order. 'b' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: 'enum U {b_="T", c="T", C="T"}', - output: 'enum U {c="T", b_="T", C="T"}', - errors: [ - "Expected string enum members to be in natural descending order. 'c' should be before 'b_'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: 'enum U {$="T", _="T", A="T", a="T"}', - output: 'enum U {a="T", _="T", A="T", $="T"}', - errors: [ - "Expected string enum members to be in natural descending order. '_' should be before '$'.", - "Expected string enum members to be in natural descending order. 'A' should be before '_'.", - "Expected string enum members to be in natural descending order. 'a' should be before 'A'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - { - code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", - output: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", - errors: [ - "Expected string enum members to be in natural descending order. 'À' should be before '#'.", - "Expected string enum members to be in natural descending order. 'è' should be before 'Z'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true }]], - }, - - /** - * desc, natural, insensitive - */ - { - code: 'enum U {a="T", _="T", b="T"}', - output: 'enum U {b="T", _="T", a="T",}', - errors: [ - "Expected string enum members to be in natural insensitive descending order. 'b' should be before '_'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {a="T", c="T", b="T"}', - output: 'enum U {c="T", a="T", b="T"}', - errors: [ - "Expected string enum members to be in natural insensitive descending order. 'c' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {b_="T", a="T", b="T"}', - output: 'enum U {b_="T", b="T", a="T"}', - errors: [ - "Expected string enum members to be in natural insensitive descending order. 'b' should be before 'a'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {b_="T", c="T", C="T"}', - output: 'enum U {c="T", b_="T", C="T"}', - errors: [ - "Expected string enum members to be in natural insensitive descending order. 'c' should be before 'b_'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: 'enum U {$="T", _="T", A="T", a="T"}', - output: 'enum U {A="T", _="T", $="T", a="T"}', - errors: [ - "Expected string enum members to be in natural insensitive descending order. '_' should be before '$'.", - "Expected string enum members to be in natural insensitive descending order. 'A' should be before '_'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, - { - code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", - output: "enum U {è='T', À='T', 'Z'='T', '#'='T'}", - errors: [ - "Expected string enum members to be in natural insensitive descending order. 'À' should be before '#'.", - "Expected string enum members to be in natural insensitive descending order. 'è' should be before 'Z'.", - ], - optionsSet: [[SortingOrder.Descending, { natural: true, caseSensitive: false }]], - }, -] - -describe('TypeScript', () => { - const ruleTester = new RuleTester(typescript) - - ruleTester.run(name, rule as unknown as Rule.RuleModule, { - valid: processValidTestCase(valid), - invalid: processInvalidTestCase(invalid), - }) -}) diff --git a/tests/tsconfig.json b/tests/tsconfig.json index 0bc2cb2..3102c2f 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -1,8 +1,12 @@ { - "extends": "../tsconfig.json", "compilerOptions": { - "module": "commonjs", - "outDir": "../build", + "baseUrl": ".", + "esModuleInterop": true, + "lib": ["ESNext"], + "module": "NodeNext", + "moduleResolution": "NodeNext", + "noEmit": true, + "target": "ESNext", // Turn off checks to make debugging nicer. "noFallthroughCasesInSwitch": false, "noImplicitAny": false, @@ -12,6 +16,6 @@ "noUnusedParameters": false, "strictNullChecks": false }, - "include": ["**/*.ts"], + "include": ["./**/*"], "exclude": ["fixtures"] } From 3940a748c460fa87405662a3dee1d2fe23723200 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sun, 10 Dec 2023 14:42:23 -0800 Subject: [PATCH 02/26] add large test case --- tests/fixtures/enum-big-invalid.output.ts | 493 ++++++++++++++++++++++ tests/fixtures/enum-big-valid.output.ts | 493 ++++++++++++++++++++++ tests/rules/enum/enum-big.spec.ts | 36 ++ 3 files changed, 1022 insertions(+) create mode 100644 tests/fixtures/enum-big-invalid.output.ts create mode 100644 tests/fixtures/enum-big-valid.output.ts create mode 100644 tests/rules/enum/enum-big.spec.ts diff --git a/tests/fixtures/enum-big-invalid.output.ts b/tests/fixtures/enum-big-invalid.output.ts new file mode 100644 index 0000000..cc4ad4e --- /dev/null +++ b/tests/fixtures/enum-big-invalid.output.ts @@ -0,0 +1,493 @@ +export enum BigTest { + AMIC = '', + AMRT = '', + AMT = '', + AFR = '', + ASF = '', + ASS = '', + ASR = '', + ACBC = '', + ATHSPIM = '', + ATHSPID = '', + ATTDR = '', + ATTDC = '', + /*start*/ AAAUDRE = '', + AAAUDWE = '', + APSR = '', + APCR = '', + AFSA = '', + ATC = '', + AATHS = '', + AATHSM = '', + AATHSD = '', + AII = '', + AI = '', + AE = '', + ABC = '', + ABI = '', + ABPA = '', + // ABRE comment 1 + // ABRE comment 2 + /*ABRE inline 1*/ ABRE = '' /*ABRE inline 2*/, // ABRE comment 3 + // ABUA comment 1 + ABUA = '', + ABMPA = '', + ABUDRE = '', + ABUDWE = '', + ABFLC = '', + ABFO = '', + AGLMC = '', + AGPC = '', + AGUC = '', + AGAPW = '', + AGLC = '', + AGCI = '', + AGC = '', + AGNC = '', + AGPV = '', + AGSAC = '', + AGAC = '', + AIS = '', + ALI = '', + APWUDRE = '', + APWUDWE = '', + APWBC = '', + APWC = '', + APWD = '', + APWNC = '', + APWPC = '', + APWUC = '', + ASC = '', + ATRC = '', + ATI = '', + ATR = '', + BLP = '', + BLPRE = '', + BLPR = '', + CC = '', + CDI = '', + CR = '', + CAPP = '', + CLR = '', + CSWC = '', + CSL = '', + CUI = '', + CAE = '', + CAMT = '', + CACMT = '', + CAMIC = '', + CAMICLD = '', + CAI = '', + CAR = '', + CAS = '', + CAC = '', + CCCTI = '', + CCETI = '', + CCTCI = '', + CFDC = '', + CFDCR = '', + CLC = '', + CLCR = '', + CMI = '', + CMT = '', + CNDE = '', + CNRF = '', + CNRS = '', + COHCTI = '', + COHSMC = '', + CPI = '', + CSLGAPI = '', + CTE = '', + CSDMI = '', + DC = '', + DTC = '', + DI = '', + DL = '', + DLS = '', + DP = '', + DW = '', + DH = '', + DTRF = '', + DTRFE = '', + DTTSCNF = '', + EBCR = '', + ECDE = '', + ECR = '', + ECW = '', + ECTA = '', + ECI = '', + EC = '', + EDC = '', + EDSR = '', + EDFD = '', + EFS = '', + EFSR = '', + EHIR = '', + EI = '', + EIE = '', + EPE = '', + EPIR = '', + EPC = '', + ERE = '', + ERR = '', + ERC = '', + ER = '', + ESRR = '', + ESDSPR = '', + ESD = '', + ETFU = '', + EUIR = '', + EUSR = '', + ETCI = '', + EIV = '', + EBE = '', + ESGTE = '', + EDI = '', + ELT = '', + EWR = '', + EAYAI = '', + FSPV = '', + FDC = '', + FDEI = '', + FDI = '', + FDR = '', + FDT = '', + FSR = '', + FOCVC = '', + FOCVD = '', + FOCVE = '', + FOCVS = '', + FVLF = '', + FRC = '', + FRI = '', + FRDSE = '', + FRRCE = '', + FRSS = '', + FRUC = '', + FSV = '', + FTM = '', + FCCN = '', + FCE = '', + FCO = '', + FCPV = '', + FCT = '', + FFIE = '', + FFLE = '', + FFLIE = '', + FIPE = '', + FMUI = '', + FMUIC = '', + FSCE = '', + FSCS = '', + FTF = '', + FVHDTTC = '', + FNCE = '', + FNCI = '', + GCI = '', + GNC = '', + GDC = '', + GC = '', + GE = '', + GI = '', + GR = '', + GCNR = '', + GDUE = '', + GF = '', + GONPR = '', + GONSR = '', + GSTR = '', + GURT = '', + GWP = '', + GSMMC = '', + ETEI = '', + ETI = '', + IM = '', + FCFFT = '', + FFC = '', + FMTF = '', + FGTF = '', + FSUR = '', + FCR = '', + FFGR = '', + FR = '', + FTR = '', + GFCR = '', + FGMR = '', + ISFV = '', + IWPF = '', + SFR = '', + MFR = '', + MCLC = '', + RFR = '', + GBR = '', + GIC = '', + HSSR = '', + HD = '', + HPV = '', + IDBC = '', + IC = '', + ICE = '', + IGE = '', + IAR = '', + IAF = '', + IAEF = '', + IAEFD = '', + IODF = '', + IS = '', + JMC = '', + IR = '', + LBPF = '', + LFEF = '', + LLA = '', + LSAC = '', + LSCC = '', + LSCCE = '', + LSCI = '', + LST = '', + LNCI = '', + LNI = '', + LNR = '', + LDAC = '', + LMF = '', + LSU = '', + MADDR = '', + MADDE = '', + MADE = '', + MADL = '', + MADLE = '', + MADLR = '', + /* MAPDCE */ /* MAPDCE 2 */ MAPDCE = '', + MADC = '', + MOSAHE = '', + MOSHSDK = '', + MONAFE = '', + MNBI = '', + MIDC = '', + MU = '', + MTCR = '', + MABI = '', + /* MV */ MV = '', + MTFCE = '', + MTFCC = '', + MTFCI = '', + MTFCA = '', + MTFCNS = '', + MTFCNE = '', + MC = '', + MD = '', + MFIE = '', + MPC = '', + MUP = '', + MI = '', + MR = '', + MSSR = '', + MW = '', + MWE = '', + MTF = '', + MCCL = '', + NTTC = '', + NCNCI = '', + NLC = '', + NPBC = '', + NUSI = '', + NSRBC = '', + NVRBC = '', + NUSC = '', + NSE = '', + OCLF = '', + OFA = '', + OFI = '', + OFD = '', + OFR = '', + OFSTR = '', + OHSRR = '', + OHSWR = '', + OISSR = '', + OLF = '', + ODGCFR = '', + ODGCUSR = '', + ODGICR = '', + ODGIE = '', + ODGIR = '', + ODGPIR = '', + ODGIWWDATR = '', + ODGIWWDR = '', + ODGSWWDR = '', + ODGSR = '', + ODGBSR = '', + ODGTR = '', + ODGTSR = '', + ODGPPR = '', + ODGBPPR = '', + ODGUFR = '', + ODGUSR = '', + ODPBU = '', + ODPC = '', + ODPI = '', + ODURU = '', + ODSPPS = '', + ODSPPF = '', + ODSPPGU = '', + ODSPIPR = '', + ONGCNBR = '', + ONGGNR = '', + ONNCLC = '', + ONPCLC = '', + OIE = '', + OR = '', + PD = '', + PMF = '', + PCI = '', + PTT = '', + PECIE = '', + PNSE = '', + PNSMPE = '', + PTCI = '', + PTFR = '', + PATI = '', + PBE = '', + POA = '', + PNF = '', + PJLIC = '', + PJL = '', + PSHRE = '', + PSGTE = '', + QACL = '', + QACCP = '', + QACPI = '' /* QACPI */, + QARCP = '', + QASCPM = '', + RCI = '', + RC = '', + RD = '', + RFA = '', + RI = '', + RIC = '', + RNC = '', + RR = '', + RATR = '', + RSF = '', + RUCI = '', + SASRF = '', + SC = '', + SPV = '', // U OCV + SP = '', + SQ = '', + SRR = '', + SRF = '', + SSS = '', + SSU = '', + SR = '', + SCA = '', + SCC = '', + SCE = '', + /* SCS */ + SCS = '', + SWMR = '', + SPCR = '', + SPGLE = '', + SPIR = '', + SPLIR = '', + SPLR = '', + SPMUR = '', + SPSC = '', + SPSI = '', + SPWR = '', + SPSR = '', + SBE = '', + SMTI = '', + SSED = '', + SPRE = '', + SPWE = '', + SBT = '', + SAC = '', + SCI = '', + SCL = '', + SDDE = '', + // S S W + SA = '', + SAMTE = '', + SAMUIE = '', + SANRE = '', + SARHE = '', + SATE = '', + SAWTE = '', + SPAE = '', + SPCME = '', + // E S W + SCR = '', + SCSAPDR = '', + SGA = '', + SGTR = '', + TATR = '', + TMSSR = '', + TABC = '', + TD = '', + TC = '', + TLR = '', + TCC = '', + TCR = '', + TRR = '', + TGGR = '', + TEI = '', + TI = '', + TPV = '', + TR = '', + TT = '', + TL = '', + TCPL = '', + TTO = '', + TTS = '', + TCM = '', + TAMR = '', + UHS = '', + UE = '', + UDBE = '', + UDBEE = '', + USR = '', + UT = '', + UDADNF = '', + UBI = '', + UBDADCI = '', + UC = '', + ULE = '', + UBC = '', + UDI = '', + UDC = '', + UER = '', + VITDC = '', + VLS = '', + VTR = '', + VBIE = '', + VAR = '', + VCFR = '', + VCLR = '', + VCUSR = '', + VGFE = '', + VIR = '', + VIWWDR = '', + VODCAR = '', + VSR = '', + VSWWDR = '', + VUFR = '', + WBIR = '', + WCE = '', + WCPV = '', + WDA = '', + WDLS = '', + WDL = '', + WDP = '', + WDJAE = '', + WDJAT = '', + WDVE = '', + WDBLE = '', + WDGBE = '', + WPA = '', + WSPV = '', + WTRI = '', + WTR = '', + WTE = '', + WVE = '' /* end */, // end + WDFF = '' // end comment do sort + // end comment dont sort +} diff --git a/tests/fixtures/enum-big-valid.output.ts b/tests/fixtures/enum-big-valid.output.ts new file mode 100644 index 0000000..96551c0 --- /dev/null +++ b/tests/fixtures/enum-big-valid.output.ts @@ -0,0 +1,493 @@ +export enum BigTest { + /*start*/ AAAUDRE = '', + AAAUDWE = '', + AATHS = '', + AATHSD = '', + AATHSM = '', + ABC = '', + ABFLC = '', + ABFO = '', + ABI = '', + ABMPA = '', + ABPA = '', + // ABRE comment 1 + // ABRE comment 2 + /*ABRE inline 1*/ ABRE = '' /*ABRE inline 2*/, // ABRE comment 3 + // ABUA comment 1 + ABUA = '', + ABUDRE = '', + ABUDWE = '', + ACBC = '', + AE = '', + AFR = '', + AFSA = '', + AGAC = '', + AGAPW = '', + AGC = '', + AGCI = '', + AGLC = '', + AGLMC = '', + AGNC = '', + AGPC = '', + AGPV = '', + AGSAC = '', + AGUC = '', + AI = '', + AII = '', + AIS = '', + ALI = '', + AMIC = '', + AMRT = '', + AMT = '', + APCR = '', + APSR = '', + APWBC = '', + APWC = '', + APWD = '', + APWNC = '', + APWPC = '', + APWUC = '', + APWUDRE = '', + APWUDWE = '', + ASC = '', + ASF = '', + ASR = '', + ASS = '', + ATC = '', + ATHSPID = '', + ATHSPIM = '', + ATI = '', + ATR = '', + ATRC = '', + ATTDC = '', + ATTDR = '', + BLP = '', + BLPR = '', + BLPRE = '', + CAC = '', + CACMT = '', + CAE = '', + CAI = '', + CAMIC = '', + CAMICLD = '', + CAMT = '', + CAPP = '', + CAR = '', + CAS = '', + CC = '', + CCCTI = '', + CCETI = '', + CCTCI = '', + CDI = '', + CFDC = '', + CFDCR = '', + CLC = '', + CLCR = '', + CLR = '', + CMI = '', + CMT = '', + CNDE = '', + CNRF = '', + CNRS = '', + COHCTI = '', + COHSMC = '', + CPI = '', + CR = '', + CSDMI = '', + CSL = '', + CSLGAPI = '', + CSWC = '', + CTE = '', + CUI = '', + DC = '', + DH = '', + DI = '', + DL = '', + DLS = '', + DP = '', + DTC = '', + DTRF = '', + DTRFE = '', + DTTSCNF = '', + DW = '', + EAYAI = '', + EBCR = '', + EBE = '', + EC = '', + ECDE = '', + ECI = '', + ECR = '', + ECTA = '', + ECW = '', + EDC = '', + EDFD = '', + EDI = '', + EDSR = '', + EFS = '', + EFSR = '', + EHIR = '', + EI = '', + EIE = '', + EIV = '', + ELT = '', + EPC = '', + EPE = '', + EPIR = '', + ER = '', + ERC = '', + ERE = '', + ERR = '', + ESD = '', + ESDSPR = '', + ESGTE = '', + ESRR = '', + ETCI = '', + ETEI = '', + ETFU = '', + ETI = '', + EUIR = '', + EUSR = '', + EWR = '', + FCCN = '', + FCE = '', + FCFFT = '', + FCO = '', + FCPV = '', + FCR = '', + FCT = '', + FDC = '', + FDEI = '', + FDI = '', + FDR = '', + FDT = '', + FFC = '', + FFGR = '', + FFIE = '', + FFLE = '', + FFLIE = '', + FGMR = '', + FGTF = '', + FIPE = '', + FMTF = '', + FMUI = '', + FMUIC = '', + FNCE = '', + FNCI = '', + FOCVC = '', + FOCVD = '', + FOCVE = '', + FOCVS = '', + FR = '', + FRC = '', + FRDSE = '', + FRI = '', + FRRCE = '', + FRSS = '', + FRUC = '', + FSCE = '', + FSCS = '', + FSPV = '', + FSR = '', + FSUR = '', + FSV = '', + FTF = '', + FTM = '', + FTR = '', + FVHDTTC = '', + FVLF = '', + GBR = '', + GC = '', + GCI = '', + GCNR = '', + GDC = '', + GDUE = '', + GE = '', + GF = '', + GFCR = '', + GI = '', + GIC = '', + GNC = '', + GONPR = '', + GONSR = '', + GR = '', + GSMMC = '', + GSTR = '', + GURT = '', + GWP = '', + HD = '', + HPV = '', + HSSR = '', + IAEF = '', + IAEFD = '', + IAF = '', + IAR = '', + IC = '', + ICE = '', + IDBC = '', + IGE = '', + IM = '', + IODF = '', + IR = '', + IS = '', + ISFV = '', + IWPF = '', + JMC = '', + LBPF = '', + LDAC = '', + LFEF = '', + LLA = '', + LMF = '', + LNCI = '', + LNI = '', + LNR = '', + LSAC = '', + LSCC = '', + LSCCE = '', + LSCI = '', + LST = '', + LSU = '', + MABI = '', + MADC = '', + MADDE = '', + MADDR = '', + MADE = '', + MADL = '', + MADLE = '', + MADLR = '', + /* MAPDCE */ /* MAPDCE 2 */ MAPDCE = '', + MC = '', + MCCL = '', + MCLC = '', + MD = '', + MFIE = '', + MFR = '', + MI = '', + MIDC = '', + MNBI = '', + MONAFE = '', + MOSAHE = '', + MOSHSDK = '', + MPC = '', + MR = '', + MSSR = '', + MTCR = '', + MTF = '', + MTFCA = '', + MTFCC = '', + MTFCE = '', + MTFCI = '', + MTFCNE = '', + MTFCNS = '', + MU = '', + MUP = '', + /* MV */ MV = '', + MW = '', + MWE = '', + NCNCI = '', + NLC = '', + NPBC = '', + NSE = '', + NSRBC = '', + NTTC = '', + NUSC = '', + NUSI = '', + NVRBC = '', + OCLF = '', + ODGBPPR = '', + ODGBSR = '', + ODGCFR = '', + ODGCUSR = '', + ODGICR = '', + ODGIE = '', + ODGIR = '', + ODGIWWDATR = '', + ODGIWWDR = '', + ODGPIR = '', + ODGPPR = '', + ODGSR = '', + ODGSWWDR = '', + ODGTR = '', + ODGTSR = '', + ODGUFR = '', + ODGUSR = '', + ODPBU = '', + ODPC = '', + ODPI = '', + ODSPIPR = '', + ODSPPF = '', + ODSPPGU = '', + ODSPPS = '', + ODURU = '', + OFA = '', + OFD = '', + OFI = '', + OFR = '', + OFSTR = '', + OHSRR = '', + OHSWR = '', + OIE = '', + OISSR = '', + OLF = '', + ONGCNBR = '', + ONGGNR = '', + ONNCLC = '', + ONPCLC = '', + OR = '', + PATI = '', + PBE = '', + PCI = '', + PD = '', + PECIE = '', + PJL = '', + PJLIC = '', + PMF = '', + PNF = '', + PNSE = '', + PNSMPE = '', + POA = '', + PSGTE = '', + PSHRE = '', + PTCI = '', + PTFR = '', + PTT = '', + QACCP = '', + QACL = '', + QACPI = '' /* QACPI */, + QARCP = '', + QASCPM = '', + RATR = '', + RC = '', + RCI = '', + RD = '', + RFA = '', + RFR = '', + RI = '', + RIC = '', + RNC = '', + RR = '', + RSF = '', + RUCI = '', + // S S W + SA = '', + SAC = '', + SAMTE = '', + SAMUIE = '', + SANRE = '', + SARHE = '', + SASRF = '', + SATE = '', + SAWTE = '', + SBE = '', + SBT = '', + SC = '', + SCA = '', + SCC = '', + SCE = '', + SCI = '', + SCL = '', + // E S W + SCR = '', + /* SCS */ + SCS = '', + SCSAPDR = '', + SDDE = '', + SFR = '', + SGA = '', + SGTR = '', + SMTI = '', + SP = '', + SPAE = '', + SPCME = '', + SPCR = '', + SPGLE = '', + SPIR = '', + SPLIR = '', + SPLR = '', + SPMUR = '', + SPRE = '', + SPSC = '', + SPSI = '', + SPSR = '', + SPV = '', // U OCV + SPWE = '', + SPWR = '', + SQ = '', + SR = '', + SRF = '', + SRR = '', + SSED = '', + SSS = '', + SSU = '', + SWMR = '', + TABC = '', + TAMR = '', + TATR = '', + TC = '', + TCC = '', + TCM = '', + TCPL = '', + TCR = '', + TD = '', + TEI = '', + TGGR = '', + TI = '', + TL = '', + TLR = '', + TMSSR = '', + TPV = '', + TR = '', + TRR = '', + TT = '', + TTO = '', + TTS = '', + UBC = '', + UBDADCI = '', + UBI = '', + UC = '', + UDADNF = '', + UDBE = '', + UDBEE = '', + UDC = '', + UDI = '', + UE = '', + UER = '', + UHS = '', + ULE = '', + USR = '', + UT = '', + VAR = '', + VBIE = '', + VCFR = '', + VCLR = '', + VCUSR = '', + VGFE = '', + VIR = '', + VITDC = '', + VIWWDR = '', + VLS = '', + VODCAR = '', + VSR = '', + VSWWDR = '', + VTR = '', + VUFR = '', + WBIR = '', + WCE = '', + WCPV = '', + WDA = '', + WDBLE = '', + WDFF = '', // end comment do sort + WDGBE = '', + WDJAE = '', + WDJAT = '', + WDL = '', + WDLS = '', + WDP = '', + WDVE = '', + WPA = '', + WSPV = '', + WTE = '', + WTR = '', + WTRI = '', + WVE = '' /* end */ // end + // end comment dont sort +} diff --git a/tests/rules/enum/enum-big.spec.ts b/tests/rules/enum/enum-big.spec.ts new file mode 100644 index 0000000..d6ab24c --- /dev/null +++ b/tests/rules/enum/enum-big.spec.ts @@ -0,0 +1,36 @@ +import { Rule } from 'eslint' +import fs from 'fs' +import path from 'path' + +import { name, rule } from '../../../src/rules/enum' +import { PreInvalidTestCaseObject, PreValidTestCaseObject, runCases } from '../../helpers/cases' +import { typescriptConfig } from '../../helpers/configs' +import { CaseCategory } from '../../helpers/strings' + +const fixtures = path.resolve(__dirname, '../../fixtures') + +const validBigTestCode = fs + .readFileSync(path.resolve(fixtures, 'enum-big-valid.output.ts')) + .toString('utf-8') +const invalidBigTestCode = fs + .readFileSync(path.resolve(fixtures, 'enum-big-invalid.output.ts')) + .toString('utf-8') + +const valid: PreValidTestCaseObject = { + ascending: [validBigTestCode], +} + +const invalid: PreInvalidTestCaseObject = { + ascending: [ + { + code: invalidBigTestCode, + output: validBigTestCode, + errors: 328, + }, + ], +} + +runCases({ name, rule: rule as unknown as Rule.RuleModule, typescriptConfig }, valid, invalid, { + category: CaseCategory.Enum, + withRequiredFirstOption: false, +}) From aa70ed4e03d935f731d69f03c7fe017eaeae245d Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sun, 10 Dec 2023 14:46:38 -0800 Subject: [PATCH 03/26] revamp plugin logic & enable all enums --- docs/rules/enum.md | 198 ++++++++++++++++++ docs/rules/string-enum.md | 20 +- package.json | 2 +- src/common/options.ts | 64 +++--- src/config/constants.ts | 1 + src/config/recommended.config.ts | 9 + src/config/recommended.ts | 7 - src/config/requiredFirst.config.ts | 17 ++ src/fixer.ts | 34 ++++ src/index.ts | 2 +- src/plugin.ts | 92 +++++++++ src/report.ts | 83 ++++++++ src/rules/enum.ts | 103 ++++++++++ src/rules/index.ts | 28 ++- src/rules/interface.ts | 67 +++--- src/rules/string-enum.ts | 67 +++--- src/types/error.ts | 6 + src/types/index.ts | 5 + src/types/node.ts | 5 + src/types/options.ts | 19 ++ src/types/report.ts | 25 +++ src/types/rule.ts | 8 + src/utils/ast.ts | 22 +- src/utils/compare.ts | 20 +- src/utils/memo.ts | 18 ++ src/utils/plugin.ts | 226 --------------------- src/utils/reportUtils.ts | 59 ++++++ src/utils/rule.ts | 17 +- src/utils/sourcecode/commentHelpers.ts | 168 +++++++++++++++ src/utils/sourcecode/indentHelpers.ts | 20 ++ src/utils/sourcecode/index.ts | 57 ++++++ src/utils/sourcecode/nodeHelpers.ts | 28 +++ src/utils/sourcecode/punctuationHelpers.ts | 86 ++++++++ src/utils/sourcecode/textHelpers.ts | 48 +++++ 34 files changed, 1264 insertions(+), 367 deletions(-) create mode 100644 docs/rules/enum.md create mode 100644 src/config/constants.ts create mode 100644 src/config/recommended.config.ts delete mode 100644 src/config/recommended.ts create mode 100644 src/config/requiredFirst.config.ts create mode 100644 src/fixer.ts create mode 100644 src/plugin.ts create mode 100644 src/report.ts create mode 100644 src/rules/enum.ts create mode 100644 src/types/error.ts create mode 100644 src/types/index.ts create mode 100644 src/types/node.ts create mode 100644 src/types/options.ts create mode 100644 src/types/report.ts create mode 100644 src/types/rule.ts create mode 100644 src/utils/memo.ts delete mode 100644 src/utils/plugin.ts create mode 100644 src/utils/reportUtils.ts create mode 100644 src/utils/sourcecode/commentHelpers.ts create mode 100644 src/utils/sourcecode/indentHelpers.ts create mode 100644 src/utils/sourcecode/index.ts create mode 100644 src/utils/sourcecode/nodeHelpers.ts create mode 100644 src/utils/sourcecode/punctuationHelpers.ts create mode 100644 src/utils/sourcecode/textHelpers.ts diff --git a/docs/rules/enum.md b/docs/rules/enum.md new file mode 100644 index 0000000..63d69ca --- /dev/null +++ b/docs/rules/enum.md @@ -0,0 +1,198 @@ +# require enum members to be sorted (enum) + +When declaring multiple members on an enum, some developers prefer to sort enum member names alphabetically to be able to find necessary members easier at the later time. Others feel that it adds complexity and becomes burden to maintain. + +## Rule Details + +This rule checks all members of an enum declaration and verifies that all keys are sorted alphabetically. + +Examples of **incorrect** code for this rule: + +```ts +/* eslint typescript-sort-keys/enum: "error" */ + +enum U { + a = 'T', + c = 'T', + b = 'T', +} + +// Case-sensitive by default. +enum U { + a = 'T', + b = 'T', + C = 'T', +} + +enum U { + a = 'T', + 'c' = 'T', + b = 'T', +} +``` + +Examples of **correct** code for this rule: + +```ts +/* eslint typescript-sort-keys/enum: "error" */ + +enum U { + a = 'T', + b = 'T', + c = 'T', +} + +// Case-sensitive by default. +enum U { + C = 'T', + a = 'T', + b = 'T', +} + +// This rule sorts members which have an arbitrary string literal name as well. +enum U { + a = 'T', + 'b+-' = 'T', + c = 'T', +} +``` + +## Options + +```json +{ + "typescript-sort-keys/enum": ["error", "asc", { "caseSensitive": true, "natural": false }] +} +``` + +The 1st option is `"asc"` or `"desc"`. + +- `"asc"` (default) - enforce enum members to be in ascending order. +- `"desc"` - enforce enum members to be in descending order. + +The 2nd option is an object which has 2 properties. + +- `caseSensitive` - if `true`, enforce enum members to be in case-sensitive order. Default is `true`. +- `natural` - if `true`, enforce enum members to be in natural order. Default is `false`. Natural Order compares strings containing combination of letters and numbers in the way a human being would sort. It basically sorts numerically, instead of sorting alphabetically. So the number 10 comes after the number 3 in Natural Sorting. + +### desc + +Examples of **incorrect** code for the `"desc"` option: + +```ts +/* eslint typescript-sort-keys/enum: ["error", "desc"] */ + +enum U { + b = 'T', + c = 'T', + a = 'T', +} +enum U { + b = 'T', + c = 'T', + a = 'T', +} + +// Case-sensitive by default. +enum U { + a = 'T', + B = 'T', + c = 'T', +} +``` + +Examples of **correct** code for the `"desc"` option: + +```ts +/* eslint typescript-sort-keys/enum: ["error", "desc"] */ + +enum U { + c = 'T', + b = 'T', + a = 'T', +} +enum U { + c = 'T', + b = 'T', + a = 'T', +} + +// Case-sensitive by default. +enum U { + c = 'T', + a = 'T', + B = 'T', +} +``` + +### insensitive + +Examples of **incorrect** code for the `{ caseSensitive: false }` option: + +```ts +/* eslint typescript-sort-keys/enum: ["error", "asc", { caseSensitive: false }] */ + +enum U { + a = 'T', + c = 'T', + C = 'T', + b = 'T', +} +enum U { + a = 'T', + C = 'T', + c = 'T', + b = 'T', +} +``` + +Examples of **correct** code for the `{ caseSensitive: false }` option: + +```ts +/* eslint typescript-sort-keys/enum: ["error", "asc", { caseSensitive: false }] */ + +enum U { + a = 'T', + b = 'T', + c = 'T', + C = 'T', +} +enum U { + a = 'T', + b = 'T', + C = 'T', + c = 'T', +} +``` + +### natural + +Examples of **incorrect** code for the `{natural: true}` option: + +```ts +/* eslint typescript-sort-keys/enum: ["error", "asc", { natural: true }] */ + +enum U { + a = 'T', + _ = 'T', + A = 'T', + $ = 'T', +} +``` + +Examples of **correct** code for the `{natural: true}` option: + +```ts +/* eslint typescript-sort-keys/enum: ["error", "asc", { natural: true }] */ + +enum U { + a = 'T', + A = 'T', + _ = 'T', + $ = 'T', +} +``` + +## When Not To Use It + +If you don't want to notify about enum members' order, then it's safe to disable this rule. diff --git a/docs/rules/string-enum.md b/docs/rules/string-enum.md index 3658eb1..5b5431f 100644 --- a/docs/rules/string-enum.md +++ b/docs/rules/string-enum.md @@ -1,10 +1,14 @@ -# require string enum members to be sorted (string-enum) +# Deprecation notice: This rule has been deprecated in favor of [typescript-sort-keys/enum](./enum.md). `string-enum` will continue to sort only string enums and may be removed in future updates. -When declaring multiple members on an string enum, some developers prefer to sort enum member names alphabetically to be able to find necessary members easier at the later time. Others feel that it adds complexity and becomes burden to maintain. +--- + +# require string-enum members to be sorted (string-enum) + +When declaring multiple members on a string-enum, some developers prefer to sort string-enum member names alphabetically to be able to find necessary members easier at the later time. Others feel that it adds complexity and becomes burden to maintain. ## Rule Details -This rule checks all members of a string enum declaration and verifies that all keys are sorted alphabetically. +This rule checks all members of a string-enum declaration and verifies that all keys are sorted alphabetically. Examples of **incorrect** code for this rule: @@ -77,13 +81,13 @@ enum U { The 1st option is `"asc"` or `"desc"`. -- `"asc"` (default) - enforce enum members to be in ascending order. -- `"desc"` - enforce enum members to be in descending order. +- `"asc"` (default) - enforce string-enum members to be in ascending order. +- `"desc"` - enforce string-enum members to be in descending order. The 2nd option is an object which has 2 properties. -- `caseSensitive` - if `true`, enforce enum members to be in case-sensitive order. Default is `true`. -- `natural` - if `true`, enforce enum members to be in natural order. Default is `false`. Natural Order compares strings containing combination of letters and numbers in the way a human being would sort. It basically sorts numerically, instead of sorting alphabetically. So the number 10 comes after the number 3 in Natural Sorting. +- `caseSensitive` - if `true`, enforce string-enum members to be in case-sensitive order. Default is `true`. +- `natural` - if `true`, enforce string-enum members to be in natural order. Default is `false`. Natural Order compares strings containing combination of letters and numbers in the way a human being would sort. It basically sorts numerically, instead of sorting alphabetically. So the number 10 comes after the number 3 in Natural Sorting. ### desc @@ -205,4 +209,4 @@ enum U { ## When Not To Use It -If you don't want to notify about enum members' order, then it's safe to disable this rule. +If you don't want to notify about string-enum members' order, then it's safe to disable this rule. diff --git a/package.json b/package.json index 19239c5..e6deac0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "eslint-plugin-typescript-sort-keys", "version": "3.2.0", - "description": "Sort interface and string enum keys", + "description": "Sort interface and enum keys", "keywords": [ "eslint", "eslintplugin", diff --git a/src/common/options.ts b/src/common/options.ts index b015fdd..1821977 100644 --- a/src/common/options.ts +++ b/src/common/options.ts @@ -1,35 +1,35 @@ -import { JSONSchema4 } from 'json-schema' - -export enum SortingOrder { - Ascending = 'asc', - Descending = 'desc', -} - -export const sortingOrderOptionSchema: JSONSchema4 = { - enum: [SortingOrder.Ascending, SortingOrder.Descending], -} - -export type SortingOrderOption = SortingOrder - -interface CaseSensitiveSortingOption { - readonly caseSensitive: boolean -} - -interface NaturalSortingOption { - readonly natural: boolean -} - -interface RequiredFirstSortingOption { - readonly requiredFirst: boolean -} - -export interface SortingParamsOptions { - readonly caseSensitive: CaseSensitiveSortingOption - readonly natural: NaturalSortingOption - readonly requiredFirst: RequiredFirstSortingOption +import { + AllRuleOptions, + CreateReporterArgs, + SortingOrder, + SortingParamsOptions, +} from '../types' + +export const defaultSortingOrder = SortingOrder.Ascending +export const defaultOptions: SortingParamsOptions = { + caseSensitive: true, + natural: false, + requiredFirst: false, } -export enum ErrorMessage { - InterfaceInvalidOrder = `Expected interface keys to be in {{ requiredFirst }}{{ natural }}{{ insensitive }}{{ order }}ending order. '{{ thisName }}' should be before '{{ prevName }}'.`, - StringEnumInvalidOrder = `Expected string enum members to be in {{ natural }}{{ insensitive }}{{ order }}ending order. '{{ thisName }}' should be before '{{ prevName }}'.`, +/** + * Get the options from the context + */ +export function getOptions( + context: CreateReporterArgs['context'], +) { + const order = context.options[0] || defaultSortingOrder + const options = context.options[1] + const isAscending = order === SortingOrder.Ascending + const isInsensitive = !(options?.caseSensitive ?? defaultOptions.caseSensitive) + const isNatural = options?.natural ?? defaultOptions.natural + const isRequiredFirst = options?.requiredFirst ?? defaultOptions.requiredFirst + + return { + isAscending, + isInsensitive, + isNatural, + isRequiredFirst, + order, + } } diff --git a/src/config/constants.ts b/src/config/constants.ts new file mode 100644 index 0000000..a0fb058 --- /dev/null +++ b/src/config/constants.ts @@ -0,0 +1 @@ +export const PLUGIN_NAME = 'typescript-sort-keys' \ No newline at end of file diff --git a/src/config/recommended.config.ts b/src/config/recommended.config.ts new file mode 100644 index 0000000..779f1f8 --- /dev/null +++ b/src/config/recommended.config.ts @@ -0,0 +1,9 @@ +import { PLUGIN_NAME } from './constants' + +export default { + plugins: [PLUGIN_NAME], + rules: { + [`${PLUGIN_NAME}/interface`]: 'error' as const, + [`${PLUGIN_NAME}/enum`]: 'error' as const, + }, +} diff --git a/src/config/recommended.ts b/src/config/recommended.ts deleted file mode 100644 index 2bdf415..0000000 --- a/src/config/recommended.ts +++ /dev/null @@ -1,7 +0,0 @@ -export default { - plugins: ['typescript-sort-keys'], - rules: { - 'typescript-sort-keys/interface': 'error' as const, - 'typescript-sort-keys/string-enum': 'error' as const, - }, -} diff --git a/src/config/requiredFirst.config.ts b/src/config/requiredFirst.config.ts new file mode 100644 index 0000000..2a638a2 --- /dev/null +++ b/src/config/requiredFirst.config.ts @@ -0,0 +1,17 @@ +import { Linter } from '@typescript-eslint/utils/ts-eslint' + +import { defaultOptions, defaultSortingOrder } from '../common/options' +import { PLUGIN_NAME } from './constants' +import recommended from './recommended.config' + +export default { + plugins: recommended.plugins, + rules: { + ...recommended.rules, + [`${PLUGIN_NAME}/interface`]: [ + 'error' as const, + defaultSortingOrder, + { ...defaultOptions, requiredFirst: true }, + ] as Linter.RuleEntry, + }, +} diff --git a/src/fixer.ts b/src/fixer.ts new file mode 100644 index 0000000..4c10ee9 --- /dev/null +++ b/src/fixer.ts @@ -0,0 +1,34 @@ +import { TSESLint } from '@typescript-eslint/utils' +import { ReportFixFunction } from '@typescript-eslint/utils/ts-eslint' + +import { AllRuleOptions, CreateReporterArgs, Node, SourceCode, TSType } from './types' +import { getMemoized, memoize } from './utils/memo' +import { getBodyRange, getFixedBodyText } from './utils/sourcecode' + +export const getFixerFunction = ( + baseMemoKey: string, + createReporterArgs: Pick, 'context'>, + body: TSType[], + sortedBody: TSType[], +): ReportFixFunction => + function* (fixer: TSESLint.RuleFixer) { + const sourceCode = createReporterArgs.context.getSourceCode() as SourceCode + + const bodyRange = memoize(`bodyRange_${baseMemoKey}`, () => + getBodyRange(sourceCode, body as unknown as Node[]), + ) + + const fixedBodyTextMemoKey = `fixedBodyText_${baseMemoKey}` + // Replace the entire body with the sorted body + const fixedBodyText = + getMemoized(fixedBodyTextMemoKey) ?? + memoize(fixedBodyTextMemoKey, () => + getFixedBodyText( + sourceCode, + sortedBody as unknown as Node[], + body as unknown as Node[], + ), + ) + + yield fixer.replaceTextRange(bodyRange, fixedBodyText) + } diff --git a/src/index.ts b/src/index.ts index c85f9b2..b82f180 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -import recommended from './config/recommended' +import recommended from './config/recommended.config' import { rules } from './rules' const config = { diff --git a/src/plugin.ts b/src/plugin.ts new file mode 100644 index 0000000..e69ecce --- /dev/null +++ b/src/plugin.ts @@ -0,0 +1,92 @@ +import { TSESTree } from '@typescript-eslint/utils' +import { getOptions } from './common/options' +import { getFixerFunction } from './fixer' +import { reportBodyNodes, reportParentNode } from './report' +import { AllRuleOptions, CreateReporterArgs, NodePositionInfo, TSType } from './types' +import { getPropertyIsOptional, getPropertyName } from './utils/ast' +import { compareFn } from './utils/compare' +import { memoize } from './utils/memo' +import { getUnsortedInfo } from './utils/reportUtils' + +/** + * Returns the body sorted according to the options and sorting function. + */ +function getSortedBody( + body: TSType[], + isRequiredFirst: boolean, + sortFunction: (a: TSType, b: TSType) => number, +) { + return isRequiredFirst + ? [ + // Split into required and optional properties, sort each group, then merge + ...body + .slice(0) + .filter(node => !getPropertyIsOptional(node)) + .sort(sortFunction), + ...body + .slice(0) + .filter(node => getPropertyIsOptional(node)) + .sort(sortFunction), + ] + : body.slice(0).sort(sortFunction) +} + +export function createReporter( + createReporterArgs: CreateReporterArgs, +) { + const { isAscending, isInsensitive, isNatural, isRequiredFirst } = getOptions( + createReporterArgs.context, + ) + const compare = compareFn(isAscending, isInsensitive, isNatural) + const sortFunction = (a: TSType, b: TSType) => + compare(getPropertyName(a), getPropertyName(b)) + + // Reporter function + return (bodyParent: TSESTree.Node, body: TSType[]) => { + if (body.length < 2) { + return + } + + const sourceCode = createReporterArgs.context.getSourceCode() + // Create a key for memoizing results based on plugin context & input + const baseMemoKey = JSON.stringify({ + body: sourceCode.getText(bodyParent), // Disambiguator when body has code embedded in body + options: { isAscending, isInsensitive, isNatural, isRequiredFirst }, + source: sourceCode.getText(), // Disambiguator when same body on both a type and interface + }) + + const sortedBody: TSType[] = memoize(`sortedBody_${baseMemoKey}`, () => + getSortedBody(body, isRequiredFirst, sortFunction), + ) + const nodePositions: Map = memoize( + `nodePositions_${baseMemoKey}`, + () => + new Map( + body.map((n, index) => [ + n, + { initialIndex: index, finalIndex: sortedBody.indexOf(n) }, + ]), + ), + ) + + const { unsortedCount, finalIndicesToReport } = memoize( + `getUnsortedInfo_${baseMemoKey}`, + () => getUnsortedInfo(sortedBody, body, nodePositions), + ) + + if (unsortedCount > 0) { + const fixerFunctionMemoKey = `fixerFunction_${baseMemoKey}` + const fixerFunction = memoize(fixerFunctionMemoKey, () => + getFixerFunction(baseMemoKey, createReporterArgs, body, sortedBody), + ) + reportParentNode(createReporterArgs, bodyParent, unsortedCount, fixerFunction) + reportBodyNodes( + createReporterArgs, + nodePositions, + sortedBody, + finalIndicesToReport, + fixerFunction, + ) + } + } +} diff --git a/src/report.ts b/src/report.ts new file mode 100644 index 0000000..9fb91dc --- /dev/null +++ b/src/report.ts @@ -0,0 +1,83 @@ +import assert from 'assert' + +import { TSESTree } from '@typescript-eslint/utils' +import { ReportFixFunction } from '@typescript-eslint/utils/ts-eslint' + +import { getOptions } from './common/options' +import { AllRuleOptions, CreateReporterArgs, NodePositionInfo, TSType } from './types' +import { getPropertyName } from './utils/ast' +import { getDeprecationMessage } from './utils/reportUtils' + +/** + * Report the parent node if it has unsorted body nodes. + */ +export function reportParentNode( + createReporterArgs: Omit< + CreateReporterArgs, + 'createReportPropertiesObject' + >, + bodyParent: TSESTree.Node, + unsortedCount: number, + fixerFunction: ReportFixFunction, +) { + const { context, createReportParentObject } = createReporterArgs + const { loc, messageId } = createReportParentObject(bodyParent) + context.report({ + loc, + messageId, + node: bodyParent, + data: { + unsortedCount, + notice: getDeprecationMessage(context.id), + }, + fix: fixerFunction, + }) +} + +/** + * Report the body nodes if they're unsorted. + */ +export function reportBodyNodes( + createReporterArgs: Omit< + CreateReporterArgs, + 'createReportParentObject' + >, + nodePositions: Map, + sortedBody: TSType[], + finalIndicesToReport: boolean[], + fixerFunction: ReportFixFunction, +) { + const { context, createReportPropertiesObject } = createReporterArgs + const { isInsensitive, isNatural, isRequiredFirst, order } = getOptions( + createReporterArgs.context, + ) + for (const [node, { finalIndex }] of nodePositions.entries()) { + // If the node is not in the correct position, report it + if (finalIndicesToReport[finalIndex]) { + const { loc, messageId } = createReportPropertiesObject(node) + + // Sanity check + assert(loc, 'createReportObject return value must include a node location') + assert(messageId, 'createReportObject return value must include a problem message') + + context.report({ + loc, + messageId, + node, + data: { + nodeName: getPropertyName(node), + messageShouldBeWhere: + finalIndex + 1 < sortedBody.length + ? `before '${getPropertyName(sortedBody[finalIndex + 1])}'` + : 'at the end', + order, + insensitive: isInsensitive ? 'insensitive ' : '', + natural: isNatural ? 'natural ' : '', + requiredFirst: isRequiredFirst ? 'required first ' : '', + notice: getDeprecationMessage(context.id), + }, + fix: fixerFunction, + }) + } + } +} diff --git a/src/rules/enum.ts b/src/rules/enum.ts new file mode 100644 index 0000000..0dffdb8 --- /dev/null +++ b/src/rules/enum.ts @@ -0,0 +1,103 @@ +import { TSESTree } from '@typescript-eslint/utils' +import { JSONSchema4 } from '@typescript-eslint/utils/json-schema' + +import { createReporter } from '../plugin' +import { + ErrorMessage, + RuleOptionsGeneric, + SortingOrder, + sortingOrderOptionSchema, + SortingParamsOptions, +} from '../types' +import { getObjectBody } from '../utils/ast' +import { createRule, RuleMetaData } from '../utils/rule' + +/** + * The name of this rule. + */ +export const name = 'enum' as const +export const nameDeprecated = 'string-enum' as const + +/** + * The options this rule can take. + */ +export type RuleOptions = RuleOptionsGeneric> + +const sortingParamsOptionSchema: JSONSchema4 = { + type: 'object', + properties: { + caseSensitive: { + type: 'boolean', + }, + natural: { + type: 'boolean', + }, + }, + additionalProperties: false, +} + +/** + * The schema for the rule options. + */ +const schema: JSONSchema4[] = [sortingOrderOptionSchema, sortingParamsOptionSchema] + +/** + * The default options for the rule. + */ +const defaultOptions: RuleOptions = [ + SortingOrder.Ascending, + { caseSensitive: true, natural: false }, +] + +/** + * The possible error messages. + */ +const errorMessages = { + invalidOrderBody: ErrorMessage.EnumInvalidOrder, + invalidOrderParent: ErrorMessage.EnumParentInvalidOrder, +} as const +type errorMessageKeys = keyof typeof errorMessages + +/** + * The meta data for this rule. + */ +const meta: RuleMetaData = { + type: 'layout', + docs: { + description: 'require enum members to be sorted', + recommended: 'stylistic', + }, + messages: errorMessages, + fixable: 'code', + schema, +} + +/** + * Create the rule. + */ +export const rule = createRule({ + name, + meta, + defaultOptions, + + create(context) { + const compareNodeListAndReport = createReporter({ + context, + createReportPropertiesObject: ({ loc }: TSESTree.Node) => ({ + loc, + messageId: 'invalidOrderBody' as any, + }), + createReportParentObject: ({ loc }: TSESTree.Node) => ({ + loc, + messageId: 'invalidOrderParent' as any, + }), + }) + + return { + TSEnumDeclaration(node: TSESTree.TSEnumDeclaration) { + const body = getObjectBody(node) as TSESTree.TSEnumMember[] + compareNodeListAndReport(node, body) + }, + } + }, +}) diff --git a/src/rules/index.ts b/src/rules/index.ts index 4ccfe27..75727b8 100644 --- a/src/rules/index.ts +++ b/src/rules/index.ts @@ -1,7 +1,27 @@ -import { name as interfaceName, rule as interfaceRule } from './interface' -import { name as stringEnumName, rule as stringEnumRule } from './string-enum' +import { RuleModule } from '@typescript-eslint/utils/ts-eslint' +import { + RuleOptions as EnumRuleOptions, + name as enumName, + rule as enumRule, +} from './enum' +import { + RuleOptions as InterfaceRuleOptions, + name as interfaceName, + rule as interfaceRule, +} from './interface' +import { + RuleOptions as EnumRuleOptionsDeprecated, + name as enumNameDeprecated, + rule as enumRuleDeprecated, +} from './string-enum' -export const rules = { +export const rules: Record< + string, + RuleModule +> = { [interfaceName]: interfaceRule, - [stringEnumName]: stringEnumRule, + [enumName]: enumRule, + [enumNameDeprecated]: enumRuleDeprecated, } + +export { EnumRuleOptions, InterfaceRuleOptions } diff --git a/src/rules/interface.ts b/src/rules/interface.ts index ee3e9f9..8ade8e8 100644 --- a/src/rules/interface.ts +++ b/src/rules/interface.ts @@ -1,29 +1,26 @@ -import { JSONSchema4 } from 'json-schema' +import { TSESTree } from '@typescript-eslint/utils' +import { JSONSchema4 } from '@typescript-eslint/utils/json-schema' -import { getObjectBody } from 'utils/ast' -import { createReporter } from 'utils/plugin' -import { createRule, RuleMetaData } from 'utils/rule' +import { createReporter } from '../plugin' import { - sortingOrderOptionSchema, - SortingOrder, ErrorMessage, - SortingOrderOption, + RuleOptionsGeneric, + SortingOrder, + sortingOrderOptionSchema, SortingParamsOptions, -} from 'common/options' +} from '../types' +import { getObjectBody } from '../utils/ast' +import { createRule, RuleMetaData } from '../utils/rule' /** * The name of this rule. */ export const name = 'interface' as const -type SortingParams = SortingParamsOptions['caseSensitive'] & - SortingParamsOptions['natural'] & - SortingParamsOptions['requiredFirst'] - /** * The options this rule can take. */ -export type Options = [SortingOrderOption] | [SortingOrderOption, Partial] +export type RuleOptions = RuleOptionsGeneric const sortingParamsOptionSchema: JSONSchema4 = { type: 'object', @@ -44,12 +41,15 @@ const sortingParamsOptionSchema: JSONSchema4 = { /** * The schema for the rule options. */ -const schema: JSONSchema4[] = [sortingOrderOptionSchema, sortingParamsOptionSchema] +const schema: readonly JSONSchema4[] = [ + sortingOrderOptionSchema, + sortingParamsOptionSchema, +] /** * The default options for the rule. */ -const defaultOptions: Options = [ +const defaultOptions: RuleOptions = [ SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }, ] @@ -58,17 +58,19 @@ const defaultOptions: Options = [ * The possible error messages. */ const errorMessages = { - invalidOrder: ErrorMessage.InterfaceInvalidOrder, + invalidOrderBody: ErrorMessage.InterfaceInvalidOrder, + invalidOrderParent: ErrorMessage.InterfaceParentInvalidOrder, } as const +type errorMessageKeys = keyof typeof errorMessages /** * The meta data for this rule. */ -const meta: RuleMetaData = { - type: 'suggestion', +const meta: RuleMetaData = { + type: 'layout', docs: { description: 'require interface keys to be sorted', - recommended: 'warn', + recommended: 'stylistic', }, messages: errorMessages, fixable: 'code', @@ -78,28 +80,33 @@ const meta: RuleMetaData = { /** * Create the rule. */ -export const rule = createRule({ +export const rule = createRule({ name, meta, defaultOptions, create(context) { - const compareNodeListAndReport = createReporter(context, ({ loc }) => ({ - loc, - messageId: 'invalidOrder', - })) + const compareNodeListAndReport = createReporter({ + context, + createReportPropertiesObject: ({ loc }: TSESTree.Node) => ({ + loc, + messageId: 'invalidOrderBody' as any, + }), + createReportParentObject: ({ loc }: TSESTree.Node) => ({ + loc, + messageId: 'invalidOrderParent' as any, + }), + }) return { - TSInterfaceDeclaration(node) { + TSInterfaceDeclaration(node: TSESTree.TSInterfaceDeclaration) { const body = getObjectBody(node) - - return compareNodeListAndReport(body) + return compareNodeListAndReport(node, body) }, - TSTypeLiteral(node) { + TSTypeLiteral(node: TSESTree.TSTypeLiteral) { const body = getObjectBody(node) - - return compareNodeListAndReport(body) + return compareNodeListAndReport(node, body) }, } }, diff --git a/src/rules/string-enum.ts b/src/rules/string-enum.ts index 3f73871..2ac8cae 100644 --- a/src/rules/string-enum.ts +++ b/src/rules/string-enum.ts @@ -1,29 +1,28 @@ -import { JSONSchema4 } from 'json-schema' -import { TSESTree, AST_NODE_TYPES } from '@typescript-eslint/experimental-utils' +import { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/utils' +import { JSONSchema4 } from '@typescript-eslint/utils/json-schema' -import { getObjectBody } from 'utils/ast' -import { createReporter } from 'utils/plugin' -import { createRule, RuleMetaData } from 'utils/rule' +import { createReporter } from '../plugin' import { - sortingOrderOptionSchema, - SortingOrder, ErrorMessage, - SortingOrderOption, + RuleOptionsGeneric, + SortingOrder, + sortingOrderOptionSchema, SortingParamsOptions, -} from 'common/options' +} from '../types' +import { getObjectBody } from '../utils/ast' +import { createRule, RuleMetaData } from '../utils/rule' /** + * @deprecated * The name of this rule. */ export const name = 'string-enum' as const -type SortingParams = SortingParamsOptions['caseSensitive'] & - SortingParamsOptions['natural'] - /** + * @deprecated * The options this rule can take. */ -export type Options = [SortingOrderOption] | [SortingOrderOption, Partial] +export type RuleOptions = RuleOptionsGeneric> const sortingParamsOptionSchema: JSONSchema4 = { type: 'object', @@ -39,6 +38,7 @@ const sortingParamsOptionSchema: JSONSchema4 = { } /** + * @deprecated * The schema for the rule options. */ const schema: JSONSchema4[] = [sortingOrderOptionSchema, sortingParamsOptionSchema] @@ -46,26 +46,30 @@ const schema: JSONSchema4[] = [sortingOrderOptionSchema, sortingParamsOptionSche /** * The default options for the rule. */ -const defaultOptions: Options = [ +const defaultOptions: RuleOptions = [ SortingOrder.Ascending, { caseSensitive: true, natural: false }, ] /** + * @deprecated * The possible error messages. */ const errorMessages = { - invalidOrder: ErrorMessage.StringEnumInvalidOrder, + invalidOrderBody: ErrorMessage.EnumInvalidOrder, + invalidOrderParent: ErrorMessage.EnumParentInvalidOrder, } as const +type errorMessageKeys = keyof typeof errorMessages /** + * @deprecated * The meta data for this rule. */ -const meta: RuleMetaData = { - type: 'suggestion', +const meta: RuleMetaData = { + type: 'layout', docs: { description: 'require string enum members to be sorted', - recommended: 'warn', + recommended: 'stylistic', }, messages: errorMessages, fixable: 'code', @@ -73,31 +77,38 @@ const meta: RuleMetaData = { } /** + * @deprecated * Create the rule. */ -export const rule = createRule({ +export const rule = createRule({ name, meta, defaultOptions, create(context) { - const compareNodeListAndReport = createReporter(context, ({ loc }) => ({ - loc, - messageId: 'invalidOrder', - })) + const compareNodeListAndReport = createReporter({ + context, + createReportPropertiesObject: ({ loc }: TSESTree.Node) => ({ + loc, + messageId: 'invalidOrderBody' as any, + }), + createReportParentObject: ({ loc }: TSESTree.Node) => ({ + loc, + messageId: 'invalidOrderParent' as any, + }), + }) return { - TSEnumDeclaration(node) { + TSEnumDeclaration(node: TSESTree.TSEnumDeclaration) { const body = getObjectBody(node) as TSESTree.TSEnumMember[] const isStringEnum = body.every( (member: TSESTree.TSEnumMember) => - member.initializer && - member.initializer.type === AST_NODE_TYPES.Literal && - typeof member.initializer.value === 'string', + member.initializer?.type === AST_NODE_TYPES.Literal && + typeof member.initializer?.value === 'string', ) if (isStringEnum) { - compareNodeListAndReport(body) + compareNodeListAndReport(node, body) } }, } diff --git a/src/types/error.ts b/src/types/error.ts new file mode 100644 index 0000000..4ec936d --- /dev/null +++ b/src/types/error.ts @@ -0,0 +1,6 @@ +export enum ErrorMessage { + InterfaceParentInvalidOrder = `Found {{ unsortedCount }} keys out of order.`, + EnumParentInvalidOrder = `{{ notice }}Found {{ unsortedCount }} members out of order.`, + InterfaceInvalidOrder = `Expected interface keys to be in {{ requiredFirst }}{{ insensitive }}{{ natural }}{{ order }}ending order. '{{ nodeName }}' should be {{ messageShouldBeWhere }}. Run autofix to sort entire body.`, + EnumInvalidOrder = `{{ notice }}Expected enum members to be in {{ insensitive }}{{ natural }}{{ order }}ending order. '{{ nodeName }}' should be {{ messageShouldBeWhere }}. Run autofix to sort entire body.`, +} diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 0000000..9699332 --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1,5 @@ +export * from './error' +export * from './node' +export * from './options' +export * from './report' +export * from './rule' diff --git a/src/types/node.ts b/src/types/node.ts new file mode 100644 index 0000000..acda1cb --- /dev/null +++ b/src/types/node.ts @@ -0,0 +1,5 @@ +import { TSESTree } from '@typescript-eslint/utils' + +export type Node = Omit & { type: any; value: string } +export type TSType = TSESTree.TypeElement | TSESTree.TSEnumMember +export type NodePositionInfo = { initialIndex: number; finalIndex: number } diff --git a/src/types/options.ts b/src/types/options.ts new file mode 100644 index 0000000..c94b5d8 --- /dev/null +++ b/src/types/options.ts @@ -0,0 +1,19 @@ +import { JSONSchema4 } from '@typescript-eslint/utils/json-schema' + +export enum SortingOrder { + Ascending = 'asc', + Descending = 'desc', +} + +export const sortingOrderOptionSchema: JSONSchema4 = { + enum: [SortingOrder.Ascending, SortingOrder.Descending], + type: 'string', +} + +export type SortingOrderOption = SortingOrder + +export interface SortingParamsOptions { + readonly caseSensitive: boolean + readonly natural: boolean + readonly requiredFirst: boolean +} diff --git a/src/types/report.ts b/src/types/report.ts new file mode 100644 index 0000000..5e1d8c0 --- /dev/null +++ b/src/types/report.ts @@ -0,0 +1,25 @@ +import { TSESTree } from '@typescript-eslint/utils' +import { + SourceCode as Lib_SourceCode, + RuleContext as UtilRuleContext, +} from '@typescript-eslint/utils/ts-eslint' + +export type SourceCode = Lib_SourceCode & { + lineStartIndices: number[] +} + +export type ReportObjectCreator = ( + node: TSESTree.Node, +) => { + readonly loc: TSESTree.SourceLocation + readonly messageId: MessageIds +} + +export type CreateReporterArgs< + MessageIds extends string, + R extends readonly unknown[], +> = { + context: UtilRuleContext + createReportPropertiesObject: ReportObjectCreator + createReportParentObject: ReportObjectCreator +} diff --git a/src/types/rule.ts b/src/types/rule.ts new file mode 100644 index 0000000..93d8aa1 --- /dev/null +++ b/src/types/rule.ts @@ -0,0 +1,8 @@ +import { SortingOrderOption, SortingParamsOptions } from './options' + +export type RuleOptionsGeneric = + | [] + | [SortingOrderOption] + | [SortingOrderOption, Partial] + +export type AllRuleOptions = RuleOptionsGeneric diff --git a/src/utils/ast.ts b/src/utils/ast.ts index d31810a..8217988 100644 --- a/src/utils/ast.ts +++ b/src/utils/ast.ts @@ -1,5 +1,6 @@ -import { TSESTree, AST_NODE_TYPES } from '@typescript-eslint/experimental-utils' +import { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/utils' +import { TSType } from 'types' import { indexSignature } from './common' export function getObjectBody( @@ -71,14 +72,10 @@ function getProperty(node: TSESTree.Node) { * let a = {[tag`b`]: 1} // => undefined * let a = {[`${b}`]: 1} // => undefined */ -export function getPropertyName(node: TSESTree.TypeElement | TSESTree.TSEnumMember) { - const property = getProperty(node) +export function getPropertyName(node: TSType) { + const property = getProperty(node as TSESTree.Node) - if (!property) { - return undefined - } - - switch (property.type) { + switch (property?.type) { case AST_NODE_TYPES.Literal: return String(property.value) @@ -90,14 +87,13 @@ export function getPropertyName(node: TSESTree.TypeElement | TSESTree.TSEnumMemb } } -export function getPropertyIsOptional( - node: TSESTree.TypeElement | TSESTree.TSEnumMember, -) { +// Returns whether a method or property signature is optional. +export function getPropertyIsOptional(node: TSType) { switch (node.type) { case AST_NODE_TYPES.TSMethodSignature: case AST_NODE_TYPES.TSPropertySignature: return Boolean(node.optional) + default: + return false } - - return false } diff --git a/src/utils/compare.ts b/src/utils/compare.ts index f6ef88a..db562bc 100644 --- a/src/utils/compare.ts +++ b/src/utils/compare.ts @@ -15,13 +15,11 @@ function charCompare(a: string, b: string) { } function getWeight(value: string) { - switch (true) { - // Custom name for index signature used here - case indexSignature.regex.test(value): - return 100 - default: - return 0 + // Custom name for index signature used here + if (indexSignature.regex.test(value)) { + return 100 } + return 0 } function weightedCompare( @@ -51,9 +49,12 @@ const ascendingInsensitiveNatural = (a: string, b: string) => { /** * Functions which check that the given 2 names are in specific order. */ -export const compareFn = - (isAscending: boolean, isInsensitive: boolean, isNatural: boolean) => - (...args: [string?, string?]) => { +export const compareFn = ( + isAscending: boolean, + isInsensitive: boolean, + isNatural: boolean, +) => { + return (...args: [string?, string?]) => { if (args.filter(Boolean).length !== 2) { return 0 } @@ -74,3 +75,4 @@ export const compareFn = return ascending(...input) } +} diff --git a/src/utils/memo.ts b/src/utils/memo.ts new file mode 100644 index 0000000..209fcdc --- /dev/null +++ b/src/utils/memo.ts @@ -0,0 +1,18 @@ +const memo: Record = {} + +// Getting strange test failures? Could be this! Disable and try again. +export function memoize(key: string, valueFn: () => any): any { + if (hasMemoized(key)) { + return memo[key] + } + memo[key] = valueFn() + return memo[key] +} + +export function getMemoized(key: string): any { + return memo[key] +} + +export function hasMemoized(key: string): boolean { + return !!memo[key] +} diff --git a/src/utils/plugin.ts b/src/utils/plugin.ts deleted file mode 100644 index 4198d18..0000000 --- a/src/utils/plugin.ts +++ /dev/null @@ -1,226 +0,0 @@ -import { TSESTree, AST_TOKEN_TYPES } from '@typescript-eslint/experimental-utils' -import { - RuleContext as UtilRuleContext, - RuleFixer, - RuleFix, - SourceCode, -} from '@typescript-eslint/experimental-utils/dist/ts-eslint' -import assert from 'assert' - -import { SortingOrder } from 'common/options' -import { Options as InterfaceRuleOptions } from 'rules/interface' -import { Options as StringEnumRuleOptions } from 'rules/string-enum' -import { getPropertyName, getPropertyIsOptional } from './ast' -import { compareFn } from './compare' - -type RuleOptions = InterfaceRuleOptions & StringEnumRuleOptions - -type TSType = TSESTree.TypeElement | TSESTree.TSEnumMember - -function createNodeSwapper(context: UtilRuleContext) { - const sourceCode = context.getSourceCode() as SourceCode & { - lineStartIndices: number[] - } - - /** - * Returns the indent range of a node if it's the first on its line. - * Otherwise, returns a range starting immediately after the previous sibling. - */ - function getIndentRange(node: TSESTree.Node | TSESTree.Comment): TSESTree.Range { - const prevSibling = sourceCode.getTokenBefore(node) - const end = node.range[0] - const start = - prevSibling && prevSibling.loc.start.line === node.loc.start.line - ? prevSibling.range[1] + 1 - : node.range[0] - node.loc.start.column - - return [start, end] - } - - function getRangeWithIndent(node: TSESTree.Comment) { - return [getIndentRange(node)[0], node.range[1]] - } - - /** - * Returns the range for the entire line, including EOL, if node is the only - * token on its lines. Otherwise, returns the node range. - */ - function getLineRange(node: TSESTree.Comment): TSESTree.Range { - const [start] = getRangeWithIndent(node) - const index = sourceCode.lineStartIndices.findIndex(n => start === n) - - if (index < 0) { - // Node is not at the beginning of the line - return node.range - } - - const lines = 1 + node.loc.end.line - node.loc.start.line - - return [ - sourceCode.lineStartIndices[index], - sourceCode.lineStartIndices[index + lines], - ] - } - - function getIndentText(node: TSESTree.Node) { - return sourceCode.text.slice(...getIndentRange(node)) - } - - function getNodePunctuator(node: TSESTree.Node) { - const punctuator = sourceCode.getTokenAfter(node, { - filter: n => n.type === AST_TOKEN_TYPES.Punctuator && n.value !== ':', - includeComments: false, - }) - - // Check the punctuator value outside of filter because we - // want to stop traversal on any terminating punctuator - return punctuator && /^[,;]$/.test(punctuator.value) ? punctuator : undefined - } - - return ( - fixer: RuleFixer, - nodePositions: Map, - currentNode: TSType, - replaceNode: TSType, - ) => - [currentNode, replaceNode].reduce((acc, node) => { - const otherNode = node === currentNode ? replaceNode : currentNode - const comments = sourceCode.getCommentsBefore(node) - const nextSibling = sourceCode.getTokenAfter(node) - const isLastReplacingLast = - nodePositions.get(node)?.final === nodePositions.size - 1 && - nodePositions.get(node)?.final === nodePositions.get(otherNode)?.initial - - let text = [ - comments.length ? getIndentText(node) : '', - sourceCode.getText(node), - ].join('') - - // If nextSibling is the node punctuator, remove it - if (nextSibling === getNodePunctuator(node)) { - acc.push(fixer.remove(nextSibling)) - } - - if (!/[,;]$/.test(text)) { - // Add a punctuator if the node doesn't already have one - text += ',' - } - - if (isLastReplacingLast) { - // If we're moving the last node to its final destination, we can remove the punctuator - text = text.replace(/,$/, '') - } - - if (comments.length) { - // Insert leading comments above the other node - acc.push( - fixer.insertTextBefore( - otherNode, - comments - .map(comment => sourceCode.getText(comment as any)) - .concat('') - .join('\n'), - ), - ) - } - - acc.push( - // Insert the node before the other node - fixer.insertTextBefore(otherNode, text), - // Remove the original instance of node - fixer.remove(node), - // Remove the original instances of node comments - ...comments.map(n => fixer.removeRange(getLineRange(n))), - ) - - return acc - }, []) -} - -export function createReporter( - context: UtilRuleContext, - createReportObject: (node: TSESTree.Node) => { - readonly loc: TSESTree.SourceLocation - readonly messageId: MessageIds - }, -) { - // Parse options. - const order = context.options[0] || SortingOrder.Ascending - const options = context.options[1] - const isAscending = order === SortingOrder.Ascending - const isInsensitive = (options && options.caseSensitive) === false - const isNatural = Boolean(options && options.natural) - const isRequiredFirst = (options && options.requiredFirst) === true - - const compare = compareFn(isAscending, isInsensitive, isNatural) - const swapNodes = createNodeSwapper(context) - - return (body: TSType[]) => { - const sortedBody = isRequiredFirst - ? [ - ...body - .slice(0) - .filter(node => !getPropertyIsOptional(node)) - .sort((a, b) => compare(getPropertyName(a), getPropertyName(b))), - ...body - .slice(0) - .filter(node => getPropertyIsOptional(node)) - .sort((a, b) => compare(getPropertyName(a), getPropertyName(b))), - ] - : body.slice(0).sort((a, b) => compare(getPropertyName(a), getPropertyName(b))) - - const nodePositions = new Map( - body.map(n => [n, { initial: body.indexOf(n), final: sortedBody.indexOf(n) }]), - ) - - for (let i = 1; i < body.length; i += 1) { - const prevNode = body[i - 1] - const currentNode = body[i] - const prevNodeName = getPropertyName(prevNode) - const currentNodeName = getPropertyName(currentNode) - - if ( - (!isRequiredFirst && compare(prevNodeName, currentNodeName) > 0) || - (isRequiredFirst && - getPropertyIsOptional(prevNode) === getPropertyIsOptional(currentNode) && - compare(prevNodeName, currentNodeName) > 0) || - (isRequiredFirst && - getPropertyIsOptional(prevNode) !== getPropertyIsOptional(currentNode) && - getPropertyIsOptional(prevNode)) - ) { - const targetPosition = sortedBody.indexOf(currentNode) - const replaceNode = body[targetPosition] - const { loc, messageId } = createReportObject(currentNode) - - // Sanity check - assert(loc, 'createReportObject return value must include a node location') - assert( - messageId, - 'createReportObject return value must include a problem message', - ) - - context.report({ - loc, - messageId, - node: currentNode, - data: { - thisName: currentNodeName, - prevName: prevNodeName, - order, - insensitive: isInsensitive ? 'insensitive ' : '', - natural: isNatural ? 'natural ' : '', - requiredFirst: isRequiredFirst ? 'required first ' : '', - }, - - fix: fixer => { - if (currentNode !== replaceNode) { - return swapNodes(fixer, nodePositions, currentNode, replaceNode) - } - - return null - }, - }) - } - } - } -} diff --git a/src/utils/reportUtils.ts b/src/utils/reportUtils.ts new file mode 100644 index 0000000..9f80eb4 --- /dev/null +++ b/src/utils/reportUtils.ts @@ -0,0 +1,59 @@ +import { PLUGIN_NAME } from 'config/constants' +import { + name as enumRuleName, + nameDeprecated as enumRuleNameDeprecated, +} from 'rules/enum' +import { NodePositionInfo, TSType } from 'types' + +import { getRuleDocsUrl } from './rule' + +/** + * Check if the node is locally sorted or not. + * + * Example: c, a, b can skip reporting that 'a' should be + * before 'b' even though they're both positioned wrongly. + */ +export function shouldReportUnsorted( + sortedBody: TSType[], + unsortedBody: TSType[], + nodeInfo: NodePositionInfo, +) { + const { initialIndex, finalIndex } = nodeInfo + const isLastSorted = finalIndex === sortedBody.length - 1 + // Node moved and next sorted node isn't the same neighbor as unsorted + return ( + initialIndex !== finalIndex && + (isLastSorted || sortedBody[finalIndex + 1] !== unsortedBody[initialIndex + 1]) + ) +} + +// Helpful metadata on nodes to report/skip reporting +export function getUnsortedInfo( + sortedBody: TSType[], + unsortedBody: TSType[], + nodePositions: Map, +) { + const finalIndicesToReport = new Array(sortedBody.length).fill(false) + const unsortedCount = Array.from(nodePositions.entries()).reduce( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + (count, [_, info]) => { + if (shouldReportUnsorted(sortedBody, unsortedBody, info)) { + finalIndicesToReport[info.finalIndex] = true + return count + 1 + } + return count + }, + 0, + ) + return { unsortedCount, finalIndicesToReport } +} + +// Return string with url to notify of rule deprecations +export function getDeprecationMessage(name: string) { + switch (name) { + case enumRuleNameDeprecated: + return `DEPRECATED: see [${PLUGIN_NAME}/enum](${getRuleDocsUrl(enumRuleName)})` + default: + return '' + } +} diff --git a/src/utils/rule.ts b/src/utils/rule.ts index 8a8730f..873feae 100644 --- a/src/utils/rule.ts +++ b/src/utils/rule.ts @@ -1,12 +1,12 @@ -import { ESLintUtils } from '@typescript-eslint/experimental-utils' +import { ESLintUtils } from '@typescript-eslint/utils' import { ReportDescriptor, - RuleContext as UtilRuleContext, RuleListener, + RuleModule, + RuleContext as UtilRuleContext, RuleMetaData as UtilRuleMetaData, RuleMetaDataDocs as UtilRuleMetaDataDocs, - RuleModule, -} from '@typescript-eslint/experimental-utils/dist/ts-eslint' +} from '@typescript-eslint/utils/ts-eslint' export type BaseOptions = readonly unknown[] @@ -39,8 +39,9 @@ export function createRule, ) => RuleListener }): RuleModule { - return ESLintUtils.RuleCreator( - name => - `https://github.com/infctr/eslint-plugin-typescript-sort-keys/blob/master/docs/rules/${name}.md`, - )(data) + return ESLintUtils.RuleCreator(getRuleDocsUrl)(data) } + +// Return a link to the docs based on the given name. +export const getRuleDocsUrl = (name: string) => + `https://github.com/infctr/eslint-plugin-typescript-sort-keys/blob/master/docs/rules/${name}.md` diff --git a/src/utils/sourcecode/commentHelpers.ts b/src/utils/sourcecode/commentHelpers.ts new file mode 100644 index 0000000..56c97e3 --- /dev/null +++ b/src/utils/sourcecode/commentHelpers.ts @@ -0,0 +1,168 @@ +import { AST_NODE_TYPES, AST_TOKEN_TYPES, TSESTree } from '@typescript-eslint/utils' +import { Node, SourceCode } from 'types' +import { getLatestNode } from './nodeHelpers' +import { + getDeclarationPunctuators, + getNodeFollowingPunctuator, + getNodePunctuator, +} from './punctuationHelpers' +import { + getTextBetween, + getTextBetweenNodeAndNext, + getTextBetweenNodeAndPrevious, +} from './textHelpers' + +/** + * Returns the text of the last comment in the body + */ +export function getLastCommentText(sourceCode: SourceCode, body: Node[]) { + const lastBodyNode = getLatestNode(body) + const lastBodyNodeComments = getCommentsAfter(sourceCode, lastBodyNode) + const latestCommentOrBodyNode = getLatestNode([...lastBodyNodeComments, lastBodyNode]) + // Comments after the comments that belong to the last property in the body + const endComments = sourceCode.getCommentsAfter(latestCommentOrBodyNode) + + const { declarationEndPunctuator } = getDeclarationPunctuators(sourceCode, body) + + const latestNode = getLatestNode( + [ + ...endComments, + latestCommentOrBodyNode, + getNodePunctuator(sourceCode, lastBodyNode), + ].filter(_ => !!_) as Node[], + ) + const endWhitespace = getTextBetween(sourceCode, latestNode, declarationEndPunctuator) + + const endCommentsTextWithWhitespace = + getCommentsText(sourceCode, endComments) + endWhitespace + + return endCommentsTextWithWhitespace +} + +/** + * Returns the text of comment nodes, preserving whitespace (including leading + * whitespace between comments and previous punctuator/body node). + */ +export function getCommentsText( + sourceCode: SourceCode, + comments: TSESTree.Comment[], + nextIndentation?: string, +): string { + return comments + .map((comment, index) => { + let commentText = sourceCode.getText(comment) + const indentation = getTextBetweenNodeAndPrevious(sourceCode, comment) + commentText = indentation + commentText + // Don't put a line comment on the same line as anything else, applies to last comment + const _nextIndentation = + index === comments.length - 1 + ? nextIndentation + : getTextBetweenNodeAndNext(sourceCode, comment) + if ( + comment.type === AST_TOKEN_TYPES.Line && + !commentText.endsWith('\n') && + !!_nextIndentation && + !_nextIndentation?.includes('\n') + ) { + commentText += '\n' + } + return commentText + }) + .join('') +} + +/* Get text of comments before a node, if any, with leading whitespace. */ +export function getCommentsTextBefore(sourceCode: SourceCode, node: Node) { + let commentText = getCommentsText(sourceCode, getCommentsBefore(sourceCode, node)) + + if (commentText) { + commentText += getTextBetweenNodeAndPrevious(sourceCode, node) + } + return commentText +} + +/* Get text of comments after a node, if any, with leading whitespace. */ +export function getCommentsTextAfter( + sourceCode: SourceCode, + node: Node, + type?: AST_TOKEN_TYPES.Line | AST_TOKEN_TYPES.Block, + nextIndentation?: string, +) { + return getCommentsText( + sourceCode, + getCommentsAfter(sourceCode, node, type), + nextIndentation, + ) +} + +/** + * Returns comments before a node, but only if they belong to it. Excludes line + * comments directly after the previous node which are on the same line as prev. + * + * Returns empty array if there is no previous node. + */ +export function getCommentsBefore( + sourceCode: SourceCode, + node: Node, + type?: AST_TOKEN_TYPES.Line | AST_TOKEN_TYPES.Block, +) { + const prevNode = sourceCode.getTokenBefore(node, { includeComments: false }) + if (!prevNode) return [] + const comments = sourceCode.getCommentsBefore(node) + + const nodeStartLine = node.loc.start.line + const prevNodeEndLine = prevNode.loc.end.line + + return comments.filter((comment: Node) => { + const commentStartLine = comment.loc.start.line + + // Special case when comment is on previous' line but prev is declaration punctuator + return ( + (!type || comment.type === type) && + (commentStartLine === nodeStartLine || + commentStartLine > prevNodeEndLine || + (commentStartLine >= prevNodeEndLine && prevNode.value === '{')) + ) + }) +} + +/** + * Returns comments after a node, but only if they belong to it. Excludes + * comments directly before the next node which are on the same line as next. + */ +export function getCommentsAfter( + sourceCode: SourceCode, + node: Node, + type?: AST_TOKEN_TYPES.Line | AST_TOKEN_TYPES.Block, +) { + const nodeEndLine = node.loc.end.line + const comments = sourceCode.getCommentsAfter(node) + + /** + * Sometimes a comment may be after the node's punctuation, thus not included + * in getCommentsAfter. Only enum members have punctuation that behaves this way. + */ + if (node.type === AST_NODE_TYPES.TSEnumMember) { + const punctuator = getNodePunctuator(sourceCode, node) + if (punctuator) comments.push(...sourceCode.getCommentsAfter(punctuator)) + } + + const nextNode = getNodeFollowingPunctuator(sourceCode, node) + const nextNodeStartPos = nextNode?.range[0] ?? Infinity + + const commentsAfter = comments.filter((comment: Node) => { + const commentStartLine = comment.loc.start.line + const commentEndPos = comment.range[1] + const nextBeforeComments = nextNode ? getCommentsBefore(sourceCode, nextNode) : [] + + // Comments on line after pertain to the next node + return ( + commentEndPos < nextNodeStartPos && + nodeEndLine === commentStartLine && + !nextBeforeComments.includes(comment) && + (!type || comment.type === type) + ) + }) + + return commentsAfter +} diff --git a/src/utils/sourcecode/indentHelpers.ts b/src/utils/sourcecode/indentHelpers.ts new file mode 100644 index 0000000..a5c5371 --- /dev/null +++ b/src/utils/sourcecode/indentHelpers.ts @@ -0,0 +1,20 @@ +import { Node, SourceCode } from 'types' +import { getCommentsBefore } from './commentHelpers' +import { getEarliestNode } from './nodeHelpers' +import { getTextBetweenNodeAndPrevious } from './textHelpers' + +/** + * Returns a map from index of source code to indentation string. + */ +export function getIndentationMap(sourceCode: SourceCode, body: Node[]) { + return new Map( + body.map((node, nodeIndex) => { + // Special case: block comment in between two nodes + const commentsBefore = getCommentsBefore(sourceCode, node) + const earliestNode = getEarliestNode([...commentsBefore, node]) + const indent = getTextBetweenNodeAndPrevious(sourceCode, earliestNode) + + return [nodeIndex, indent] + }), + ) +} diff --git a/src/utils/sourcecode/index.ts b/src/utils/sourcecode/index.ts new file mode 100644 index 0000000..c12fd42 --- /dev/null +++ b/src/utils/sourcecode/index.ts @@ -0,0 +1,57 @@ +import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '@typescript-eslint/utils' +import { Node, SourceCode } from 'types' +import { + getCommentsTextAfter, + getCommentsTextBefore, + getLastCommentText, +} from './commentHelpers' +import { getIndentationMap } from './indentHelpers' +import { getPunctuation } from './punctuationHelpers' +import { getProcessedText } from './textHelpers' + +/** + * Returns the text of the entire body, rebuilt from the source code in order given. + */ +export function getFixedBodyText( + sourceCode: SourceCode, + bodyToEmit: Node[], + originalBody: Node[], +) { + // Indents from original body + const indentations = getIndentationMap(sourceCode, originalBody) + // Capture any trailing comments + whitespace + const lastCommentsText = getLastCommentText(sourceCode, originalBody) + return ( + bodyToEmit + .map((node, index) => { + const isLast = index === bodyToEmit.length - 1 + const shouldHavePunctuation = !isLast || node.type !== AST_NODE_TYPES.TSEnumMember + const resultNodeText = + indentations.get(index) + + [ + getCommentsTextBefore(sourceCode, node), + getProcessedText(sourceCode, node), + getCommentsTextAfter(sourceCode, node, AST_TOKEN_TYPES.Block), + shouldHavePunctuation && getPunctuation(node), + getCommentsTextAfter( + sourceCode, + node, + AST_TOKEN_TYPES.Line, + indentations.get(index + 1) ?? lastCommentsText, + ), + ] + .filter(Boolean) + .join('') + .trimStart() + + return resultNodeText + }) + .join('') + lastCommentsText + ) +} + +export * from './commentHelpers' +export * from './indentHelpers' +export * from './nodeHelpers' +export * from './punctuationHelpers' +export * from './textHelpers' diff --git a/src/utils/sourcecode/nodeHelpers.ts b/src/utils/sourcecode/nodeHelpers.ts new file mode 100644 index 0000000..a6469e5 --- /dev/null +++ b/src/utils/sourcecode/nodeHelpers.ts @@ -0,0 +1,28 @@ +import { Node, SourceCode } from 'types' + +/** + * Returns the node with the highest range in the list + */ +export function getLatestNode(body: Node[]) { + return body.reduce((acc, node) => { + return node.range[1] >= acc.range[1] ? node : acc + }, body[0]) +} + +/** + * Returns the node with the lowest range in the list + */ +export function getEarliestNode(body: Node[]) { + return body.reduce((acc, node) => { + return node.range[1] <= acc.range[0] ? node : acc + }, body[0]) +} + +export function getNextNonCommentNode(sourceCode: SourceCode, node: Node) { + const nextNode = sourceCode.getTokenAfter(node, { includeComments: false }) + return nextNode ?? undefined +} +export function getPreviousNonCommentNode(sourceCode: SourceCode, node: Node) { + const nextNode = sourceCode.getTokenBefore(node, { includeComments: false }) + return nextNode ?? undefined +} diff --git a/src/utils/sourcecode/punctuationHelpers.ts b/src/utils/sourcecode/punctuationHelpers.ts new file mode 100644 index 0000000..543c44b --- /dev/null +++ b/src/utils/sourcecode/punctuationHelpers.ts @@ -0,0 +1,86 @@ +import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '@typescript-eslint/utils' +import assert from 'assert' +import { Node, SourceCode } from 'types' +import { + getEarliestNode, + getLatestNode, + getNextNonCommentNode, + getPreviousNonCommentNode, +} from './nodeHelpers' + +/** + * Returns the node's following punctuation node, if any. Does not return comments. + */ +export function getNodePunctuator( + sourceCode: SourceCode, + node: Node, + punctuators = ',;', +) { + // interface/type member nodes contain their own punctuation + if (new RegExp(`[${punctuators}]$`).test(sourceCode.getText(node))) { + return sourceCode.getTokenByRangeStart(node.range[1] - 1) + } + + const punctuator = sourceCode.getTokenAfter(node, { + filter: (n: Node) => { + return ( + n.type === AST_TOKEN_TYPES.Punctuator && + new RegExp(`^[${punctuators}]$`).test(n.value) + ) + }, + includeComments: false, + }) + // Ensure we don't go beyond the parent into the source code + return punctuator && punctuator.range[1] <= (node.parent?.range[1] || Infinity) + ? punctuator + : undefined +} + +/** + * Returns the non-comment node following the given node's punctuation node, if any. + * Ex: For `foo: T, bar: T`, returns `bar: T` node given `foo: T,` node. + */ +export function getNodeFollowingPunctuator(sourceCode: SourceCode, node: Node) { + const punctuator = getNodePunctuator(sourceCode, node) + if (!punctuator) return undefined + return getNextNonCommentNode(sourceCode, punctuator) +} + +/** + * Returns the nodes for outer bracket punctuators of an interface or enum declaration. + * Asserts that the punctuators exist due to use of non-null operator. + */ +export function getDeclarationPunctuators(sourceCode: SourceCode, body: Node[]) { + const startNode = getEarliestNode(body) + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const declarationStartPunctuator = getPreviousNonCommentNode(sourceCode, startNode)! + assert( + !!declarationStartPunctuator, + `Expected declaration end punctuator after ${sourceCode.getText(startNode)}`, + ) + + const endNode = getLatestNode(body) // Sometimes this is a comma + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const declarationEndPunctuator = getNodePunctuator(sourceCode, endNode, '}')! + assert( + !!declarationStartPunctuator, + `Expected declaration end punctuator after ${sourceCode.getText(endNode)}`, + ) + + return { declarationStartPunctuator, declarationEndPunctuator } +} + +// Returns a string containing the node's punctuation, if any. +export function getPunctuation(node: Node) { + return node.type === AST_NODE_TYPES.TSEnumMember ? ',' : ';' +} + +export function getBodyRange(sourceCode: SourceCode, body: Node[]): [number, number] { + const { declarationStartPunctuator, declarationEndPunctuator } = + getDeclarationPunctuators(sourceCode, body) + // Adjust start range ahead of the punctuator + const start = declarationStartPunctuator.range[0] + 1 + const end = declarationEndPunctuator.range[0] + + return [start, end] +} diff --git a/src/utils/sourcecode/textHelpers.ts b/src/utils/sourcecode/textHelpers.ts new file mode 100644 index 0000000..20dc27d --- /dev/null +++ b/src/utils/sourcecode/textHelpers.ts @@ -0,0 +1,48 @@ +import { Node, SourceCode } from 'types' + +/** + * Returns text between the node and previous (previous may be a comment). + * Empty result if no previous node. + */ +export function getTextBetweenNodeAndPrevious(sourceCode: SourceCode, node: Node) { + const prevNode = sourceCode.getTokenBefore(node, { includeComments: true }) + if (!prevNode) return '' + + return getTextBetween(sourceCode, prevNode, node) +} + +/** + * Returns text between the node and next (next may be a comment). + * Empty result if no next node. + */ +export function getTextBetweenNodeAndNext(sourceCode: SourceCode, node: Node) { + const nextNode = sourceCode.getTokenAfter(node, { includeComments: true }) + if (!nextNode) return '' + + return getTextBetween(sourceCode, node, nextNode) +} + +/** + * Returns the node with proper punctuation. + */ +export function getProcessedText(sourceCode: SourceCode, node: Node) { + const nodeText = sourceCode.getText(node) + + if (/[,;]$/.test(nodeText)) { + return nodeText.substring(0, nodeText.length - 1) + } + + return nodeText +} + +/** + * Returns the text between two nodes, excluding comments between them. + * Range of start/end is from the comments between the nodes, if any. If a + * given node is a comment, the respective range is from the comment itself. + */ +export function getTextBetween(sourceCode: SourceCode, startNode: Node, endNode: Node) { + const startNodeEnd = startNode.range[1] + const endNodeStart = endNode.range[0] + + return sourceCode.text.slice(startNodeEnd, endNodeStart) +} From a7c74fa4d9891c28b17323125ce1a5e1753aa8be Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sun, 10 Dec 2023 14:47:30 -0800 Subject: [PATCH 04/26] update dotfiles, configs, scripts, etc --- .eslintrc.js | 15 +- .github/workflows/publish.yml | 7 +- .github/workflows/tests.yml | 2 +- .prettierrc.js | 1 + README.md | 13 +- jest.config.js | 14 +- package.json | 95 +- rollup.config.js | 37 - rollup.config.mjs | 45 + tsconfig.json | 81 +- yarn.lock | 6505 ++++++++++++--------------------- 11 files changed, 2415 insertions(+), 4400 deletions(-) delete mode 100644 rollup.config.js create mode 100644 rollup.config.mjs diff --git a/.eslintrc.js b/.eslintrc.js index b0816ea..43c258d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,5 +1,4 @@ module.exports = { - root: true, parser: '@typescript-eslint/parser', plugins: ['@typescript-eslint', 'eslint-plugin', 'import', 'jest', 'prettier'], env: { @@ -8,13 +7,12 @@ module.exports = { }, extends: [ 'eslint:recommended', - 'plugin:import/errors', - 'plugin:import/warnings', + 'plugin:import/recommended', 'plugin:eslint-plugin/all', 'plugin:prettier/recommended', ], parserOptions: { - ecmaVersion: 10, + ecmaVersion: '2024', sourceType: 'module', }, rules: { @@ -28,7 +26,7 @@ module.exports = { rules: { '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/ban-ts-ignore': 'off', + '@typescript-eslint/ban-ts-comment': 'off', '@typescript-eslint/no-explicit-any': 'off', }, @@ -52,7 +50,7 @@ module.exports = { 'jest/prefer-to-have-length': 'warn', 'jest/prefer-spy-on': 'error', 'jest/valid-expect': 'error', - 'jest/no-test-callback': 'off', + 'jest/no-done-callback': 'off', }, }, ], @@ -60,9 +58,8 @@ module.exports = { ], settings: { 'import/resolver': { - node: { - moduleDirectory: ['node_modules', 'src'], - }, + node: true, + typescript: true, }, }, } diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f8d10a3..238dd72 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -14,9 +14,11 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: 18 + node-version: 20 - run: yarn - run: yarn verify + env: + MINIFY: true publish-npm: needs: build @@ -25,9 +27,10 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: 18 + node-version: 20 registry-url: https://registry.npmjs.org/ - run: yarn - run: npm publish env: NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + MINIFY: true diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 94f1ab6..40f7da7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: - node-version: [16.x, 18.x, 20.x] + node-version: [18.x, 20.x] steps: - uses: actions/checkout@v2 diff --git a/.prettierrc.js b/.prettierrc.js index 6c8f09d..0612866 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -3,4 +3,5 @@ module.exports = { trailingComma: 'all', arrowParens: 'avoid', semi: false, + singleQuote: true, } diff --git a/README.md b/README.md index 6b1d744..488bb04 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,14 @@ # eslint-plugin-typescript-sort-keys -Sort interface and string enum keys +Sort interface and enum keys Inspired by and sourced from [eslint/sort-keys]([https://github.com/eslint/eslint/blob/master/docs/rules/sort-keys.md](https://github.com/eslint/eslint/blob/main/docs/src/rules/sort-keys.md)) ## Installation +Supported on Node 18+ + You'll first need to install - [eslint](http://eslint.org) @@ -50,7 +52,7 @@ Then configure the rules you want to use under the rules section. { "rules": { "typescript-sort-keys/interface": "error", - "typescript-sort-keys/string-enum": "error" + "typescript-sort-keys/enum": "error" } } ``` @@ -67,12 +69,13 @@ Or enable all rules with defaults -**Key**: :heavy_check_mark: = recommended, :wrench: = fixable +**Key**: :heavy_check_mark: = recommended, :wrench: = fixable, :warning: = deprecated -| Name | Description | :heavy_check_mark: | :wrench: | +| Name | Description | | | | ---- | ----------- | ------------------ | -------- | | [`typescript-sort-keys/interface`](./docs/rules/interface.md) | require interface keys to be sorted | :heavy_check_mark: | :wrench: | -| [`typescript-sort-keys/string-enum`](./docs/rules/string-enum.md) | require string enum members to be sorted | :heavy_check_mark: | :wrench: | +| [`typescript-sort-keys/enum`](./docs/rules/enum.md) | require enum members to be sorted | :heavy_check_mark: | :wrench: | +| [`typescript-sort-keys/string-enum`](./docs/rules/string-enum.md) | (**DEPRECATED**) require string enum members to be sorted | :warning: | :wrench: | diff --git a/jest.config.js b/jest.config.js index 2f192c4..3455f77 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,4 +1,16 @@ module.exports = { - testRegex: 'tests/.*\\.spec\\.(js|ts)$', + coverageDirectory: 'coverage', + collectCoverageFrom: ['src/**/*'], + coverageReporters: [['text', { skipFull: false, skipEmpty: true }], 'lcov'], + coverageThreshold: { + global: { + branches: 94, + functions: 100, + lines: 100, + statements: 98, + }, + }, moduleDirectories: ['node_modules', 'src'], + randomize: true, // Just to be sure memoization isn't broken + testRegex: 'tests/.*\\.spec\\.(js|ts)$', } diff --git a/package.json b/package.json index e6deac0..a8181d6 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,6 @@ "files": [ "/lib", "package.json", - "CHANGELOG.md", "LICENSE.md", "README.md" ], @@ -28,61 +27,75 @@ "./package.json": "./package.json" }, "scripts": { - "prepublishOnly": "yarn compile", "build": "yarn rimraf lib && yarn compile", "compile": "yarn rollup -c", - "docs": "eslint-docs", + "coverage-preview": "http-server -o -p 5000 coverage/lcov-report", + "deduplicate": "yarn-deduplicate --strategy fewer", "docs:check": "eslint-docs check", - "lint": "eslint --ext .js,.ts src/ tests/", + "docs": "eslint-docs", "format": "prettier --write src/**/*.{js,ts} tests/**/*.{js,ts}", - "test": "yarn jest --watch", - "coverage": "yarn test --coverage --watchAll=false", - "coverage-preview": "http-server -o -p 5000 coverage/lcov-report", + "lint": "eslint --ext .js,.ts src/ tests/", + "prepublishOnly": "MINIFY=1 yarn build", + "purge": "yarn -s rimraf node_modules lib", + "test:autofix": "yarn -s jest ./tests/autofix.spec.ts", + "test:config": "yarn -s jest ./tests/config.spec.ts", + "test:interface": "yarn -s jest ./tests/rules/interface/*.spec.ts", + "test:rules": "yarn -s jest ./tests/rules/*/*.spec.ts --collectCoverage=true", + "test:enum": "yarn -s jest ./tests/rules/enum/*.spec.ts", + "test:watch:autofix": "yarn jest --watch ./tests/autofix.spec.ts", + "test:watch:config": "yarn jest --watch ./tests/config.spec.ts", + "test:watch:interface": "yarn jest --watch ./tests/rules/interface/*.spec.ts", + "test:watch:rules": "yarn jest --watch ./tests/rules/*/*.spec.ts", + "test:watch:enum": "yarn jest --watch ./tests/rules/enum/*.spec.ts", + "test:watch": "yarn -s jest --watch .*.spec.ts", + "test": "yarn -s jest .*.spec.ts --collectCoverage=true", "typecheck": "tsc --noEmit --skipLibCheck", - "verify": "yarn typecheck && yarn lint && yarn build && yarn coverage" + "verify": "yarn typecheck && yarn lint && yarn build && yarn test" }, "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0", + "@typescript-eslint/utils": "^6.7.4", "json-schema": "^0.4.0", "natural-compare-lite": "^1.4.0" }, "devDependencies": { - "@babel/cli": "~7.14.8", - "@babel/core": "~7.15.0", - "@babel/preset-env": "~7.15.0", - "@babel/preset-typescript": "~7.15.0", + "@babel/cli": "~7.23.0", + "@babel/core": "~7.23.0", + "@babel/preset-env": "~7.23.0", + "@babel/preset-typescript": "~7.23.0", "@infctr/eslint-docs": "~0.4.0", - "@rollup/plugin-commonjs": "~12.0.0", - "@rollup/plugin-json": "~4.0.3", - "@rollup/plugin-node-resolve": "~8.0.0", - "@rollup/plugin-typescript": "~11.1.2", - "@types/babel__core": "~7.1.7", - "@types/babel__preset-env": "~7.9.0", - "@types/eslint": "~7.28.1", - "@types/jest": "~27.0.2", + "@rollup/plugin-commonjs": "~25.0.5", + "@rollup/plugin-json": "~6.0.1", + "@rollup/plugin-node-resolve": "~15.2.2", + "@rollup/plugin-terser": "~0.4.4", + "@rollup/plugin-typescript": "~11.1.4", + "@types/eslint": "~8.44.3", + "@types/jest": "~29.5.5", "@types/natural-compare-lite": "~1.4.0", - "@types/rimraf": "~3.0.1", - "@types/tmp": "~0.2.1", - "@typescript-eslint/eslint-plugin": "~6.4.0", - "@typescript-eslint/parser": "~6.4.0", - "babel-jest": "~26.6.3", - "babel-plugin-module-resolver": "~4.1.0", - "eslint": "~8.0.1", + "@types/node": "^18.0.0", + "@types/tmp": "~0.2.4", + "@typescript-eslint/eslint-plugin": "^6.7.4", + "@typescript-eslint/parser": "^6.7.4", + "babel-jest": "~29.7.0", + "babel-plugin-module-resolver": "~5.0.0", + "chalk": "~5.3.0", + "eslint": "~8.50.0", "eslint-config-prettier": "~9.0.0", + "eslint-import-resolver-typescript": "~3.6.1", "eslint-plugin-eslint-plugin": "~5.1.1", - "eslint-plugin-import": "~2.28.0", - "eslint-plugin-jest": "~27.2.3", + "eslint-plugin-import": "~2.28.1", + "eslint-plugin-jest": "~27.4.2", "eslint-plugin-prettier": "~5.0.0", - "http-server": "~13.0.0", + "http-server": "^14.0.0", "husky": "~4.2.5", - "jest": "~29.6.2", - "lint-staged": "~10.5.4", - "prettier": "3.0.1", - "rimraf": "~3.0.2", - "rollup": "~2.10.5", + "jest": "~29.7.0", + "lint-staged": "^14.0.1", + "lorem-ipsum": "~2.0.8", + "prettier": "^3.1.0", + "rimraf": "^5.0.5", + "rollup": "~4.7.0", "tmp": "~0.2.1", - "tsconfig": "~7.0.0", - "typescript": "5.1.6" + "typescript": "~5.2.2", + "yarn-deduplicate": "^6.0.2" }, "peerDependencies": { "@typescript-eslint/parser": "^6 || ^7", @@ -90,7 +103,11 @@ "typescript": "^3 || ^4 || ^5" }, "engines": { - "node": ">= 16" + "node": ">=18" + }, + "volta": { + "node": "18.19.0", + "yarn": "1.22.19" }, "license": "ISC" } diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index 67688cb..0000000 --- a/rollup.config.js +++ /dev/null @@ -1,37 +0,0 @@ -import commonjs from '@rollup/plugin-commonjs' -import resolve from '@rollup/plugin-node-resolve' -import typescript from '@rollup/plugin-typescript' -import json from '@rollup/plugin-json' -import tsconfig from 'tsconfig' -import fs from 'fs' -import assert from 'assert' - -const filePath = tsconfig.resolveSync('.') - -assert(filePath) - -const config = tsconfig.readFileSync(filePath) -const baseUrl = config.compilerOptions.baseUrl - -const moduleMappings = fs - .readdirSync(baseUrl, { withFileTypes: true }) - .filter(dir => dir.isDirectory()) - .map(dir => [dir.name, '/'].join('')) - -const external = id => - !id.startsWith('.') && - !id.startsWith('/') && - !id.startsWith('\0') && - !moduleMappings.some(mapping => id.startsWith(mapping)) - -export default [ - { - input: './src/index.ts', - external, - output: [ - { dir: 'lib', entryFileNames: '[name].cjs.js', format: 'cjs' }, - { dir: 'lib', entryFileNames: '[name].mjs', format: 'es' }, - ], - plugins: [commonjs(), resolve(), typescript(), json()], - }, -] diff --git a/rollup.config.mjs b/rollup.config.mjs new file mode 100644 index 0000000..06d4bcc --- /dev/null +++ b/rollup.config.mjs @@ -0,0 +1,45 @@ +import commonjs from '@rollup/plugin-commonjs' +import json from '@rollup/plugin-json' +import resolve from '@rollup/plugin-node-resolve' +import terser from '@rollup/plugin-terser' +import typescript from '@rollup/plugin-typescript' +import assert from 'assert' +import fs from 'fs' +import path from 'path' + +const minify = !!process.env.MINIFY + +const config = JSON.parse(fs.readFileSync('./tsconfig.json', 'utf-8')) +assert(config) +const baseUrl = config.compilerOptions.baseUrl + +const internalFolders = fs + .readdirSync(baseUrl, { withFileTypes: true }) + .filter(dir => dir.isDirectory()) + .map(dir => path.resolve(process.cwd(), baseUrl, dir.name)) + +const isExternal = id => + !id.startsWith('.') && + !id.startsWith('/') && + !id.startsWith('\0') && + !internalFolders.some(mapping => id.startsWith(mapping)) + +export default [ + { + input: './src/index.ts', + external: isExternal, + output: [ + { + dir: 'lib', + entryFileNames: '[name].cjs.js', + format: 'cjs', + }, + { + dir: 'lib', + entryFileNames: '[name].mjs', + format: 'es', + }, + ], + plugins: [commonjs(), resolve(), typescript(), json(), minify && terser()], + }, +] diff --git a/tsconfig.json b/tsconfig.json index c12b64b..90f6222 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,67 +1,22 @@ { "compilerOptions": { - /* Basic Options */ - // "incremental": true, /* Enable incremental compilation */ - "target": "ES6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, - "module": "esnext" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, - "lib": ["ESNext"] /* Specify library files to be included in the compilation. */, - "allowJs": true /* Allow javascript files to be compiled. */, - "checkJs": false /* Report errors in .js files. */, - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - // "declaration": true /* Generates corresponding '.d.ts' file. */, - // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ - "sourceMap": false /* Generates corresponding '.map' file. */, - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "lib" /* Redirect output structure to the directory. */, - // "rootDir": "src" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true /* Enable all strict type-checking options. */, - // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* Enable strict null checks. */ - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ - - /* Additional Checks */ - "noUnusedLocals": true /* Report errors on unused locals. */, - "noUnusedParameters": true /* Report errors on unused parameters. */, - "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, - "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, - - /* Module Resolution Options */ - "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */, - "baseUrl": "src" /* Base directory to resolve non-absolute module names. */, - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - // "types": [], /* Type declaration files to be included in compilation. */ - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + "allowJs": true, + "baseUrl": "src", + "checkJs": false, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "lib": ["ESNext"], + "module": "ESNext", + "moduleResolution": "bundler", + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "outDir": "lib", + "sourceMap": false, + "strict": true, + "target": "ES6" }, - "exclude": ["./node_modules", "tests/fixtures", "dist", "lib"] + "include": ["src"], + "exclude": ["node_modules", "tests", "dist", "lib"] } diff --git a/yarn.lock b/yarn.lock index a03bb68..1bfd13b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,11 @@ # 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== + "@ampproject/remapping@^2.2.0": version "2.2.1" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" @@ -10,314 +15,138 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/cli@~7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.14.8.tgz#fac73c0e2328a8af9fd3560c06b096bfa3730933" - integrity sha512-lcy6Lymft9Rpfqmrqdd4oTDdUx9ZwaAhAfywVrHG4771Pa6PPT0danJ1kDHBXYqh4HHSmIdA+nlmfxfxSDPtBg== +"@babel/cli@~7.23.0": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.23.4.tgz#f5cc90487278065fa0c3b1267cf0c1d44ddf85a7" + integrity sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw== dependencies: + "@jridgewell/trace-mapping" "^0.3.17" commander "^4.0.1" - convert-source-map "^1.1.0" + convert-source-map "^2.0.0" fs-readdir-recursive "^1.1.0" - glob "^7.0.0" + glob "^7.2.0" make-dir "^2.1.0" slash "^2.0.0" - source-map "^0.5.0" optionalDependencies: - "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.2" + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/code-frame@^7.12.13": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.15.8.tgz#45990c47adadb00c03677baa89221f7cc23d2503" - integrity sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg== - dependencies: - "@babel/highlight" "^7.14.5" - -"@babel/code-frame@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" - integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== - dependencies: - "@babel/highlight" "^7.14.5" - -"@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3" - integrity sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + 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.22.10" + "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" - integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== - -"@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== - -"@babel/core@^7.1.0", "@babel/core@^7.7.5": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" - integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.0" - "@babel/parser" "^7.9.0" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.10.tgz#aad442c7bcd1582252cb4576747ace35bc122f35" - integrity sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@~7.23.0": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" + integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.10" - "@babel/generator" "^7.22.10" - "@babel/helper-compilation-targets" "^7.22.10" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.10" - "@babel/parser" "^7.22.10" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.10" - "@babel/types" "^7.22.10" - convert-source-map "^1.7.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.5" + "@babel/parser" "^7.23.5" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" + json5 "^2.2.3" semver "^6.3.1" -"@babel/core@~7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" - integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" - "@babel/helper-compilation-targets" "^7.15.0" - "@babel/helper-module-transforms" "^7.15.0" - "@babel/helpers" "^7.14.8" - "@babel/parser" "^7.15.0" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/generator@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" - integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== +"@babel/generator@^7.23.5", "@babel/generator@^7.7.2": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" + integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA== dependencies: - "@babel/types" "^7.15.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" - integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== - dependencies: - "@babel/types" "^7.22.10" + "@babel/types" "^7.23.5" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/generator@^7.7.2": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.8.tgz#fa56be6b596952ceb231048cf84ee499a19c0cd1" - integrity sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g== - dependencies: - "@babel/types" "^7.15.6" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce" - integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA== - dependencies: - "@babel/types" "^7.9.0" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" - integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" - integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: - "@babel/helper-explode-assignable-expression" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" - integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== dependencies: - "@babel/compat-data" "^7.15.0" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.16.6" - semver "^6.3.0" + "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" - integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q== +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" browserslist "^4.21.9" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.0.tgz#c9a137a4d137b2d0e2c649acf536d7ba1a76c0f7" - integrity sha512-MdmDXgvTIi4heDVX/e9EFfeGpugqm9fobBVg/iioE8kueXrOHdRDe36FAY7SnE9xXLVeYCoJR/gdrBEIHRC83Q== - dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-member-expression-to-functions" "^7.15.0" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/helper-replace-supers" "^7.15.0" - "@babel/helper-split-export-declaration" "^7.14.5" - -"@babel/helper-create-regexp-features-plugin@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" - integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - regexpu-core "^4.7.1" +"@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz#2a8792357008ae9ce8c0f2b78b9f646ac96b314b" + integrity sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" - integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.7.0" + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.2.2": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" - integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== +"@babel/helper-define-polyfill-provider@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" + integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== - -"@babel/helper-explode-assignable-expression@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" - integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-function-name@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" - integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== - dependencies: - "@babel/helper-get-function-arity" "^7.14.5" - "@babel/template" "^7.14.5" - "@babel/types" "^7.14.5" - -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== - dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-get-function-arity@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" - integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== - dependencies: - "@babel/types" "^7.14.5" -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - dependencies: - "@babel/types" "^7.8.3" +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-hoist-variables@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" - integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/types" "^7.14.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" @@ -326,150 +155,60 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" - integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: - "@babel/types" "^7.15.0" + "@babel/types" "^7.23.0" -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.22.15" -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" - integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" - integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== - dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-replace-supers" "^7.15.0" - "@babel/helper-simple-access" "^7.14.8" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.9" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" - -"@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" "@babel/helper-simple-access" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.5" - -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" - integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== - dependencies: - "@babel/types" "^7.14.5" + "@babel/helper-validator-identifier" "^7.22.20" -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== - -"@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" - integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + "@babel/types" "^7.22.5" -"@babel/helper-plugin-utils@^7.22.5": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" - integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-wrap-function" "^7.14.5" - "@babel/types" "^7.14.5" - -"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" - integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.15.0" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" - -"@babel/helper-replace-supers@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" - integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== +"@babel/helper-remap-async-to-generator@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.6" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-simple-access@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" - integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== +"@babel/helper-replace-supers@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== dependencies: - "@babel/types" "^7.14.8" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-simple-access@^7.22.5": version "7.22.5" @@ -478,27 +217,12 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-skip-transparent-expression-wrappers@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" - integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-split-export-declaration@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" - integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.22.5" "@babel/helper-split-export-declaration@^7.22.6": version "7.22.6" @@ -507,285 +231,81 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== - dependencies: - "@babel/types" "^7.8.3" +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - -"@babel/helper-validator-identifier@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" - integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== +"@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/helper-validator-identifier@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" - integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== +"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== - -"@babel/helper-validator-identifier@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" - integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== - -"@babel/helper-validator-identifier@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" - integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== - -"@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== - -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== - -"@babel/helper-wrap-function@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" - integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== - dependencies: - "@babel/helper-function-name" "^7.14.5" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" - -"@babel/helpers@^7.14.8": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" - integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== - dependencies: - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" - -"@babel/helpers@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.10.tgz#ae6005c539dfbcb5cd71fb51bfc8a52ba63bc37a" - integrity sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw== - dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.10" - "@babel/types" "^7.22.10" - -"@babel/helpers@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" - integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" -"@babel/highlight@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" - integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== +"@babel/helpers@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" + integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg== dependencies: - "@babel/helper-validator-identifier" "^7.14.5" - chalk "^2.0.0" - js-tokens "^4.0.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" -"@babel/highlight@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.10.tgz#02a3f6d8c1cb4521b2fd0ab0da8f4739936137d7" - integrity sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ== +"@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.5" + "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/highlight@^7.8.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" - integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" - integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== - -"@babel/parser@^7.14.5", "@babel/parser@^7.15.0": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" - integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" + integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== -"@babel/parser@^7.14.7", "@babel/parser@^7.22.10", "@babel/parser@^7.22.5": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55" - integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ== - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" - integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" - "@babel/plugin-proposal-optional-chaining" "^7.14.5" - -"@babel/plugin-proposal-async-generator-functions@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz#7028dc4fa21dc199bbacf98b39bab1267d0eaf9a" - integrity sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" + integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.14.5" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" - integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-proposal-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" - integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" - integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" - integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" - integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" - integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" - integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" - integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" - integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== - dependencies: - "@babel/compat-data" "^7.14.7" - "@babel/helper-compilation-targets" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.14.5" - -"@babel/plugin-proposal-optional-catch-binding@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" - integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" - integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" - integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-proposal-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" - integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" + integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.23.3" -"@babel/plugin-proposal-unicode-property-regex@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" - integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" + integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" - integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.8" - "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -801,20 +321,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.12.13": +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz#6cb933a8872c8d359bfde69bbeaae5162fd1e8f7" - integrity sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-class-static-block@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" @@ -836,7 +349,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-assertions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" + integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-attributes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" + integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -850,27 +377,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.7.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" - integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== +"@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz#3995d7d7ffff432f6ddc742b47e730c054599897" - integrity sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" @@ -878,20 +398,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4": +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" - integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" @@ -920,322 +433,447 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.14.5": +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" - integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== +"@babel/plugin-syntax-typescript@^7.23.3", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-typescript@^7.14.5", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" - integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" - integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== +"@babel/plugin-transform-arrow-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" + integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-to-generator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" - integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== +"@babel/plugin-transform-async-generator-functions@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" + integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.14.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-block-scoped-functions@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" - integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== +"@babel/plugin-transform-async-to-generator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" + integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + +"@babel/plugin-transform-block-scoped-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" + integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-block-scoping@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" + integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" + integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-static-block@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" + integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" + integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-split-export-declaration" "^7.22.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" + integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.15" + +"@babel/plugin-transform-destructuring@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" + integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dotall-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" + integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-duplicate-keys@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" + integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dynamic-import@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" + integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" + integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-export-namespace-from@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" + integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" + integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-function-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" + integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== + dependencies: + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-json-strings@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" + integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-block-scoping@^7.14.5": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" - integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== +"@babel/plugin-transform-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" + integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-classes@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz#2a391ffb1e5292710b00f2e2c210e1435e7d449f" - integrity sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A== +"@babel/plugin-transform-logical-assignment-operators@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" + integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.14.5" - "@babel/helper-split-export-declaration" "^7.14.5" - globals "^11.1.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-computed-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" - integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== +"@babel/plugin-transform-member-expression-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" + integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" - integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== +"@babel/plugin-transform-modules-amd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" + integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" - integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== +"@babel/plugin-transform-modules-commonjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== +"@babel/plugin-transform-modules-systemjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81" + integrity sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" -"@babel/plugin-transform-duplicate-keys@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" - integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== +"@babel/plugin-transform-modules-umd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" + integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-exponentiation-operator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" - integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-for-of@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" - integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== +"@babel/plugin-transform-new-target@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" + integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-function-name@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" - integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== +"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" + integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== dependencies: - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" - integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== +"@babel/plugin-transform-numeric-separator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" + integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" - integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== +"@babel/plugin-transform-object-rest-spread@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" + integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/compat-data" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.23.3" -"@babel/plugin-transform-modules-amd@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" - integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== +"@babel/plugin-transform-object-super@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" + integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== dependencies: - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" -"@babel/plugin-transform-modules-commonjs@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz#3305896e5835f953b5cdb363acd9e8c2219a5281" - integrity sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig== +"@babel/plugin-transform-optional-catch-binding@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" + integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== dependencies: - "@babel/helper-module-transforms" "^7.15.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-simple-access" "^7.14.8" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-modules-systemjs@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" - integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== +"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" + integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== dependencies: - "@babel/helper-hoist-variables" "^7.14.5" - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.5" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-modules-umd@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" - integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== +"@babel/plugin-transform-parameters@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" + integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== dependencies: - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2" - integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA== +"@babel/plugin-transform-private-methods@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" + integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" - integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== +"@babel/plugin-transform-private-property-in-object@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" + integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-object-super@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" - integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== +"@babel/plugin-transform-property-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" + integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-parameters@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" - integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== +"@babel/plugin-transform-regenerator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" + integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.2" -"@babel/plugin-transform-property-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" - integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== +"@babel/plugin-transform-reserved-words@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" + integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" - integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== +"@babel/plugin-transform-shorthand-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" + integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== dependencies: - regenerator-transform "^0.14.2" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-reserved-words@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" - integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== +"@babel/plugin-transform-spread@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" + integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-shorthand-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" - integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== +"@babel/plugin-transform-sticky-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" + integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-spread@^7.14.6": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" - integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== +"@babel/plugin-transform-template-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" + integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-sticky-regex@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" - integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== +"@babel/plugin-transform-typeof-symbol@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" + integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" - integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== +"@babel/plugin-transform-typescript@^7.23.3": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.5.tgz#83da13ef62a1ebddf2872487527094b31c9adb84" + integrity sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.23.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.23.3" -"@babel/plugin-transform-typeof-symbol@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" - integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== +"@babel/plugin-transform-unicode-escapes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" + integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typescript@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.0.tgz#553f230b9d5385018716586fc48db10dd228eb7e" - integrity sha512-WIIEazmngMEEHDaPTx0IZY48SaAmjVWe3TRSX7cmJXn0bEv9midFzAjxiruOWYIVf5iQ10vFx7ASDpgEO08L5w== +"@babel/plugin-transform-unicode-property-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" + integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.15.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-typescript" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" - integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== +"@babel/plugin-transform-unicode-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" + integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-regex@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" - integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== +"@babel/plugin-transform-unicode-sets-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" + integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@~7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.0.tgz#e2165bf16594c9c05e52517a194bf6187d6fe464" - integrity sha512-FhEpCNFCcWW3iZLg0L2NPE9UerdtsCR6ZcsGHUX6Om6kbCQeL5QZDqFDmeNHC6/fy6UH3jEge7K4qG5uC9In0Q== +"@babel/preset-env@~7.23.0": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.5.tgz#350a3aedfa9f119ad045b068886457e895ba0ca1" + integrity sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A== dependencies: - "@babel/compat-data" "^7.15.0" - "@babel/helper-compilation-targets" "^7.15.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" - "@babel/plugin-proposal-async-generator-functions" "^7.14.9" - "@babel/plugin-proposal-class-properties" "^7.14.5" - "@babel/plugin-proposal-class-static-block" "^7.14.5" - "@babel/plugin-proposal-dynamic-import" "^7.14.5" - "@babel/plugin-proposal-export-namespace-from" "^7.14.5" - "@babel/plugin-proposal-json-strings" "^7.14.5" - "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" - "@babel/plugin-proposal-numeric-separator" "^7.14.5" - "@babel/plugin-proposal-object-rest-spread" "^7.14.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" - "@babel/plugin-proposal-optional-chaining" "^7.14.5" - "@babel/plugin-proposal-private-methods" "^7.14.5" - "@babel/plugin-proposal-private-property-in-object" "^7.14.5" - "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.23.3" + "@babel/plugin-syntax-import-attributes" "^7.23.3" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -1245,194 +883,126 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.14.5" - "@babel/plugin-transform-async-to-generator" "^7.14.5" - "@babel/plugin-transform-block-scoped-functions" "^7.14.5" - "@babel/plugin-transform-block-scoping" "^7.14.5" - "@babel/plugin-transform-classes" "^7.14.9" - "@babel/plugin-transform-computed-properties" "^7.14.5" - "@babel/plugin-transform-destructuring" "^7.14.7" - "@babel/plugin-transform-dotall-regex" "^7.14.5" - "@babel/plugin-transform-duplicate-keys" "^7.14.5" - "@babel/plugin-transform-exponentiation-operator" "^7.14.5" - "@babel/plugin-transform-for-of" "^7.14.5" - "@babel/plugin-transform-function-name" "^7.14.5" - "@babel/plugin-transform-literals" "^7.14.5" - "@babel/plugin-transform-member-expression-literals" "^7.14.5" - "@babel/plugin-transform-modules-amd" "^7.14.5" - "@babel/plugin-transform-modules-commonjs" "^7.15.0" - "@babel/plugin-transform-modules-systemjs" "^7.14.5" - "@babel/plugin-transform-modules-umd" "^7.14.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9" - "@babel/plugin-transform-new-target" "^7.14.5" - "@babel/plugin-transform-object-super" "^7.14.5" - "@babel/plugin-transform-parameters" "^7.14.5" - "@babel/plugin-transform-property-literals" "^7.14.5" - "@babel/plugin-transform-regenerator" "^7.14.5" - "@babel/plugin-transform-reserved-words" "^7.14.5" - "@babel/plugin-transform-shorthand-properties" "^7.14.5" - "@babel/plugin-transform-spread" "^7.14.6" - "@babel/plugin-transform-sticky-regex" "^7.14.5" - "@babel/plugin-transform-template-literals" "^7.14.5" - "@babel/plugin-transform-typeof-symbol" "^7.14.5" - "@babel/plugin-transform-unicode-escapes" "^7.14.5" - "@babel/plugin-transform-unicode-regex" "^7.14.5" - "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.15.0" - babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" - babel-plugin-polyfill-regenerator "^0.2.2" - core-js-compat "^3.16.0" - semver "^6.3.0" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.4" + "@babel/plugin-transform-async-to-generator" "^7.23.3" + "@babel/plugin-transform-block-scoped-functions" "^7.23.3" + "@babel/plugin-transform-block-scoping" "^7.23.4" + "@babel/plugin-transform-class-properties" "^7.23.3" + "@babel/plugin-transform-class-static-block" "^7.23.4" + "@babel/plugin-transform-classes" "^7.23.5" + "@babel/plugin-transform-computed-properties" "^7.23.3" + "@babel/plugin-transform-destructuring" "^7.23.3" + "@babel/plugin-transform-dotall-regex" "^7.23.3" + "@babel/plugin-transform-duplicate-keys" "^7.23.3" + "@babel/plugin-transform-dynamic-import" "^7.23.4" + "@babel/plugin-transform-exponentiation-operator" "^7.23.3" + "@babel/plugin-transform-export-namespace-from" "^7.23.4" + "@babel/plugin-transform-for-of" "^7.23.3" + "@babel/plugin-transform-function-name" "^7.23.3" + "@babel/plugin-transform-json-strings" "^7.23.4" + "@babel/plugin-transform-literals" "^7.23.3" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" + "@babel/plugin-transform-member-expression-literals" "^7.23.3" + "@babel/plugin-transform-modules-amd" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-modules-systemjs" "^7.23.3" + "@babel/plugin-transform-modules-umd" "^7.23.3" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" + "@babel/plugin-transform-numeric-separator" "^7.23.4" + "@babel/plugin-transform-object-rest-spread" "^7.23.4" + "@babel/plugin-transform-object-super" "^7.23.3" + "@babel/plugin-transform-optional-catch-binding" "^7.23.4" + "@babel/plugin-transform-optional-chaining" "^7.23.4" + "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-private-methods" "^7.23.3" + "@babel/plugin-transform-private-property-in-object" "^7.23.4" + "@babel/plugin-transform-property-literals" "^7.23.3" + "@babel/plugin-transform-regenerator" "^7.23.3" + "@babel/plugin-transform-reserved-words" "^7.23.3" + "@babel/plugin-transform-shorthand-properties" "^7.23.3" + "@babel/plugin-transform-spread" "^7.23.3" + "@babel/plugin-transform-sticky-regex" "^7.23.3" + "@babel/plugin-transform-template-literals" "^7.23.3" + "@babel/plugin-transform-typeof-symbol" "^7.23.3" + "@babel/plugin-transform-unicode-escapes" "^7.23.3" + "@babel/plugin-transform-unicode-property-regex" "^7.23.3" + "@babel/plugin-transform-unicode-regex" "^7.23.3" + "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.6" + babel-plugin-polyfill-corejs3 "^0.8.5" + babel-plugin-polyfill-regenerator "^0.5.3" + core-js-compat "^3.31.0" + semver "^6.3.1" -"@babel/preset-modules@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" - integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-typescript@~7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.15.0.tgz#e8fca638a1a0f64f14e1119f7fe4500277840945" - integrity sha512-lt0Y/8V3y06Wq/8H/u0WakrqciZ7Fz7mwPDHWUJAXlABL5hiUG42BNlRXiELNjeWjO5rWmnNKlx+yzJvxezHow== +"@babel/preset-typescript@~7.23.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913" + integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-transform-typescript" "^7.15.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-typescript" "^7.23.3" -"@babel/runtime@^7.8.4": +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.8.7": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" - integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" - integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/parser" "^7.14.5" - "@babel/types" "^7.14.5" - -"@babel/template@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== +"@babel/template@^7.22.15", "@babel/template@^7.3.3": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/template@^7.3.3", "@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" - integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-hoist-variables" "^7.14.5" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.15.0" - "@babel/types" "^7.15.0" - debug "^4.1.0" - globals "^11.1.0" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" -"@babel/traverse@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.10.tgz#20252acb240e746d27c2e82b4484f199cf8141aa" - integrity sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig== +"@babel/traverse@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" + integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== dependencies: - "@babel/code-frame" "^7.22.10" - "@babel/generator" "^7.22.10" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.10" - "@babel/types" "^7.22.10" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.7.4", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" - integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.0" + "@babel/parser" "^7.23.5" + "@babel/types" "^7.23.5" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" - integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" - integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== - dependencies: - "@babel/helper-validator-identifier" "^7.14.9" - to-fast-properties "^2.0.0" - -"@babel/types@^7.15.6": - version "7.15.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f" - integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig== - dependencies: - "@babel/helper-validator-identifier" "^7.14.9" - to-fast-properties "^2.0.0" - -"@babel/types@^7.22.10", "@babel/types@^7.22.5": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.10.tgz#4a9e76446048f2c66982d1a989dd12b8a2d2dc03" - integrity sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - to-fast-properties "^2.0.0" -"@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" - integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA== +"@babel/types@^7.0.0", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" + integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== dependencies: - "@babel/helper-validator-identifier" "^7.9.5" - lodash "^4.17.13" + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -1440,14 +1010,6 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== - dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" - "@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" @@ -1455,39 +1017,49 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.5.1": - version "4.6.2" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" - integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== +"@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@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.3.tgz#41f08c597025605f672251dcc4e8be66b5ed7366" - integrity sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg== +"@eslint/eslintrc@^2.1.2": + 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.0.0" - globals "^13.9.0" - ignore "^4.0.6" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" + js-yaml "^4.1.0" + minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.6.0": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.6.0.tgz#b5621fdb3b32309d2d16575456cbc277fa8f021a" - integrity sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A== +"@eslint/js@8.50.0": + version "8.50.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.50.0.tgz#9e93b850f0f3fa35f5fa59adfd03adae8488e484" + integrity sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ== + +"@humanwhocodes/config-array@^0.11.11": + version "0.11.13" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== dependencies: - "@humanwhocodes/object-schema" "^1.2.0" + "@humanwhocodes/object-schema" "^2.0.1" debug "^4.1.1" - minimatch "^3.0.4" + minimatch "^3.0.5" -"@humanwhocodes/object-schema@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" - integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== +"@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.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== "@infctr/eslint-docs@~0.4.0": version "0.4.0" @@ -1502,6 +1074,18 @@ ora "^3.0.0" read-pkg-up "^4.0.0" +"@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" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" @@ -1517,109 +1101,109 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.2.tgz#bf1d4101347c23e07c029a1b1ae07d550f5cc541" - integrity sha512-0N0yZof5hi44HAR2pPS+ikJ3nzKNoZdVu8FffRf3wy47I7Dm7etk/3KetMdRUqzVd16V4O2m2ISpNTbnIuqy1w== +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.6.2" - jest-util "^29.6.2" + jest-message-util "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" -"@jest/core@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.2.tgz#6f2d1dbe8aa0265fcd4fb8082ae1952f148209c8" - integrity sha512-Oj+5B+sDMiMWLhPFF+4/DvHOf+U10rgvCLGPHP8Xlsy/7QxS51aU/eBngudHlJXnaWD5EohAgJ4js+T6pa+zOg== +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== dependencies: - "@jest/console" "^29.6.2" - "@jest/reporters" "^29.6.2" - "@jest/test-result" "^29.6.2" - "@jest/transform" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.5.0" - jest-config "^29.6.2" - jest-haste-map "^29.6.2" - jest-message-util "^29.6.2" - jest-regex-util "^29.4.3" - jest-resolve "^29.6.2" - jest-resolve-dependencies "^29.6.2" - jest-runner "^29.6.2" - jest-runtime "^29.6.2" - jest-snapshot "^29.6.2" - jest-util "^29.6.2" - jest-validate "^29.6.2" - jest-watcher "^29.6.2" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" micromatch "^4.0.4" - pretty-format "^29.6.2" + pretty-format "^29.7.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.2.tgz#794c0f769d85e7553439d107d3f43186dc6874a9" - integrity sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q== +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== dependencies: - "@jest/fake-timers" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.6.2" + jest-mock "^29.7.0" -"@jest/expect-utils@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.2.tgz#1b97f290d0185d264dd9fdec7567a14a38a90534" - integrity sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg== +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== dependencies: - jest-get-type "^29.4.3" + jest-get-type "^29.6.3" -"@jest/expect@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.2.tgz#5a2ad58bb345165d9ce0a1845bbf873c480a4b28" - integrity sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg== +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== dependencies: - expect "^29.6.2" - jest-snapshot "^29.6.2" + expect "^29.7.0" + jest-snapshot "^29.7.0" -"@jest/fake-timers@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.2.tgz#fe9d43c5e4b1b901168fe6f46f861b3e652a2df4" - integrity sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA== +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.6.2" - jest-mock "^29.6.2" - jest-util "^29.6.2" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" -"@jest/globals@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.2.tgz#74af81b9249122cc46f1eb25793617eec69bf21a" - integrity sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw== +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== dependencies: - "@jest/environment" "^29.6.2" - "@jest/expect" "^29.6.2" - "@jest/types" "^29.6.1" - jest-mock "^29.6.2" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" -"@jest/reporters@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.2.tgz#524afe1d76da33d31309c2c4a2c8062d0c48780a" - integrity sha512-sWtijrvIav8LgfJZlrGCdN0nP2EWbakglJY49J1Y5QihcQLfy7ovyxxjJBRXMNltgt4uPtEcFmIMbVshEDfFWw== +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.6.2" - "@jest/test-result" "^29.6.2" - "@jest/transform" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" chalk "^4.0.0" @@ -1628,124 +1212,81 @@ glob "^7.1.3" graceful-fs "^4.2.9" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" + istanbul-lib-instrument "^6.0.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.6.2" - jest-util "^29.6.2" - jest-worker "^29.6.2" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.0.tgz#0f4cb2c8e3dca80c135507ba5635a4fd755b0040" - integrity sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ== +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== dependencies: "@sinclair/typebox" "^0.27.8" -"@jest/source-map@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.0.tgz#bd34a05b5737cb1a99d43e1957020ac8e5b9ddb1" - integrity sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA== +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== dependencies: "@jridgewell/trace-mapping" "^0.3.18" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.2.tgz#fdd11583cd1608e4db3114e8f0cce277bf7a32ed" - integrity sha512-3VKFXzcV42EYhMCsJQURptSqnyjqCGbtLuX5Xxb6Pm6gUf1wIRIl+mandIRGJyWKgNKYF9cnstti6Ls5ekduqw== +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== dependencies: - "@jest/console" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.2.tgz#585eff07a68dd75225a7eacf319780cb9f6b9bf4" - integrity sha512-GVYi6PfPwVejO7slw6IDO0qKVum5jtrJ3KoLGbgBWyr2qr4GaxFV6su+ZAjdTX75Sr1DkMFRk09r2ZVa+wtCGw== +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== dependencies: - "@jest/test-result" "^29.6.2" + "@jest/test-result" "^29.7.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.2" + jest-haste-map "^29.7.0" slash "^3.0.0" -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/transform@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.2.tgz#522901ebbb211af08835bc3bcdf765ab778094e3" - integrity sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg== +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@jridgewell/trace-mapping" "^0.3.18" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.2" - jest-regex-util "^29.4.3" - jest-util "^29.6.2" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.2" -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jest/types@^27.2.5": - version "27.2.5" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.5.tgz#420765c052605e75686982d24b061b4cbba22132" - integrity sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@jest/types@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.1.tgz#ae79080278acff0a6af5eb49d063385aaa897bf2" - integrity sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw== +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== dependencies: - "@jest/schemas" "^29.6.0" + "@jest/schemas" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -1771,35 +1312,31 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": +"@jridgewell/source-map@^0.3.3": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.19" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" - integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.2": - version "2.1.8-no-fsevents.2" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.2.tgz#e324c0a247a5567192dd7180647709d7e2faf94b" - integrity sha512-Fb8WxUFOBQVl+CX4MWet5o7eCc6Pj04rXIwVKZ6h1NnqTo45eOQW6aWyhG25NIODvWFwTDMwBsYxrQ3imxpetg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^5.1.2" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": + version "2.1.8-no-fsevents.3" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" + integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1814,15 +1351,20 @@ 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": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz#94c23db18ee4653e129abd26fb06f870ac9e1ee2" - integrity sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA== +"@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" -"@pkgr/utils@^2.3.1": +"@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/utils@^2.4.2": version "2.4.2" resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== @@ -1834,65 +1376,128 @@ picocolors "^1.0.0" tslib "^2.6.0" -"@rollup/plugin-commonjs@~12.0.0": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-12.0.0.tgz#e2f308ae6057499e0f413f878fff7c3a0fdc02a1" - integrity sha512-8+mDQt1QUmN+4Y9D3yCG8AJNewuTSLYPJVzKKUZ+lGeQrI+bV12Tc5HCyt2WdlnG6ihIL/DPbKRJlB40DX40mw== +"@rollup/plugin-commonjs@~25.0.5": + version "25.0.7" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz#145cec7589ad952171aeb6a585bbeabd0fd3b4cf" + integrity sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ== dependencies: - "@rollup/pluginutils" "^3.0.8" + "@rollup/pluginutils" "^5.0.1" commondir "^1.0.1" - estree-walker "^1.0.1" - glob "^7.1.2" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" + estree-walker "^2.0.2" + glob "^8.0.3" + is-reference "1.2.1" + magic-string "^0.30.3" -"@rollup/plugin-json@~4.0.3": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.0.3.tgz#747e2c2884c5a0fa00b66c9c0f3f1012cddca534" - integrity sha512-QMUT0HZNf4CX17LMdwaslzlYHUKTYGuuk34yYIgZrNdu+pMEfqMS55gck7HEeHBKXHM4cz5Dg1OVwythDdbbuQ== +"@rollup/plugin-json@~6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-6.0.1.tgz#7e2efcf5ed549963f1444e010611d22f463931c0" + integrity sha512-RgVfl5hWMkxN1h/uZj8FVESvPuBJ/uf6ly6GTj0GONnkfoBN5KC0MSz+PN2OLDgYXMhtG0mWpTrkiOjoxAIevw== dependencies: - "@rollup/pluginutils" "^3.0.8" + "@rollup/pluginutils" "^5.0.1" -"@rollup/plugin-node-resolve@~8.0.0": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.0.0.tgz#47cc0775e31b6a531c88a40270377fe899a271cb" - integrity sha512-5poJCChrkVggXXND/sQ7yNqwjUNT4fP31gpRWCnSNnlXuUXTCMHT33xZrTGxgjm5Rl18MHj7iEzlCT8rYWwQSA== +"@rollup/plugin-node-resolve@~15.2.2": + version "15.2.3" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz#e5e0b059bd85ca57489492f295ce88c2d4b0daf9" + integrity sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ== dependencies: - "@rollup/pluginutils" "^3.0.8" - "@types/resolve" "0.0.8" - builtin-modules "^3.1.0" - deep-freeze "^0.0.1" + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" deepmerge "^4.2.2" + is-builtin-module "^3.2.1" is-module "^1.0.0" - resolve "^1.14.2" + resolve "^1.22.1" -"@rollup/plugin-typescript@~11.1.2": - version "11.1.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.2.tgz#09eb5690a650bb0334bf84125bce9abd296442e4" - integrity sha512-0ghSOCMcA7fl1JM+0gYRf+Q/HWyg+zg7/gDSc+fRLmlJWcW5K1I+CLRzaRhXf4Y3DRyPnnDo4M2ktw+a6JcDEg== +"@rollup/plugin-terser@~0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz#15dffdb3f73f121aa4fbb37e7ca6be9aeea91962" + integrity sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A== dependencies: - "@rollup/pluginutils" "^5.0.1" - resolve "^1.22.1" + serialize-javascript "^6.0.1" + smob "^1.0.0" + terser "^5.17.4" -"@rollup/pluginutils@^3.0.8": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.0.10.tgz#a659b9025920378494cd8f8c59fbf9b3a50d5f12" - integrity sha512-d44M7t+PjmMrASHbhgpSbVgtL6EFyX7J4mYxwQ/c5eoaE6N2VgCgEcWVzNnwycIloti+/MpwFr8qfw+nRw00sw== +"@rollup/plugin-typescript@~11.1.4": + version "11.1.5" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz#039c763bf943a5921f3f42be255895e75764cb91" + integrity sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA== dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" + "@rollup/pluginutils" "^5.0.1" + resolve "^1.22.1" "@rollup/pluginutils@^5.0.1": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.3.tgz#183126d69aeb1cfa23401d5a71cb4b8c16c4a4e0" - integrity sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g== + version "5.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" picomatch "^2.3.1" +"@rollup/rollup-android-arm-eabi@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.7.0.tgz#c144935afdf83e3da0ddea4d903360f99f69c79a" + integrity sha512-rGku10pL1StFlFvXX5pEv88KdGW6DHUghsxyP/aRYb9eH+74jTGJ3U0S/rtlsQ4yYq1Hcc7AMkoJOb1xu29Fxw== + +"@rollup/rollup-android-arm64@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.7.0.tgz#4e05031399a9c795612c9694827ec4ba55771bec" + integrity sha512-/EBw0cuJ/KVHiU2qyVYUhogXz7W2vXxBzeE9xtVIMC+RyitlY2vvaoysMUqASpkUtoNIHlnKTu/l7mXOPgnKOA== + +"@rollup/rollup-darwin-arm64@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.7.0.tgz#196018fa70b525a893a949fe8e1eeb797d9a7227" + integrity sha512-4VXG1bgvClJdbEYYjQ85RkOtwN8sqI3uCxH0HC5w9fKdqzRzgG39K7GAehATGS8jghA7zNoS5CjSKkDEqWmNZg== + +"@rollup/rollup-darwin-x64@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.7.0.tgz#484937c6b987bebaeccdae774977ad4bf7bcd940" + integrity sha512-/ImhO+T/RWJ96hUbxiCn2yWI0/MeQZV/aeukQQfhxiSXuZJfyqtdHPUPrc84jxCfXTxbJLmg4q+GBETeb61aNw== + +"@rollup/rollup-linux-arm-gnueabihf@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.7.0.tgz#c495ba7aa13427aaeb4ea0864ab9c2a3d5aa9c09" + integrity sha512-zhye8POvTyUXlKbfPBVqoHy3t43gIgffY+7qBFqFxNqVtltQLtWeHNAbrMnXiLIfYmxcoL/feuLDote2tx+Qbg== + +"@rollup/rollup-linux-arm64-gnu@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.7.0.tgz#0ef4ef25e83f610b56d94a5a1fffa27220d5224d" + integrity sha512-RAdr3OJnUum6Vs83cQmKjxdTg31zJnLLTkjhcFt0auxM6jw00GD6IPFF42uasYPr/wGC6TRm7FsQiJyk0qIEfg== + +"@rollup/rollup-linux-arm64-musl@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.7.0.tgz#d75add714d898cee4e4a5baeb2e30641e483b0e3" + integrity sha512-nhWwYsiJwZGq7SyR3afS3EekEOsEAlrNMpPC4ZDKn5ooYSEjDLe9W/xGvoIV8/F/+HNIY6jY8lIdXjjxfxopXw== + +"@rollup/rollup-linux-riscv64-gnu@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.7.0.tgz#b7ed4894b44a47f4145cce77175fe578d1379863" + integrity sha512-rlfy5RnQG1aop1BL/gjdH42M2geMUyVQqd52GJVirqYc787A/XVvl3kQ5NG/43KXgOgE9HXgCaEH05kzQ+hLoA== + +"@rollup/rollup-linux-x64-gnu@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.7.0.tgz#bccd53f20de2c1b1e7024898dc5b69375a5abe4e" + integrity sha512-cCkoGlGWfBobdDtiiypxf79q6k3/iRVGu1HVLbD92gWV5WZbmuWJCgRM4x2N6i7ljGn1cGytPn9ZAfS8UwF6vg== + +"@rollup/rollup-linux-x64-musl@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.7.0.tgz#554315d4f252f9f324da587fbf5048aaaf1da12e" + integrity sha512-R2oBf2p/Arc1m+tWmiWbpHBjEcJnHVnv6bsypu4tcKdrYTpDfl1UT9qTyfkIL1iiii5D4WHxUHCg5X0pzqmxFg== + +"@rollup/rollup-win32-arm64-msvc@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.7.0.tgz#95902325d07919e25dff32be9428acbc1b889101" + integrity sha512-CPtgaQL1aaPc80m8SCVEoxFGHxKYIt3zQYC3AccL/SqqiWXblo3pgToHuBwR8eCP2Toa+X1WmTR/QKFMykws7g== + +"@rollup/rollup-win32-ia32-msvc@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.7.0.tgz#f9ca12cc03ebca191ff6b832785c5a5e1974cf55" + integrity sha512-pmioUlttNh9GXF5x2CzNa7Z8kmRTyhEzzAC+2WOOapjewMbl+3tGuAnxbwc5JyG8Jsz2+hf/QD/n5VjimOZ63g== + +"@rollup/rollup-win32-x64-msvc@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.7.0.tgz#1ad18d12c21d09a12d88c904647f1ea64123c32e" + integrity sha512-SeZzC2QhhdBQUm3U0c8+c/P6UlRyBcLL2Xp5KX7z46WXZxzR8RJSIWL9wSUeBTgxog5LTPJuPj0WOT9lvrtP7Q== + "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" @@ -1912,17 +1517,6 @@ dependencies: "@sinonjs/commons" "^3.0.0" -"@types/babel__core@^7.0.0": - version "7.1.14" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" - integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - "@types/babel__core@^7.1.14": version "7.1.16" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.16.tgz#bc12c74b7d65e82d29876b5d0baf5c625ac58702" @@ -1934,28 +1528,6 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" -"@types/babel__core@^7.1.7": - version "7.1.7" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" - integrity sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__core@~7.1.7": - version "7.1.15" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" - integrity sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - "@types/babel__generator@*": version "7.6.1" resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" @@ -1963,11 +1535,6 @@ dependencies: "@babel/types" "^7.0.0" -"@types/babel__preset-env@~7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@types/babel__preset-env/-/babel__preset-env-7.9.2.tgz#815ad399ff33e4a1be1228e1ecece5f00ce40bea" - integrity sha512-epEgKQiqTDZdPgYwtriYK1GVAGcyVZVvvw2UatX3+95mogKGimebApcMEWLF12uhUbNIvX284CSQEavnV/OIgw== - "@types/babel__template@*": version "7.0.2" resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" @@ -1988,49 +1555,18 @@ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== -"@types/eslint@~7.28.1": - version "7.28.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.1.tgz#50b07747f1f84c2ba8cd394cf0fe0ba07afce320" - integrity sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg== +"@types/eslint@~8.44.3": + version "8.44.8" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.8.tgz#f4fe1dab9b3d3dd98082d4b9f80e59ab40f1261c" + integrity sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw== dependencies: "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*": - version "0.0.44" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.44.tgz#980cc5a29a3ef3bea6ff1f7d021047d7ea575e21" - integrity sha512-iaIVzr+w2ZJ5HkidlZ3EJM8VTZb2MJLCjw3V+505yVts0gRC4UMvjw0d1HPtGqI/HQC/KdsYtayfzl+AXY2R8g== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== - -"@types/events@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== - -"@types/glob@*": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" + "@types/json-schema" "*" -"@types/graceful-fs@^4.1.2": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" - integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== - dependencies: - "@types/node" "*" +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/graceful-fs@^4.1.3": version "4.1.6" @@ -2058,68 +1594,45 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@~27.0.2": - version "27.0.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.0.2.tgz#ac383c4d4aaddd29bbf2b916d8d105c304a5fcd7" - integrity sha512-4dRxkS/AFX0c5XW6IPMNOydLn2tEhNhJV7DnYK+0bjoJZ+QTmfucBlihX7aoEsh/ocYtkLC73UbnBXBXIxsULA== +"@types/jest@~29.5.5": + version "29.5.11" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.11.tgz#0c13aa0da7d0929f078ab080ae5d4ced80fa2f2c" + integrity sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ== dependencies: - jest-diff "^27.0.0" - pretty-format "^27.0.0" + expect "^29.0.0" + pretty-format "^29.0.0" -"@types/json-schema@*": - version "7.0.4" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" - integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== - -"@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== - -"@types/json-schema@^7.0.7": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== +"@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9": + 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/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - "@types/natural-compare-lite@~1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@types/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#90724682da3c304dd8d643b4e9ba00f53f29d454" integrity sha512-ZDcj/yWsRPacqKPpCExWWFq9X1JQwEOfHsu8deN1Qfa6M02z6tN4DK6AMf2IkM7709gp3QW6Bo7m2NFDhA485w== -"@types/node@*": - version "13.13.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.2.tgz#160d82623610db590a64e8ca81784e11117e5a54" - integrity sha512-LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A== +"@types/node@*", "@types/node@^18.0.0": + 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== + dependencies: + undici-types "~5.26.4" "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/resolve@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" - integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== - dependencies: - "@types/node" "*" - -"@types/rimraf@~3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.1.tgz#1bbc106f0978742289103e080d4b41b3b4656e58" - integrity sha512-CAoSlbco40aKZ0CkelBF2g3JeN6aioRaTVnqSX5pWsn/WApm6IDxI4e4tD9D0dY/meCkyyleP1IQDVN13F4maA== - dependencies: - "@types/glob" "*" - "@types/node" "*" +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== "@types/semver@^7.3.12", "@types/semver@^7.5.0": version "7.5.0" @@ -2131,57 +1644,33 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== -"@types/strip-bom@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" - integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I= - -"@types/strip-json-comments@0.0.30": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" - integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== - -"@types/tmp@~0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.1.tgz#83ecf4ec22a8c218c71db25f316619fe5b986011" - integrity sha512-7cTXwKP/HLOPVgjg+YhBdQ7bMiobGMuoBmrGmqwIWJv8elC6t1DfVc/mn4fD9UE1IjhwmhaQ5pGVXkmXbH0rhg== +"@types/tmp@~0.2.4": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.6.tgz#d785ee90c52d7cc020e249c948c36f7b32d1e217" + integrity sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA== "@types/yargs-parser@*": version "15.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== -"@types/yargs@^15.0.0": - version "15.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" - integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== - dependencies: - "@types/yargs-parser" "*" - "@types/yargs@^17.0.8": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" - integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@~6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.0.tgz#53428b616f7d80fe879f45a08f11cc0f0b62cf13" - integrity sha512-62o2Hmc7Gs3p8SLfbXcipjWAa6qk2wZGChXG2JbBtYpwSRmti/9KHLqfbLs9uDigOexG+3PaQ9G2g3201FWLKg== +"@typescript-eslint/eslint-plugin@^6.7.4": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz#2e03506c5362a65e43cb132c37c9ce2d3cb51470" + integrity sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.4.0" - "@typescript-eslint/type-utils" "6.4.0" - "@typescript-eslint/utils" "6.4.0" - "@typescript-eslint/visitor-keys" "6.4.0" + "@typescript-eslint/scope-manager" "6.13.2" + "@typescript-eslint/type-utils" "6.13.2" + "@typescript-eslint/utils" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -2189,37 +1678,17 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/experimental-utils@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.0.0.tgz#c7d7e67443dfb9fd93a5d060fb72c9e9b5638bbc" - integrity sha512-Dnp4dFIsZcPawD6CT1p5NibNUQyGSEz80sULJZkyhyna8AEqArmfwMwJPbmKzWVo4PabqNVzHYlzmcdLQWk+pg== - dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "5.0.0" - "@typescript-eslint/types" "5.0.0" - "@typescript-eslint/typescript-estree" "5.0.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/parser@~6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.4.0.tgz#47e7c6e22ff1248e8675d95f488890484de67600" - integrity sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg== +"@typescript-eslint/parser@^6.7.4": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.13.2.tgz#390b79cc9a57a5f904d197a201cc4b6bc4f9afb9" + integrity sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg== dependencies: - "@typescript-eslint/scope-manager" "6.4.0" - "@typescript-eslint/types" "6.4.0" - "@typescript-eslint/typescript-estree" "6.4.0" - "@typescript-eslint/visitor-keys" "6.4.0" + "@typescript-eslint/scope-manager" "6.13.2" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/typescript-estree" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.0.0.tgz#aea0fb0e2480c1169a02e89d9005ac3f2835713f" - integrity sha512-5RFjdA/ain/MDUHYXdF173btOKncIrLuBmA9s6FJhzDrRAyVSA+70BHg0/MW6TE+UiKVyRtX91XpVS0gVNwVDQ== - dependencies: - "@typescript-eslint/types" "5.0.0" - "@typescript-eslint/visitor-keys" "5.0.0" - "@typescript-eslint/scope-manager@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" @@ -2228,51 +1697,33 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/scope-manager@6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.4.0.tgz#3048e4262ba3eafa4e2e69b08912d9037ec646ae" - integrity sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig== +"@typescript-eslint/scope-manager@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz#5fa4e4adace028dafac212c770640b94e7b61052" + integrity sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA== dependencies: - "@typescript-eslint/types" "6.4.0" - "@typescript-eslint/visitor-keys" "6.4.0" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" -"@typescript-eslint/type-utils@6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.4.0.tgz#c8ac92716ed6a9d5443aa3e342910355b0796ba0" - integrity sha512-TvqrUFFyGY0cX3WgDHcdl2/mMCWCDv/0thTtx/ODMY1QhEiyFtv/OlLaNIiYLwRpAxAtOLOY9SUf1H3Q3dlwAg== +"@typescript-eslint/type-utils@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz#ebec2da14a6bb7122e0fd31eea72a382c39c6102" + integrity sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw== dependencies: - "@typescript-eslint/typescript-estree" "6.4.0" - "@typescript-eslint/utils" "6.4.0" + "@typescript-eslint/typescript-estree" "6.13.2" + "@typescript-eslint/utils" "6.13.2" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.0.0.tgz#25d93f6d269b2d25fdc51a0407eb81ccba60eb0f" - integrity sha512-dU/pKBUpehdEqYuvkojmlv0FtHuZnLXFBn16zsDmlFF3LXkOpkAQ2vrKc3BidIIve9EMH2zfTlxqw9XM0fFN5w== - "@typescript-eslint/types@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/types@6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.4.0.tgz#5b109a59a805f0d8d375895e42d9e5f0037f66ee" - integrity sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg== - -"@typescript-eslint/typescript-estree@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.0.0.tgz#bc20f413c6e572c7309dbe5fa3be027984952af3" - integrity sha512-V/6w+PPQMhinWKSn+fCiX5jwvd1vRBm7AX7SJQXEGQtwtBvjMPjaU3YTQ1ik2UF1u96X7tsB96HMnulG3eLi9Q== - dependencies: - "@typescript-eslint/types" "5.0.0" - "@typescript-eslint/visitor-keys" "5.0.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" +"@typescript-eslint/types@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.13.2.tgz#c044aac24c2f6cefb8e921e397acad5417dd0ae6" + integrity sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" @@ -2287,30 +1738,30 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.0.tgz#3c58d20632db93fec3d6ab902acbedf593d37276" - integrity sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA== +"@typescript-eslint/typescript-estree@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz#ae556ee154c1acf025b48d37c3ef95a1d55da258" + integrity sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w== dependencies: - "@typescript-eslint/types" "6.4.0" - "@typescript-eslint/visitor-keys" "6.4.0" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.4.0.tgz#23e996b693603c5924b1fbb733cc73196256baa5" - integrity sha512-BvvwryBQpECPGo8PwF/y/q+yacg8Hn/2XS+DqL/oRsOPK+RPt29h5Ui5dqOKHDlbXrAeHUTnyG3wZA0KTDxRZw== +"@typescript-eslint/utils@6.13.2", "@typescript-eslint/utils@^6.7.4": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.13.2.tgz#8eb89e53adc6d703a879b131e528807245486f89" + integrity sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.4.0" - "@typescript-eslint/types" "6.4.0" - "@typescript-eslint/typescript-estree" "6.4.0" + "@typescript-eslint/scope-manager" "6.13.2" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/typescript-estree" "6.13.2" semver "^7.5.4" "@typescript-eslint/utils@^5.10.0": @@ -2327,14 +1778,6 @@ eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.0.0.tgz#b789f7cd105e59bee5c0983a353942a5a48f56df" - integrity sha512-yRyd2++o/IrJdyHuYMxyFyBhU762MRHQ/bAGQeTnN3pGikfh+nEmM61XTqaDH1XDp53afZ+waXrk0ZvenoZ6xw== - dependencies: - "@typescript-eslint/types" "5.0.0" - eslint-visitor-keys "^3.0.0" - "@typescript-eslint/visitor-keys@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" @@ -2343,33 +1786,30 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.0.tgz#96a426cdb1add28274abd7a34aefe27f8b7d51ef" - integrity sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA== +"@typescript-eslint/visitor-keys@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz#e0a4a80cf842bb08e6127b903284166ac4a5594c" + integrity sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw== dependencies: - "@typescript-eslint/types" "6.4.0" + "@typescript-eslint/types" "6.13.2" eslint-visitor-keys "^3.4.1" -acorn-jsx@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -acorn@^8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" - integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== +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== -aggregate-error@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" - integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" +acorn@^8.8.2, acorn@^8.9.0: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== -ajv@^6.10.0, ajv@^6.12.4: +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== @@ -2379,16 +1819,6 @@ ajv@^6.10.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-colors@^3.2.1: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - ansi-escapes@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.2.1.tgz#4dccdb846c3eee10f6d64dea66273eab90c37228" @@ -2396,23 +1826,28 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.5.2" -ansi-escapes@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== +ansi-escapes@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" + integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== dependencies: - type-fest "^0.11.0" + type-fest "^1.0.2" ansi-regex@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== -ansi-regex@^5.0.0, ansi-regex@^5.0.1: +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" @@ -2433,28 +1868,17 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.0.0, ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -anymatch@~3.1.2: +anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -2474,21 +1898,6 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - array-buffer-byte-length@^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" @@ -2498,14 +1907,14 @@ array-buffer-byte-length@^1.0.0: is-array-buffer "^3.0.1" array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" is-string "^1.0.7" array-union@^2.1.0: @@ -2513,131 +1922,75 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - array.prototype.findlastindex@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz#bc229aef98f6bd0533a2bc61ff95209875526c9b" - integrity sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw== + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.1" array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -arraybuffer.prototype.slice@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb" - integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw== +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== 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" -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async@^2.6.2: +async@^2.6.4: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - 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== -babel-jest@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.2.tgz#cada0a59e07f5acaeb11cbae7e3ba92aec9c1126" - integrity sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A== +babel-jest@^29.7.0, babel-jest@~29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== dependencies: - "@jest/transform" "^29.6.2" + "@jest/transform" "^29.7.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.5.0" + babel-preset-jest "^29.6.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" -babel-jest@~26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== - dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-istanbul@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" - integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^4.0.0" - test-exclude "^6.0.0" - babel-plugin-istanbul@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" @@ -2649,60 +2002,50 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-jest-hoist@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" - integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w== +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-module-resolver@~4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz#22a4f32f7441727ec1fbf4967b863e1e3e9f33e2" - integrity sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA== +babel-plugin-module-resolver@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.0.tgz#2b7fc176bd55da25f516abf96015617b4f70fc73" + integrity sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q== dependencies: - find-babel-config "^1.2.0" - glob "^7.1.6" + find-babel-config "^2.0.0" + glob "^8.0.3" pkg-up "^3.1.0" - reselect "^4.0.0" - resolve "^1.13.1" + reselect "^4.1.7" + resolve "^1.22.1" -babel-plugin-polyfill-corejs2@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" - integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== +babel-plugin-polyfill-corejs2@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" + integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.2" - semver "^6.1.1" + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.4.3" + semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" - integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ== +babel-plugin-polyfill-corejs3@^0.8.5: + version "0.8.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz#25c2d20002da91fe328ff89095c85a391d6856cf" + integrity sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.2" - core-js-compat "^3.14.0" + "@babel/helper-define-polyfill-provider" "^0.4.3" + core-js-compat "^3.33.1" -babel-plugin-polyfill-regenerator@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" - integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== +babel-plugin-polyfill-regenerator@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" + integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.2" + "@babel/helper-define-polyfill-provider" "^0.4.3" babel-preset-current-node-syntax@^1.0.0: version "1.0.1" @@ -2722,20 +2065,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== dependencies: - babel-plugin-jest-hoist "^26.6.2" - babel-preset-current-node-syntax "^1.0.0" - -babel-preset-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" - integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg== - dependencies: - babel-plugin-jest-hoist "^29.5.0" + babel-plugin-jest-hoist "^29.6.3" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -2743,33 +2078,17 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== +basic-auth@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -basic-auth@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884" - integrity sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ= + safe-buffer "5.1.2" big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + version "1.6.52" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" + integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== binary-extensions@^2.0.0: version "2.2.0" @@ -2791,40 +2110,20 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: +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, 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" -browserslist@^4.16.6, browserslist@^4.16.7: - version "4.16.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.7.tgz#108b0d1ef33c4af1b587c54f390e7041178e4335" - integrity sha512-7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA== - dependencies: - caniuse-lite "^1.0.30001248" - colorette "^1.2.2" - electron-to-chromium "^1.3.793" - escalade "^3.1.1" - node-releases "^1.1.73" - browserslist@^4.21.9: version "4.21.10" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" @@ -2835,6 +2134,16 @@ browserslist@^4.21.9: node-releases "^2.0.13" update-browserslist-db "^1.0.11" +browserslist@^4.22.2: + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== + dependencies: + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -2852,10 +2161,10 @@ builtin-modules@^1.0.0: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= -builtin-modules@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" - integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== bundle-name@^3.0.0: version "3.0.0" @@ -2864,28 +2173,14 @@ bundle-name@^3.0.0: dependencies: run-applescript "^5.0.0" -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +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== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" callsites@^3.0.0: version "3.0.0" @@ -2902,24 +2197,17 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== -caniuse-lite@^1.0.30001248: - version "1.0.30001251" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85" - integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A== +caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001565: + version "1.0.30001566" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz#61a8e17caf3752e3e426d4239c549ebbb37fef0d" + integrity sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA== -caniuse-lite@^1.0.30001517: - version "1.0.30001521" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001521.tgz#e9930cf499f7c1e80334b6c1fbca52e00d889e56" - integrity sha512-fnx1grfpEOvDGH+V17eccmNjucGUnCbP6KL+l5KqBIerp26WK/+RQ7CIDE37KGJjaPyqWXXlFUyKiWmvdNNKmQ== - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" +chalk@5.3.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.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.1, 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== @@ -2928,18 +2216,10 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" - integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== +chalk@^4.0.0, chalk@^4.1.2: + 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" @@ -2970,30 +2250,15 @@ ci-info@^2.0.0: integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.2.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: version "1.2.2" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -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== - cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -3001,12 +2266,12 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== +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 "^3.1.0" + restore-cursor "^4.0.0" cli-diff@^1.0.0: version "1.0.0" @@ -3021,13 +2286,13 @@ cli-spinners@^2.0.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.3.0.tgz#0632239a4b5aa4c958610142c34bb7a651fc8df5" integrity sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w== -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== +cli-truncate@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" + integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" + slice-ansi "^5.0.0" + string-width "^5.0.0" cliui@^8.0.1: version "8.0.1" @@ -3053,14 +2318,6 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.0.tgz#150ee634ac3650b71d9c985eb7f608942334feb1" integrity sha512-VKIhJgvk8E1W28m5avZ2Gv2Ruv5YiF56ug2oclvaG9md69BuZImMG2sk9g7QNKLUbtYAKQjXjYxbYZVUlMMKmQ== -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.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" @@ -3085,25 +2342,35 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +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== -colors@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== +commander@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" + integrity sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ== + +commander@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^9.3.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== commondir@^1.0.1: version "1.0.1" @@ -3115,45 +2382,22 @@ compare-versions@^3.6.0: resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.14.0, core-js-compat@^3.16.0: - version "3.16.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.16.1.tgz#c44b7caa2dcb94b673a98f27eee1c8312f55bc2d" - integrity sha512-NHXQXvRbd4nxp9TEmooTJLUf94ySUG6+DSsscBpTftN1lQLQ4LjnWvc7AoIo4UjDsFF3hB8Uh5LLCRRdaiT5MQ== +core-js-compat@^3.31.0, core-js-compat@^3.33.1: + version "3.34.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.34.0.tgz#61a4931a13c52f8f08d924522bba65f8c94a5f17" + integrity sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA== dependencies: - browserslist "^4.16.7" - semver "7.0.0" - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + browserslist "^4.22.2" corser@^2.0.1: version "2.0.1" @@ -3171,47 +2415,20 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" -cosmiconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" - integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -cross-spawn@^6.0.0: - 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: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" - integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cross-spawn@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" - integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" -cross-spawn@^7.0.3: +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== @@ -3220,19 +2437,12 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.1.1: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== +debug@4.3.4, debug@^4.1.0, debug@^4.1.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.1" + ms "2.1.2" debug@^3.2.7: version "3.2.7" @@ -3241,54 +2451,11 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debug@^4.2.0, debug@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.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" - -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= - dedent@^1.0.0: version "1.5.1" resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== -deep-freeze@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" - integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= - deep-is@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -3324,48 +2491,29 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" +define-data-property@^1.0.1, define-data-property@^1.1.1: + 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== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + define-lazy-prop@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== +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" -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" @@ -3376,15 +2524,10 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" - integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== - -diff-sequences@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" - integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== diff@^3.5.0: version "3.5.0" @@ -3412,15 +2555,15 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -electron-to-chromium@^1.3.793: - version "1.3.806" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.806.tgz#21502100f11aead6c501d1cd7f2504f16c936642" - integrity sha512-AH/otJLAAecgyrYp0XK1DPiGVWcOgwPeJBOLeuFQ5l//vhQhwC9u6d+GijClqJAmsHG4XDue81ndSQPohUu0xA== +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== -electron-to-chromium@^1.4.477: - version "1.4.492" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.492.tgz#83fed8beb64ec60578069e15dddd17b13a77ca56" - integrity sha512-36K9b/6skMVwAIEsC7GiQ8I8N3soCALVSHqWHzNDtGemAcI9Xu8hP02cywWM0A794rTHm0b0zHPeLJHtgFVamQ== +electron-to-chromium@^1.4.477, electron-to-chromium@^1.4.601: + version "1.4.609" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.609.tgz#5790a70aaa96de232501b56e14b64d17aff93988" + integrity sha512-ihiCP7PJmjoGNuLpl7TjNA8pCQWu09vGyjlPYw1Rqww4gvNuCcmvl+44G+2QyJ6S2K4o+wbTS++Xz0YN8Q9ERw== emittery@^0.13.1: version "0.13.1" @@ -3432,26 +2575,18 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== - dependencies: - once "^1.4.0" - -enquirer@^2.3.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.5.tgz#3ab2b838df0a9d8ab9e7dff235b0e8712ef92381" - integrity sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA== - dependencies: - ansi-colors "^3.2.1" +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== -enquirer@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== +enhanced-resolve@^5.12.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== dependencies: - ansi-colors "^4.1.1" + graceful-fs "^4.2.4" + tapable "^2.2.0" error-ex@^1.3.1: version "1.3.2" @@ -3460,52 +2595,26 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" - is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-abstract@^1.20.4, es-abstract@^1.21.2: - version "1.22.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" - integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== +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== dependencies: array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.1" + 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.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 "^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" @@ -3513,23 +2622,23 @@ es-abstract@^1.20.4, es-abstract@^1.21.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-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.5.0" - safe-array-concat "^1.0.0" + 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.10" + which-typed-array "^1.1.13" es-set-tostringtag@^2.0.1: version "2.0.1" @@ -3590,7 +2699,20 @@ eslint-import-resolver-node@^0.3.7: is-core-module "^2.13.0" resolve "^1.22.4" -eslint-module-utils@^2.8.0: +eslint-import-resolver-typescript@~3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa" + integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== + dependencies: + debug "^4.3.4" + enhanced-resolve "^5.12.0" + eslint-module-utils "^2.7.4" + fast-glob "^3.3.1" + get-tsconfig "^4.5.0" + is-core-module "^2.11.0" + is-glob "^4.0.3" + +eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== @@ -3605,10 +2727,10 @@ eslint-plugin-eslint-plugin@~5.1.1: eslint-utils "^3.0.0" estraverse "^5.3.0" -eslint-plugin-import@~2.28.0: - version "2.28.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.0.tgz#8d66d6925117b06c4018d491ae84469eb3cb1005" - integrity sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q== +eslint-plugin-import@~2.28.1: + version "2.28.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz#63b8b5b3c409bfc75ebaf8fb206b07ab435482c4" + integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A== dependencies: array-includes "^3.1.6" array.prototype.findlastindex "^1.2.2" @@ -3619,27 +2741,26 @@ eslint-plugin-import@~2.28.0: eslint-import-resolver-node "^0.3.7" eslint-module-utils "^2.8.0" has "^1.0.3" - is-core-module "^2.12.1" + is-core-module "^2.13.0" is-glob "^4.0.3" minimatch "^3.1.2" object.fromentries "^2.0.6" object.groupby "^1.0.0" object.values "^1.1.6" - resolve "^1.22.3" semver "^6.3.1" tsconfig-paths "^3.14.2" -eslint-plugin-jest@~27.2.3: - version "27.2.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.3.tgz#6f8a4bb2ca82c0c5d481d1b3be256ab001f5a3ec" - integrity sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ== +eslint-plugin-jest@~27.4.2: + version "27.4.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.4.3.tgz#7b2330a9e1819b66d06e66b45dfa8e8ef0c23f79" + integrity sha512-7S6SmmsHsgIm06BAGCAxL+ABd9/IB3MWkz2pudj6Qqor2y1qQpWPfuFU4SG9pWj4xDjF0e+D7Llh5useuSzAZw== dependencies: "@typescript-eslint/utils" "^5.10.0" eslint-plugin-prettier@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz#6887780ed95f7708340ec79acfdf60c35b9be57a" - integrity sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w== + version "5.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz#a3b399f04378f79f066379f544e42d6b73f11515" + integrity sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg== dependencies: prettier-linter-helpers "^1.0.0" synckit "^0.8.5" @@ -3652,10 +2773,10 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-6.0.0.tgz#9cf45b13c5ac8f3d4c50f46a5121f61b3e318978" - integrity sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA== +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" @@ -3672,78 +2793,72 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz#e32e99c6cdc2eb063f204eda5db67bfe58bb4186" - integrity sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q== - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: +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.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.0.1.tgz#3610e7fe4a05c2154669515ca60835a76a19f700" - integrity sha512-LsgcwZgQ72vZ+SMp4K6pAnk2yFDWL7Ti4pJaRvsZ0Hsw2h8ZjUIW38a9AFn2cZXdBMlScMFYYgsSp4ttFI/0bA== +eslint@~8.50.0: + version "8.50.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.50.0.tgz#2ae6015fee0240fcd3f83e1e25df0287f487d6b2" + integrity sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg== dependencies: - "@eslint/eslintrc" "^1.0.3" - "@humanwhocodes/config-array" "^0.6.0" - ajv "^6.10.0" + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.2" + "@eslint/js" "8.50.0" + "@humanwhocodes/config-array" "^0.11.11" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" - enquirer "^2.3.5" escape-string-regexp "^4.0.0" - eslint-scope "^6.0.0" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.0.0" - espree "^9.0.0" - esquery "^1.4.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" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" + 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.0.4" + minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.2.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.0.0.tgz#e90a2965698228502e771c7a58489b1a9d107090" - integrity sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ== +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.5.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^3.0.0" + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" esprima@^4.0.0: 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.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +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" @@ -3759,26 +2874,11 @@ estraverse@^4.1.1: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= -estraverse@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" - integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== - -estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -estraverse@^5.3.0: +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - estree-walker@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" @@ -3794,38 +2894,25 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -exec-sh@^0.3.2: - version "0.3.4" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" - integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== +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@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== +execa@7.2.0, execa@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" + integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" + 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 "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" execa@^5.0.0: version "5.1.1" @@ -3842,79 +2929,21 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" - integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== - 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" - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expect@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.2.tgz#7b08e83eba18ddc4a2cf62b5f2d1918f5cd84521" - integrity sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA== - dependencies: - "@jest/expect-utils" "^29.6.2" - "@types/node" "*" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.6.2" - jest-message-util "^29.6.2" - jest-util "^29.6.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= +expect@^29.0.0, expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -3926,22 +2955,10 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.1.1: - version "3.2.5" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" - integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" - -fast-glob@^3.2.9, fast-glob@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== +fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: + 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" @@ -3980,16 +2997,6 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -3997,13 +3004,13 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -find-babel-config@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" - integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA== +find-babel-config@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-2.0.0.tgz#a8216f825415a839d0f23f4d18338a1cc966f701" + integrity sha512-dOKT7jvF3hGzlW60Gc3ONox/0rRZ/tz7WCil0bqA1In/3I8f1BctpXahRnEKDySZqci7u+dqq93sZST9fOJpFw== dependencies: - json5 "^0.5.1" - path-exists "^3.0.0" + json5 "^2.1.1" + path-exists "^4.0.0" find-up@^3.0.0: version "3.0.0" @@ -4020,6 +3027,14 @@ find-up@^4.0.0, find-up@^4.1.0: 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" + find-versions@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" @@ -4052,17 +3067,13 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= +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: - map-cache "^0.2.2" + cross-spawn "^7.0.0" + signal-exit "^4.0.1" fs-readdir-recursive@^1.1.0: version "1.1.0" @@ -4074,51 +3085,31 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" - integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== - fsevents@^2.3.2, 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== -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -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== +function-bind@^1.1.1, 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.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== +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.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" -functions-have-names@^1.2.2, 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== -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -4129,52 +3120,15 @@ get-caller-file@^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-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== +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== 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" - -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" - integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg== - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== - dependencies: - pump "^3.0.0" + hasown "^2.0.0" get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" @@ -4189,58 +3143,70 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= +get-tsconfig@^4.5.0: + 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" -glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2, 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.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@^7.0.0, glob@^7.1.2, glob@^7.1.4, glob@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +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, glob@^7.1.4, glob@^7.2.0: + 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.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^5.0.1" once "^1.3.0" - path-is-absolute "^1.0.0" globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.6.0, globals@^13.9.0: - version "13.9.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" - integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== +globals@^13.19.0: + version "13.23.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== dependencies: type-fest "^0.20.2" @@ -4251,18 +3217,6 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.0.3: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" @@ -4282,17 +3236,7 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.11, graceful-fs@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -graceful-fs@^4.1.2: - version "4.1.15" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" - integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== - -graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: 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== @@ -4302,11 +3246,6 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -4323,33 +3262,18 @@ has-flag@^4.0.0: integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== dependencies: - get-intrinsic "^1.1.1" + get-intrinsic "^1.2.2" 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.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-symbols@^1.0.3: +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== @@ -4361,37 +3285,6 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -4399,7 +3292,14 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -he@^1.1.0: +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== + dependencies: + function-bind "^1.1.2" + +he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -4409,12 +3309,19 @@ 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== +html-encoding-sniffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" + integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== + dependencies: + whatwg-encoding "^2.0.0" + html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -http-proxy@^1.18.0: +http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -4423,28 +3330,24 @@ http-proxy@^1.18.0: follow-redirects "^1.0.0" requires-port "^1.0.0" -http-server@~13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/http-server/-/http-server-13.0.0.tgz#27ab5f3bad0e27a29965a4029c26170162f7b98f" - integrity sha512-tqOx2M1CiZ3aVaE7Ue/0lup9kOG+Zqg6wdT1HygvxFnvPpU9doBMPcQ1ffT0/QS3J9ua35gipg0o3Dr8N0K0Tg== +http-server@^14.0.0: + version "14.1.1" + resolved "https://registry.yarnpkg.com/http-server/-/http-server-14.1.1.tgz#d60fbb37d7c2fdff0f0fbff0d0ee6670bd285e2e" + integrity sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A== dependencies: - basic-auth "^1.0.3" - colors "^1.4.0" + basic-auth "^2.0.1" + chalk "^4.1.2" corser "^2.0.1" - he "^1.1.0" - http-proxy "^1.18.0" + he "^1.2.0" + html-encoding-sniffer "^3.0.0" + http-proxy "^1.18.1" mime "^1.6.0" - minimist "^1.2.5" + minimist "^1.2.6" opener "^1.5.1" - portfinder "^1.0.25" + portfinder "^1.0.28" secure-compare "3.0.1" union "~0.5.0" - url-join "^2.0.5" - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + url-join "^4.0.1" human-signals@^2.1.0: version "2.1.0" @@ -4472,38 +3375,19 @@ husky@~4.2.5: slash "^3.0.0" which-pm-runs "^1.0.0" -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -ignore@^5.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -import-fresh@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" - integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ== +iconv-lite@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" + safer-buffer ">= 2.1.2 < 3.0.0" -import-fresh@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" +ignore@^5.2.0, ignore@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== -import-fresh@^3.2.1: +import-fresh@^3.1.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== @@ -4529,11 +3413,6 @@ indent-string@^3.2.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= -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== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -4547,43 +3426,15 @@ inherits@2: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -inherits@^2.0.3, 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== - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" + get-intrinsic "^1.2.2" + hasown "^2.0.0" side-channel "^1.0.4" -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - 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" @@ -4603,13 +3454,6 @@ is-bigint@^1.0.1: resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -4624,11 +3468,6 @@ is-boolean-object@^1.1.0: dependencies: call-bind "^1.0.2" -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - is-builtin-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" @@ -4636,78 +3475,29 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-callable@^1.1.3, is-callable@^1.2.7: +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.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-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== - -is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-core-module@^2.12.1, is-core-module@^2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" - integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== - dependencies: - has "^1.0.3" - -is-core-module@^2.2.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" - integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== +is-core-module@^2.11.0, is-core-module@^2.13.0: + 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: - kind-of "^6.0.0" + hasown "^2.0.0" is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= is-docker@^2.0.0: version "2.2.1" @@ -4719,18 +3509,6 @@ is-docker@^3.0.0: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -4741,26 +3519,17 @@ is-fullwidth-code-point@^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-generator-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= - dependencies: - is-extglob "^2.1.1" - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -4779,11 +3548,6 @@ is-module@^1.0.0: resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== - 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" @@ -4794,36 +3558,22 @@ is-number-object@^1.0.4: resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - 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@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" +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-reference@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.1.4.tgz#3f95849886ddb70256a3e6d062b1a68c13c51427" - integrity sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw== +is-reference@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== dependencies: - "@types/estree" "0.0.39" + "@types/estree" "*" is-regex@^1.1.4: version "1.1.4" @@ -4833,16 +3583,6 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== - 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" @@ -4850,11 +3590,6 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - is-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" @@ -4865,51 +3600,27 @@ is-stream@^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: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" - integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== - -is-string@^1.0.7: +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: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== - dependencies: - has-symbols "^1.0.0" - -is-symbol@^1.0.3: +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-typed-array@^1.1.10, is-typed-array@^1.1.9: +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== dependencies: which-typed-array "^1.1.11" -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-weakref@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" - integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== - dependencies: - call-bind "^1.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" @@ -4917,11 +3628,6 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -4929,11 +3635,6 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -4944,42 +3645,12 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -istanbul-lib-coverage@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== - -istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" - integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg== - dependencies: - "@babel/core" "^7.7.5" - "@babel/parser" "^7.7.5" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: +istanbul-lib-instrument@^5.0.4: version "5.2.1" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== @@ -4990,6 +3661,17 @@ istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: istanbul-lib-coverage "^3.2.0" semver "^6.3.0" +istanbul-lib-instrument@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" + integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" @@ -5016,433 +3698,372 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" - integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag== +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" + +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== dependencies: execa "^5.0.0" + jest-util "^29.7.0" p-limit "^3.1.0" -jest-circus@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.2.tgz#1e6ffca60151ac66cad63fce34f443f6b5bb4258" - integrity sha512-G9mN+KOYIUe2sB9kpJkO9Bk18J4dTDArNFPwoZ7WKHKel55eKIS/u2bLthxgojwlf9NLCVQfgzM/WsOVvoC6Fw== +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== dependencies: - "@jest/environment" "^29.6.2" - "@jest/expect" "^29.6.2" - "@jest/test-result" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^1.0.0" is-generator-fn "^2.0.0" - jest-each "^29.6.2" - jest-matcher-utils "^29.6.2" - jest-message-util "^29.6.2" - jest-runtime "^29.6.2" - jest-snapshot "^29.6.2" - jest-util "^29.6.2" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" p-limit "^3.1.0" - pretty-format "^29.6.2" + pretty-format "^29.7.0" pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.2.tgz#edb381763398d1a292cd1b636a98bfa5644b8fda" - integrity sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q== +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== dependencies: - "@jest/core" "^29.6.2" - "@jest/test-result" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" chalk "^4.0.0" + create-jest "^29.7.0" exit "^0.1.2" - graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.6.2" - jest-util "^29.6.2" - jest-validate "^29.6.2" - prompts "^2.0.1" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" yargs "^17.3.1" -jest-config@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.2.tgz#c68723f06b31ca5e63030686e604727d406cd7c3" - integrity sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw== +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.6.2" - "@jest/types" "^29.6.1" - babel-jest "^29.6.2" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.6.2" - jest-environment-node "^29.6.2" - jest-get-type "^29.4.3" - jest-regex-util "^29.4.3" - jest-resolve "^29.6.2" - jest-runner "^29.6.2" - jest-util "^29.6.2" - jest-validate "^29.6.2" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.6.2" + pretty-format "^29.7.0" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^27.0.0: - version "27.2.5" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.2.5.tgz#908f7a6aca5653824516ad30e0a9fd9767e53623" - integrity sha512-7gfwwyYkeslOOVQY4tVq5TaQa92mWfC9COsVYMNVYyJTOYAqbIkoD3twi5A+h+tAPtAelRxkqY6/xu+jwTr0dA== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.0.6" - jest-get-type "^27.0.6" - pretty-format "^27.2.5" - -jest-diff@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.2.tgz#c36001e5543e82a0805051d3ceac32e6825c1c46" - integrity sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA== +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== dependencies: chalk "^4.0.0" - diff-sequences "^29.4.3" - jest-get-type "^29.4.3" - pretty-format "^29.6.2" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" -jest-docblock@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8" - integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg== +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== dependencies: detect-newline "^3.0.0" -jest-each@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.2.tgz#c9e4b340bcbe838c73adf46b76817b15712d02ce" - integrity sha512-MsrsqA0Ia99cIpABBc3izS1ZYoYfhIy0NNWqPSE0YXbQjwchyt6B1HD2khzyPe1WiJA7hbxXy77ZoUQxn8UlSw== +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" chalk "^4.0.0" - jest-get-type "^29.4.3" - jest-util "^29.6.2" - pretty-format "^29.6.2" - -jest-environment-node@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.2.tgz#a9ea2cabff39b08eca14ccb32c8ceb924c8bb1ad" - integrity sha512-YGdFeZ3T9a+/612c5mTQIllvWkddPbYcN2v95ZH24oWMbGA4GGS2XdIF92QMhUhvrjjuQWYgUGW2zawOyH63MQ== - dependencies: - "@jest/environment" "^29.6.2" - "@jest/fake-timers" "^29.6.2" - "@jest/types" "^29.6.1" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" + +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.6.2" - jest-util "^29.6.2" - -jest-get-type@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" - integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== - -jest-get-type@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" - integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== - -jest-haste-map@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== - dependencies: - "@jest/types" "^26.6.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.1.2" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== -jest-haste-map@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.2.tgz#298c25ea5255cfad8b723179d4295cf3a50a70d1" - integrity sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA== +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.4.3" - jest-util "^29.6.2" - jest-worker "^29.6.2" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.2.tgz#e2b307fee78cab091c37858a98c7e1d73cdf5b38" - integrity sha512-aNqYhfp5uYEO3tdWMb2bfWv6f0b4I0LOxVRpnRLAeque2uqOVVMLh6khnTcE2qJ5wAKop0HcreM1btoysD6bPQ== +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== dependencies: - jest-get-type "^29.4.3" - pretty-format "^29.6.2" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" -jest-matcher-utils@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.2.tgz#39de0be2baca7a64eacb27291f0bd834fea3a535" - integrity sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ== +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== dependencies: chalk "^4.0.0" - jest-diff "^29.6.2" - jest-get-type "^29.4.3" - pretty-format "^29.6.2" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" -jest-message-util@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.2.tgz#af7adc2209c552f3f5ae31e77cf0a261f23dc2bb" - integrity sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ== +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.6.2" + pretty-format "^29.7.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.6.2.tgz#ef9c9b4d38c34a2ad61010a021866dad41ce5e00" - integrity sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg== +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-util "^29.6.2" + jest-util "^29.7.0" jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== -jest-regex-util@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" - integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== - -jest-resolve-dependencies@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.2.tgz#36435269b6672c256bcc85fb384872c134cc4cf2" - integrity sha512-LGqjDWxg2fuQQm7ypDxduLu/m4+4Lb4gczc13v51VMZbVP5tSBILqVx8qfWcsdP8f0G7aIqByIALDB0R93yL+w== +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== dependencies: - jest-regex-util "^29.4.3" - jest-snapshot "^29.6.2" + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" -jest-resolve@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.2.tgz#f18405fe4b50159b7b6d85e81f6a524d22afb838" - integrity sha512-G/iQUvZWI5e3SMFssc4ug4dH0aZiZpsDq9o1PtXTV1210Ztyb2+w+ZgQkB3iOiC5SmAEzJBOHWz6Hvrd+QnNPw== +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.2" + jest-haste-map "^29.7.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.6.2" - jest-validate "^29.6.2" + jest-util "^29.7.0" + jest-validate "^29.7.0" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.2.tgz#89e8e32a8fef24781a7c4c49cd1cb6358ac7fc01" - integrity sha512-wXOT/a0EspYgfMiYHxwGLPCZfC0c38MivAlb2lMEAlwHINKemrttu1uSbcGbfDV31sFaPWnWJPmb2qXM8pqZ4w== +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== dependencies: - "@jest/console" "^29.6.2" - "@jest/environment" "^29.6.2" - "@jest/test-result" "^29.6.2" - "@jest/transform" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.4.3" - jest-environment-node "^29.6.2" - jest-haste-map "^29.6.2" - jest-leak-detector "^29.6.2" - jest-message-util "^29.6.2" - jest-resolve "^29.6.2" - jest-runtime "^29.6.2" - jest-util "^29.6.2" - jest-watcher "^29.6.2" - jest-worker "^29.6.2" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.2.tgz#692f25e387f982e89ab83270e684a9786248e545" - integrity sha512-2X9dqK768KufGJyIeLmIzToDmsN0m7Iek8QNxRSI/2+iPFYHF0jTwlO3ftn7gdKd98G/VQw9XJCk77rbTGZnJg== - dependencies: - "@jest/environment" "^29.6.2" - "@jest/fake-timers" "^29.6.2" - "@jest/globals" "^29.6.2" - "@jest/source-map" "^29.6.0" - "@jest/test-result" "^29.6.2" - "@jest/transform" "^29.6.2" - "@jest/types" "^29.6.1" +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.6.2" - jest-message-util "^29.6.2" - jest-mock "^29.6.2" - jest-regex-util "^29.4.3" - jest-resolve "^29.6.2" - jest-snapshot "^29.6.2" - jest-util "^29.6.2" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-snapshot@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.2.tgz#9b431b561a83f2bdfe041e1cab8a6becdb01af9c" - integrity sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA== +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-jsx" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.6.2" - "@jest/transform" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.6.2" + expect "^29.7.0" graceful-fs "^4.2.9" - jest-diff "^29.6.2" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.6.2" - jest-message-util "^29.6.2" - jest-util "^29.6.2" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" natural-compare "^1.4.0" - pretty-format "^29.6.2" + pretty-format "^29.7.0" semver "^7.5.3" -jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" - -jest-util@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.2.tgz#8a052df8fff2eebe446769fd88814521a517664d" - integrity sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w== +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.2.tgz#25d972af35b2415b83b1373baf1a47bb266c1082" - integrity sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg== +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.4.3" + jest-get-type "^29.6.3" leven "^3.1.0" - pretty-format "^29.6.2" + pretty-format "^29.7.0" -jest-watcher@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.2.tgz#77c224674f0620d9f6643c4cfca186d8893ca088" - integrity sha512-GZitlqkMkhkefjfN/p3SJjrDaxPflqxEAv3/ik10OirZqJGYH5rPiIsgVcfof0Tdqg3shQGdEIxDBx+B4tuLzA== +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== dependencies: - "@jest/test-result" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.6.2" + jest-util "^29.7.0" string-length "^4.0.1" -jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest-worker@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.2.tgz#682fbc4b6856ad0aa122a5403c6d048b83f3fb44" - integrity sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ== +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== dependencies: "@types/node" "*" - jest-util "^29.6.2" + jest-util "^29.7.0" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@~29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.2.tgz#3bd55b9fd46a161b2edbdf5f1d1bd0d1eab76c42" - integrity sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg== +jest@~29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== dependencies: - "@jest/core" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" import-local "^3.0.2" - jest-cli "^29.6.2" + jest-cli "^29.7.0" js-tokens@^4.0.0: version "4.0.0" @@ -5499,11 +4120,6 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - json5@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" @@ -5511,42 +4127,11 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" - integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== - dependencies: - minimist "^1.2.5" - -json5@^2.2.2: +json5@^2.1.1, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - 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== - kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -5565,44 +4150,43 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +lilconfig@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -lint-staged@~10.5.4: - version "10.5.4" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.4.tgz#cd153b5f0987d2371fc1d2847a409a2fe705b665" - integrity sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg== - dependencies: - chalk "^4.1.0" - cli-truncate "^2.1.0" - commander "^6.2.0" - cosmiconfig "^7.0.0" - debug "^4.2.0" - dedent "^0.7.0" - enquirer "^2.3.6" - execa "^4.1.0" - listr2 "^3.2.2" - log-symbols "^4.0.0" - micromatch "^4.0.2" - normalize-path "^3.0.0" - please-upgrade-node "^3.2.0" - string-argv "0.3.1" - stringify-object "^3.3.0" - -listr2@^3.2.2: - version "3.10.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.10.0.tgz#58105a53ed7fa1430d1b738c6055ef7bb006160f" - integrity sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw== - dependencies: - cli-truncate "^2.1.0" - colorette "^1.2.2" - log-update "^4.0.0" - p-map "^4.0.0" - rxjs "^6.6.7" - through "^2.3.8" - wrap-ansi "^7.0.0" +lint-staged@^14.0.1: + version "14.0.1" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-14.0.1.tgz#57dfa3013a3d60762d9af5d9c83bdb51291a6232" + integrity sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw== + dependencies: + chalk "5.3.0" + commander "11.0.0" + debug "4.3.4" + execa "7.2.0" + lilconfig "2.1.0" + listr2 "6.6.1" + micromatch "4.0.5" + pidtree "0.6.0" + string-argv "0.3.2" + yaml "2.3.1" + +listr2@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-6.6.1.tgz#08b2329e7e8ba6298481464937099f4a2cd7f95d" + integrity sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg== + 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" load-json-file@^4.0.0: version "4.0.0" @@ -5629,6 +4213,13 @@ locate-path@^5.0.0: 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.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -5639,7 +4230,7 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.17.13, lodash@^4.17.14: +lodash@^4.17.14: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -5651,22 +4242,23 @@ log-symbols@^2.2.0: dependencies: chalk "^2.0.1" -log-symbols@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== +log-update@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-5.0.1.tgz#9e928bf70cb183c1f0c9e91d9e6b7115d597ce09" + integrity sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw== dependencies: - chalk "^4.0.0" + 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" -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== +lorem-ipsum@~2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/lorem-ipsum/-/lorem-ipsum-2.0.8.tgz#f969a089f2ac6f19cf01b854b61beabb0e6f3cbc" + integrity sha512-5RIwHuCb979RASgCJH0VKERn9cQo/+NcAi2BMe9ddj+gp7hujl6BI+qdOG4nVsLDpwWEJwTVYXNKP6BGgbcoGA== dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" + commander "^9.3.0" lru-cache@^5.1.1: version "5.1.1" @@ -5682,12 +4274,17 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -magic-string@^0.25.2: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== +"lru-cache@^9.1.1 || ^10.0.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + +magic-string@^0.30.3: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== dependencies: - sourcemap-codec "^1.4.4" + "@jridgewell/sourcemap-codec" "^1.4.15" make-dir@^2.1.0: version "2.1.0" @@ -5711,25 +4308,6 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= - dependencies: - tmpl "1.0.x" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -5740,40 +4318,13 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== +micromatch@4.0.5, micromatch@^4.0.4: + 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.1" - picomatch "^2.2.3" + braces "^3.0.2" + picomatch "^2.3.1" mime@^1.6.0: version "1.6.0" @@ -5795,58 +4346,49 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== -minimatch@^3.0.4, minimatch@^3.1.2: +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@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +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" -minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== -mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= +mkdirp@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: - minimist "0.0.8" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + minimist "^1.2.6" -ms@2.1.2: +ms@2.1.2, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - mz@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" @@ -5856,23 +4398,6 @@ mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -5883,31 +4408,21 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -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-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - -node-releases@^1.1.73: - version "1.1.74" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.74.tgz#e5866488080ebaa70a93b91144ccde06f3c3463e" - integrity sha512-caJBVempXZPepZoZAPCWRTNxYQ+xtG/KAi4ozTA5A+nJ7IU+kLQCbqaUjb5Rwy14M9upBWiQ4NutcmW04LJSRw== - node-releases@^2.0.13: version "2.0.13" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + normalize-package-data@^2.3.2: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" @@ -5918,26 +4433,12 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - normalize-path@^3.0.0, 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-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.0, npm-run-path@^4.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== @@ -5956,113 +4457,55 @@ object-assign@^4.0.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== - -object-inspect@^1.12.3: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -object-keys@^1.0.11, object-keys@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" - integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== +object-inspect@^1.13.1, object-inspect@^1.9.0: + 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-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + 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.2" - define-properties "^1.1.4" + call-bind "^1.0.5" + define-properties "^1.2.1" has-symbols "^1.0.3" object-keys "^1.1.1" object.fromentries@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" - integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" object.groupby@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.0.tgz#cb29259cf90f37e7bac6437686c1ea8c916d12a9" - integrity sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" - es-abstract "^1.21.2" + es-abstract "^1.22.1" get-intrinsic "^1.2.1" -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -6076,14 +4519,7 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - -onetime@^5.1.2: +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== @@ -6117,17 +4553,17 @@ opener@^1.5.1: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +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" - word-wrap "^1.2.3" ora@^3.0.0: version "3.4.0" @@ -6141,26 +4577,14 @@ ora@^3.0.0: strip-ansi "^5.2.0" wcwidth "^1.0.1" -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^2.0.0: +p-limit@^2.0.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@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" - integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== - dependencies: - p-try "^2.0.0" - -p-limit@^3.1.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== @@ -6181,12 +4605,12 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -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== +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: - aggregate-error "^3.0.0" + p-limit "^3.0.2" p-try@^2.0.0: version "2.0.0" @@ -6208,17 +4632,7 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-json@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" - integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - lines-and-columns "^1.1.6" - -parse-json@^5.2.0: +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== @@ -6228,11 +4642,6 @@ parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -6248,31 +4657,29 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0: +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@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.0.tgz#99a10d870a803bdd5ee6f0470e58dfcd2f9a54d3" - integrity sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg== - 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.6, path-parse@^1.0.7: +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-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -6290,21 +4697,16 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, 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== + pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" @@ -6315,13 +4717,6 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pirates@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" - pirates@^4.0.4: version "4.0.6" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" @@ -6348,19 +4743,14 @@ please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" -portfinder@^1.0.25: - version "1.0.26" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.26.tgz#475658d56ca30bed72ac7f1378ed350bd1b64e70" - integrity sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ== +portfinder@^1.0.28: + version "1.0.32" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" + integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.1" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + async "^2.6.4" + debug "^3.2.7" + mkdirp "^0.5.6" prelude-ls@^1.2.1: version "1.2.1" @@ -6374,45 +4764,20 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.1.tgz#65271fc9320ce4913c57747a70ce635b30beaa40" - integrity sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ== - -pretty-format@^27.0.0, pretty-format@^27.2.5: - version "27.2.5" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.5.tgz#7cfe2a8e8f01a5b5b29296a0b70f4140df0830c5" - integrity sha512-+nYn2z9GgicO9JiqmY25Xtq8SYfZ/5VCpEU3pppHHNAhd1y+ZXxmNPd1evmNcAd6Hz4iBV2kf0UpGth5A/VJ7g== - dependencies: - "@jest/types" "^27.2.5" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" +prettier@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" + integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== -pretty-format@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.2.tgz#3d5829261a8a4d89d8b9769064b29c50ed486a47" - integrity sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg== +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== dependencies: - "@jest/schemas" "^29.6.0" + "@jest/schemas" "^29.6.3" ansi-styles "^5.0.0" react-is "^18.0.0" -private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - prompts@^2.0.1: version "2.3.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" @@ -6421,23 +4786,15 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.4" -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== pure-rand@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306" - integrity sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ== + version "6.0.4" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" + integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== qs@^6.4.0: version "6.11.0" @@ -6451,10 +4808,12 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" react-is@^18.0.0: version "18.2.0" @@ -6478,28 +4837,6 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -readable-stream@^2.0.2: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -6507,104 +4844,58 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== dependencies: - regenerate "^1.4.0" + regenerate "^1.4.2" -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.13.4: version "0.13.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== -regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" - private "^0.1.8" -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== +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== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" - functions-have-names "^1.2.3" + set-function-name "^2.0.0" -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" -regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regexpu-core@^4.7.1: - version "4.7.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" - integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regjsgen@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== - -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -6615,10 +4906,10 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -reselect@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" - integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA== +reselect@^4.1.7: + version "4.1.8" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524" + integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== resolve-cwd@^3.0.0: version "3.0.0" @@ -6637,47 +4928,25 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= +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.exports@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.11.0, resolve@^1.13.1, resolve@^1.14.2: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -resolve@^1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -resolve@^1.22.1, resolve@^1.22.3, resolve@^1.22.4: - version "1.22.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" - integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== +resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4: + 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" -resolve@^1.3.2: - version "1.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== - dependencies: - path-parse "^1.0.6" - restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -6686,42 +4955,57 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== +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" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - 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== -rimraf@^3.0.0, rimraf@^3.0.2, rimraf@~3.0.2: +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + +rimraf@^3.0.0, 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" -rollup@~2.10.5: - version "2.10.5" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.10.5.tgz#a2e6735fbcbd64453f8aa5d7b5ec1b421974f92c" - integrity sha512-05WRM/tjmPYwhOBvm/G9Qwa/HnAqn0TK0XxLDLQzoM4XdSmKjPBvhBl+U+Q/C6VJsucljyTQjGkZD503mjbPQg== - optionalDependencies: - fsevents "~2.1.2" +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" -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== +rollup@~4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.7.0.tgz#04173cb398cd7643b9f71846dfbbda0e94fd0b1f" + integrity sha512-7Kw0dUP4BWH78zaZCqF1rPyQ8D5DSU6URG45v1dqS/faNsx9WXyess00uTOZxKr7oR/4TOjO1CPudT8L1UsEgw== + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.7.0" + "@rollup/rollup-android-arm64" "4.7.0" + "@rollup/rollup-darwin-arm64" "4.7.0" + "@rollup/rollup-darwin-x64" "4.7.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.7.0" + "@rollup/rollup-linux-arm64-gnu" "4.7.0" + "@rollup/rollup-linux-arm64-musl" "4.7.0" + "@rollup/rollup-linux-riscv64-gnu" "4.7.0" + "@rollup/rollup-linux-x64-gnu" "4.7.0" + "@rollup/rollup-linux-x64-musl" "4.7.0" + "@rollup/rollup-win32-arm64-msvc" "4.7.0" + "@rollup/rollup-win32-ia32-msvc" "4.7.0" + "@rollup/rollup-win32-x64-msvc" "4.7.0" + fsevents "~2.3.2" run-applescript@^5.0.0: version "5.0.0" @@ -6737,24 +5021,17 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^6.6.7: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -safe-array-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" - integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== +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== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -6768,27 +5045,10 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" +"safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== secure-compare@3.0.1: version "3.0.1" @@ -6805,66 +5065,48 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -"semver@2 || 3 || 4 || 5", semver@^5.5.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" - integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^5.4.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^6.3.1: +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.2.1: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: +semver@^7.3.7, semver@^7.5.0, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== +serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" + randombytes "^2.1.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 sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= +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== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +set-function-name@^2.0.0: + 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: - shebang-regex "^1.0.0" + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" shebang-command@^2.0.0: version "2.0.0" @@ -6873,11 +5115,6 @@ shebang-command@^2.0.0: 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 sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" @@ -6892,26 +5129,16 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -signal-exit@^3.0.3: - version "3.0.5" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" - integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== - -signal-exit@^3.0.7: +signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: 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: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + sisteransi@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -6927,64 +5154,18 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== +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: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" +smob@^1.0.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/smob/-/smob-1.4.1.tgz#66270e7df6a7527664816c5b577a23f17ba6f5b5" + integrity sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ== source-map-support@0.5.13: version "0.5.13" @@ -6994,26 +5175,19 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= +source-map-support@~0.5.20: + 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, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -sourcemap-codec@^1.4.4: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - spdx-correct@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" @@ -7040,13 +5214,6 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e" integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g== -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -7059,18 +5226,10 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -string-argv@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== +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-length@^4.0.1: version "4.0.1" @@ -7080,25 +5239,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz#ba846d1daa97c3c596155308063e075ed1c99aff" - integrity sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^5.2.0" - -string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string-width@^4.2.3: +"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== @@ -7107,64 +5248,48 @@ string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +string-width@^5.0.0, 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: - call-bind "^1.0.2" - define-properties "^1.1.3" + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== +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.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +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.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== +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.1.4" - es-abstract "^1.20.4" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" + define-properties "^1.2.0" + es-abstract "^1.22.1" -stringify-object@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== +"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: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" + ansi-regex "^5.0.1" strip-ansi@^5.2.0: version "5.2.0" @@ -7173,19 +5298,12 @@ strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.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== +strip-ansi@^7.0.1: + 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 "^5.0.1" + ansi-regex "^6.0.1" strip-bom@^3.0.0: version "3.0.0" @@ -7197,11 +5315,6 @@ strip-bom@^4.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - 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" @@ -7212,16 +5325,6 @@ strip-final-newline@^3.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== -strip-json-comments@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -strip-json-comments@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" - integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== - 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" @@ -7234,7 +5337,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== @@ -7254,12 +5357,27 @@ supports-preserve-symlinks-flag@^1.0.0: integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== + version "0.8.6" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.6.tgz#b69b7fbce3917c2673cbdc0d87fb324db4a5b409" + integrity sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA== dependencies: - "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" + "@pkgr/utils" "^2.4.2" + tslib "^2.6.2" + +tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +terser@^5.17.4: + version "5.26.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.26.0.tgz#ee9f05d929f4189a9c28a0feb889d96d50126fe1" + integrity sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" test-exclude@^6.0.0: version "6.0.0" @@ -7289,11 +5407,6 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - titleize@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" @@ -7306,7 +5419,7 @@ tmp@~0.2.1: dependencies: rimraf "^3.0.0" -tmpl@1.0.5, tmpl@1.0.x: +tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== @@ -7316,21 +5429,6 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - 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" @@ -7338,20 +5436,10 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - ts-api-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" - integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== + version "1.0.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== tsconfig-paths@^3.14.2: version "3.14.2" @@ -7363,31 +5451,21 @@ tsconfig-paths@^3.14.2: minimist "^1.2.6" strip-bom "^3.0.0" -tsconfig@~7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" - integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== - dependencies: - "@types/strip-bom" "^3.0.0" - "@types/strip-json-comments" "0.0.30" - strip-bom "^3.0.0" - strip-json-comments "^2.0.0" - tslib@^1.8.1: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== -tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== - tslib@^2.5.0, tslib@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== +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== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -7407,11 +5485,6 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -7422,6 +5495,11 @@ type-fest@^0.5.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw== +type-fest@^1.0.2: + 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== + 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" @@ -7461,27 +5539,10 @@ typed-array-length@^1.0.4: 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.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" - integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== - -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" +typescript@~5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== unbox-primitive@^1.0.2: version "1.0.2" @@ -7493,38 +5554,33 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== +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== -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== union@~0.5.0: version "0.5.0" @@ -7533,24 +5589,11 @@ union@~0.5.0: dependencies: qs "^6.4.0" -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - untildify@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - update-browserslist-db@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" @@ -7559,6 +5602,14 @@ update-browserslist-db@^1.0.11: escalade "^3.1.1" picocolors "^1.0.0" +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -7566,39 +5617,19 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-join@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728" - integrity sha1-WvIvGMBSoACkjXuCxenC4v7tpyg= - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -v8-compile-cache@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" - integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== +url-join@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" + integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== v8-to-istanbul@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265" - integrity sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA== + version "9.2.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" + integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" + convert-source-map "^2.0.0" validate-npm-package-license@^3.0.1: version "3.0.4" @@ -7608,13 +5639,6 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -walker@^1.0.7, walker@~1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= - dependencies: - makeerror "1.0.x" - walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -7629,6 +5653,13 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +whatwg-encoding@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" + integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== + dependencies: + iconv-lite "0.6.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" @@ -7645,24 +5676,17 @@ which-pm-runs@^1.0.0: resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= -which-typed-array@^1.1.10, which-typed-array@^1.1.11: - version "1.1.11" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" - integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== +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== 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" -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.1" resolved "https://registry.yarnpkg.com/which/-/which-2.0.1.tgz#f1cf94d07a8e571b6ff006aeb91d0300c47ef0a4" @@ -7670,21 +5694,7 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: +"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== @@ -7693,21 +5703,20 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.0.1, 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" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^3.0.0: - 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" - write-file-atomic@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" @@ -7731,10 +5740,10 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" + integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== yaml@^1.7.2: version "1.8.3" @@ -7761,6 +5770,16 @@ yargs@^17.3.1: y18n "^5.0.5" yargs-parser "^21.1.1" +yarn-deduplicate@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/yarn-deduplicate/-/yarn-deduplicate-6.0.2.tgz#63498d2d4c3a8567e992a994ce0ab51aa5681f2e" + integrity sha512-Efx4XEj82BgbRJe5gvQbZmEO7pU5DgHgxohYZp98/+GwPqdU90RXtzvHirb7hGlde0sQqk5G3J3Woyjai8hVqA== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + commander "^10.0.1" + semver "^7.5.0" + tslib "^2.5.0" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From d6e4b4ec4dee75f2cf19b2bb1786901ff69b127a Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sun, 10 Dec 2023 14:50:45 -0800 Subject: [PATCH 05/26] add comment --- tests/helpers/cases/index.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/helpers/cases/index.ts b/tests/helpers/cases/index.ts index d51012c..fe6318e 100644 --- a/tests/helpers/cases/index.ts +++ b/tests/helpers/cases/index.ts @@ -9,6 +9,10 @@ import { processInvalidTestCase, processValidTestCase } from './process' export * from './types' export { processInvalidTestCase, processValidTestCase } from './process' +/** + * Helper for splitting up test cases by options and displaying info about which + * set of options the test is running with. Sacrifices some parallelizatiom for debuggability. + */ export function runCases( { name, @@ -20,14 +24,17 @@ export function runCases( runOptions: { withRequiredFirstOption: boolean; category: CaseCategory }, ) { const usedOptionsKeys = new Set(Object.keys(invalid).concat(Object.keys(valid))) + for (const optionsSetKey of usedOptionsKeys) { describe(optionsSetKey, () => { const ruleTester = new RuleTester(typescriptConfig) + ruleTester.run(name, rule as unknown as Rule.RuleModule, { valid: processValidTestCase( { [optionsSetKey]: valid[optionsSetKey] }, runOptions.withRequiredFirstOption, ), + invalid: processInvalidTestCase( { [optionsSetKey]: invalid[optionsSetKey] }, runOptions.category, From 7391fbba3704672e8ec66db0b0ddca62c4488b26 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sun, 10 Dec 2023 19:10:53 -0800 Subject: [PATCH 06/26] make explicit test options & deduplicate --- src/report.ts | 13 +- src/types/error.ts | 4 +- tests/helpers/options.ts | 80 +++--- tests/helpers/strings.ts | 37 ++- tests/rules/enum/enum-big.spec.ts | 4 +- tests/rules/enum/enum.spec.ts | 115 +++----- tests/rules/enum/string-enum.spec.ts | 112 +++----- tests/rules/interface/interface.spec.ts | 342 +++++++++--------------- 8 files changed, 268 insertions(+), 439 deletions(-) diff --git a/src/report.ts b/src/report.ts index 9fb91dc..1d93bd4 100644 --- a/src/report.ts +++ b/src/report.ts @@ -60,6 +60,15 @@ export function reportBodyNodes( assert(loc, 'createReportObject return value must include a node location') assert(messageId, 'createReportObject return value must include a problem message') + let optionsString = [ + isRequiredFirst && 'required-first', + isInsensitive && 'insensitive', + isNatural && 'natural', + ] + .filter(Boolean) + .join(', ') + if (optionsString) optionsString += ' ' + context.report({ loc, messageId, @@ -71,9 +80,7 @@ export function reportBodyNodes( ? `before '${getPropertyName(sortedBody[finalIndex + 1])}'` : 'at the end', order, - insensitive: isInsensitive ? 'insensitive ' : '', - natural: isNatural ? 'natural ' : '', - requiredFirst: isRequiredFirst ? 'required first ' : '', + options: optionsString, notice: getDeprecationMessage(context.id), }, fix: fixerFunction, diff --git a/src/types/error.ts b/src/types/error.ts index 4ec936d..417887b 100644 --- a/src/types/error.ts +++ b/src/types/error.ts @@ -1,6 +1,6 @@ export enum ErrorMessage { InterfaceParentInvalidOrder = `Found {{ unsortedCount }} keys out of order.`, EnumParentInvalidOrder = `{{ notice }}Found {{ unsortedCount }} members out of order.`, - InterfaceInvalidOrder = `Expected interface keys to be in {{ requiredFirst }}{{ insensitive }}{{ natural }}{{ order }}ending order. '{{ nodeName }}' should be {{ messageShouldBeWhere }}. Run autofix to sort entire body.`, - EnumInvalidOrder = `{{ notice }}Expected enum members to be in {{ insensitive }}{{ natural }}{{ order }}ending order. '{{ nodeName }}' should be {{ messageShouldBeWhere }}. Run autofix to sort entire body.`, + InterfaceInvalidOrder = `Expected interface keys to be in {{ order }}ending {{ options }}order. '{{ nodeName }}' should be {{ messageShouldBeWhere }}. Run autofix to sort entire body.`, + EnumInvalidOrder = `{{ notice }}Expected enum members to be in {{ order }}ending {{ options }}order. '{{ nodeName }}' should be {{ messageShouldBeWhere }}. Run autofix to sort entire body.`, } diff --git a/tests/helpers/options.ts b/tests/helpers/options.ts index b0750a0..ed50f82 100644 --- a/tests/helpers/options.ts +++ b/tests/helpers/options.ts @@ -1,4 +1,4 @@ -import { AllRuleOptions, SortingOrder, SortingParamsOptions } from 'types' +import { AllRuleOptions, SortingOrder, SortingParamsOptions } from '../../src/types' export type OptionsSet = { /** @@ -10,84 +10,74 @@ export type OptionsSet = { * Option sets by test category */ export const optionsSetsWithRequiredFirst = { - ascendingOnly: [[SortingOrder.Ascending]], - ascending: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], + ascendingWithDefaults: [[], [SortingOrder.Ascending]], + ascendingSensitiveNonNaturalNotRequired: [ [ SortingOrder.Ascending, { caseSensitive: true, natural: false, requiredFirst: false }, ], ], - ascendingInsensitive: [[SortingOrder.Ascending, { caseSensitive: false }]], - ascendingNatural: [[SortingOrder.Ascending, { natural: true }]], - ascendingInsensitiveNatural: [ - [SortingOrder.Ascending, { natural: true, caseSensitive: false }], + ascendingInsensitiveNonNaturalNotRequired: [ + [ + SortingOrder.Ascending, + { caseSensitive: false, natural: false, requiredFirst: false }, + ], ], - ascendingSensitive: [ - [], - [SortingOrder.Ascending], - [SortingOrder.Ascending, { caseSensitive: true }], - [SortingOrder.Ascending, { natural: false }], - [SortingOrder.Ascending, { caseSensitive: true, natural: false }], + ascendingSensitiveNaturalNotRequired: [ [ SortingOrder.Ascending, - { caseSensitive: true, natural: false, requiredFirst: false }, + { caseSensitive: true, natural: true, requiredFirst: false }, + ], + ], + ascendingInsensitiveNaturalNotRequired: [ + [ + SortingOrder.Ascending, + { caseSensitive: false, natural: true, requiredFirst: false }, ], ], ascendingInsensitiveNaturalRequired: [ [ SortingOrder.Ascending, - { natural: true, caseSensitive: false, requiredFirst: true }, + { caseSensitive: false, natural: true, requiredFirst: true }, ], ], - ascendingInsensitiveNaturalNotRequired: [ + ascendingSensitiveNonNaturalRequired: [ [ SortingOrder.Ascending, - { natural: true, caseSensitive: false, requiredFirst: false }, + { caseSensitive: true, natural: false, requiredFirst: true }, ], ], - ascendingRequired: [[SortingOrder.Ascending, { requiredFirst: true }]], - descendingOnly: [[SortingOrder.Descending]], - descending: [ - [SortingOrder.Descending], - [SortingOrder.Descending, { caseSensitive: true }], - [SortingOrder.Descending, { natural: false }], - [SortingOrder.Descending, { caseSensitive: true, natural: false }], + descendingWithDefaults: [[SortingOrder.Descending]], + descendingInsensitiveNonNaturalNotRequired: [ [ SortingOrder.Descending, - { caseSensitive: true, natural: false, requiredFirst: false }, + { caseSensitive: false, natural: false, requiredFirst: false }, ], ], - descendingInsensitive: [[SortingOrder.Descending, { caseSensitive: false }]], - descendingInsensitiveNonNatural: [ - [SortingOrder.Descending, { caseSensitive: false }], - [SortingOrder.Descending, { caseSensitive: false, natural: false }], - ], - descendingNatural: [[SortingOrder.Descending, { natural: true }]], - descendingInsensitiveNatural: [ - [SortingOrder.Descending, { natural: true, caseSensitive: false }], + descendingSensitiveNaturalNotRequired: [ + [ + SortingOrder.Descending, + { caseSensitive: true, natural: true, requiredFirst: false }, + ], ], - descendingSensitiveNatural: [ - [SortingOrder.Descending, { natural: true }], - [SortingOrder.Descending, { natural: true, caseSensitive: true }], + descendingInsensitiveNaturalNotRequired: [ + [ + SortingOrder.Descending, + { caseSensitive: false, natural: true, requiredFirst: false }, + ], ], descendingInsensitiveNaturalRequired: [ [ SortingOrder.Descending, - { natural: true, caseSensitive: false, requiredFirst: true }, + { caseSensitive: false, natural: true, requiredFirst: true }, ], ], - descendingInsensitiveNaturalNotRequired: [ + descendingSensitiveNonNaturalRequired: [ [ SortingOrder.Descending, - { natural: true, caseSensitive: false, requiredFirst: false }, + { caseSensitive: false, natural: true, requiredFirst: true }, ], ], - descendingRequired: [[SortingOrder.Descending, { requiredFirst: true }]], noOptions: [[]], } diff --git a/tests/helpers/strings.ts b/tests/helpers/strings.ts index 4befe8b..2bfd158 100644 --- a/tests/helpers/strings.ts +++ b/tests/helpers/strings.ts @@ -1,26 +1,23 @@ import { OptionsSetsKey } from './options' +// Check src/report.ts for option string ordering +// Only options set differently from default are printed export const orderStrings: Record = { - ascending: 'ascending', - ascendingInsensitive: 'insensitive ascending', - ascendingNatural: 'natural ascending', - ascendingInsensitiveNatural: 'insensitive natural ascending', - descendingOnly: 'descending', - descendingInsensitive: 'insensitive descending', - descendingNatural: 'natural descending', - descendingInsensitiveNatural: 'insensitive natural descending', - noOptions: '', - ascendingOnly: 'ascending', - ascendingSensitive: 'ascending', - ascendingInsensitiveNaturalRequired: 'required first insensitive natural ascending', - ascendingInsensitiveNaturalNotRequired: 'insensitive natural ascending', - ascendingRequired: '', - descending: 'descending', - descendingInsensitiveNonNatural: '', - descendingSensitiveNatural: '', - descendingInsensitiveNaturalRequired: 'required first insensitive natural descending', - descendingInsensitiveNaturalNotRequired: 'insensitive natural descending', - descendingRequired: '', + ascendingInsensitiveNaturalNotRequired: 'ascending insensitive, natural', + ascendingInsensitiveNaturalRequired: 'ascending required-first, insensitive, natural', + ascendingInsensitiveNonNaturalNotRequired: 'ascending insensitive', + ascendingSensitiveNaturalNotRequired: 'ascending natural', + ascendingSensitiveNonNaturalNotRequired: 'ascending', + ascendingSensitiveNonNaturalRequired: 'ascending required-first', + ascendingWithDefaults: 'ascending', + noOptions: 'ascending', + + descendingInsensitiveNaturalNotRequired: 'descending insensitive, natural', + descendingInsensitiveNaturalRequired: 'descending required-first, insensitive, natural', + descendingInsensitiveNonNaturalNotRequired: 'descending insensitive', + descendingSensitiveNaturalNotRequired: 'descending natural', + descendingSensitiveNonNaturalRequired: 'descending required-first', + descendingWithDefaults: 'descending', } export enum CaseCategory { diff --git a/tests/rules/enum/enum-big.spec.ts b/tests/rules/enum/enum-big.spec.ts index d6ab24c..4cf20b1 100644 --- a/tests/rules/enum/enum-big.spec.ts +++ b/tests/rules/enum/enum-big.spec.ts @@ -17,11 +17,11 @@ const invalidBigTestCode = fs .toString('utf-8') const valid: PreValidTestCaseObject = { - ascending: [validBigTestCode], + ascendingWithDefaults: [validBigTestCode], } const invalid: PreInvalidTestCaseObject = { - ascending: [ + ascendingWithDefaults: [ { code: invalidBigTestCode, output: validBigTestCode, diff --git a/tests/rules/enum/enum.spec.ts b/tests/rules/enum/enum.spec.ts index 22e721b..679d879 100644 --- a/tests/rules/enum/enum.spec.ts +++ b/tests/rules/enum/enum.spec.ts @@ -6,10 +6,7 @@ import { typescriptConfig } from '../../helpers/configs' import { CaseCategory } from '../../helpers/strings' const valid: PreValidTestCaseObject = { - /** - * ascending (default) - */ - ascending: [ + ascendingWithDefaults: [ 'enum U {a="b", }', 'enum U {a="b", b="c"}', 'enum U {_="a", a="b", b="c"}', @@ -29,10 +26,27 @@ const valid: PreValidTestCaseObject = { */ '{a="T", ["aa"]="T", b="T", c="T"}', ], - /** - * ascending, natureal, case sensitive - */ - ascendingNatural: [ + ascendingSensitiveNonNaturalNotRequired: [ + 'enum U {a="b", }', + 'enum U {a="b", b="c"}', + 'enum U {_="a", a="b", b="c"}', + 'enum U {a="a", b="b", c="c"}', + 'enum U {a="a", b="b", b_="c"}', + 'enum U {C="a", b_="b", c="c"}', + 'enum U {$="a", A="b", _="c", a="d"}', + "enum U {'#'='a', 'Z'='b', À='c', è='d'}", + 'enum U {_="T", a="T", b="T"}', + 'enum U {a="T", b="T", c="T"}', + 'enum U {a="T", b="T", b_="T"}', + 'enum U {C="T", b_="T", c="T"}', + 'enum U {$="T", A="T", _="T", a="T"}', + "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + /** + * computed + */ + '{a="T", ["aa"]="T", b="T", c="T"}', + ], + ascendingSensitiveNaturalNotRequired: [ 'enum U {_="T", a="T", b="T"}', 'enum U {a="T", b="T", c="T"}', 'enum U {a="T", b="T", b_="T"}', @@ -40,10 +54,7 @@ const valid: PreValidTestCaseObject = { 'enum U {$="T", _="T", A="T", a="T"}', "enum U {'#'='T', 'Z'='T', À='T', è='T'}", ], - /** - * ascending, natural, insensitive - */ - ascendingInsensitiveNatural: [ + ascendingInsensitiveNaturalNotRequired: [ 'enum U {_="T", a="T", b="T"}', 'enum U {a="T", b="T", c="T"}', 'enum U {a="T", b="T", b_="T"}', @@ -52,21 +63,24 @@ const valid: PreValidTestCaseObject = { 'enum U {$="T", _="T", A="T", a="T"}', "enum U {'#'='T', 'Z'='T', À='T', è='T'}", ], - /** - * descending - */ - descendingOnly: [ + descendingWithDefaults: [ 'enum U {b="T", a="T", _="T"}', 'enum U {c="T", b="T", a="T"}', 'enum U {b_="T", b="T", a="T"}', 'enum U {c="T", b_="T", C="T"}', 'enum U {a="T", _="T", A="T", $="T"}', "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + 'enum U {c, b, a}', + 'enum U {c=a(), b, a}', + 'enum U {c=0, b, a}', + 'enum U {c=3, b, a}', + 'enum U {c=1<<1, b, a}', + 'enum U {c=M|N, b, a}', + 'enum U {c="123".length, b, a}', + 'enum U {c=0, b="b", a}', + 'enum U {B=1, A=B*2}', ], - /** - * descending, insensitive - */ - descendingInsensitive: [ + descendingInsensitiveNonNaturalNotRequired: [ 'enum U {b="T", a="T", _="T"}', 'enum U {c="T", b="T", a="T"}', 'enum U {b_="T", b="T", a="T"}', @@ -75,10 +89,7 @@ const valid: PreValidTestCaseObject = { 'enum U {a="T", A="T", _="T", $="T"}', "enum U {è='T', À='T', 'Z'='T', '#'='T'}", ], - /** - * descending, natural - */ - descendingNatural: [ + descendingSensitiveNaturalNotRequired: [ 'enum U {b="T", a="T", _="T"}', 'enum U {c="T", b="T", a="T"}', 'enum U {b_="T", b="T", a="T"}', @@ -86,10 +97,7 @@ const valid: PreValidTestCaseObject = { 'enum U {a="T", A="T", _="T", $="T"}', "enum U {è='T', À='T', 'Z'='T', '#'='T'}", ], - /** - * descending, natural, insensitive - */ - descendingInsensitiveNatural: [ + descendingInsensitiveNaturalNotRequired: [ 'enum U {b="T", a="T", _="T"}', 'enum U {c="T", b="T", a="T"}', 'enum U {b_="T", b="T", a="T"}', @@ -98,24 +106,10 @@ const valid: PreValidTestCaseObject = { 'enum U {a="T", A="T", _="T", $="T"}', "enum U {è='T', À='T', 'Z'='T', '#'='T'}", ], - descending: [ - 'enum U {c, b, a}', - 'enum U {c=a(), b, a}', - 'enum U {c=0, b, a}', - 'enum U {c=3, b, a}', - 'enum U {c=1<<1, b, a}', - 'enum U {c=M|N, b, a}', - 'enum U {c="123".length, b, a}', - 'enum U {c=0, b="b", a}', - 'const enum U {B=1, A=B*2}', - ], } const invalid: PreInvalidTestCaseObject = { - // /** - // * ascending (default case sensitive) - // */ - ascending: [ + ascendingWithDefaults: [ { code: 'enum U {c="123".length, b, a}', output: 'enum U {a, b, c="123".length}', @@ -226,10 +220,7 @@ const invalid: PreInvalidTestCaseObject = { ], }, ], - // /** - // * ascending, insensitive - // */ - ascendingInsensitive: [ + ascendingInsensitiveNonNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', @@ -265,10 +256,7 @@ const invalid: PreInvalidTestCaseObject = { ], }, ], - // /** - // * ascending, natural - // */ - ascendingNatural: [ + ascendingSensitiveNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', @@ -309,10 +297,7 @@ const invalid: PreInvalidTestCaseObject = { ], }, ], - // /** - // * ascending, natural, insensitive - // */ - ascendingInsensitiveNatural: [ + ascendingInsensitiveNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', @@ -348,10 +333,7 @@ const invalid: PreInvalidTestCaseObject = { ], }, ], - // /** - // * descending (case sensitive) - // */ - descendingOnly: [ + descendingWithDefaults: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {b="T", a="T", _="T"}', @@ -386,10 +368,7 @@ const invalid: PreInvalidTestCaseObject = { errors: [['#'], ['è', 'À']], }, ], - // /** - // * descending, insensitive - // */ - descendingInsensitive: [ + descendingInsensitiveNonNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {b="T", a="T", _="T"}', @@ -421,10 +400,7 @@ const invalid: PreInvalidTestCaseObject = { errors: [['#'], ['è', 'À']], }, ], - // /** - // * descending, natural - // */ - descendingNatural: [ + descendingSensitiveNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {b="T", a="T", _="T"}', @@ -459,10 +435,7 @@ const invalid: PreInvalidTestCaseObject = { errors: [['#'], ['è', 'À']], }, ], - /** - * descending, natural, insensitive - */ - descendingInsensitiveNatural: [ + descendingInsensitiveNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {b="T", a="T", _="T"}', diff --git a/tests/rules/enum/string-enum.spec.ts b/tests/rules/enum/string-enum.spec.ts index 3b33dd4..52a82c7 100644 --- a/tests/rules/enum/string-enum.spec.ts +++ b/tests/rules/enum/string-enum.spec.ts @@ -20,10 +20,7 @@ const valid: PreValidTestCaseObject = { 'enum U {c=0, b="b", a}', 'const enum U {A=1, B=A*2}', ], - /** - * ascending (default) - */ - ascending: [ + ascendingWithDefaults: [ 'enum U {a="b", }', 'enum U {a="b", b="c"}', 'enum U {_="a", a="b", b="c"}', @@ -43,10 +40,27 @@ const valid: PreValidTestCaseObject = { */ '{a="T", ["aa"]="T", b="T", c="T"}', ], - /** - * ascending, natureal, case sensitive - */ - ascendingNatural: [ + ascendingSensitiveNonNaturalNotRequired: [ + 'enum U {a="b", }', + 'enum U {a="b", b="c"}', + 'enum U {_="a", a="b", b="c"}', + 'enum U {a="a", b="b", c="c"}', + 'enum U {a="a", b="b", b_="c"}', + 'enum U {C="a", b_="b", c="c"}', + 'enum U {$="a", A="b", _="c", a="d"}', + "enum U {'#'='a', 'Z'='b', À='c', è='d'}", + 'enum U {_="T", a="T", b="T"}', + 'enum U {a="T", b="T", c="T"}', + 'enum U {a="T", b="T", b_="T"}', + 'enum U {C="T", b_="T", c="T"}', + 'enum U {$="T", A="T", _="T", a="T"}', + "enum U {'#'='T', 'Z'='T', À='T', è='T'}", + /** + * computed + */ + '{a="T", ["aa"]="T", b="T", c="T"}', + ], + ascendingSensitiveNaturalNotRequired: [ 'enum U {_="T", a="T", b="T"}', 'enum U {a="T", b="T", c="T"}', 'enum U {a="T", b="T", b_="T"}', @@ -54,10 +68,7 @@ const valid: PreValidTestCaseObject = { 'enum U {$="T", _="T", A="T", a="T"}', "enum U {'#'='T', 'Z'='T', À='T', è='T'}", ], - /** - * ascending, natural, insensitive - */ - ascendingInsensitiveNatural: [ + ascendingInsensitiveNaturalNotRequired: [ 'enum U {_="T", a="T", b="T"}', 'enum U {a="T", b="T", c="T"}', 'enum U {a="T", b="T", b_="T"}', @@ -66,10 +77,7 @@ const valid: PreValidTestCaseObject = { 'enum U {$="T", _="T", A="T", a="T"}', "enum U {'#'='T', 'Z'='T', À='T', è='T'}", ], - /** - * descending - */ - descendingOnly: [ + descendingWithDefaults: [ 'enum U {b="T", a="T", _="T"}', 'enum U {c="T", b="T", a="T"}', 'enum U {b_="T", b="T", a="T"}', @@ -77,10 +85,7 @@ const valid: PreValidTestCaseObject = { 'enum U {a="T", _="T", A="T", $="T"}', "enum U {è='T', À='T', 'Z'='T', '#'='T'}", ], - /** - * descending, insensitive - */ - descendingInsensitive: [ + descendingInsensitiveNonNaturalNotRequired: [ 'enum U {b="T", a="T", _="T"}', 'enum U {c="T", b="T", a="T"}', 'enum U {b_="T", b="T", a="T"}', @@ -89,47 +94,27 @@ const valid: PreValidTestCaseObject = { 'enum U {a="T", A="T", _="T", $="T"}', "enum U {è='T', À='T', 'Z'='T', '#'='T'}", ], - /** - * descending, natural - */ - descendingNatural: [ + descendingInsensitiveNaturalNotRequired: [ 'enum U {b="T", a="T", _="T"}', 'enum U {c="T", b="T", a="T"}', 'enum U {b_="T", b="T", a="T"}', - 'enum U {c="T", b_="T", C="T"}', 'enum U {a="T", A="T", _="T", $="T"}', "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + 'enum U {c="T", C="T", b_="T"}', + 'enum U {C="T", c="T", b_="T"}', ], - /** - * descending, natural, insensitive - */ - descendingInsensitiveNatural: [ + descendingSensitiveNaturalNotRequired: [ 'enum U {b="T", a="T", _="T"}', 'enum U {c="T", b="T", a="T"}', 'enum U {b_="T", b="T", a="T"}', - 'enum U {c="T", C="T", b_="T"}', - 'enum U {C="T", c="T", b_="T"}', + 'enum U {c="T", b_="T", C="T"}', 'enum U {a="T", A="T", _="T", $="T"}', "enum U {è='T', À='T', 'Z'='T', '#'='T'}", ], - descending: [ - 'enum U {c, b, a}', - 'enum U {c=a(), b, a}', - 'enum U {c=0, b, a}', - 'enum U {c=3, b, a}', - 'enum U {c=1<<1, b, a}', - 'enum U {c=M|N, b, a}', - 'enum U {c="123".length, b, a}', - 'enum U {c=0, b="b", a}', - 'const enum U {B=1, A=B*2}', - ], } const invalid: PreInvalidTestCaseObject = { - // /** - // * ascending (default case sensitive) - // */ - ascending: [ + ascendingWithDefaults: [ { code: 'enum U {b="c", a="a"}', output: 'enum U {a="a", b="c"}', @@ -204,10 +189,7 @@ const invalid: PreInvalidTestCaseObject = { errors: 3, }, ], - // /** - // * ascending, insensitive - // */ - ascendingInsensitive: [ + ascendingInsensitiveNonNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', @@ -234,10 +216,7 @@ const invalid: PreInvalidTestCaseObject = { errors: 3, }, ], - // /** - // * ascending, natural - // */ - ascendingNatural: [ + ascendingSensitiveNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', @@ -269,10 +248,7 @@ const invalid: PreInvalidTestCaseObject = { errors: 3, }, ], - // /** - // * ascending, natural, insensitive - // */ - ascendingInsensitiveNatural: [ + ascendingInsensitiveNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', @@ -299,10 +275,7 @@ const invalid: PreInvalidTestCaseObject = { errors: 3, }, ], - // /** - // * descending (case sensitive) - // */ - descendingOnly: [ + descendingWithDefaults: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {b="T", a="T", _="T"}', @@ -334,10 +307,7 @@ const invalid: PreInvalidTestCaseObject = { errors: 3, }, ], - // /** - // * descending, insensitive - // */ - descendingInsensitive: [ + descendingInsensitiveNonNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {b="T", a="T", _="T"}', @@ -369,10 +339,7 @@ const invalid: PreInvalidTestCaseObject = { errors: 3, }, ], - // /** - // * descending, natural - // */ - descendingNatural: [ + descendingSensitiveNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {b="T", a="T", _="T"}', @@ -404,10 +371,7 @@ const invalid: PreInvalidTestCaseObject = { errors: 3, }, ], - /** - * descending, natural, insensitive - */ - descendingInsensitiveNatural: [ + descendingInsensitiveNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {b="T", a="T", _="T"}', diff --git a/tests/rules/interface/interface.spec.ts b/tests/rules/interface/interface.spec.ts index f579eba..9c5a7b7 100644 --- a/tests/rules/interface/interface.spec.ts +++ b/tests/rules/interface/interface.spec.ts @@ -1,21 +1,15 @@ -import { Rule, RuleTester } from 'eslint' +import { Rule } from 'eslint' import { name, rule } from '../../../src/rules/interface' -import { - PreInvalidTestCaseObject, - PreValidTestCaseObject, - processInvalidTestCase, - processValidTestCase, - runCases, -} from '../../helpers/cases' +import { PreInvalidTestCaseObject, PreValidTestCaseObject, runCases } from '../../helpers/cases' import { typescriptConfig } from '../../helpers/configs' import { CaseCategory } from '../../helpers/strings' const valid: PreValidTestCaseObject = { - /** - * ascending, caseSensitive (default) - */ - ascendingSensitive: [ + ascendingWithDefaults: [ + `interface U { [nkey: number]: T; [skey: string]: T; $: T; A: T; _: T; a: T; }`, + ], + ascendingSensitiveNonNaturalNotRequired: [ 'interface U {a:T;}', 'interface U {a:T; b:T;}', 'interface U {_:T; a:T; b:T;}', @@ -37,10 +31,7 @@ const valid: PreValidTestCaseObject = { 'type U = {a:T; b:{x:T; y:T;}; c:T;}', 'type U = {a:T; b:{x:T; y:T; z:{i:T; j:T;};}; c:T;}', ], - /** - * ascending, insensitive - */ - ascendingInsensitive: [ + ascendingInsensitiveNonNaturalNotRequired: [ 'interface U {_:T;}', 'interface U {_:T; a:T; b:T;}', 'interface U {a:T; b:T; c:T;}', @@ -50,11 +41,8 @@ const valid: PreValidTestCaseObject = { 'interface U {$:T; _:T; A:T; a:T;}', "interface U {1:T; '11':T; 2:T; A:T;}", ], - ascendingNatural: ["interface U {'#':T; 'Z':T; À:T; è:T;}"], - /** - * ascending, natural, insensitive - */ - ascendingInsensitiveNatural: [ + ascendingSensitiveNaturalNotRequired: ["interface U {'#':T; 'Z':T; À:T; è:T;}"], + ascendingInsensitiveNaturalNotRequired: [ 'interface U {_:T; a:T; b:T;}', 'interface U {a:T; b:T; c:T;}', 'interface U {a:T; b:T; b_:T;}', @@ -63,10 +51,16 @@ const valid: PreValidTestCaseObject = { 'interface U {$:T; _:T; A:T; a:T;}', "interface U {1:T; 2:T; '11':T; A:T;}", "interface U {'#':T; 'Z':T; À:T; è:T;}", + /* optionals */ + 'interface U {_:T; a?:T; b:T;}', + 'interface U {a:T; b?:T; c:T;}', + 'interface U {a?:T; b:T; b_:T;}', + 'interface U {b_?:T; C:T; c:T;}', + 'interface U {b_?:T; c:T; C:T;}', + 'interface U {$:T; _:T; A?:T; a?:T;}', + "interface U {1:T; 2?:T; '11':T; A:T;}", + "interface U {'#'?:T; 'Z':T; À:T; è:T;}", ], - /** - * ascending, natural, insensitive, required first - */ ascendingInsensitiveNaturalRequired: [ 'interface U {_:T; b:T; a?:T;}', 'interface U {a:T; c:T; b?:T;}', @@ -77,10 +71,7 @@ const valid: PreValidTestCaseObject = { "interface U {1:T; '11':T; A:T; 2?:T;}", "interface U {'Z':T; À:T; è:T; '#'?:T;}", ], - /** - * ascending, required first - */ - ascendingRequired: [ + ascendingSensitiveNonNaturalRequired: [ 'interface U {_:T; b:T; a?:T;}', 'interface U {a:T; c:T; b?:T;}', 'interface U {b:T; b_:T; a?:T;}', @@ -90,23 +81,7 @@ const valid: PreValidTestCaseObject = { "interface U {10:T; '11':T; 1?:T; 12?:T; 2?:T;}", "interface U {'Z':T; À:T; è:T; '#'?:T;}", ], - /** - * ascending, natural, insensitive, not-required first - */ - ascendingInsensitiveNaturalNotRequired: [ - 'interface U {_:T; a?:T; b:T;}', - 'interface U {a:T; b?:T; c:T;}', - 'interface U {a?:T; b:T; b_:T;}', - 'interface U {b_?:T; C:T; c:T;}', - 'interface U {b_?:T; c:T; C:T;}', - 'interface U {$:T; _:T; A?:T; a?:T;}', - "interface U {1:T; 2?:T; '11':T; A:T;}", - "interface U {'#'?:T; 'Z':T; À:T; è:T;}", - ], - /** - * descending - */ - descending: [ + descendingWithDefaults: [ 'interface U {b:T; a:T; _:T;}', 'interface U {c:T; b:T; a:T;}', 'interface U {b_:T; b:T; a:T;}', @@ -114,11 +89,9 @@ const valid: PreValidTestCaseObject = { 'interface U {a:T; _:T; A:T; $:T;}', "interface U {A:T; 2:T; '11':T; 1:T;}", "interface U {è:T; À:T; 'Z':T; '#':T;}", + `interface U { a: T; _: T; A: T; $: T; [skey: string]: T; [nkey: number]: T; }`, ], - /** - * descending, insensitive, non-natural - */ - descendingInsensitiveNonNatural: [ + descendingInsensitiveNonNaturalNotRequired: [ 'interface U {b:T; a:T; _:T;}', 'interface U {c:T; b:T; a:T;}', 'interface U {b_:T; b:T; a:T;}', @@ -128,10 +101,7 @@ const valid: PreValidTestCaseObject = { "interface U {A:T; 2:T; '11':T; 1:T;}", "interface U {è:T; À:T; 'Z':T; '#':T;}", ], - /** - * descending, case-sensitive, natural - */ - descendingSensitiveNatural: [ + descendingSensitiveNaturalNotRequired: [ 'interface U {b:T; a:T; _:T;}', 'interface U {_:T;}', 'interface U {c:T; b:T; a:T;}', @@ -141,10 +111,7 @@ const valid: PreValidTestCaseObject = { "interface U {A:T; '11':T; 2:T; 1:T;}", "interface U {è:T; À:T; 'Z':T; '#':T;}", ], - /** - * descending, natural, insensitive - */ - descendingInsensitiveNatural: [ + descendingInsensitiveNaturalNotRequired: [ 'interface U {b:T; a:T; _:T;}', 'interface U {c:T; b:T; a:T;}', 'interface U {b_:T; b:T; a:T;}', @@ -153,10 +120,16 @@ const valid: PreValidTestCaseObject = { 'interface U {a:T; A:T; _:T; $:T;}', "interface U {A:T; '11':T; 2:T; 1:T;}", "interface U {è:T; À:T; 'Z':T; '#':T;}", + /* optionals */ + 'interface U {b:T; a?:T; _:T;}', + 'interface U {c:T; b?:T; a:T;}', + 'interface U {b_:T; b:T; a?:T;}', + 'interface U {c:T; C:T; b_?:T;}', + 'interface U {C:T; c:T; b_?:T;}', + 'interface U {a?:T; A?:T; _:T; $:T;}', + "interface U {A:T; '11':T; 2?:T; 1:T;}", + "interface U {è:T; À:T; 'Z':T; '#'?:T;}", ], - /** - * descending, natural, insensitive, required first - */ descendingInsensitiveNaturalRequired: [ 'interface U {b:T; _:T; a?:T;}', 'interface U {c:T; a:T; b?:T;}', @@ -167,48 +140,20 @@ const valid: PreValidTestCaseObject = { "interface U { A:T; '11':T; 1:T; 2?:T;}", "interface U {è:T; 'Z':T; À?:T; '#'?:T;}", ], - /** - * descending, required first - */ - descendingRequired: [ + descendingSensitiveNonNaturalRequired: [ 'interface U {b:T; _:T; a?:T;}', 'interface U {c:T; a:T; b?:T;}', 'interface U {b_:T; b:T; a?:T;}', 'interface U {c:T; C:T; b_?:T;}', - 'interface U {9:T; 11:T; 1:T; 111?:T;}', + 'interface U {11:T; 9:T; 1:T; 111?:T;}', 'interface U {_:T; $:T; a?:T; A?:T;}', - "interface U {'11':T; 10:T; 2?:T; 12?:T; 1?:T;}", + "interface U {'11':T; 10:T; 12?:T; 2?:T; 1?:T;}", "interface U {è:T; À:T; 'Z':T; '#'?:T;}", ], - /** - * descending, natural, insensitive, not-required first - */ - descendingInsensitiveNaturalNotRequired: [ - 'interface U {b:T; a?:T; _:T;}', - 'interface U {c:T; b?:T; a:T;}', - 'interface U {b_:T; b:T; a?:T;}', - 'interface U {c:T; C:T; b_?:T;}', - 'interface U {C:T; c:T; b_?:T;}', - 'interface U {a?:T; A?:T; _:T; $:T;}', - "interface U {A:T; '11':T; 2?:T; 1:T;}", - "interface U {è:T; À:T; 'Z':T; '#'?:T;}", - ], - /** - * index signatures - */ - ascendingOnly: [ - `interface U { [nkey: number]: T; [skey: string]: T; $: T; A: T; _: T; a: T; }`, - ], - descendingOnly: [ - `interface U { a: T; _: T; A: T; $: T; [skey: string]: T; [nkey: number]: T; }`, - ], } const invalid: PreInvalidTestCaseObject = { - /** - * index signatures - */ - ascendingOnly: [ + ascendingWithDefaults: [ { code: 'interface U { A: T; [skey: string]: T; _: T; }', output: 'interface U { [skey: string]: T; A: T; _: T; }', @@ -218,10 +163,7 @@ const invalid: PreInvalidTestCaseObject = { ], }, ], - /** - * ascending sensitive (default) - */ - ascendingSensitive: [ + ascendingSensitiveNonNaturalNotRequired: [ { code: 'interface U {b:T; a:T;}', output: 'interface U {a:T; b:T;}', @@ -315,10 +257,7 @@ const invalid: PreInvalidTestCaseObject = { omitInferredErrorCount: true, }, ], - /** - * ascending, insensitive - */ - ascendingInsensitive: [ + ascendingInsensitiveNonNaturalNotRequired: [ { code: 'interface U {a:T; _:T; b:T;}', output: 'interface U {_:T; a:T; b:T;}', @@ -359,10 +298,7 @@ const invalid: PreInvalidTestCaseObject = { ], }, ], - // /** - // * ascending, natural - // */ - ascendingNatural: [ + ascendingSensitiveNaturalNotRequired: [ { code: 'interface U {a:T; _:T; b:T;}', output: 'interface U {_:T; a:T; b:T;}', @@ -408,10 +344,7 @@ const invalid: PreInvalidTestCaseObject = { ], }, ], - /** - * ascending, natural, insensitive - */ - ascendingInsensitiveNatural: [ + ascendingInsensitiveNaturalNotRequired: [ { code: 'interface U {a:T; _:T; b:T;}', output: 'interface U {_:T; a:T; b:T;}', @@ -454,54 +387,7 @@ const invalid: PreInvalidTestCaseObject = { ['Z', 'À'], ], }, - ], - /** - * ascending, natural, insensitive, required first - */ - ascendingInsensitiveNaturalRequired: [ - { - code: 'interface U {_:T; a?:T; b:T;}', - output: 'interface U {_:T; b:T; a?:T;}', - errors: [['a'], ['b', 'a']], - }, - { - code: 'interface U {a:T; b?:T; c:T;}', - output: 'interface U {a:T; c:T; b?:T;}', - errors: [['b'], ['c', 'b']], - }, - { - code: 'interface U {b:T; a?:T; b_:T;}', - output: 'interface U {b:T; b_:T; a?:T;}', - errors: [['a'], ['b_', 'a']], - }, - { - code: 'interface U {C:T; b_?:T; c:T;}', - output: 'interface U {C:T; c:T; b_?:T;}', - errors: [['b_'], ['c', 'b_']], - }, - { - code: 'interface U {$:T; A?:T; _:T; a?:T;}', - output: 'interface U {$:T; _:T; A?:T; a?:T;}', - errors: [ - ['A', 'a'], - ['_', 'A'], - ], - }, - { - code: "interface U {1:T; '11':T; 2?:T; A:T;}", - output: "interface U {1:T; '11':T; A:T; 2?:T;}", - errors: [['2'], ['A', '2']], - }, - { - code: "interface U {'Z':T; À:T; '#'?:T; è:T;}", - output: "interface U {'Z':T; À:T; è:T; '#'?:T;}", - errors: [['#'], ['è', '#']], - }, - ], - /** - * ascending, natural, insensitive, not-required first - */ - ascendingInsensitiveNaturalNotRequired: [ + { code: 'interface U {_:T; b:T; a?:T;}', output: 'interface U {_:T; a?:T; b:T;}', @@ -556,10 +442,47 @@ const invalid: PreInvalidTestCaseObject = { ], }, ], - /** - * descending - */ - descendingOnly: [ + ascendingInsensitiveNaturalRequired: [ + { + code: 'interface U {_:T; a?:T; b:T;}', + output: 'interface U {_:T; b:T; a?:T;}', + errors: [['a'], ['b', 'a']], + }, + { + code: 'interface U {a:T; b?:T; c:T;}', + output: 'interface U {a:T; c:T; b?:T;}', + errors: [['b'], ['c', 'b']], + }, + { + code: 'interface U {b:T; a?:T; b_:T;}', + output: 'interface U {b:T; b_:T; a?:T;}', + errors: [['a'], ['b_', 'a']], + }, + { + code: 'interface U {C:T; b_?:T; c:T;}', + output: 'interface U {C:T; c:T; b_?:T;}', + errors: [['b_'], ['c', 'b_']], + }, + { + code: 'interface U {$:T; A?:T; _:T; a?:T;}', + output: 'interface U {$:T; _:T; A?:T; a?:T;}', + errors: [ + ['A', 'a'], + ['_', 'A'], + ], + }, + { + code: "interface U {1:T; '11':T; 2?:T; A:T;}", + output: "interface U {1:T; '11':T; A:T; 2?:T;}", + errors: [['2'], ['A', '2']], + }, + { + code: "interface U {'Z':T; À:T; '#'?:T; è:T;}", + output: "interface U {'Z':T; À:T; è:T; '#'?:T;}", + errors: [['#'], ['è', '#']], + }, + ], + descendingWithDefaults: [ { code: 'interface U {a:T; _:T; b:T;}', output: 'interface U {b:T; a:T; _:T;}', @@ -604,10 +527,7 @@ const invalid: PreInvalidTestCaseObject = { errors: [['[index: skey]'], ['A', '[index: skey]']], }, ], - /** - * descending, insensitive - */ - descendingInsensitive: [ + descendingInsensitiveNonNaturalNotRequired: [ { code: 'interface U {a:T; _:T; b:T;}', output: 'interface U {b:T; a:T; _:T;}', @@ -644,10 +564,7 @@ const invalid: PreInvalidTestCaseObject = { errors: [['#'], ['è', 'À']], }, ], - /** - * descending, natural - */ - descendingNatural: [ + descendingSensitiveNaturalNotRequired: [ { code: 'interface U {a:T; _:T; b:T;}', output: 'interface U {b:T; a:T; _:T;}', @@ -687,10 +604,7 @@ const invalid: PreInvalidTestCaseObject = { errors: [['#'], ['è', 'À']], }, ], - // /** - // * descending, natural, insensitive - // */ - descendingInsensitiveNatural: [ + descendingInsensitiveNaturalNotRequired: [ { code: 'interface U {a:T; _:T; b:T;}', output: 'interface U {b:T; a:T; _:T;}', @@ -726,20 +640,19 @@ const invalid: PreInvalidTestCaseObject = { output: "interface U {è:T; À:T; 'Z':T; '#':T;}", errors: [['#'], ['è', 'À']], }, - ], - /** - * descending, natural, insensitive, required first - */ - descendingInsensitiveNaturalRequired: [ + /* optionals */ { code: 'interface U {_:T; a?:T; b:T;}', - output: 'interface U {b:T; _:T; a?:T;}', - errors: [['a'], ['b', '_']], + output: 'interface U {b:T; a?:T; _:T;}', + errors: [['_'], ['b', 'a']], }, { - code: 'interface U {b:T; a?:T; _:T;}', - output: 'interface U {b:T; _:T; a?:T;}', - errors: [['a'], ['_', 'a']], + code: 'interface U {a?:T; b:T; _:T;}', + output: 'interface U {b:T; a?:T; _:T;}', + errors: [ + ['a', '_'], + ['b', 'a'], + ], }, { code: 'interface U {b:T; b_:T; a?:T;}', @@ -761,44 +674,35 @@ const invalid: PreInvalidTestCaseObject = { }, { code: 'interface U {_:T; a?:T; $:T; A?:T;}', - output: 'interface U {_:T; $:T; a?:T; A?:T;}', - errors: [ - ['a', 'A'], - ['$', 'a'], - ], + output: 'interface U {a?:T; A?:T; _:T; $:T;}', + errors: [['_', '$'], ['a', 'A'], ['$'], ['A', '_']], }, { code: "interface U {2?:T; A:T; 1:T; '11':T;}", - output: "interface U {A:T; '11':T; 1:T; 2?:T;}", - errors: [['2'], ['A', '11'], ['11', '1']], + output: "interface U {A:T; '11':T; 2?:T; 1:T;}", + errors: [['2', '1'], ['A', '11'], ['1'], ['11', '2']], }, { code: "interface U {è:T; 'Z':T; '#'?:T; À?:T;}", - output: "interface U {è:T; 'Z':T; À?:T; '#'?:T;}", - errors: [['#'], ['À', '#']], + output: "interface U {è:T; À?:T; 'Z':T; '#'?:T;}", + errors: [['#'], ['À', 'Z']], }, { code: "interface U {À?:T; 'Z':T; '#'?:T; è:T;}", - output: "interface U {è:T; 'Z':T; À?:T; '#'?:T;}", - errors: [['À', '#'], ['#'], ['è', 'Z']], + output: "interface U {è:T; À?:T; 'Z':T; '#'?:T;}", + errors: [['#'], ['è', 'À']], }, ], - /** - * descending, natural, insensitive, not-required first - */ - descendingInsensitiveNaturalNotRequired: [ + descendingInsensitiveNaturalRequired: [ { code: 'interface U {_:T; a?:T; b:T;}', - output: 'interface U {b:T; a?:T; _:T;}', - errors: [['_'], ['b', 'a']], + output: 'interface U {b:T; _:T; a?:T;}', + errors: [['a'], ['b', '_']], }, { - code: 'interface U {a?:T; b:T; _:T;}', - output: 'interface U {b:T; a?:T; _:T;}', - errors: [ - ['a', '_'], - ['b', 'a'], - ], + code: 'interface U {b:T; a?:T; _:T;}', + output: 'interface U {b:T; _:T; a?:T;}', + errors: [['a'], ['_', 'a']], }, { code: 'interface U {b:T; b_:T; a?:T;}', @@ -820,36 +724,30 @@ const invalid: PreInvalidTestCaseObject = { }, { code: 'interface U {_:T; a?:T; $:T; A?:T;}', - output: 'interface U {a?:T; A?:T; _:T; $:T;}', - errors: [['_', '$'], ['a', 'A'], ['$'], ['A', '_']], + output: 'interface U {_:T; $:T; a?:T; A?:T;}', + errors: [ + ['a', 'A'], + ['$', 'a'], + ], }, { code: "interface U {2?:T; A:T; 1:T; '11':T;}", - output: "interface U {A:T; '11':T; 2?:T; 1:T;}", - errors: [['2', '1'], ['A', '11'], ['1'], ['11', '2']], + output: "interface U {A:T; '11':T; 1:T; 2?:T;}", + errors: [['2'], ['A', '11'], ['11', '1']], }, { code: "interface U {è:T; 'Z':T; '#'?:T; À?:T;}", - output: "interface U {è:T; À?:T; 'Z':T; '#'?:T;}", - errors: [['#'], ['À', 'Z']], + output: "interface U {è:T; 'Z':T; À?:T; '#'?:T;}", + errors: [['#'], ['À', '#']], }, { code: "interface U {À?:T; 'Z':T; '#'?:T; è:T;}", - output: "interface U {è:T; À?:T; 'Z':T; '#'?:T;}", - errors: [['#'], ['è', 'À']], + output: "interface U {è:T; 'Z':T; À?:T; '#'?:T;}", + errors: [['À', '#'], ['#'], ['è', 'Z']], }, ], } -describe('TypeScript', () => { - const ruleTester = new RuleTester(typescriptConfig) - - ruleTester.run(name, rule as unknown as Rule.RuleModule, { - valid: processValidTestCase(valid, true), - invalid: processInvalidTestCase(invalid, CaseCategory.Interface, true), - }) -}) - runCases({ name, rule: rule as unknown as Rule.RuleModule, typescriptConfig }, valid, invalid, { category: CaseCategory.Interface, withRequiredFirstOption: true, From a3972e8cc14fcc0ed32bb0d5b206cc872a07e070 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Mon, 11 Dec 2023 01:05:37 -0800 Subject: [PATCH 07/26] 100% coverage; lint --- jest.config.js | 4 +- package.json | 7 +-- src/config/constants.ts | 2 +- src/utils/sourcecode/commentHelpers.ts | 4 +- src/utils/sourcecode/nodeHelpers.ts | 4 +- src/utils/sourcecode/punctuationHelpers.ts | 5 +- tests/autofix.spec.ts | 4 +- tests/helpers/eslint.ts | 34 +++++++++++++ .../utils/sourcecode/commentHelpers.spec.ts | 24 ++++++++++ .../unit/utils/sourcecode/nodeHelpers.spec.ts | 48 +++++++++++++++++++ .../sourcecode/punctuationHelpers.spec.ts | 26 ++++++++++ .../unit/utils/sourcecode/textHelpers.spec.ts | 25 ++++++++++ yarn.lock | 2 +- 13 files changed, 177 insertions(+), 12 deletions(-) create mode 100644 tests/unit/utils/sourcecode/commentHelpers.spec.ts create mode 100644 tests/unit/utils/sourcecode/nodeHelpers.spec.ts create mode 100644 tests/unit/utils/sourcecode/punctuationHelpers.spec.ts create mode 100644 tests/unit/utils/sourcecode/textHelpers.spec.ts diff --git a/jest.config.js b/jest.config.js index 3455f77..6c2c24e 100644 --- a/jest.config.js +++ b/jest.config.js @@ -4,10 +4,10 @@ module.exports = { coverageReporters: [['text', { skipFull: false, skipEmpty: true }], 'lcov'], coverageThreshold: { global: { - branches: 94, + branches: 100, functions: 100, lines: 100, - statements: 98, + statements: 100, }, }, moduleDirectories: ['node_modules', 'src'], diff --git a/package.json b/package.json index a8181d6..17efe48 100644 --- a/package.json +++ b/package.json @@ -35,18 +35,19 @@ "docs": "eslint-docs", "format": "prettier --write src/**/*.{js,ts} tests/**/*.{js,ts}", "lint": "eslint --ext .js,.ts src/ tests/", + "lint:fix": "yarn lint --fix", "prepublishOnly": "MINIFY=1 yarn build", "purge": "yarn -s rimraf node_modules lib", "test:autofix": "yarn -s jest ./tests/autofix.spec.ts", "test:config": "yarn -s jest ./tests/config.spec.ts", + "test:enum": "yarn -s jest ./tests/rules/enum/*.spec.ts", "test:interface": "yarn -s jest ./tests/rules/interface/*.spec.ts", "test:rules": "yarn -s jest ./tests/rules/*/*.spec.ts --collectCoverage=true", - "test:enum": "yarn -s jest ./tests/rules/enum/*.spec.ts", "test:watch:autofix": "yarn jest --watch ./tests/autofix.spec.ts", "test:watch:config": "yarn jest --watch ./tests/config.spec.ts", + "test:watch:enum": "yarn jest --watch ./tests/rules/enum/*.spec.ts", "test:watch:interface": "yarn jest --watch ./tests/rules/interface/*.spec.ts", "test:watch:rules": "yarn jest --watch ./tests/rules/*/*.spec.ts", - "test:watch:enum": "yarn jest --watch ./tests/rules/enum/*.spec.ts", "test:watch": "yarn -s jest --watch .*.spec.ts", "test": "yarn -s jest .*.spec.ts --collectCoverage=true", "typecheck": "tsc --noEmit --skipLibCheck", @@ -74,7 +75,7 @@ "@types/node": "^18.0.0", "@types/tmp": "~0.2.4", "@typescript-eslint/eslint-plugin": "^6.7.4", - "@typescript-eslint/parser": "^6.7.4", + "@typescript-eslint/parser": "~6.13.2", "babel-jest": "~29.7.0", "babel-plugin-module-resolver": "~5.0.0", "chalk": "~5.3.0", diff --git a/src/config/constants.ts b/src/config/constants.ts index a0fb058..f5ab11d 100644 --- a/src/config/constants.ts +++ b/src/config/constants.ts @@ -1 +1 @@ -export const PLUGIN_NAME = 'typescript-sort-keys' \ No newline at end of file +export const PLUGIN_NAME = 'typescript-sort-keys' diff --git a/src/utils/sourcecode/commentHelpers.ts b/src/utils/sourcecode/commentHelpers.ts index 56c97e3..7e186ce 100644 --- a/src/utils/sourcecode/commentHelpers.ts +++ b/src/utils/sourcecode/commentHelpers.ts @@ -1,5 +1,7 @@ -import { AST_NODE_TYPES, AST_TOKEN_TYPES, TSESTree } from '@typescript-eslint/utils' import { Node, SourceCode } from 'types' + +import { AST_NODE_TYPES, AST_TOKEN_TYPES, TSESTree } from '@typescript-eslint/utils' + import { getLatestNode } from './nodeHelpers' import { getDeclarationPunctuators, diff --git a/src/utils/sourcecode/nodeHelpers.ts b/src/utils/sourcecode/nodeHelpers.ts index a6469e5..f105c2a 100644 --- a/src/utils/sourcecode/nodeHelpers.ts +++ b/src/utils/sourcecode/nodeHelpers.ts @@ -23,6 +23,6 @@ export function getNextNonCommentNode(sourceCode: SourceCode, node: Node) { return nextNode ?? undefined } export function getPreviousNonCommentNode(sourceCode: SourceCode, node: Node) { - const nextNode = sourceCode.getTokenBefore(node, { includeComments: false }) - return nextNode ?? undefined + const prevNode = sourceCode.getTokenBefore(node, { includeComments: false }) + return prevNode ?? undefined } diff --git a/src/utils/sourcecode/punctuationHelpers.ts b/src/utils/sourcecode/punctuationHelpers.ts index 543c44b..c8c12f5 100644 --- a/src/utils/sourcecode/punctuationHelpers.ts +++ b/src/utils/sourcecode/punctuationHelpers.ts @@ -1,6 +1,8 @@ -import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '@typescript-eslint/utils' import assert from 'assert' import { Node, SourceCode } from 'types' + +import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '@typescript-eslint/utils' + import { getEarliestNode, getLatestNode, @@ -31,6 +33,7 @@ export function getNodePunctuator( includeComments: false, }) // Ensure we don't go beyond the parent into the source code + return punctuator && punctuator.range[1] <= (node.parent?.range[1] || Infinity) ? punctuator : undefined diff --git a/tests/autofix.spec.ts b/tests/autofix.spec.ts index 983ac30..4567aeb 100644 --- a/tests/autofix.spec.ts +++ b/tests/autofix.spec.ts @@ -1,7 +1,9 @@ -import { ESLint } from '@typescript-eslint/utils/ts-eslint' import fs from 'fs' import path from 'path' import tmp from 'tmp' + +import { ESLint } from '@typescript-eslint/utils/ts-eslint' + import { Config, getESLint } from './helpers/eslint' describe('autofix', () => { diff --git a/tests/helpers/eslint.ts b/tests/helpers/eslint.ts index 08476ab..6a6291d 100644 --- a/tests/helpers/eslint.ts +++ b/tests/helpers/eslint.ts @@ -1,3 +1,5 @@ +import { Linter } from 'eslint' + import { ESLint } from '@typescript-eslint/utils/ts-eslint' import plugin from '../../src' @@ -5,6 +7,9 @@ import recommended from '../../src/config/recommended.config' import requiredFirst from '../../src/config/requiredFirst.config' import { typescriptConfig } from './configs' +// eslint-disable-next-line @typescript-eslint/no-var-requires +const parser = require('@typescript-eslint/parser') + export enum Config { Recommended, RequiredFirst, @@ -30,3 +35,32 @@ export function getESLint(config: Config, fix = true) { }) return eslint } + +// For unit testing +export function getSourceCode(code: string) { + const linter = new Linter() + linter.defineParser('@typescript-eslint/parser', parser) + + const config = { + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + }, + rules: {}, + settings: { + 'import/parsers': { + '@typescript-eslint/parser': ['.ts', '.tsx'], + }, + 'import/resolver': { + typescript: { + alwaysTryTypes: true, + }, + }, + }, + } as Linter.Config + + const messages = linter.verify(code, config) + + return messages[0]?.fatal ? null : linter.getSourceCode() +} diff --git a/tests/unit/utils/sourcecode/commentHelpers.spec.ts b/tests/unit/utils/sourcecode/commentHelpers.spec.ts new file mode 100644 index 0000000..8fc0d5a --- /dev/null +++ b/tests/unit/utils/sourcecode/commentHelpers.spec.ts @@ -0,0 +1,24 @@ +import { AST_TOKEN_TYPES, TSESTree } from '@typescript-eslint/utils' + +import { getCommentsBefore } from '../../../../src/utils/sourcecode' +import { getSourceCode } from '../../../helpers/eslint' + +describe('commentHelpers.spec.ts coverage', () => { + it('returns empty array with no prevNode', () => { + const code = 'enum U {A = "a", B = "b", C = "c"}' + const sourceCode = getSourceCode(code) + const result = getCommentsBefore(sourceCode, sourceCode.getNodeByRangeIndex(0)) + expect(result).toEqual([]) + }) + + it('returns comment of specified type', () => { + const code = 'enum U {A = "a", /* b */ B = "b", C = "c"}' + const sourceCode = getSourceCode(code) + const result: TSESTree.Comment[] = getCommentsBefore( + sourceCode, + sourceCode.getTokenByRangeStart(code.indexOf('B')), + AST_TOKEN_TYPES.Block, + ) + expect(result[0].value).toBe(' b ') + }) +}) diff --git a/tests/unit/utils/sourcecode/nodeHelpers.spec.ts b/tests/unit/utils/sourcecode/nodeHelpers.spec.ts new file mode 100644 index 0000000..d8c099a --- /dev/null +++ b/tests/unit/utils/sourcecode/nodeHelpers.spec.ts @@ -0,0 +1,48 @@ +import { + getEarliestNode, + getNextNonCommentNode, + getPreviousNonCommentNode, +} from '../../../../src/utils/sourcecode' +import { getSourceCode } from '../../../helpers/eslint' + +describe('nodeHelpers.spec.ts coverage', () => { + const code = 'enum U /**/{/**/A = "a", /**/B = "b", /**/C = "c"}/**/' + const sourceCode = getSourceCode(code) + const nodes = ['A', 'B', 'C'].map(_ => sourceCode.getNodeByRangeIndex(code.indexOf(_))) + + describe('getEarliestNode', () => { + it('returns correct value from out of order array', () => { + const nodesReversed = Array.from(nodes).reverse() + const result = getEarliestNode(nodesReversed) + expect(result).toEqual(nodes[0]) + }) + }) + + describe('getNextNonCommentNode', () => { + it('returns nullish when given final node', () => { + const result = getNextNonCommentNode( + sourceCode, + sourceCode.getNodeByRangeIndex(code.indexOf('}')), + ) + expect(result).toBeFalsy() + }) + it('returns truthy when given middle node', () => { + const result = getNextNonCommentNode(sourceCode, nodes[1]) + expect(result).toBeTruthy() + }) + }) + + describe('getPreviousNonCommentNode', () => { + it('returns nullish when given first node', () => { + const result = getPreviousNonCommentNode( + sourceCode, + sourceCode.getNodeByRangeIndex(code.indexOf('{')), + ) + expect(result).toBeFalsy() + }) + it('returns truthy when given middle node', () => { + const result = getPreviousNonCommentNode(sourceCode, nodes[1]) + expect(result).toBeTruthy() + }) + }) +}) diff --git a/tests/unit/utils/sourcecode/punctuationHelpers.spec.ts b/tests/unit/utils/sourcecode/punctuationHelpers.spec.ts new file mode 100644 index 0000000..b551bcf --- /dev/null +++ b/tests/unit/utils/sourcecode/punctuationHelpers.spec.ts @@ -0,0 +1,26 @@ +import { getNodePunctuator } from '../../../../src/utils/sourcecode' +import { getSourceCode } from '../../../helpers/eslint' + +describe('punctuationHelpers.spec.ts coverage', () => { + describe('getNodePunctuator', () => { + it('returns nullish', () => { + const code = 'enum U {A = "a"}' + const sourceCode = getSourceCode(code) + const result = getNodePunctuator( + sourceCode, + sourceCode.getNodeByRangeIndex(code.indexOf('A')), + ) + expect(result).toBeFalsy() + }) + + it('returns punctuator when node parent is nullish', () => { + const code = 'interface U {A: string; b: string;}' + const sourceCode = getSourceCode(code) + const node = sourceCode.getNodeByRangeIndex(code.indexOf('A')) + node['parent'] = undefined + + const result = getNodePunctuator(sourceCode, node) + expect(result).toBeTruthy() + }) + }) +}) diff --git a/tests/unit/utils/sourcecode/textHelpers.spec.ts b/tests/unit/utils/sourcecode/textHelpers.spec.ts new file mode 100644 index 0000000..d091a44 --- /dev/null +++ b/tests/unit/utils/sourcecode/textHelpers.spec.ts @@ -0,0 +1,25 @@ +import { + getTextBetweenNodeAndNext, + getTextBetweenNodeAndPrevious, +} from '../../../../src/utils/sourcecode' +import { getSourceCode } from '../../../helpers/eslint' + +describe('textHelpers.spec.ts coverage', () => { + const code = 'enum U {A = "a", B = "b"}' + const sourceCode = getSourceCode(code) + const nodes = ['{', '}'].map(_ => sourceCode.getNodeByRangeIndex(code.indexOf(_))) + + describe('getTextBetweenNodeAndPrevious', () => { + it('returns empty string given first node', () => { + const result = getTextBetweenNodeAndPrevious(sourceCode, nodes[0]) + expect(result).toBe('') + }) + }) + + describe('getTextBetweenNodeAndNext', () => { + it('returns empty string given last node', () => { + const result = getTextBetweenNodeAndNext(sourceCode, nodes.at(-1)) + expect(result).toBe('') + }) + }) +}) diff --git a/yarn.lock b/yarn.lock index 1bfd13b..2ccd19a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1678,7 +1678,7 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.7.4": +"@typescript-eslint/parser@~6.13.2": version "6.13.2" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.13.2.tgz#390b79cc9a57a5f904d197a201cc4b6bc4f9afb9" integrity sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg== From 20d1f1337dc0b2e1abad729e7d206b9c85bb8941 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Mon, 11 Dec 2023 01:26:29 -0800 Subject: [PATCH 08/26] husky 8 --- .husky/pre-commit | 4 +++ .huskyrc.js | 5 --- package.json | 5 +-- yarn.lock | 92 ++++------------------------------------------- 4 files changed, 14 insertions(+), 92 deletions(-) create mode 100755 .husky/pre-commit delete mode 100644 .huskyrc.js diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..5a182ef --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +yarn lint-staged diff --git a/.huskyrc.js b/.huskyrc.js deleted file mode 100644 index 6dd52fe..0000000 --- a/.huskyrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - hooks: { - 'pre-commit': 'lint-staged', - }, -} diff --git a/package.json b/package.json index 17efe48..9abb0e2 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,8 @@ "test:watch": "yarn -s jest --watch .*.spec.ts", "test": "yarn -s jest .*.spec.ts --collectCoverage=true", "typecheck": "tsc --noEmit --skipLibCheck", - "verify": "yarn typecheck && yarn lint && yarn build && yarn test" + "verify": "yarn typecheck && yarn lint && yarn build && yarn test", + "prepare": "husky install" }, "dependencies": { "@typescript-eslint/utils": "^6.7.4", @@ -87,7 +88,7 @@ "eslint-plugin-jest": "~27.4.2", "eslint-plugin-prettier": "~5.0.0", "http-server": "^14.0.0", - "husky": "~4.2.5", + "husky": "^8.0.0", "jest": "~29.7.0", "lint-staged": "^14.0.1", "lorem-ipsum": "~2.0.8", diff --git a/yarn.lock b/yarn.lock index 2ccd19a..c678cb5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -964,7 +964,7 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": +"@babel/runtime@^7.8.4": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== @@ -1624,11 +1624,6 @@ dependencies: undici-types "~5.26.4" -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - "@types/resolve@1.20.2": version "1.20.2" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" @@ -2244,11 +2239,6 @@ chokidar@^3.4.0: optionalDependencies: fsevents "~2.3.2" -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - ci-info@^3.2.0: version "3.9.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" @@ -2377,11 +2367,6 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -compare-versions@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -2404,17 +2389,6 @@ corser@^2.0.1: resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c= -cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.7.2" - create-jest@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" @@ -3035,13 +3009,6 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-versions@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" - integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== - dependencies: - semver-regex "^2.0.0" - flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -3359,21 +3326,10 @@ human-signals@^4.3.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== -husky@~4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36" - integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ== - dependencies: - chalk "^4.0.0" - ci-info "^2.0.0" - compare-versions "^3.6.0" - cosmiconfig "^6.0.0" - find-versions "^3.2.0" - opencollective-postinstall "^2.0.2" - pkg-dir "^4.2.0" - please-upgrade-node "^3.2.0" - slash "^3.0.0" - which-pm-runs "^1.0.0" +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== iconv-lite@0.6.3: version "0.6.3" @@ -3387,7 +3343,7 @@ ignore@^5.2.0, ignore@^5.2.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== -import-fresh@^3.1.0, import-fresh@^3.2.1: +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== @@ -4543,11 +4499,6 @@ open@^9.1.0: is-inside-container "^1.0.0" is-wsl "^2.2.0" -opencollective-postinstall@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" - integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== - opener@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" @@ -4632,7 +4583,7 @@ 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: +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== @@ -4736,13 +4687,6 @@ pkg-up@^3.1.0: dependencies: find-up "^3.0.0" -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - portfinder@^1.0.28: version "1.0.32" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" @@ -5055,16 +4999,6 @@ secure-compare@3.0.1: resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" integrity sha1-8aAymzCLIh+uN7mXTz1XjQypmeM= -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" - integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== - "semver@2 || 3 || 4 || 5", semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -5671,11 +5605,6 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-pm-runs@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" - integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= - 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" @@ -5745,13 +5674,6 @@ yaml@2.3.1: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== -yaml@^1.7.2: - version "1.8.3" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.3.tgz#2f420fca58b68ce3a332d0ca64be1d191dd3f87a" - integrity sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw== - dependencies: - "@babel/runtime" "^7.8.7" - yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" From e125fd3b99a68f9108cf2eb045275ba6ea4960c8 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Mon, 11 Dec 2023 02:05:31 -0800 Subject: [PATCH 09/26] Add changelog back to pkg files --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 9abb0e2..d41b57b 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "files": [ "/lib", "package.json", + "CHANGELOG.md", "LICENSE.md", "README.md" ], From 0904cf98516abf760a2b9156b438f5d123d17af2 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Fri, 12 Apr 2024 23:36:27 -0700 Subject: [PATCH 10/26] deduplicate --- yarn.lock | 2540 +++++++++++++++++++++++++++-------------------------- 1 file changed, 1273 insertions(+), 1267 deletions(-) diff --git a/yarn.lock b/yarn.lock index c678cb5..11e8d6d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,17 +8,17 @@ integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" "@babel/cli@~7.23.0": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.23.4.tgz#f5cc90487278065fa0c3b1267cf0c1d44ddf85a7" - integrity sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw== + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.23.9.tgz#06b3e76376ee53f14ac8ac422c884950c69e1b9e" + integrity sha512-vB1UXmGDNEhcf1jNAHKT9IlYk1R+hehVTLFlCLHBi8gfuHQGP6uRjgXVYU0EVlI/qwAWpstqkBdf2aez3/z/5Q== dependencies: "@jridgewell/trace-mapping" "^0.3.17" commander "^4.0.1" @@ -31,48 +31,48 @@ "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a" + integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@~7.23.0": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" - integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g== +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9", "@babel/core@~7.23.0": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1" + integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.5" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.5" - "@babel/parser" "^7.23.5" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.5" - "@babel/types" "^7.23.5" + "@babel/helpers" "^7.23.9" + "@babel/parser" "^7.23.9" + "@babel/template" "^7.23.9" + "@babel/traverse" "^7.23.9" + "@babel/types" "^7.23.9" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.23.5", "@babel/generator@^7.7.2": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" - integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA== +"@babel/generator@^7.23.6", "@babel/generator@^7.24.1", "@babel/generator@^7.24.4", "@babel/generator@^7.7.2": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.4.tgz#1fc55532b88adf952025d5d2d1e71f946cb1c498" + integrity sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw== dependencies: - "@babel/types" "^7.23.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" + "@babel/types" "^7.24.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" "@babel/helper-annotate-as-pure@^7.22.5": @@ -89,28 +89,28 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" - integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - browserslist "^4.21.9" + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz#2a8792357008ae9ce8c0f2b78b9f646ac96b314b" - integrity sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A== +"@babel/helper-create-class-features-plugin@^7.24.1", "@babel/helper-create-class-features-plugin@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz#c806f73788a6800a5cfbbc04d2df7ee4d927cce3" + integrity sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-member-expression-to-functions" "^7.23.0" "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-replace-supers" "^7.24.1" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" @@ -124,10 +124,21 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" - integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== +"@babel/helper-define-polyfill-provider@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b" + integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-define-polyfill-provider@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz#fadc63f0c2ff3c8d02ed905dcea747c5b0fb74fd" + integrity sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -155,19 +166,19 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": +"@babel/helper-member-expression-to-functions@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: "@babel/types" "^7.23.0" -"@babel/helper-module-imports@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== +"@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.24.1": + version "7.24.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128" + integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== dependencies: - "@babel/types" "^7.22.15" + "@babel/types" "^7.24.0" "@babel/helper-module-transforms@^7.23.3": version "7.23.3" @@ -187,10 +198,10 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a" + integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== "@babel/helper-remap-async-to-generator@^7.22.20": version "7.22.20" @@ -201,13 +212,13 @@ "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-replace-supers@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" - integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== +"@babel/helper-replace-supers@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz#7085bd19d4a0b7ed8f405c1ed73ccb70f323abc1" + integrity sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ== dependencies: "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-member-expression-to-functions" "^7.23.0" "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-simple-access@^7.22.5": @@ -232,9 +243,9 @@ "@babel/types" "^7.22.5" "@babel/helper-string-parser@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" - integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" + integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" @@ -255,52 +266,53 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" - integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg== +"@babel/helpers@^7.23.9", "@babel/helpers@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.4.tgz#dc00907fd0d95da74563c142ef4cd21f2cb856b6" + integrity sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw== dependencies: - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.5" - "@babel/types" "^7.23.5" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.1" + "@babel/types" "^7.24.0" -"@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== +"@babel/highlight@^7.24.2": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26" + integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA== dependencies: "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" + picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" - integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0", "@babel/parser@^7.24.1", "@babel/parser@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.4.tgz#234487a110d89ad5a3ed4a8a566c36b9453e8c88" + integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" - integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz#b645d9ba8c2bc5b7af50f0fe949f9edbeb07c8cf" + integrity sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" - integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz#da8261f2697f0f41b0855b91d3a20a1fbfd271d3" + integrity sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.23.3" + "@babel/plugin-transform-optional-chaining" "^7.24.1" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" - integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz#1181d9685984c91d657b8ddf14f0487a6bab2988" + integrity sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" @@ -350,18 +362,18 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-import-assertions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" - integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz#db3aad724153a00eaac115a3fb898de544e34971" + integrity sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-import-attributes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" - integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz#c66b966c63b714c4eec508fcf5763b1f2d381093" + integrity sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" @@ -378,11 +390,11 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.7.2": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" - integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10" + integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -440,12 +452,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.23.3", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" - integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== +"@babel/plugin-syntax-typescript@^7.24.1", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz#b3bcc51f396d15f3591683f90239de143c076844" + integrity sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" @@ -456,211 +468,211 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-arrow-functions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" - integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz#2bf263617060c9cc45bcdbf492b8cc805082bf27" + integrity sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-async-generator-functions@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" - integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== +"@babel/plugin-transform-async-generator-functions@^7.23.9": + version "7.24.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz#8fa7ae481b100768cc9842c8617808c5352b8b89" + integrity sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg== dependencies: "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-remap-async-to-generator" "^7.22.20" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-transform-async-to-generator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" - integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz#0e220703b89f2216800ce7b1c53cb0cf521c37f4" + integrity sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw== dependencies: - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-module-imports" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-remap-async-to-generator" "^7.22.20" "@babel/plugin-transform-block-scoped-functions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" - integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz#1c94799e20fcd5c4d4589523bbc57b7692979380" + integrity sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-block-scoping@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" - integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz#28f5c010b66fbb8ccdeef853bef1935c434d7012" + integrity sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-class-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" - integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz#bcbf1aef6ba6085cfddec9fc8d58871cf011fc29" + integrity sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-class-static-block@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" - integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz#1a4653c0cf8ac46441ec406dece6e9bc590356a4" + integrity sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.4" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" - integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== +"@babel/plugin-transform-classes@^7.23.8": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz#5bc8fc160ed96378184bc10042af47f50884dcb1" + integrity sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-replace-supers" "^7.24.1" "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" - integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz#bc7e787f8e021eccfb677af5f13c29a9934ed8a7" + integrity sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/template" "^7.24.0" "@babel/plugin-transform-destructuring@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" - integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz#b1e8243af4a0206841973786292b8c8dd8447345" + integrity sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-dotall-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" - integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz#d56913d2f12795cc9930801b84c6f8c47513ac13" + integrity sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-duplicate-keys@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" - integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz#5347a797fe82b8d09749d10e9f5b83665adbca88" + integrity sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-dynamic-import@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" - integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz#2a5a49959201970dd09a5fca856cb651e44439dd" + integrity sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-transform-exponentiation-operator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" - integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz#6650ebeb5bd5c012d5f5f90a26613a08162e8ba4" + integrity sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-export-namespace-from@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" - integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz#f033541fc036e3efb2dcb58eedafd4f6b8078acd" + integrity sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-for-of@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" - integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== +"@babel/plugin-transform-for-of@^7.23.6": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz#67448446b67ab6c091360ce3717e7d3a59e202fd" + integrity sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-function-name@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" - integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz#8cba6f7730626cc4dfe4ca2fa516215a0592b361" + integrity sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA== dependencies: - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-function-name" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-json-strings@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" - integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz#08e6369b62ab3e8a7b61089151b161180c8299f7" + integrity sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-transform-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" - integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz#0a1982297af83e6b3c94972686067df588c5c096" + integrity sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-logical-assignment-operators@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" - integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz#719d8aded1aa94b8fb34e3a785ae8518e24cfa40" + integrity sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-transform-member-expression-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" - integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz#896d23601c92f437af8b01371ad34beb75df4489" + integrity sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-modules-amd@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" - integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz#b6d829ed15258536977e9c7cc6437814871ffa39" + integrity sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ== dependencies: "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-modules-commonjs@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" - integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz#e71ba1d0d69e049a22bf90b3867e263823d3f1b9" + integrity sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw== dependencies: "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81" - integrity sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ== +"@babel/plugin-transform-modules-systemjs@^7.23.9": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz#2b9625a3d4e445babac9788daec39094e6b11e3e" + integrity sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA== dependencies: "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-validator-identifier" "^7.22.20" "@babel/plugin-transform-modules-umd@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" - integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz#69220c66653a19cf2c0872b9c762b9a48b8bebef" + integrity sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg== dependencies: "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": version "7.22.5" @@ -671,200 +683,199 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-new-target@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" - integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz#29c59988fa3d0157de1c871a28cd83096363cc34" + integrity sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" - integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz#0cd494bb97cb07d428bd651632cb9d4140513988" + integrity sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-transform-numeric-separator@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" - integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz#5bc019ce5b3435c1cadf37215e55e433d674d4e8" + integrity sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-transform-object-rest-spread@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" - integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz#5a3ce73caf0e7871a02e1c31e8b473093af241ff" + integrity sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA== dependencies: - "@babel/compat-data" "^7.23.3" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-parameters" "^7.24.1" "@babel/plugin-transform-object-super@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" - integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz#e71d6ab13483cca89ed95a474f542bbfc20a0520" + integrity sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-replace-supers" "^7.24.1" "@babel/plugin-transform-optional-catch-binding@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" - integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz#92a3d0efe847ba722f1a4508669b23134669e2da" + integrity sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" - integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== +"@babel/plugin-transform-optional-chaining@^7.23.4", "@babel/plugin-transform-optional-chaining@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz#26e588acbedce1ab3519ac40cc748e380c5291e6" + integrity sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" - integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== +"@babel/plugin-transform-parameters@^7.23.3", "@babel/plugin-transform-parameters@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz#983c15d114da190506c75b616ceb0f817afcc510" + integrity sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-private-methods@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" - integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz#a0faa1ae87eff077e1e47a5ec81c3aef383dc15a" + integrity sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-private-property-in-object@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" - integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz#756443d400274f8fb7896742962cc1b9f25c1f6a" + integrity sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-transform-property-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" - integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz#d6a9aeab96f03749f4eebeb0b6ea8e90ec958825" + integrity sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-regenerator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" - integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz#625b7545bae52363bdc1fbbdc7252b5046409c8c" + integrity sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" regenerator-transform "^0.15.2" "@babel/plugin-transform-reserved-words@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" - integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz#8de729f5ecbaaf5cf83b67de13bad38a21be57c1" + integrity sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-shorthand-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" - integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz#ba9a09144cf55d35ec6b93a32253becad8ee5b55" + integrity sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-spread@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" - integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz#a1acf9152cbf690e4da0ba10790b3ac7d2b2b391" + integrity sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-sticky-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" - integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz#f03e672912c6e203ed8d6e0271d9c2113dc031b9" + integrity sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-template-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" - integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz#15e2166873a30d8617e3e2ccadb86643d327aab7" + integrity sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-typeof-symbol@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" - integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz#6831f78647080dec044f7e9f68003d99424f94c7" + integrity sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-typescript@^7.23.3": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.5.tgz#83da13ef62a1ebddf2872487527094b31c9adb84" - integrity sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA== + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.4.tgz#03e0492537a4b953e491f53f2bc88245574ebd15" + integrity sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.23.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-typescript" "^7.23.3" + "@babel/helper-create-class-features-plugin" "^7.24.4" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-typescript" "^7.24.1" "@babel/plugin-transform-unicode-escapes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" - integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz#fb3fa16676549ac7c7449db9b342614985c2a3a4" + integrity sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-unicode-property-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" - integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz#56704fd4d99da81e5e9f0c0c93cabd91dbc4889e" + integrity sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-unicode-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" - integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz#57c3c191d68f998ac46b708380c1ce4d13536385" + integrity sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-unicode-sets-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" - integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz#c1ea175b02afcffc9cf57a9c4658326625165b7f" + integrity sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/preset-env@~7.23.0": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.5.tgz#350a3aedfa9f119ad045b068886457e895ba0ca1" - integrity sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A== + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.9.tgz#beace3b7994560ed6bf78e4ae2073dff45387669" + integrity sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A== dependencies: "@babel/compat-data" "^7.23.5" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-option" "^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" @@ -885,13 +896,13 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.4" + "@babel/plugin-transform-async-generator-functions" "^7.23.9" "@babel/plugin-transform-async-to-generator" "^7.23.3" "@babel/plugin-transform-block-scoped-functions" "^7.23.3" "@babel/plugin-transform-block-scoping" "^7.23.4" "@babel/plugin-transform-class-properties" "^7.23.3" "@babel/plugin-transform-class-static-block" "^7.23.4" - "@babel/plugin-transform-classes" "^7.23.5" + "@babel/plugin-transform-classes" "^7.23.8" "@babel/plugin-transform-computed-properties" "^7.23.3" "@babel/plugin-transform-destructuring" "^7.23.3" "@babel/plugin-transform-dotall-regex" "^7.23.3" @@ -899,7 +910,7 @@ "@babel/plugin-transform-dynamic-import" "^7.23.4" "@babel/plugin-transform-exponentiation-operator" "^7.23.3" "@babel/plugin-transform-export-namespace-from" "^7.23.4" - "@babel/plugin-transform-for-of" "^7.23.3" + "@babel/plugin-transform-for-of" "^7.23.6" "@babel/plugin-transform-function-name" "^7.23.3" "@babel/plugin-transform-json-strings" "^7.23.4" "@babel/plugin-transform-literals" "^7.23.3" @@ -907,7 +918,7 @@ "@babel/plugin-transform-member-expression-literals" "^7.23.3" "@babel/plugin-transform-modules-amd" "^7.23.3" "@babel/plugin-transform-modules-commonjs" "^7.23.3" - "@babel/plugin-transform-modules-systemjs" "^7.23.3" + "@babel/plugin-transform-modules-systemjs" "^7.23.9" "@babel/plugin-transform-modules-umd" "^7.23.3" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.23.3" @@ -933,9 +944,9 @@ "@babel/plugin-transform-unicode-regex" "^7.23.3" "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" + babel-plugin-polyfill-corejs2 "^0.4.8" + babel-plugin-polyfill-corejs3 "^0.9.0" + babel-plugin-polyfill-regenerator "^0.5.5" core-js-compat "^3.31.0" semver "^6.3.1" @@ -965,41 +976,41 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.8.4": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" - integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.4.tgz#de795accd698007a66ba44add6cc86542aff1edd" + integrity sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA== dependencies: - regenerator-runtime "^0.13.4" + regenerator-runtime "^0.14.0" -"@babel/template@^7.22.15", "@babel/template@^7.3.3": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== +"@babel/template@^7.22.15", "@babel/template@^7.23.9", "@babel/template@^7.24.0", "@babel/template@^7.3.3": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" -"@babel/traverse@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" - integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== +"@babel/traverse@^7.23.9", "@babel/traverse@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c" + integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ== dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.5" + "@babel/code-frame" "^7.24.1" + "@babel/generator" "^7.24.1" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.5" - "@babel/types" "^7.23.5" - debug "^4.1.0" + "@babel/parser" "^7.24.1" + "@babel/types" "^7.24.0" + debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" - integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.9", "@babel/types@^7.24.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf" + integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== dependencies: "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" @@ -1043,12 +1054,12 @@ integrity sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ== "@humanwhocodes/config-array@^0.11.11": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== + 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.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": @@ -1056,10 +1067,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== "@infctr/eslint-docs@~0.4.0": version "0.4.0" @@ -1087,19 +1098,20 @@ wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" "@istanbuljs/load-nyc-config@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" - integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== dependencies: camelcase "^5.3.1" find-up "^4.1.0" + get-package-type "^0.1.0" js-yaml "^3.13.1" resolve-from "^5.0.0" -"@istanbuljs/schema@^0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" - integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== "@jest/console@^29.7.0": version "29.7.0" @@ -1293,42 +1305,42 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: - "@jridgewell/set-array" "^1.0.1" + "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/source-map@^0.3.3": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" - integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.20" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" - integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -1364,17 +1376,10 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@pkgr/utils@^2.4.2": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" - integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== - 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" +"@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== "@rollup/plugin-commonjs@~25.0.5": version "25.0.7" @@ -1417,14 +1422,14 @@ terser "^5.17.4" "@rollup/plugin-typescript@~11.1.4": - version "11.1.5" - resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz#039c763bf943a5921f3f42be255895e75764cb91" - integrity sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA== + version "11.1.6" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz#724237d5ec12609ec01429f619d2a3e7d4d1b22b" + integrity sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA== dependencies: - "@rollup/pluginutils" "^5.0.1" + "@rollup/pluginutils" "^5.1.0" resolve "^1.22.1" -"@rollup/pluginutils@^5.0.1": +"@rollup/pluginutils@^5.0.1", "@rollup/pluginutils@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== @@ -1504,9 +1509,9 @@ integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== "@sinonjs/commons@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72" - integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== dependencies: type-detect "4.0.8" @@ -1518,47 +1523,42 @@ "@sinonjs/commons" "^3.0.0" "@types/babel__core@^7.1.14": - version "7.1.16" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.16.tgz#bc12c74b7d65e82d29876b5d0baf5c625ac58702" - integrity sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" "@types/babel__generator" "*" "@types/babel__template" "*" "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" - integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" - integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.9.tgz#be82fab304b141c3eee81a4ce3b034d0eba1590a" - integrity sha512-jEFQ8L1tuvPjOI8lnpaf73oCJe+aoxL6ygqSy6c8LcW98zaC+4mzWuQIRCEvKeCOu+lbqdXcg4Uqmm1S8AP1tw== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== dependencies: - "@babel/types" "^7.3.0" - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + "@babel/types" "^7.20.7" "@types/eslint@~8.44.3": - version "8.44.8" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.8.tgz#f4fe1dab9b3d3dd98082d4b9f80e59ab40f1261c" - integrity sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw== + version "8.44.9" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.9.tgz#5799663009645637bd1c45b2e1a7c8f4caf89534" + integrity sha512-6yBxcvwnnYoYT1Uk2d+jvIfsuP4mb2EdIxFnrPABj5a/838qe5bGkNLFOiipX4ULQ7XVQvTxOh7jO+BTAiqsEw== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -1569,35 +1569,35 @@ integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/graceful-fs@^4.1.3": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" - integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== dependencies: "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" - integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== dependencies: "@types/istanbul-lib-report" "*" "@types/jest@~29.5.5": - version "29.5.11" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.11.tgz#0c13aa0da7d0929f078ab080ae5d4ced80fa2f2c" - integrity sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ== + version "29.5.12" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" + integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -1610,17 +1610,17 @@ "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/natural-compare-lite@~1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@types/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#90724682da3c304dd8d643b4e9ba00f53f29d454" - integrity sha512-ZDcj/yWsRPacqKPpCExWWFq9X1JQwEOfHsu8deN1Qfa6M02z6tN4DK6AMf2IkM7709gp3QW6Bo7m2NFDhA485w== + version "1.4.2" + resolved "https://registry.yarnpkg.com/@types/natural-compare-lite/-/natural-compare-lite-1.4.2.tgz#9ec517cd6759d006ac432875019eedbc2e878858" + integrity sha512-kk1ie31cI6AUm17qOi72lEOBfpRhcknJPsJQoKBulaZC9y00MHUWqxGTk/luWEnenLB+lHoNThrKAKdYVydlew== "@types/node@*", "@types/node@^18.0.0": - 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== + version "18.19.31" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.31.tgz#b7d4a00f7cb826b60a543cebdbda5d189aaecdcd" + integrity sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA== dependencies: undici-types "~5.26.4" @@ -1630,14 +1630,14 @@ integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== "@types/semver@^7.3.12", "@types/semver@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + version "7.5.8" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== "@types/stack-utils@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" - integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/tmp@~0.2.4": version "0.2.6" @@ -1645,9 +1645,9 @@ integrity sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA== "@types/yargs-parser@*": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" - integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^17.0.8": version "17.0.32" @@ -1657,15 +1657,15 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^6.7.4": - version "6.13.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz#2e03506c5362a65e43cb132c37c9ce2d3cb51470" - integrity sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ== + 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.13.2" - "@typescript-eslint/type-utils" "6.13.2" - "@typescript-eslint/utils" "6.13.2" - "@typescript-eslint/visitor-keys" "6.13.2" + "@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" @@ -1700,13 +1700,21 @@ "@typescript-eslint/types" "6.13.2" "@typescript-eslint/visitor-keys" "6.13.2" -"@typescript-eslint/type-utils@6.13.2": - version "6.13.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz#ebec2da14a6bb7122e0fd31eea72a382c39c6102" - integrity sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw== +"@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/typescript-estree" "6.13.2" - "@typescript-eslint/utils" "6.13.2" + "@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" @@ -1720,6 +1728,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.13.2.tgz#c044aac24c2f6cefb8e921e397acad5417dd0ae6" integrity sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg== +"@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@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" @@ -1746,17 +1759,31 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.13.2", "@typescript-eslint/utils@^6.7.4": - version "6.13.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.13.2.tgz#8eb89e53adc6d703a879b131e528807245486f89" - integrity sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ== +"@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", "@typescript-eslint/utils@^6.7.4": + 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.13.2" - "@typescript-eslint/types" "6.13.2" - "@typescript-eslint/typescript-estree" "6.13.2" + "@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/utils@^5.10.0": @@ -1789,6 +1816,14 @@ "@typescript-eslint/types" "6.13.2" eslint-visitor-keys "^3.4.1" +"@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" + "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" @@ -1800,9 +1835,9 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^8.8.2, acorn@^8.9.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== ajv@^6.12.4: version "6.12.6" @@ -1815,11 +1850,11 @@ ajv@^6.12.4: uri-js "^4.2.2" ansi-escapes@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.2.1.tgz#4dccdb846c3eee10f6d64dea66273eab90c37228" - integrity sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q== + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: - type-fest "^0.5.2" + type-fest "^0.21.3" ansi-escapes@^5.0.0: version "5.0.0" @@ -1851,11 +1886,10 @@ ansi-styles@^3.2.1: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - "@types/color-name" "^1.1.1" color-convert "^2.0.1" ansi-styles@^5.0.0: @@ -1871,12 +1905,12 @@ ansi-styles@^6.0.0, ansi-styles@^6.1.0: any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -1893,23 +1927,24 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-buffer-byte-length@^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== +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.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array-includes@^3.1.6: - version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" is-string "^1.0.7" array-union@^2.1.0: @@ -1918,15 +1953,16 @@ array-union@^2.1.0: integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array.prototype.findlastindex@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" array.prototype.flat@^1.3.1: version "1.3.2" @@ -1948,17 +1984,18 @@ array.prototype.flatmap@^1.3.1: es-abstract "^1.22.1" es-shim-unscopables "^1.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== +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" async@^2.6.4: @@ -1968,10 +2005,12 @@ async@^2.6.4: dependencies: lodash "^4.17.14" -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.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" babel-jest@^29.7.0, babel-jest@~29.7.0: version "29.7.0" @@ -2018,29 +2057,29 @@ babel-plugin-module-resolver@~5.0.0: reselect "^4.1.7" resolve "^1.22.1" -babel-plugin-polyfill-corejs2@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" - integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== +babel-plugin-polyfill-corejs2@^0.4.8: + version "0.4.10" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz#276f41710b03a64f6467433cab72cbc2653c38b1" + integrity sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.6.1" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.5: - version "0.8.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz#25c2d20002da91fe328ff89095c85a391d6856cf" - integrity sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ== +babel-plugin-polyfill-corejs3@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz#9eea32349d94556c2ad3ab9b82ebb27d4bf04a81" + integrity sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" - core-js-compat "^3.33.1" + "@babel/helper-define-polyfill-provider" "^0.5.0" + core-js-compat "^3.34.0" -babel-plugin-polyfill-regenerator@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" - integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== +babel-plugin-polyfill-regenerator@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a" + integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.5.0" babel-preset-current-node-syntax@^1.0.0: version "1.0.1" @@ -2069,9 +2108,9 @@ babel-preset-jest@^29.6.3: babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== basic-auth@^2.0.1: version "2.0.1" @@ -2080,22 +2119,10 @@ basic-auth@^2.0.1: dependencies: safe-buffer "5.1.2" -big-integer@^1.6.44: - version "1.6.52" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" - integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== - binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== brace-expansion@^1.1.7: version "1.1.11" @@ -2119,23 +2146,13 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.21.9: - version "4.21.10" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" - integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== - dependencies: - caniuse-lite "^1.0.30001517" - electron-to-chromium "^1.4.477" - node-releases "^2.0.13" - update-browserslist-db "^1.0.11" - -browserslist@^4.22.2: - version "4.22.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" - integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== +browserslist@^4.22.2, browserslist@^4.23.0: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== dependencies: - caniuse-lite "^1.0.30001565" - electron-to-chromium "^1.4.601" + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" node-releases "^2.0.14" update-browserslist-db "^1.0.13" @@ -2147,40 +2164,30 @@ bser@2.1.1: node-int64 "^0.4.0" buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + 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== builtin-modules@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.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: - version "3.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3" - integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^5.3.1: version "5.3.1" @@ -2188,14 +2195,14 @@ camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001565: - version "1.0.30001566" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz#61a8e17caf3752e3e426d4239c549ebbb37fef0d" - integrity sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA== +caniuse-lite@^1.0.30001587: + version "1.0.30001609" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001609.tgz#fc34fad75c0c6d6d6303bdbceec2da8f203dabd6" + integrity sha512-JFPQs34lHKx1B5t1EpQpWH4c+29zIyn/haGsbpfq3suuV9v56enjFt23zqijxGTMwy1p/4H2tjnQMY+p1WoAyA== chalk@5.3.0, chalk@~5.3.0: version "5.3.0" @@ -2225,9 +2232,9 @@ char-regex@^1.0.2: integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== chokidar@^3.4.0: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -2245,14 +2252,14 @@ ci-info@^3.2.0: integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + version "1.2.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" + integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== dependencies: restore-cursor "^2.0.0" @@ -2272,9 +2279,9 @@ cli-diff@^1.0.0: diff "^3.5.0" cli-spinners@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.3.0.tgz#0632239a4b5aa4c958610142c34bb7a651fc8df5" - integrity sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w== + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== cli-truncate@^3.1.0: version "3.1.0" @@ -2296,17 +2303,17 @@ cliui@^8.0.1: clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== collect-v8-coverage@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.0.tgz#150ee634ac3650b71d9c985eb7f608942334feb1" - integrity sha512-VKIhJgvk8E1W28m5avZ2Gv2Ruv5YiF56ug2oclvaG9md69BuZImMG2sk9g7QNKLUbtYAKQjXjYxbYZVUlMMKmQ== + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== color-convert@^1.9.0: version "1.9.3" @@ -2325,7 +2332,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" @@ -2365,29 +2372,29 @@ commander@^9.3.0: commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -core-js-compat@^3.31.0, core-js-compat@^3.33.1: - version "3.34.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.34.0.tgz#61a4931a13c52f8f08d924522bba65f8c94a5f17" - integrity sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA== +core-js-compat@^3.31.0, core-js-compat@^3.34.0: + version "3.36.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.36.1.tgz#1818695d72c99c25d621dca94e6883e190cea3c8" + integrity sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA== dependencies: - browserslist "^4.22.2" + browserslist "^4.23.0" corser@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" - integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c= + integrity sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ== create-jest@^29.7.0: version "29.7.0" @@ -2411,7 +2418,34 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +debug@4.3.4, debug@^4.1.0, debug@^4.1.1, 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== @@ -2426,58 +2460,35 @@ debug@^3.2.7: ms "^2.1.1" dedent@^1.0.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" - integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== + version "1.5.3" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" + integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + 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== deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + 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.1: - 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== +define-data-property@^1.0.1, define-data-property@^1.1.4: + 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: - get-intrinsic "^1.2.1" + es-define-property "^1.0.0" + es-errors "^1.3.0" gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" @@ -2491,7 +2502,7 @@ define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= + integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== detect-newline@^3.0.0: version "3.1.0" @@ -2534,10 +2545,10 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -electron-to-chromium@^1.4.477, electron-to-chromium@^1.4.601: - version "1.4.609" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.609.tgz#5790a70aaa96de232501b56e14b64d17aff93988" - integrity sha512-ihiCP7PJmjoGNuLpl7TjNA8pCQWu09vGyjlPYw1Rqww4gvNuCcmvl+44G+2QyJ6S2K4o+wbTS++Xz0YN8Q9ERw== +electron-to-chromium@^1.4.668: + version "1.4.736" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.736.tgz#ecb4348f4d5c70fb1e31c347e5bad6b751066416" + integrity sha512-Rer6wc3ynLelKNM4lOCg7/zPQj8tPOCB2hzD32PX9wd3hgRRi9MxEbmkFCokzcEhRVMiOVLjnL9ig9cefJ+6+Q== emittery@^0.13.1: version "0.13.1" @@ -2555,9 +2566,9 @@ emoji-regex@^9.2.2: integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== enhanced-resolve@^5.12.0: - version "5.15.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" - integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== + version "5.16.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz#65ec88778083056cb32487faa9aef82ed0864787" + integrity sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -2569,66 +2580,92 @@ 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== - 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-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" 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-proto "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" is-callable "^1.2.7" - is-negative-zero "^2.0.2" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" + is-shared-array-buffer "^1.0.3" 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" - 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" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" unbox-primitive "^1.0.2" - which-typed-array "^1.1.13" + which-typed-array "^1.1.15" + +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-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== dependencies: - has "^1.0.3" + hasown "^2.0.0" es-to-primitive@^1.2.1: version "1.2.1" @@ -2640,14 +2677,14 @@ es-to-primitive@^1.2.1: is-symbol "^1.0.2" escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + 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 sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^2.0.0: version "2.0.0" @@ -2687,9 +2724,9 @@ eslint-import-resolver-typescript@~3.6.1: is-glob "^4.0.3" eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + version "2.8.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" + integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== dependencies: debug "^3.2.7" @@ -2844,9 +2881,9 @@ esrecurse@^4.3.0: estraverse "^5.2.0" estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" @@ -2859,9 +2896,9 @@ estree-walker@^2.0.2: integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== eventemitter3@^4.0.0: version "4.0.7" @@ -2873,7 +2910,7 @@ eventemitter3@^5.0.1: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== -execa@7.2.0, execa@^7.1.1: +execa@7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== @@ -2906,7 +2943,7 @@ execa@^5.0.0: exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== expect@^29.0.0, expect@^29.7.0: version "29.7.0" @@ -2925,11 +2962,11 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + 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-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: +fast-glob@^3.2.9, fast-glob@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -2948,19 +2985,19 @@ fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" - integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== + 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" fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: bser "2.1.1" @@ -3010,22 +3047,23 @@ find-up@^5.0.0: path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + 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.1.0" + flatted "^3.2.9" + keyv "^4.5.3" rimraf "^3.0.2" -flatted@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" - integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== follow-redirects@^1.0.0: - version "1.14.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" - integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== for-each@^0.3.3: version "0.3.3" @@ -3050,14 +3088,14 @@ fs-readdir-recursive@^1.1.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 sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^2.3.2, 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== + 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.1, function-bind@^1.1.2: +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== @@ -3087,33 +3125,40 @@ get-caller-file@^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-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== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, 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-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + get-stream@^6.0.0, get-stream@^6.0.1: 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-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-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.5.0: - version "4.7.2" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" - integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== + version "4.7.3" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.3.tgz#0498163d98f7b58484dd4906999c0c9d5f103f83" + integrity sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg== dependencies: resolve-pkg-maps "^1.0.0" @@ -3132,15 +3177,15 @@ glob-parent@^6.0.2: is-glob "^4.0.3" 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== + version "10.3.12" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.12.tgz#3a65c363c2e9998d220338e88a5f6ac97302960b" + integrity sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg== dependencies: foreground-child "^3.1.0" - jackspeak "^2.3.5" + jackspeak "^2.3.6" minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" + minipass "^7.0.4" + path-scurry "^1.10.2" glob@^7.1.3, glob@^7.1.4, glob@^7.2.0: version "7.2.3" @@ -3171,9 +3216,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== + 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" @@ -3213,7 +3258,7 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -has-bigints@^1.0.2: +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== @@ -3221,48 +3266,46 @@ has-bigints@^1.0.2: has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + 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-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-property-descriptors@^1.0.0, 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" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== 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: - 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.2: + 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" 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" + version "1.0.4" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== -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, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" @@ -3326,7 +3369,7 @@ human-signals@^4.3.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== -husky@~8.0.3: +husky@^8.0.0: version "8.0.3" resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== @@ -3339,9 +3382,9 @@ iconv-lite@0.6.3: safer-buffer ">= 2.1.2 < 3.0.0" ignore@^5.2.0, ignore@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + 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.2.1: version "3.3.0" @@ -3352,9 +3395,9 @@ import-fresh@^3.2.1: resolve-from "^4.0.0" import-local@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" - integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -3362,53 +3405,54 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" inherits@2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + 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== +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" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" - integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== + 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-binary-path@~2.1.0: version "2.1.0" @@ -3418,18 +3462,12 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" - integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + 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" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74= - dependencies: - builtin-modules "^1.0.0" + has-tostringtag "^1.0.0" is-builtin-module@^3.2.1: version "3.2.1" @@ -3450,25 +3488,24 @@ is-core-module@^2.11.0, is-core-module@^2.13.0: dependencies: hasown "^2.0.0" -is-date-object@^1.0.1: +is-data-view@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== +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 sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -3492,27 +3529,22 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== -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-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== is-number-object@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" - integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + 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@^7.0.0: version "7.0.0" @@ -3539,17 +3571,17 @@ is-regex@^1.1.4: 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== +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + 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" @@ -3570,12 +3602,12 @@ 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-typed-array@^1.1.13: + 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.11" + which-typed-array "^1.1.14" is-weakref@^1.0.2: version "1.0.2" @@ -3584,13 +3616,6 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -3599,7 +3624,7 @@ isarray@^2.0.5: isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.2" @@ -3618,43 +3643,43 @@ istanbul-lib-instrument@^5.0.4: semver "^6.3.0" istanbul-lib-instrument@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" - integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== + version "6.0.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz#91655936cf7380e4e473383081e38478b69993b1" + integrity sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw== dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" istanbul-lib-coverage "^3.2.0" semver "^7.5.4" istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" + make-dir "^4.0.0" supports-color "^7.1.0" istanbul-lib-source-maps@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" - integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== dependencies: debug "^4.1.1" istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.6" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" - integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== + version "3.1.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^2.3.5: +jackspeak@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== @@ -3850,9 +3875,9 @@ jest-mock@^29.7.0: jest-util "^29.7.0" jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== jest-regex-util@^29.6.3: version "29.6.3" @@ -4027,9 +4052,9 @@ js-tokens@^4.0.0: integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -4049,7 +4074,12 @@ jsesc@^2.5.1: jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +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" @@ -4074,7 +4104,7 @@ json-schema@^0.4.0: 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 sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json5@^1.0.2: version "1.0.2" @@ -4088,6 +4118,13 @@ json5@^2.1.1, json5@^2.2.3: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== +keyv@^4.5.3: + 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" + kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -4112,9 +4149,9 @@ lilconfig@2.1.0: integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + 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@^14.0.1: version "14.0.1" @@ -4147,7 +4184,7 @@ listr2@6.6.1: 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 sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" @@ -4179,7 +4216,7 @@ locate-path@^6.0.0: lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.merge@^4.6.2: version "4.6.2" @@ -4216,6 +4253,11 @@ lorem-ipsum@~2.0.8: dependencies: commander "^9.3.0" +lru-cache@^10.2.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@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -4230,15 +4272,10 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -"lru-cache@^9.1.1 || ^10.0.0": - version "10.1.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" - integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== - magic-string@^0.30.3: - version "0.30.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" - integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + version "0.30.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.9.tgz#8927ae21bfdd856310e07a1bc8dd5e73cb6c251d" + integrity sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" @@ -4250,12 +4287,12 @@ make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" - integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== dependencies: - semver "^6.0.0" + semver "^7.5.3" makeerror@1.0.12: version "1.0.12" @@ -4302,6 +4339,13 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +minimatch@9.0.3, 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" @@ -4316,19 +4360,12 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -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" - minimist@^1.2.0, 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@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== @@ -4357,22 +4394,17 @@ mz@^2.7.0: natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha1-F7CVgZiJef3a/gIB6TG6kzyWy7Q= + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-releases@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== node-releases@^2.0.14: version "2.0.14" @@ -4380,12 +4412,12 @@ node-releases@^2.0.14: integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== normalize-package-data@^2.3.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw== + 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" - is-builtin-module "^1.0.0" + resolve "^1.10.0" semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" @@ -4402,18 +4434,18 @@ npm-run-path@^4.0.1: path-key "^3.0.0" npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + version "5.3.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== dependencies: path-key "^4.0.0" object-assign@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.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== @@ -4423,7 +4455,7 @@ 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.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== @@ -4434,44 +4466,44 @@ object.assign@^4.1.4: object-keys "^1.1.1" object.fromentries@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" object.groupby@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" object.values@^1.1.6: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== dependencies: mimic-fn "^1.0.0" @@ -4489,20 +4521,10 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - opener@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" - integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== optionator@^0.9.3: version "0.9.3" @@ -4564,21 +4586,21 @@ p-locate@^5.0.0: p-limit "^3.0.2" p-try@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" - integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== + 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.0" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz#df250bdc5391f4a085fb589dad761f5ad6b865b5" - integrity sha512-8Mf5juOMmiE4FcmzYc4IaiS9L3+9paz2KOiXzkRviCP6aDmN49Hz6EMWz0lGNp9pX80GvvAuLADtyGfW/Em3TA== + 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@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" @@ -4596,7 +4618,7 @@ parse-json@^5.2.0: path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" @@ -4606,7 +4628,7 @@ path-exists@^4.0.0: 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 sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" @@ -4623,12 +4645,12 @@ path-parse@^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== +path-scurry@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.2.tgz#8f6357eb1239d5fa1da8b9f70e9c080675458ba7" + integrity sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA== dependencies: - lru-cache "^9.1.1 || ^10.0.0" + lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-type@^3.0.0: @@ -4661,7 +4683,7 @@ pidtree@0.6.0: pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== pify@^4.0.1: version "4.0.1" @@ -4696,6 +4718,11 @@ portfinder@^1.0.28: debug "^3.2.7" mkdirp "^0.5.6" +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -4709,9 +4736,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" - integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== pretty-format@^29.0.0, pretty-format@^29.7.0: version "29.7.0" @@ -4723,29 +4750,29 @@ pretty-format@^29.0.0, pretty-format@^29.7.0: react-is "^18.0.0" prompts@^2.0.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" - integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== dependencies: kleur "^3.0.3" - sisteransi "^1.0.4" + sisteransi "^1.0.5" punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== pure-rand@^6.0.0: - version "6.0.4" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" - integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== + version "6.1.0" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" + integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== qs@^6.4.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + version "6.12.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" + integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== dependencies: - side-channel "^1.0.4" + side-channel "^1.0.6" queue-microtask@^1.2.2: version "1.2.3" @@ -4775,7 +4802,7 @@ read-pkg-up@^4.0.0: read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== dependencies: load-json-file "^4.0.0" normalize-package-data "^2.3.2" @@ -4800,10 +4827,10 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regenerator-transform@^0.15.2: version "0.15.2" @@ -4812,14 +4839,15 @@ regenerator-transform@^0.15.2: dependencies: "@babel/runtime" "^7.8.4" -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== +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.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" regexpu-core@^5.3.1: version "5.3.2" @@ -4843,12 +4871,12 @@ regjsparser@^0.9.1: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== reselect@^4.1.7: version "4.1.8" @@ -4882,7 +4910,7 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4: +resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -4894,7 +4922,7 @@ resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4: restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== dependencies: onetime "^2.0.0" signal-exit "^3.0.2" @@ -4913,11 +4941,11 @@ reusify@^1.0.4: integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" + integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== -rimraf@^3.0.0, rimraf@^3.0.2: +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== @@ -4951,13 +4979,6 @@ rollup@~4.7.0: "@rollup/rollup-win32-x64-msvc" "4.7.0" fsevents "~2.3.2" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -4965,13 +4986,13 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -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== +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + get-intrinsic "^1.2.4" has-symbols "^1.0.3" isarray "^2.0.5" @@ -4980,13 +5001,13 @@ safe-buffer@5.1.2, safe-buffer@^5.1.0: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -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-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" "safer-buffer@>= 2.1.2 < 3.0.0": @@ -4997,50 +5018,53 @@ safe-regex-test@^1.0.0: secure-compare@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" - integrity sha1-8aAymzCLIh+uN7mXTz1XjQypmeM= + integrity sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw== "semver@2 || 3 || 4 || 5", semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: +semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.7, semver@^7.5.0, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + 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" serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" -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== +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: - define-data-property "^1.1.1" - get-intrinsic "^1.2.1" + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.2" -set-function-name@^2.0.0: - 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== +set-function-name@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== dependencies: - define-data-property "^1.0.1" + define-data-property "^1.1.4" + es-errors "^1.3.0" functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.2" shebang-command@^2.0.0: version "2.0.0" @@ -5054,14 +5078,15 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -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== +side-channel@^1.0.4, side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.7" + 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, signal-exit@^3.0.7: version "3.0.7" @@ -5073,7 +5098,7 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -sisteransi@^1.0.4: +sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== @@ -5097,9 +5122,9 @@ slice-ansi@^5.0.0: is-fullwidth-code-point "^4.0.0" smob@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/smob/-/smob-1.4.1.tgz#66270e7df6a7527664816c5b577a23f17ba6f5b5" - integrity sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ== + version "1.5.0" + resolved "https://registry.yarnpkg.com/smob/-/smob-1.5.0.tgz#85d79a1403abf128d24d3ebc1cdc5e1a9548d3ab" + integrity sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig== source-map-support@0.5.13: version "0.5.13" @@ -5123,40 +5148,40 @@ source-map@^0.6.0, source-map@^0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + 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.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + 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.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + 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.3" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e" - integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g== + 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== sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== dependencies: escape-string-regexp "^2.0.0" @@ -5166,9 +5191,9 @@ string-argv@0.3.2: integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== string-length@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" - integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== dependencies: char-regex "^1.0.2" strip-ansi "^6.0.0" @@ -5191,32 +5216,33 @@ string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.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== +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" -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== +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" -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== +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" @@ -5242,7 +5268,7 @@ strip-ansi@^7.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 sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-bom@^4.0.0: version "4.0.0" @@ -5272,9 +5298,9 @@ supports-color@^5.3.0: has-flag "^3.0.0" supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + 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" @@ -5291,11 +5317,11 @@ supports-preserve-symlinks-flag@^1.0.0: integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== synckit@^0.8.5: - version "0.8.6" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.6.tgz#b69b7fbce3917c2673cbdc0d87fb324db4a5b409" - integrity sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA== + version "0.8.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== dependencies: - "@pkgr/utils" "^2.4.2" + "@pkgr/core" "^0.1.0" tslib "^2.6.2" tapable@^2.2.0: @@ -5304,9 +5330,9 @@ tapable@^2.2.0: integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== terser@^5.17.4: - version "5.26.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.26.0.tgz#ee9f05d929f4189a9c28a0feb889d96d50126fe1" - integrity sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ== + version "5.30.3" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.30.3.tgz#f1bb68ded42408c316b548e3ec2526d7dd03f4d2" + integrity sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -5325,12 +5351,12 @@ test-exclude@^6.0.0: text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== dependencies: thenify ">= 3.1.0 < 4" @@ -5341,17 +5367,10 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - tmp@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== tmpl@1.0.5: version "1.0.5" @@ -5361,7 +5380,7 @@ tmpl@1.0.5: to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" @@ -5371,14 +5390,14 @@ to-regex-range@^5.0.1: is-number "^7.0.0" ts-api-utils@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" - integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== + version "1.3.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.2" @@ -5386,16 +5405,11 @@ tsconfig-paths@^3.14.2: strip-bom "^3.0.0" tslib@^1.8.1: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - -tslib@^2.5.0, tslib@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" - integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.6.2: +tslib@^2.5.0, 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== @@ -5424,54 +5438,59 @@ type-fest@^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.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" - integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^1.0.2: 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== -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== +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.7" + 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== +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" -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== +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" -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== +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" for-each "^0.3.3" - is-typed-array "^1.1.9" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" typescript@~5.2.2: version "5.2.2" @@ -5523,19 +5542,6 @@ union@~0.5.0: dependencies: qs "^6.4.0" -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - update-browserslist-db@^1.0.13: version "1.0.13" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" @@ -5583,7 +5589,7 @@ walker@^1.0.8: wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" @@ -5605,21 +5611,21 @@ 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, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.2" which@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.1.tgz#f1cf94d07a8e571b6ff006aeb91d0300c47ef0a4" - integrity sha512-N7GBZOTswtB9lkQBZA4+zAXrjEIWAUOB93AvzUiudRzRxhUdLURQ7D/gAIMY1gatT/LTbmbcv8SiYazy3eYB7w== + 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" @@ -5644,7 +5650,7 @@ wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^4.0.2: version "4.0.2" From 15611c61b24a8275d6df79ff4681164493da1bac Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sat, 13 Apr 2024 00:51:58 -0700 Subject: [PATCH 11/26] add test comments --- tests/rules/enum/enum.spec.ts | 2 ++ tests/rules/enum/string-enum.spec.ts | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/tests/rules/enum/enum.spec.ts b/tests/rules/enum/enum.spec.ts index 679d879..a134418 100644 --- a/tests/rules/enum/enum.spec.ts +++ b/tests/rules/enum/enum.spec.ts @@ -70,6 +70,7 @@ const valid: PreValidTestCaseObject = { 'enum U {c="T", b_="T", C="T"}', 'enum U {a="T", _="T", A="T", $="T"}', "enum U {è='T', À='T', 'Z'='T', '#'='T'}", + /* Non-string enums */ 'enum U {c, b, a}', 'enum U {c=a(), b, a}', 'enum U {c=0, b, a}', @@ -110,6 +111,7 @@ const valid: PreValidTestCaseObject = { const invalid: PreInvalidTestCaseObject = { ascendingWithDefaults: [ + /* Non-string enums */ { code: 'enum U {c="123".length, b, a}', output: 'enum U {a, b, c="123".length}', diff --git a/tests/rules/enum/string-enum.spec.ts b/tests/rules/enum/string-enum.spec.ts index 52a82c7..951ad42 100644 --- a/tests/rules/enum/string-enum.spec.ts +++ b/tests/rules/enum/string-enum.spec.ts @@ -5,6 +5,14 @@ import { PreInvalidTestCaseObject, PreValidTestCaseObject, runCases } from '../. import { typescriptConfig } from '../../helpers/configs' import { CaseCategory } from '../../helpers/strings' +/** + * This file is different from enum.spec.ts in that it: + * - tests that non-string enums are ignored + * - uses the deprecated rule that ignores non-string enums + * + * When the deprecated string-enum rule is eventually removed, this file can be too. + */ + const valid: PreValidTestCaseObject = { /** * ignores From f1b10506755b89bc230cebdeae2ea37cda326915 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sat, 13 Apr 2024 01:03:49 -0700 Subject: [PATCH 12/26] actions test node 21 --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 40f7da7..8737c6a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: - node-version: [18.x, 20.x] + node-version: [18.x, 20.x, 21.x] steps: - uses: actions/checkout@v2 From 245d4309ea0ee2c1c039042bfd8c0927465a2532 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sat, 13 Apr 2024 04:19:48 -0700 Subject: [PATCH 13/26] self review comments/tweaks --- docs/rules/enum.md | 48 ++++++++++++------------- docs/rules/string-enum.md | 16 ++++----- src/common/options.ts | 9 ++--- src/fixer.ts | 2 +- src/plugin.ts | 3 +- src/rules/enum.ts | 7 ++-- src/rules/interface.ts | 6 ++-- src/rules/string-enum.ts | 6 ++-- src/types/options.ts | 4 +-- src/types/rule.ts | 9 ++--- src/utils/reportUtils.ts | 8 ++--- src/utils/sourcecode/index.ts | 6 +++- tests/helpers/cases/index.ts | 6 ++-- tests/helpers/cases/preprocess.ts | 3 ++ tests/helpers/cases/types.ts | 13 +++++-- tests/helpers/options.ts | 8 ++--- tests/rules/enum/enum.spec.ts | 6 ++++ tests/rules/interface/interface.spec.ts | 11 ++++-- 18 files changed, 92 insertions(+), 79 deletions(-) diff --git a/docs/rules/enum.md b/docs/rules/enum.md index 63d69ca..7da24ad 100644 --- a/docs/rules/enum.md +++ b/docs/rules/enum.md @@ -18,16 +18,17 @@ enum U { } // Case-sensitive by default. -enum U { +enum V { a = 'T', - b = 'T', - C = 'T', + B = 'T', + c = 'T', } -enum U { +enum W { a = 'T', - 'c' = 'T', + 'c+-' = 'T', b = 'T', + d = 'T', } ``` @@ -43,17 +44,18 @@ enum U { } // Case-sensitive by default. -enum U { - C = 'T', +enum V { + B = 'T', a = 'T', - b = 'T', + c = 'T', } // This rule sorts members which have an arbitrary string literal name as well. -enum U { +enum W { a = 'T', - 'b+-' = 'T', - c = 'T', + b = 'T', + 'c+-' = 'T', + d = 'T', } ``` @@ -61,7 +63,11 @@ enum U { ```json { - "typescript-sort-keys/enum": ["error", "asc", { "caseSensitive": true, "natural": false }] + "typescript-sort-keys/enum": [ + "error", + "asc", + { "caseSensitive": true, "natural": false } + ] } ``` @@ -82,11 +88,6 @@ Examples of **incorrect** code for the `"desc"` option: ```ts /* eslint typescript-sort-keys/enum: ["error", "desc"] */ -enum U { - b = 'T', - c = 'T', - a = 'T', -} enum U { b = 'T', c = 'T', @@ -94,7 +95,7 @@ enum U { } // Case-sensitive by default. -enum U { +enum V { a = 'T', B = 'T', c = 'T', @@ -106,11 +107,6 @@ Examples of **correct** code for the `"desc"` option: ```ts /* eslint typescript-sort-keys/enum: ["error", "desc"] */ -enum U { - c = 'T', - b = 'T', - a = 'T', -} enum U { c = 'T', b = 'T', @@ -118,7 +114,7 @@ enum U { } // Case-sensitive by default. -enum U { +enum V { c = 'T', a = 'T', B = 'T', @@ -138,7 +134,7 @@ enum U { C = 'T', b = 'T', } -enum U { +enum V { a = 'T', C = 'T', c = 'T', @@ -157,7 +153,7 @@ enum U { c = 'T', C = 'T', } -enum U { +enum V { a = 'T', b = 'T', C = 'T', diff --git a/docs/rules/string-enum.md b/docs/rules/string-enum.md index 5b5431f..638b042 100644 --- a/docs/rules/string-enum.md +++ b/docs/rules/string-enum.md @@ -2,13 +2,13 @@ --- -# require string-enum members to be sorted (string-enum) +# require string enum members to be sorted (string-enum) -When declaring multiple members on a string-enum, some developers prefer to sort string-enum member names alphabetically to be able to find necessary members easier at the later time. Others feel that it adds complexity and becomes burden to maintain. +When declaring multiple members on a string enum, some developers prefer to sort string enum member names alphabetically to be able to find necessary members easier at the later time. Others feel that it adds complexity and becomes burden to maintain. ## Rule Details -This rule checks all members of a string-enum declaration and verifies that all keys are sorted alphabetically. +This rule checks all members of a string enum declaration and verifies that all keys are sorted alphabetically. Examples of **incorrect** code for this rule: @@ -81,13 +81,13 @@ enum U { The 1st option is `"asc"` or `"desc"`. -- `"asc"` (default) - enforce string-enum members to be in ascending order. -- `"desc"` - enforce string-enum members to be in descending order. +- `"asc"` (default) - enforce string enum members to be in ascending order. +- `"desc"` - enforce string enum members to be in descending order. The 2nd option is an object which has 2 properties. -- `caseSensitive` - if `true`, enforce string-enum members to be in case-sensitive order. Default is `true`. -- `natural` - if `true`, enforce string-enum members to be in natural order. Default is `false`. Natural Order compares strings containing combination of letters and numbers in the way a human being would sort. It basically sorts numerically, instead of sorting alphabetically. So the number 10 comes after the number 3 in Natural Sorting. +- `caseSensitive` - if `true`, enforce string enum members to be in case-sensitive order. Default is `true`. +- `natural` - if `true`, enforce string enum members to be in natural order. Default is `false`. Natural Order compares strings containing combination of letters and numbers in the way a human being would sort. It basically sorts numerically, instead of sorting alphabetically. So the number 10 comes after the number 3 in Natural Sorting. ### desc @@ -209,4 +209,4 @@ enum U { ## When Not To Use It -If you don't want to notify about string-enum members' order, then it's safe to disable this rule. +If you don't want to notify about string enum members' order, then it's safe to disable this rule. diff --git a/src/common/options.ts b/src/common/options.ts index 1821977..a87ede6 100644 --- a/src/common/options.ts +++ b/src/common/options.ts @@ -1,12 +1,7 @@ -import { - AllRuleOptions, - CreateReporterArgs, - SortingOrder, - SortingParamsOptions, -} from '../types' +import { AllRuleOptions, CreateReporterArgs, SortingOrder, SortingParams } from '../types' export const defaultSortingOrder = SortingOrder.Ascending -export const defaultOptions: SortingParamsOptions = { +export const defaultOptions: SortingParams = { caseSensitive: true, natural: false, requiredFirst: false, diff --git a/src/fixer.ts b/src/fixer.ts index 4c10ee9..5534591 100644 --- a/src/fixer.ts +++ b/src/fixer.ts @@ -12,7 +12,7 @@ export const getFixerFunction = ( sortedBody: TSType[], ): ReportFixFunction => function* (fixer: TSESLint.RuleFixer) { - const sourceCode = createReporterArgs.context.getSourceCode() as SourceCode + const sourceCode = createReporterArgs.context.sourceCode as SourceCode const bodyRange = memoize(`bodyRange_${baseMemoKey}`, () => getBodyRange(sourceCode, body as unknown as Node[]), diff --git a/src/plugin.ts b/src/plugin.ts index e69ecce..77c373b 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -1,4 +1,5 @@ import { TSESTree } from '@typescript-eslint/utils' + import { getOptions } from './common/options' import { getFixerFunction } from './fixer' import { reportBodyNodes, reportParentNode } from './report' @@ -47,7 +48,7 @@ export function createReporter( return } - const sourceCode = createReporterArgs.context.getSourceCode() + const sourceCode = createReporterArgs.context.sourceCode // Create a key for memoizing results based on plugin context & input const baseMemoKey = JSON.stringify({ body: sourceCode.getText(bodyParent), // Disambiguator when body has code embedded in body diff --git a/src/rules/enum.ts b/src/rules/enum.ts index 0dffdb8..4622304 100644 --- a/src/rules/enum.ts +++ b/src/rules/enum.ts @@ -7,7 +7,7 @@ import { RuleOptionsGeneric, SortingOrder, sortingOrderOptionSchema, - SortingParamsOptions, + SortingParams, } from '../types' import { getObjectBody } from '../utils/ast' import { createRule, RuleMetaData } from '../utils/rule' @@ -16,12 +16,11 @@ import { createRule, RuleMetaData } from '../utils/rule' * The name of this rule. */ export const name = 'enum' as const -export const nameDeprecated = 'string-enum' as const /** * The options this rule can take. */ -export type RuleOptions = RuleOptionsGeneric> +export type RuleOptions = RuleOptionsGeneric> const sortingParamsOptionSchema: JSONSchema4 = { type: 'object', @@ -62,7 +61,7 @@ type errorMessageKeys = keyof typeof errorMessages * The meta data for this rule. */ const meta: RuleMetaData = { - type: 'layout', + type: 'suggestion', docs: { description: 'require enum members to be sorted', recommended: 'stylistic', diff --git a/src/rules/interface.ts b/src/rules/interface.ts index 8ade8e8..01d990b 100644 --- a/src/rules/interface.ts +++ b/src/rules/interface.ts @@ -7,7 +7,7 @@ import { RuleOptionsGeneric, SortingOrder, sortingOrderOptionSchema, - SortingParamsOptions, + SortingParams, } from '../types' import { getObjectBody } from '../utils/ast' import { createRule, RuleMetaData } from '../utils/rule' @@ -20,7 +20,7 @@ export const name = 'interface' as const /** * The options this rule can take. */ -export type RuleOptions = RuleOptionsGeneric +export type RuleOptions = RuleOptionsGeneric const sortingParamsOptionSchema: JSONSchema4 = { type: 'object', @@ -67,7 +67,7 @@ type errorMessageKeys = keyof typeof errorMessages * The meta data for this rule. */ const meta: RuleMetaData = { - type: 'layout', + type: 'suggestion', docs: { description: 'require interface keys to be sorted', recommended: 'stylistic', diff --git a/src/rules/string-enum.ts b/src/rules/string-enum.ts index 2ac8cae..ed29117 100644 --- a/src/rules/string-enum.ts +++ b/src/rules/string-enum.ts @@ -7,7 +7,7 @@ import { RuleOptionsGeneric, SortingOrder, sortingOrderOptionSchema, - SortingParamsOptions, + SortingParams, } from '../types' import { getObjectBody } from '../utils/ast' import { createRule, RuleMetaData } from '../utils/rule' @@ -22,7 +22,7 @@ export const name = 'string-enum' as const * @deprecated * The options this rule can take. */ -export type RuleOptions = RuleOptionsGeneric> +export type RuleOptions = RuleOptionsGeneric> const sortingParamsOptionSchema: JSONSchema4 = { type: 'object', @@ -66,7 +66,7 @@ type errorMessageKeys = keyof typeof errorMessages * The meta data for this rule. */ const meta: RuleMetaData = { - type: 'layout', + type: 'suggestion', docs: { description: 'require string enum members to be sorted', recommended: 'stylistic', diff --git a/src/types/options.ts b/src/types/options.ts index c94b5d8..3562f95 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -10,9 +10,7 @@ export const sortingOrderOptionSchema: JSONSchema4 = { type: 'string', } -export type SortingOrderOption = SortingOrder - -export interface SortingParamsOptions { +export interface SortingParams { readonly caseSensitive: boolean readonly natural: boolean readonly requiredFirst: boolean diff --git a/src/types/rule.ts b/src/types/rule.ts index 93d8aa1..d275e30 100644 --- a/src/types/rule.ts +++ b/src/types/rule.ts @@ -1,8 +1,5 @@ -import { SortingOrderOption, SortingParamsOptions } from './options' +import { SortingOrder, SortingParams } from './options' -export type RuleOptionsGeneric = - | [] - | [SortingOrderOption] - | [SortingOrderOption, Partial] +export type RuleOptionsGeneric = [] | [SortingOrder] | [SortingOrder, Partial] -export type AllRuleOptions = RuleOptionsGeneric +export type AllRuleOptions = RuleOptionsGeneric diff --git a/src/utils/reportUtils.ts b/src/utils/reportUtils.ts index 9f80eb4..91120a3 100644 --- a/src/utils/reportUtils.ts +++ b/src/utils/reportUtils.ts @@ -1,8 +1,6 @@ import { PLUGIN_NAME } from 'config/constants' -import { - name as enumRuleName, - nameDeprecated as enumRuleNameDeprecated, -} from 'rules/enum' +import { name as enumRuleName } from 'rules/enum' +import { name as enumRuleNameDeprecated } from 'rules/string-enum' import { NodePositionInfo, TSType } from 'types' import { getRuleDocsUrl } from './rule' @@ -52,7 +50,7 @@ export function getUnsortedInfo( export function getDeprecationMessage(name: string) { switch (name) { case enumRuleNameDeprecated: - return `DEPRECATED: see [${PLUGIN_NAME}/enum](${getRuleDocsUrl(enumRuleName)})` + return `DEPRECATED: see [${PLUGIN_NAME}/${enumRuleName}](${getRuleDocsUrl(enumRuleName)})` default: return '' } diff --git a/src/utils/sourcecode/index.ts b/src/utils/sourcecode/index.ts index c12fd42..4fcce52 100644 --- a/src/utils/sourcecode/index.ts +++ b/src/utils/sourcecode/index.ts @@ -1,5 +1,7 @@ -import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '@typescript-eslint/utils' import { Node, SourceCode } from 'types' + +import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '@typescript-eslint/utils' + import { getCommentsTextAfter, getCommentsTextBefore, @@ -11,6 +13,8 @@ import { getProcessedText } from './textHelpers' /** * Returns the text of the entire body, rebuilt from the source code in order given. + * Preserves location of comments in relation to members, and ensures line comments + * don't move and comment out other members. */ export function getFixedBodyText( sourceCode: SourceCode, diff --git a/tests/helpers/cases/index.ts b/tests/helpers/cases/index.ts index fe6318e..f099e92 100644 --- a/tests/helpers/cases/index.ts +++ b/tests/helpers/cases/index.ts @@ -11,7 +11,8 @@ export { processInvalidTestCase, processValidTestCase } from './process' /** * Helper for splitting up test cases by options and displaying info about which - * set of options the test is running with. Sacrifices some parallelizatiom for debuggability. + * set of options the test is running with. Sacrifices some parallelizatiom for + * powerful concise expression in test files. */ export function runCases( { @@ -24,11 +25,10 @@ export function runCases( runOptions: { withRequiredFirstOption: boolean; category: CaseCategory }, ) { const usedOptionsKeys = new Set(Object.keys(invalid).concat(Object.keys(valid))) + const ruleTester = new RuleTester(typescriptConfig) for (const optionsSetKey of usedOptionsKeys) { describe(optionsSetKey, () => { - const ruleTester = new RuleTester(typescriptConfig) - ruleTester.run(name, rule as unknown as Rule.RuleModule, { valid: processValidTestCase( { [optionsSetKey]: valid[optionsSetKey] }, diff --git a/tests/helpers/cases/preprocess.ts b/tests/helpers/cases/preprocess.ts index 2ff06c8..a2f2bce 100644 --- a/tests/helpers/cases/preprocess.ts +++ b/tests/helpers/cases/preprocess.ts @@ -40,6 +40,7 @@ function processErrorArgs( errorMessages.push(getCountErrorString(category, errorArgs.length)) for (const args of errorArgs) { + // At this point args is number or string[] if (Array.isArray(args)) { switch (args.length) { case 1: @@ -83,6 +84,7 @@ export function preProcessInvalidTestCases( return processedCases } +// Take from shape PreInvalidTestCase[] to InvalidTestCase[] function convertPreInvalidCasesToProcessed( cases: PreInvalidTestCaseList, category: CaseCategory, @@ -130,6 +132,7 @@ export function preProcessValidTestCases( return processedCases } +// Take from shape PreValidTestCase[] to ValidTestCase[] function convertPreValidCasesToProcessed( cases: string[], withRequiredFirstOption: boolean, diff --git a/tests/helpers/cases/types.ts b/tests/helpers/cases/types.ts index 859fdaf..6925c34 100644 --- a/tests/helpers/cases/types.ts +++ b/tests/helpers/cases/types.ts @@ -1,6 +1,7 @@ -import { OptionsSet, OptionsSetsKey } from '../options' import { RuleTester as ESLintRuleTester } from 'eslint' +import { OptionsSet, OptionsSetsKey } from '../options' + /* Types for processing test cases */ export type ValidTestCase = Omit & OptionsSet export type InvalidTestCase = Omit & @@ -8,7 +9,15 @@ export type InvalidTestCase = Omit /* Types for preprocessing test cases */ export type PreInvalidTestCaseList = (Omit & { - errors: Array | number + /** About errors prop + * A number or an array of 1-2 strings or a number + * - Number indicates overall how many errors in the entire body + * - Array of items: + * - 1 string array: corresponds to "at the end" error msg + * - 2 strings array: corresponds to "x should be before y" error msg + * - number entry: + */ + errors: Array<[string] | [string, string] | number> | number omitInferredErrorCount?: boolean })[] export type PreInvalidTestCaseObject = Partial< diff --git a/tests/helpers/options.ts b/tests/helpers/options.ts index ed50f82..e154680 100644 --- a/tests/helpers/options.ts +++ b/tests/helpers/options.ts @@ -1,4 +1,4 @@ -import { AllRuleOptions, SortingOrder, SortingParamsOptions } from '../../src/types' +import { AllRuleOptions, SortingOrder, SortingParams } from '../../src/types' export type OptionsSet = { /** @@ -75,7 +75,7 @@ export const optionsSetsWithRequiredFirst = { descendingSensitiveNonNaturalRequired: [ [ SortingOrder.Descending, - { caseSensitive: false, natural: true, requiredFirst: true }, + { caseSensitive: true, natural: false, requiredFirst: true }, ], ], noOptions: [[]], @@ -93,9 +93,9 @@ export const optionsSetsNoRequired: Record< return [ opts[0] as SortingOrder, Object.fromEntries( - Object.entries(opts[1] as SortingParamsOptions).filter( + Object.entries(opts[1] as SortingParams).filter( ([key]) => key !== 'requiredFirst', - ) as Array<[string, SortingParamsOptions[keyof SortingParamsOptions]]>, + ) as Array<[string, SortingParams[keyof SortingParams]]>, ), ] }), diff --git a/tests/rules/enum/enum.spec.ts b/tests/rules/enum/enum.spec.ts index a134418..6ceba02 100644 --- a/tests/rules/enum/enum.spec.ts +++ b/tests/rules/enum/enum.spec.ts @@ -386,11 +386,17 @@ const invalid: PreInvalidTestCaseObject = { output: 'enum U {b_="T", b="T", a="T"}', errors: [['a'], ['b', 'a']], }, + /* test sorted items stay in place */ { code: 'enum U {b_="T", c="T", C="T"}', output: 'enum U {c="T", C="T", b_="T"}', errors: [['b_'], ['C', 'b_']], }, + { + code: 'enum U {b_="T", C="T", c="T"}', + output: 'enum U {C="T", c="T", b_="T"}', + errors: [['b_'], ['c', 'b_']], + }, { code: 'enum U {$="T", _="T", A="T", a="T"}', output: 'enum U {A="T", a="T", _="T", $="T"}', diff --git a/tests/rules/interface/interface.spec.ts b/tests/rules/interface/interface.spec.ts index 9c5a7b7..3bbac2f 100644 --- a/tests/rules/interface/interface.spec.ts +++ b/tests/rules/interface/interface.spec.ts @@ -145,9 +145,9 @@ const valid: PreValidTestCaseObject = { 'interface U {c:T; a:T; b?:T;}', 'interface U {b_:T; b:T; a?:T;}', 'interface U {c:T; C:T; b_?:T;}', - 'interface U {11:T; 9:T; 1:T; 111?:T;}', + 'interface U {9:T; 11:T; 1:T; 111?:T;}', 'interface U {_:T; $:T; a?:T; A?:T;}', - "interface U {'11':T; 10:T; 12?:T; 2?:T; 1?:T;}", + "interface U {'11':T; 10:T; 2?:T; 12?:T; 1?:T;}", "interface U {è:T; À:T; 'Z':T; '#'?:T;}", ], } @@ -247,6 +247,13 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {a:T; c:{y:T; x:T;}, b:T;}', output: 'interface U {a:T; b:T; c:{y:T; x:T;};}', + /** + * This error structure kind of goes like: + * 2 errors in the body of U: c (which has 2 errors with x/y) and b/c + * + * Due to this structure we want to pass omitInferredErrorCount: true otherwise + * preprocessing will count them up differently + */ errors: [2, ['c'], 2, ['y'], ['x', 'y'], ['b', 'c']], omitInferredErrorCount: true, }, From 1a358b08a5b4dfe2110a1178301960aab329758b Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sat, 13 Apr 2024 04:38:19 -0700 Subject: [PATCH 14/26] sort keys --- tests/helpers/options.ts | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/helpers/options.ts b/tests/helpers/options.ts index e154680..8914bed 100644 --- a/tests/helpers/options.ts +++ b/tests/helpers/options.ts @@ -10,35 +10,34 @@ export type OptionsSet = { * Option sets by test category */ export const optionsSetsWithRequiredFirst = { - ascendingWithDefaults: [[], [SortingOrder.Ascending]], - ascendingSensitiveNonNaturalNotRequired: [ + ascendingInsensitiveNaturalNotRequired: [ [ SortingOrder.Ascending, - { caseSensitive: true, natural: false, requiredFirst: false }, + { caseSensitive: false, natural: true, requiredFirst: false }, ], ], - ascendingInsensitiveNonNaturalNotRequired: [ + ascendingInsensitiveNaturalRequired: [ [ SortingOrder.Ascending, - { caseSensitive: false, natural: false, requiredFirst: false }, + { caseSensitive: false, natural: true, requiredFirst: true }, ], ], - ascendingSensitiveNaturalNotRequired: [ + ascendingInsensitiveNonNaturalNotRequired: [ [ SortingOrder.Ascending, - { caseSensitive: true, natural: true, requiredFirst: false }, + { caseSensitive: false, natural: false, requiredFirst: false }, ], ], - ascendingInsensitiveNaturalNotRequired: [ + ascendingSensitiveNaturalNotRequired: [ [ SortingOrder.Ascending, - { caseSensitive: false, natural: true, requiredFirst: false }, + { caseSensitive: true, natural: true, requiredFirst: false }, ], ], - ascendingInsensitiveNaturalRequired: [ + ascendingSensitiveNonNaturalNotRequired: [ [ SortingOrder.Ascending, - { caseSensitive: false, natural: true, requiredFirst: true }, + { caseSensitive: true, natural: false, requiredFirst: false }, ], ], ascendingSensitiveNonNaturalRequired: [ @@ -47,29 +46,29 @@ export const optionsSetsWithRequiredFirst = { { caseSensitive: true, natural: false, requiredFirst: true }, ], ], - descendingWithDefaults: [[SortingOrder.Descending]], - descendingInsensitiveNonNaturalNotRequired: [ + ascendingWithDefaults: [[], [SortingOrder.Ascending]], + descendingInsensitiveNaturalNotRequired: [ [ SortingOrder.Descending, - { caseSensitive: false, natural: false, requiredFirst: false }, + { caseSensitive: false, natural: true, requiredFirst: false }, ], ], - descendingSensitiveNaturalNotRequired: [ + descendingInsensitiveNaturalRequired: [ [ SortingOrder.Descending, - { caseSensitive: true, natural: true, requiredFirst: false }, + { caseSensitive: false, natural: true, requiredFirst: true }, ], ], - descendingInsensitiveNaturalNotRequired: [ + descendingInsensitiveNonNaturalNotRequired: [ [ SortingOrder.Descending, - { caseSensitive: false, natural: true, requiredFirst: false }, + { caseSensitive: false, natural: false, requiredFirst: false }, ], ], - descendingInsensitiveNaturalRequired: [ + descendingSensitiveNaturalNotRequired: [ [ SortingOrder.Descending, - { caseSensitive: false, natural: true, requiredFirst: true }, + { caseSensitive: true, natural: true, requiredFirst: false }, ], ], descendingSensitiveNonNaturalRequired: [ @@ -78,6 +77,7 @@ export const optionsSetsWithRequiredFirst = { { caseSensitive: true, natural: false, requiredFirst: true }, ], ], + descendingWithDefaults: [[SortingOrder.Descending]], noOptions: [[]], } From 5f0ddb0d9165dcf2d15610d5fc7c906c13a3b5a8 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Fri, 19 Apr 2024 01:10:22 -0700 Subject: [PATCH 15/26] update config files --- .eslintrc.js | 1 - tsconfig.json | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 43c258d..cf8c783 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -58,7 +58,6 @@ module.exports = { ], settings: { 'import/resolver': { - node: true, typescript: true, }, }, diff --git a/tsconfig.json b/tsconfig.json index 90f6222..1b81418 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "allowJs": true, - "baseUrl": "src", + "baseUrl": ".", "checkJs": false, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, From 04657bcf31dc2b46cc470f95bb05cf59eb825e47 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Fri, 19 Apr 2024 01:21:48 -0700 Subject: [PATCH 16/26] Fix type inconsistencies/casting --- src/fixer.ts | 16 ++++------ src/plugin.ts | 35 +++++++++++----------- src/report.ts | 17 +++++++---- src/rules/enum.ts | 4 +-- src/rules/interface.ts | 4 +-- src/rules/string-enum.ts | 4 +-- src/types/node.ts | 7 +++-- src/types/report.ts | 4 +-- src/utils/ast.ts | 14 +++++---- src/utils/memo.ts | 2 +- src/utils/reportUtils.ts | 17 ++++------- src/utils/sourcecode/commentHelpers.ts | 19 ++++++------ src/utils/sourcecode/indentHelpers.ts | 4 +-- src/utils/sourcecode/index.ts | 7 ++--- src/utils/sourcecode/nodeHelpers.ts | 10 +++---- src/utils/sourcecode/punctuationHelpers.ts | 21 +++++++------ src/utils/sourcecode/textHelpers.ts | 14 +++++---- 17 files changed, 102 insertions(+), 97 deletions(-) diff --git a/src/fixer.ts b/src/fixer.ts index 5534591..5fa765f 100644 --- a/src/fixer.ts +++ b/src/fixer.ts @@ -1,34 +1,28 @@ import { TSESLint } from '@typescript-eslint/utils' import { ReportFixFunction } from '@typescript-eslint/utils/ts-eslint' -import { AllRuleOptions, CreateReporterArgs, Node, SourceCode, TSType } from './types' +import { AllRuleOptions, CreateReporterArgs, NodeOrToken, SourceCode } from './types' import { getMemoized, memoize } from './utils/memo' import { getBodyRange, getFixedBodyText } from './utils/sourcecode' export const getFixerFunction = ( baseMemoKey: string, createReporterArgs: Pick, 'context'>, - body: TSType[], - sortedBody: TSType[], + body: NodeOrToken[], + sortedBody: NodeOrToken[], ): ReportFixFunction => function* (fixer: TSESLint.RuleFixer) { const sourceCode = createReporterArgs.context.sourceCode as SourceCode const bodyRange = memoize(`bodyRange_${baseMemoKey}`, () => - getBodyRange(sourceCode, body as unknown as Node[]), + getBodyRange(sourceCode, body), ) const fixedBodyTextMemoKey = `fixedBodyText_${baseMemoKey}` // Replace the entire body with the sorted body const fixedBodyText = getMemoized(fixedBodyTextMemoKey) ?? - memoize(fixedBodyTextMemoKey, () => - getFixedBodyText( - sourceCode, - sortedBody as unknown as Node[], - body as unknown as Node[], - ), - ) + memoize(fixedBodyTextMemoKey, () => getFixedBodyText(sourceCode, sortedBody, body)) yield fixer.replaceTextRange(bodyRange, fixedBodyText) } diff --git a/src/plugin.ts b/src/plugin.ts index 77c373b..4928216 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -1,9 +1,13 @@ -import { TSESTree } from '@typescript-eslint/utils' - import { getOptions } from './common/options' import { getFixerFunction } from './fixer' import { reportBodyNodes, reportParentNode } from './report' -import { AllRuleOptions, CreateReporterArgs, NodePositionInfo, TSType } from './types' +import { + AllRuleOptions, + CreateReporterArgs, + Declaration, + NodeOrToken, + NodePositionInfo, +} from './types' import { getPropertyIsOptional, getPropertyName } from './utils/ast' import { compareFn } from './utils/compare' import { memoize } from './utils/memo' @@ -13,9 +17,9 @@ import { getUnsortedInfo } from './utils/reportUtils' * Returns the body sorted according to the options and sorting function. */ function getSortedBody( - body: TSType[], + body: NodeOrToken[], isRequiredFirst: boolean, - sortFunction: (a: TSType, b: TSType) => number, + sortFunction: (a: NodeOrToken, b: NodeOrToken) => number, ) { return isRequiredFirst ? [ @@ -39,11 +43,11 @@ export function createReporter( createReporterArgs.context, ) const compare = compareFn(isAscending, isInsensitive, isNatural) - const sortFunction = (a: TSType, b: TSType) => + const sortFunction = (a: NodeOrToken, b: NodeOrToken) => compare(getPropertyName(a), getPropertyName(b)) // Reporter function - return (bodyParent: TSESTree.Node, body: TSType[]) => { + return (bodyParent: Declaration, body: NodeOrToken[]) => { if (body.length < 2) { return } @@ -56,13 +60,13 @@ export function createReporter( source: sourceCode.getText(), // Disambiguator when same body on both a type and interface }) - const sortedBody: TSType[] = memoize(`sortedBody_${baseMemoKey}`, () => + const sortedBody = memoize(`sortedBody_${baseMemoKey}`, () => getSortedBody(body, isRequiredFirst, sortFunction), ) - const nodePositions: Map = memoize( + const nodePositions: Map = memoize( `nodePositions_${baseMemoKey}`, () => - new Map( + new Map( body.map((n, index) => [ n, { initialIndex: index, finalIndex: sortedBody.indexOf(n) }, @@ -80,14 +84,9 @@ export function createReporter( const fixerFunction = memoize(fixerFunctionMemoKey, () => getFixerFunction(baseMemoKey, createReporterArgs, body, sortedBody), ) - reportParentNode(createReporterArgs, bodyParent, unsortedCount, fixerFunction) - reportBodyNodes( - createReporterArgs, - nodePositions, - sortedBody, - finalIndicesToReport, - fixerFunction, - ) + + reportParentNode(createReporterArgs, bodyParent.loc, unsortedCount, fixerFunction) + reportBodyNodes(createReporterArgs, nodePositions, sortedBody, finalIndicesToReport) } } } diff --git a/src/report.ts b/src/report.ts index 1d93bd4..2d3dda9 100644 --- a/src/report.ts +++ b/src/report.ts @@ -4,7 +4,12 @@ import { TSESTree } from '@typescript-eslint/utils' import { ReportFixFunction } from '@typescript-eslint/utils/ts-eslint' import { getOptions } from './common/options' -import { AllRuleOptions, CreateReporterArgs, NodePositionInfo, TSType } from './types' +import { + AllRuleOptions, + CreateReporterArgs, + NodeOrToken, + NodePositionInfo, +} from './types' import { getPropertyName } from './utils/ast' import { getDeprecationMessage } from './utils/reportUtils' @@ -16,12 +21,12 @@ export function reportParentNode( CreateReporterArgs, 'createReportPropertiesObject' >, - bodyParent: TSESTree.Node, + _loc: TSESTree.SourceLocation, unsortedCount: number, fixerFunction: ReportFixFunction, ) { const { context, createReportParentObject } = createReporterArgs - const { loc, messageId } = createReportParentObject(bodyParent) + const { loc, messageId } = createReportParentObject(_loc) context.report({ loc, messageId, @@ -42,8 +47,8 @@ export function reportBodyNodes( CreateReporterArgs, 'createReportParentObject' >, - nodePositions: Map, - sortedBody: TSType[], + nodePositions: Map, + sortedBody: NodeOrToken[], finalIndicesToReport: boolean[], fixerFunction: ReportFixFunction, ) { @@ -54,7 +59,7 @@ export function reportBodyNodes( for (const [node, { finalIndex }] of nodePositions.entries()) { // If the node is not in the correct position, report it if (finalIndicesToReport[finalIndex]) { - const { loc, messageId } = createReportPropertiesObject(node) + const { loc, messageId } = createReportPropertiesObject(node.loc) // Sanity check assert(loc, 'createReportObject return value must include a node location') diff --git a/src/rules/enum.ts b/src/rules/enum.ts index 4622304..28d0fe8 100644 --- a/src/rules/enum.ts +++ b/src/rules/enum.ts @@ -82,11 +82,11 @@ export const rule = createRule({ create(context) { const compareNodeListAndReport = createReporter({ context, - createReportPropertiesObject: ({ loc }: TSESTree.Node) => ({ + createReportPropertiesObject: (loc: TSESTree.SourceLocation) => ({ loc, messageId: 'invalidOrderBody' as any, }), - createReportParentObject: ({ loc }: TSESTree.Node) => ({ + createReportParentObject: (loc: TSESTree.SourceLocation) => ({ loc, messageId: 'invalidOrderParent' as any, }), diff --git a/src/rules/interface.ts b/src/rules/interface.ts index 01d990b..9d47ffd 100644 --- a/src/rules/interface.ts +++ b/src/rules/interface.ts @@ -88,11 +88,11 @@ export const rule = createRule({ create(context) { const compareNodeListAndReport = createReporter({ context, - createReportPropertiesObject: ({ loc }: TSESTree.Node) => ({ + createReportPropertiesObject: (loc: TSESTree.SourceLocation) => ({ loc, messageId: 'invalidOrderBody' as any, }), - createReportParentObject: ({ loc }: TSESTree.Node) => ({ + createReportParentObject: (loc: TSESTree.SourceLocation) => ({ loc, messageId: 'invalidOrderParent' as any, }), diff --git a/src/rules/string-enum.ts b/src/rules/string-enum.ts index ed29117..42abe1b 100644 --- a/src/rules/string-enum.ts +++ b/src/rules/string-enum.ts @@ -88,11 +88,11 @@ export const rule = createRule({ create(context) { const compareNodeListAndReport = createReporter({ context, - createReportPropertiesObject: ({ loc }: TSESTree.Node) => ({ + createReportPropertiesObject: (loc: TSESTree.SourceLocation) => ({ loc, messageId: 'invalidOrderBody' as any, }), - createReportParentObject: ({ loc }: TSESTree.Node) => ({ + createReportParentObject: (loc: TSESTree.SourceLocation) => ({ loc, messageId: 'invalidOrderParent' as any, }), diff --git a/src/types/node.ts b/src/types/node.ts index acda1cb..1c7d523 100644 --- a/src/types/node.ts +++ b/src/types/node.ts @@ -1,5 +1,8 @@ import { TSESTree } from '@typescript-eslint/utils' -export type Node = Omit & { type: any; value: string } -export type TSType = TSESTree.TypeElement | TSESTree.TSEnumMember +export type NodeOrToken = (TSESTree.Node | TSESTree.Token) & { parent?: NodeOrToken } +export type Declaration = + | TSESTree.TSEnumDeclaration + | TSESTree.TSInterfaceDeclaration + | TSESTree.TSTypeLiteral export type NodePositionInfo = { initialIndex: number; finalIndex: number } diff --git a/src/types/report.ts b/src/types/report.ts index 5e1d8c0..8e4ac2f 100644 --- a/src/types/report.ts +++ b/src/types/report.ts @@ -1,7 +1,7 @@ import { TSESTree } from '@typescript-eslint/utils' import { - SourceCode as Lib_SourceCode, RuleContext as UtilRuleContext, + SourceCode as Lib_SourceCode, } from '@typescript-eslint/utils/ts-eslint' export type SourceCode = Lib_SourceCode & { @@ -9,7 +9,7 @@ export type SourceCode = Lib_SourceCode & { } export type ReportObjectCreator = ( - node: TSESTree.Node, + loc: TSESTree.SourceLocation, ) => { readonly loc: TSESTree.SourceLocation readonly messageId: MessageIds diff --git a/src/utils/ast.ts b/src/utils/ast.ts index 8217988..bc205d9 100644 --- a/src/utils/ast.ts +++ b/src/utils/ast.ts @@ -1,6 +1,7 @@ +import { NodeOrToken } from 'src/types' + import { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/utils' -import { TSType } from 'types' import { indexSignature } from './common' export function getObjectBody( @@ -18,7 +19,7 @@ export function getObjectBody( } } -function getProperty(node: TSESTree.Node) { +function getProperty(node: NodeOrToken) { switch (node.type) { case AST_NODE_TYPES.TSIndexSignature: { const [identifier] = node.parameters @@ -72,7 +73,7 @@ function getProperty(node: TSESTree.Node) { * let a = {[tag`b`]: 1} // => undefined * let a = {[`${b}`]: 1} // => undefined */ -export function getPropertyName(node: TSType) { +export function getPropertyName(node: NodeOrToken) { const property = getProperty(node as TSESTree.Node) switch (property?.type) { @@ -88,11 +89,14 @@ export function getPropertyName(node: TSType) { } // Returns whether a method or property signature is optional. -export function getPropertyIsOptional(node: TSType) { +export function getPropertyIsOptional(node: NodeOrToken) { switch (node.type) { case AST_NODE_TYPES.TSMethodSignature: case AST_NODE_TYPES.TSPropertySignature: - return Boolean(node.optional) + return Boolean( + (node as TSESTree.TSMethodSignature | TSESTree.TSPropertySignature).optional, + ) + default: return false } diff --git a/src/utils/memo.ts b/src/utils/memo.ts index 209fcdc..84b49aa 100644 --- a/src/utils/memo.ts +++ b/src/utils/memo.ts @@ -1,7 +1,7 @@ const memo: Record = {} // Getting strange test failures? Could be this! Disable and try again. -export function memoize(key: string, valueFn: () => any): any { +export function memoize(key: string, valueFn: () => T): T { if (hasMemoized(key)) { return memo[key] } diff --git a/src/utils/reportUtils.ts b/src/utils/reportUtils.ts index 91120a3..5784cba 100644 --- a/src/utils/reportUtils.ts +++ b/src/utils/reportUtils.ts @@ -1,9 +1,4 @@ -import { PLUGIN_NAME } from 'config/constants' -import { name as enumRuleName } from 'rules/enum' -import { name as enumRuleNameDeprecated } from 'rules/string-enum' -import { NodePositionInfo, TSType } from 'types' - -import { getRuleDocsUrl } from './rule' +import { NodeOrToken, NodePositionInfo } from '../types' /** * Check if the node is locally sorted or not. @@ -12,8 +7,8 @@ import { getRuleDocsUrl } from './rule' * before 'b' even though they're both positioned wrongly. */ export function shouldReportUnsorted( - sortedBody: TSType[], - unsortedBody: TSType[], + sortedBody: NodeOrToken[], + unsortedBody: NodeOrToken[], nodeInfo: NodePositionInfo, ) { const { initialIndex, finalIndex } = nodeInfo @@ -27,9 +22,9 @@ export function shouldReportUnsorted( // Helpful metadata on nodes to report/skip reporting export function getUnsortedInfo( - sortedBody: TSType[], - unsortedBody: TSType[], - nodePositions: Map, + sortedBody: NodeOrToken[], + unsortedBody: NodeOrToken[], + nodePositions: Map, ) { const finalIndicesToReport = new Array(sortedBody.length).fill(false) const unsortedCount = Array.from(nodePositions.entries()).reduce( diff --git a/src/utils/sourcecode/commentHelpers.ts b/src/utils/sourcecode/commentHelpers.ts index 7e186ce..653cef0 100644 --- a/src/utils/sourcecode/commentHelpers.ts +++ b/src/utils/sourcecode/commentHelpers.ts @@ -1,7 +1,6 @@ -import { Node, SourceCode } from 'types' - import { AST_NODE_TYPES, AST_TOKEN_TYPES, TSESTree } from '@typescript-eslint/utils' +import { NodeOrToken, SourceCode } from '../../types' import { getLatestNode } from './nodeHelpers' import { getDeclarationPunctuators, @@ -17,7 +16,7 @@ import { /** * Returns the text of the last comment in the body */ -export function getLastCommentText(sourceCode: SourceCode, body: Node[]) { +export function getLastCommentText(sourceCode: SourceCode, body: NodeOrToken[]) { const lastBodyNode = getLatestNode(body) const lastBodyNodeComments = getCommentsAfter(sourceCode, lastBodyNode) const latestCommentOrBodyNode = getLatestNode([...lastBodyNodeComments, lastBodyNode]) @@ -31,7 +30,7 @@ export function getLastCommentText(sourceCode: SourceCode, body: Node[]) { ...endComments, latestCommentOrBodyNode, getNodePunctuator(sourceCode, lastBodyNode), - ].filter(_ => !!_) as Node[], + ].filter(_ => !!_) as NodeOrToken[], ) const endWhitespace = getTextBetween(sourceCode, latestNode, declarationEndPunctuator) @@ -74,7 +73,7 @@ export function getCommentsText( } /* Get text of comments before a node, if any, with leading whitespace. */ -export function getCommentsTextBefore(sourceCode: SourceCode, node: Node) { +export function getCommentsTextBefore(sourceCode: SourceCode, node: NodeOrToken) { let commentText = getCommentsText(sourceCode, getCommentsBefore(sourceCode, node)) if (commentText) { @@ -86,7 +85,7 @@ export function getCommentsTextBefore(sourceCode: SourceCode, node: Node) { /* Get text of comments after a node, if any, with leading whitespace. */ export function getCommentsTextAfter( sourceCode: SourceCode, - node: Node, + node: NodeOrToken, type?: AST_TOKEN_TYPES.Line | AST_TOKEN_TYPES.Block, nextIndentation?: string, ) { @@ -105,7 +104,7 @@ export function getCommentsTextAfter( */ export function getCommentsBefore( sourceCode: SourceCode, - node: Node, + node: NodeOrToken, type?: AST_TOKEN_TYPES.Line | AST_TOKEN_TYPES.Block, ) { const prevNode = sourceCode.getTokenBefore(node, { includeComments: false }) @@ -115,7 +114,7 @@ export function getCommentsBefore( const nodeStartLine = node.loc.start.line const prevNodeEndLine = prevNode.loc.end.line - return comments.filter((comment: Node) => { + return comments.filter((comment: TSESTree.Comment) => { const commentStartLine = comment.loc.start.line // Special case when comment is on previous' line but prev is declaration punctuator @@ -134,7 +133,7 @@ export function getCommentsBefore( */ export function getCommentsAfter( sourceCode: SourceCode, - node: Node, + node: NodeOrToken, type?: AST_TOKEN_TYPES.Line | AST_TOKEN_TYPES.Block, ) { const nodeEndLine = node.loc.end.line @@ -152,7 +151,7 @@ export function getCommentsAfter( const nextNode = getNodeFollowingPunctuator(sourceCode, node) const nextNodeStartPos = nextNode?.range[0] ?? Infinity - const commentsAfter = comments.filter((comment: Node) => { + const commentsAfter = comments.filter((comment: TSESTree.Comment) => { const commentStartLine = comment.loc.start.line const commentEndPos = comment.range[1] const nextBeforeComments = nextNode ? getCommentsBefore(sourceCode, nextNode) : [] diff --git a/src/utils/sourcecode/indentHelpers.ts b/src/utils/sourcecode/indentHelpers.ts index a5c5371..8178f14 100644 --- a/src/utils/sourcecode/indentHelpers.ts +++ b/src/utils/sourcecode/indentHelpers.ts @@ -1,4 +1,4 @@ -import { Node, SourceCode } from 'types' +import { NodeOrToken, SourceCode } from '../../types' import { getCommentsBefore } from './commentHelpers' import { getEarliestNode } from './nodeHelpers' import { getTextBetweenNodeAndPrevious } from './textHelpers' @@ -6,7 +6,7 @@ import { getTextBetweenNodeAndPrevious } from './textHelpers' /** * Returns a map from index of source code to indentation string. */ -export function getIndentationMap(sourceCode: SourceCode, body: Node[]) { +export function getIndentationMap(sourceCode: SourceCode, body: NodeOrToken[]) { return new Map( body.map((node, nodeIndex) => { // Special case: block comment in between two nodes diff --git a/src/utils/sourcecode/index.ts b/src/utils/sourcecode/index.ts index 4fcce52..13efe3a 100644 --- a/src/utils/sourcecode/index.ts +++ b/src/utils/sourcecode/index.ts @@ -1,7 +1,6 @@ -import { Node, SourceCode } from 'types' - import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '@typescript-eslint/utils' +import { NodeOrToken, SourceCode } from '../../types' import { getCommentsTextAfter, getCommentsTextBefore, @@ -18,8 +17,8 @@ import { getProcessedText } from './textHelpers' */ export function getFixedBodyText( sourceCode: SourceCode, - bodyToEmit: Node[], - originalBody: Node[], + bodyToEmit: NodeOrToken[], + originalBody: NodeOrToken[], ) { // Indents from original body const indentations = getIndentationMap(sourceCode, originalBody) diff --git a/src/utils/sourcecode/nodeHelpers.ts b/src/utils/sourcecode/nodeHelpers.ts index f105c2a..dea98be 100644 --- a/src/utils/sourcecode/nodeHelpers.ts +++ b/src/utils/sourcecode/nodeHelpers.ts @@ -1,9 +1,9 @@ -import { Node, SourceCode } from 'types' +import { NodeOrToken, SourceCode } from '../../types' /** * Returns the node with the highest range in the list */ -export function getLatestNode(body: Node[]) { +export function getLatestNode(body: NodeOrToken[]) { return body.reduce((acc, node) => { return node.range[1] >= acc.range[1] ? node : acc }, body[0]) @@ -12,17 +12,17 @@ export function getLatestNode(body: Node[]) { /** * Returns the node with the lowest range in the list */ -export function getEarliestNode(body: Node[]) { +export function getEarliestNode(body: NodeOrToken[]) { return body.reduce((acc, node) => { return node.range[1] <= acc.range[0] ? node : acc }, body[0]) } -export function getNextNonCommentNode(sourceCode: SourceCode, node: Node) { +export function getNextNonCommentNode(sourceCode: SourceCode, node: NodeOrToken) { const nextNode = sourceCode.getTokenAfter(node, { includeComments: false }) return nextNode ?? undefined } -export function getPreviousNonCommentNode(sourceCode: SourceCode, node: Node) { +export function getPreviousNonCommentNode(sourceCode: SourceCode, node: NodeOrToken) { const prevNode = sourceCode.getTokenBefore(node, { includeComments: false }) return prevNode ?? undefined } diff --git a/src/utils/sourcecode/punctuationHelpers.ts b/src/utils/sourcecode/punctuationHelpers.ts index c8c12f5..0117deb 100644 --- a/src/utils/sourcecode/punctuationHelpers.ts +++ b/src/utils/sourcecode/punctuationHelpers.ts @@ -1,8 +1,8 @@ import assert from 'assert' -import { Node, SourceCode } from 'types' -import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '@typescript-eslint/utils' +import { AST_NODE_TYPES, AST_TOKEN_TYPES, TSESTree } from '@typescript-eslint/utils' +import { NodeOrToken, SourceCode } from '../../types' import { getEarliestNode, getLatestNode, @@ -15,7 +15,7 @@ import { */ export function getNodePunctuator( sourceCode: SourceCode, - node: Node, + node: NodeOrToken, punctuators = ',;', ) { // interface/type member nodes contain their own punctuation @@ -24,10 +24,10 @@ export function getNodePunctuator( } const punctuator = sourceCode.getTokenAfter(node, { - filter: (n: Node) => { + filter: (n: NodeOrToken) => { return ( n.type === AST_TOKEN_TYPES.Punctuator && - new RegExp(`^[${punctuators}]$`).test(n.value) + new RegExp(`^[${punctuators}]$`).test((n as TSESTree.PunctuatorToken).value) ) }, includeComments: false, @@ -43,7 +43,7 @@ export function getNodePunctuator( * Returns the non-comment node following the given node's punctuation node, if any. * Ex: For `foo: T, bar: T`, returns `bar: T` node given `foo: T,` node. */ -export function getNodeFollowingPunctuator(sourceCode: SourceCode, node: Node) { +export function getNodeFollowingPunctuator(sourceCode: SourceCode, node: NodeOrToken) { const punctuator = getNodePunctuator(sourceCode, node) if (!punctuator) return undefined return getNextNonCommentNode(sourceCode, punctuator) @@ -53,7 +53,7 @@ export function getNodeFollowingPunctuator(sourceCode: SourceCode, node: Node) { * Returns the nodes for outer bracket punctuators of an interface or enum declaration. * Asserts that the punctuators exist due to use of non-null operator. */ -export function getDeclarationPunctuators(sourceCode: SourceCode, body: Node[]) { +export function getDeclarationPunctuators(sourceCode: SourceCode, body: NodeOrToken[]) { const startNode = getEarliestNode(body) // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const declarationStartPunctuator = getPreviousNonCommentNode(sourceCode, startNode)! @@ -74,11 +74,14 @@ export function getDeclarationPunctuators(sourceCode: SourceCode, body: Node[]) } // Returns a string containing the node's punctuation, if any. -export function getPunctuation(node: Node) { +export function getPunctuation(node: NodeOrToken) { return node.type === AST_NODE_TYPES.TSEnumMember ? ',' : ';' } -export function getBodyRange(sourceCode: SourceCode, body: Node[]): [number, number] { +export function getBodyRange( + sourceCode: SourceCode, + body: NodeOrToken[], +): [number, number] { const { declarationStartPunctuator, declarationEndPunctuator } = getDeclarationPunctuators(sourceCode, body) // Adjust start range ahead of the punctuator diff --git a/src/utils/sourcecode/textHelpers.ts b/src/utils/sourcecode/textHelpers.ts index 20dc27d..75f0764 100644 --- a/src/utils/sourcecode/textHelpers.ts +++ b/src/utils/sourcecode/textHelpers.ts @@ -1,10 +1,10 @@ -import { Node, SourceCode } from 'types' +import { NodeOrToken, SourceCode } from '../../types' /** * Returns text between the node and previous (previous may be a comment). * Empty result if no previous node. */ -export function getTextBetweenNodeAndPrevious(sourceCode: SourceCode, node: Node) { +export function getTextBetweenNodeAndPrevious(sourceCode: SourceCode, node: NodeOrToken) { const prevNode = sourceCode.getTokenBefore(node, { includeComments: true }) if (!prevNode) return '' @@ -15,7 +15,7 @@ export function getTextBetweenNodeAndPrevious(sourceCode: SourceCode, node: Node * Returns text between the node and next (next may be a comment). * Empty result if no next node. */ -export function getTextBetweenNodeAndNext(sourceCode: SourceCode, node: Node) { +export function getTextBetweenNodeAndNext(sourceCode: SourceCode, node: NodeOrToken) { const nextNode = sourceCode.getTokenAfter(node, { includeComments: true }) if (!nextNode) return '' @@ -25,7 +25,7 @@ export function getTextBetweenNodeAndNext(sourceCode: SourceCode, node: Node) { /** * Returns the node with proper punctuation. */ -export function getProcessedText(sourceCode: SourceCode, node: Node) { +export function getProcessedText(sourceCode: SourceCode, node: NodeOrToken) { const nodeText = sourceCode.getText(node) if (/[,;]$/.test(nodeText)) { @@ -40,7 +40,11 @@ export function getProcessedText(sourceCode: SourceCode, node: Node) { * Range of start/end is from the comments between the nodes, if any. If a * given node is a comment, the respective range is from the comment itself. */ -export function getTextBetween(sourceCode: SourceCode, startNode: Node, endNode: Node) { +export function getTextBetween( + sourceCode: SourceCode, + startNode: NodeOrToken, + endNode: NodeOrToken, +) { const startNodeEnd = startNode.range[1] const endNodeStart = endNode.range[0] From ff6033a0dadc1d9d2a7041d1b7583de58abf2b5d Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Fri, 19 Apr 2024 01:26:14 -0700 Subject: [PATCH 17/26] Fix circular dependency with rule names --- src/config/constants.ts | 6 ++++++ src/report.ts | 6 ++---- src/rules/enum.ts | 3 ++- src/rules/interface.ts | 3 ++- src/rules/string-enum.ts | 4 +++- src/types/error.ts | 4 ++-- src/utils/reportUtils.ts | 5 +++-- 7 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/config/constants.ts b/src/config/constants.ts index f5ab11d..5971e12 100644 --- a/src/config/constants.ts +++ b/src/config/constants.ts @@ -1 +1,7 @@ export const PLUGIN_NAME = 'typescript-sort-keys' + +export enum RuleNames { + Enum = 'enum', + StringEnum = 'string-enum', + Interface = 'interface', +} diff --git a/src/report.ts b/src/report.ts index 2d3dda9..3a81591 100644 --- a/src/report.ts +++ b/src/report.ts @@ -30,10 +30,9 @@ export function reportParentNode( context.report({ loc, messageId, - node: bodyParent, data: { unsortedCount, - notice: getDeprecationMessage(context.id), + notice: getDeprecationMessage(context.id.split('/').at(-1)!), }, fix: fixerFunction, }) @@ -50,12 +49,12 @@ export function reportBodyNodes( nodePositions: Map, sortedBody: NodeOrToken[], finalIndicesToReport: boolean[], - fixerFunction: ReportFixFunction, ) { const { context, createReportPropertiesObject } = createReporterArgs const { isInsensitive, isNatural, isRequiredFirst, order } = getOptions( createReporterArgs.context, ) + for (const [node, { finalIndex }] of nodePositions.entries()) { // If the node is not in the correct position, report it if (finalIndicesToReport[finalIndex]) { @@ -88,7 +87,6 @@ export function reportBodyNodes( options: optionsString, notice: getDeprecationMessage(context.id), }, - fix: fixerFunction, }) } } diff --git a/src/rules/enum.ts b/src/rules/enum.ts index 28d0fe8..4b53ecd 100644 --- a/src/rules/enum.ts +++ b/src/rules/enum.ts @@ -1,6 +1,7 @@ import { TSESTree } from '@typescript-eslint/utils' import { JSONSchema4 } from '@typescript-eslint/utils/json-schema' +import { RuleNames } from '../config/constants' import { createReporter } from '../plugin' import { ErrorMessage, @@ -15,7 +16,7 @@ import { createRule, RuleMetaData } from '../utils/rule' /** * The name of this rule. */ -export const name = 'enum' as const +export const name = RuleNames.Enum as const /** * The options this rule can take. diff --git a/src/rules/interface.ts b/src/rules/interface.ts index 9d47ffd..7fb6de2 100644 --- a/src/rules/interface.ts +++ b/src/rules/interface.ts @@ -1,6 +1,7 @@ import { TSESTree } from '@typescript-eslint/utils' import { JSONSchema4 } from '@typescript-eslint/utils/json-schema' +import { RuleNames } from '../config/constants' import { createReporter } from '../plugin' import { ErrorMessage, @@ -15,7 +16,7 @@ import { createRule, RuleMetaData } from '../utils/rule' /** * The name of this rule. */ -export const name = 'interface' as const +export const name = RuleNames.Interface as const /** * The options this rule can take. diff --git a/src/rules/string-enum.ts b/src/rules/string-enum.ts index 42abe1b..a3b47cf 100644 --- a/src/rules/string-enum.ts +++ b/src/rules/string-enum.ts @@ -1,6 +1,7 @@ import { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/utils' import { JSONSchema4 } from '@typescript-eslint/utils/json-schema' +import { RuleNames } from '../config/constants' import { createReporter } from '../plugin' import { ErrorMessage, @@ -16,7 +17,7 @@ import { createRule, RuleMetaData } from '../utils/rule' * @deprecated * The name of this rule. */ -export const name = 'string-enum' as const +export const name = RuleNames.StringEnum as const /** * @deprecated @@ -74,6 +75,7 @@ const meta: RuleMetaData = { messages: errorMessages, fixable: 'code', schema, + deprecated: true, } /** diff --git a/src/types/error.ts b/src/types/error.ts index 417887b..42659bd 100644 --- a/src/types/error.ts +++ b/src/types/error.ts @@ -1,6 +1,6 @@ export enum ErrorMessage { InterfaceParentInvalidOrder = `Found {{ unsortedCount }} keys out of order.`, - EnumParentInvalidOrder = `{{ notice }}Found {{ unsortedCount }} members out of order.`, + EnumParentInvalidOrder = `Found {{ unsortedCount }} members out of order.{{ notice }}`, InterfaceInvalidOrder = `Expected interface keys to be in {{ order }}ending {{ options }}order. '{{ nodeName }}' should be {{ messageShouldBeWhere }}. Run autofix to sort entire body.`, - EnumInvalidOrder = `{{ notice }}Expected enum members to be in {{ order }}ending {{ options }}order. '{{ nodeName }}' should be {{ messageShouldBeWhere }}. Run autofix to sort entire body.`, + EnumInvalidOrder = `Expected enum members to be in {{ order }}ending {{ options }}order. '{{ nodeName }}' should be {{ messageShouldBeWhere }}. Run autofix to sort entire body.{{ notice }}`, } diff --git a/src/utils/reportUtils.ts b/src/utils/reportUtils.ts index 5784cba..27f3656 100644 --- a/src/utils/reportUtils.ts +++ b/src/utils/reportUtils.ts @@ -1,3 +1,4 @@ +import { PLUGIN_NAME, RuleNames } from '../config/constants' import { NodeOrToken, NodePositionInfo } from '../types' /** @@ -44,8 +45,8 @@ export function getUnsortedInfo( // Return string with url to notify of rule deprecations export function getDeprecationMessage(name: string) { switch (name) { - case enumRuleNameDeprecated: - return `DEPRECATED: see [${PLUGIN_NAME}/${enumRuleName}](${getRuleDocsUrl(enumRuleName)})` + case RuleNames.StringEnum: + return `\nThis rule is deprecated. Use \`${PLUGIN_NAME}/${RuleNames.Enum}\` instead. See docs for more info.` default: return '' } From bd6c0e6295812cc84e7e614d988a38692af92954 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Fri, 19 Apr 2024 01:55:24 -0700 Subject: [PATCH 18/26] update deprecation notice --- src/utils/reportUtils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/reportUtils.ts b/src/utils/reportUtils.ts index 27f3656..9bb0272 100644 --- a/src/utils/reportUtils.ts +++ b/src/utils/reportUtils.ts @@ -46,7 +46,7 @@ export function getUnsortedInfo( export function getDeprecationMessage(name: string) { switch (name) { case RuleNames.StringEnum: - return `\nThis rule is deprecated. Use \`${PLUGIN_NAME}/${RuleNames.Enum}\` instead. See docs for more info.` + return `\nThis rule is deprecated. Use \`${PLUGIN_NAME}/${RuleNames.Enum}\` instead.` default: return '' } From c4c740bed7574fdce345feaba4a0c4f39cefebf7 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Fri, 19 Apr 2024 02:46:58 -0700 Subject: [PATCH 19/26] dont report partially sorted members --- src/utils/reportUtils.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/utils/reportUtils.ts b/src/utils/reportUtils.ts index 9bb0272..228839a 100644 --- a/src/utils/reportUtils.ts +++ b/src/utils/reportUtils.ts @@ -12,13 +12,16 @@ export function shouldReportUnsorted( unsortedBody: NodeOrToken[], nodeInfo: NodePositionInfo, ) { - const { initialIndex, finalIndex } = nodeInfo - const isLastSorted = finalIndex === sortedBody.length - 1 - // Node moved and next sorted node isn't the same neighbor as unsorted - return ( - initialIndex !== finalIndex && - (isLastSorted || sortedBody[finalIndex + 1] !== unsortedBody[initialIndex + 1]) - ) + const { initialIndex: unsortedIndex, finalIndex: sortedIndex } = nodeInfo + const isLastInSorted = sortedIndex === sortedBody.length - 1 + const nextSortedNode = sortedBody[sortedIndex + 1] + const nextUnsortedNode = unsortedBody[unsortedIndex + 1] + // is sorted directly with a neighbor or partially sorted (e.g. a B D F E only 2 out of order) + const isPartiallySorted = + nextSortedNode === nextUnsortedNode || + unsortedBody.indexOf(nextSortedNode) > unsortedIndex + + return unsortedIndex !== sortedIndex && (isLastInSorted || !isPartiallySorted) } // Helpful metadata on nodes to report/skip reporting From e9137aea29411d8d1b82f074915cabab8c102e96 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sun, 21 Apr 2024 01:03:54 -0700 Subject: [PATCH 20/26] update tests for partial sort reporting tweak --- tests/rules/enum/enum-big.spec.ts | 2 +- tests/rules/enum/enum.spec.ts | 90 +++---------- tests/rules/enum/string-enum.spec.ts | 57 +++------ tests/rules/interface/interface.spec.ts | 163 ++++++------------------ 4 files changed, 77 insertions(+), 235 deletions(-) diff --git a/tests/rules/enum/enum-big.spec.ts b/tests/rules/enum/enum-big.spec.ts index 4cf20b1..16475c6 100644 --- a/tests/rules/enum/enum-big.spec.ts +++ b/tests/rules/enum/enum-big.spec.ts @@ -25,7 +25,7 @@ const invalid: PreInvalidTestCaseObject = { { code: invalidBigTestCode, output: validBigTestCode, - errors: 328, + errors: 167, }, ], } diff --git a/tests/rules/enum/enum.spec.ts b/tests/rules/enum/enum.spec.ts index 6ceba02..d16dfae 100644 --- a/tests/rules/enum/enum.spec.ts +++ b/tests/rules/enum/enum.spec.ts @@ -135,10 +135,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {a="a", _="b", b="c"}', output: 'enum U {_="b", a="a", b="c"}', - errors: [ - ['a', 'b'], - ['_', 'a'], - ], + errors: [['_', 'a']], }, { code: 'enum U {a="T", c="T", b="T"}', @@ -158,26 +155,17 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {$="T", _="T", A="T", a="T"}', output: 'enum U {$="T", A="T", _="T", a="T"}', - errors: [ - ['_', 'a'], - ['A', '_'], - ], + errors: [['A', '_']], }, { code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: [ - ['À', 'è'], - ['Z', 'À'], - ], + errors: [['Z', 'À']], }, { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', - errors: [ - ['a', 'b'], - ['_', 'a'], - ], + errors: [['_', 'a']], }, { code: 'enum U {a="T", c="T", b="T"}', @@ -197,18 +185,12 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {$="T", _="T", A="T", a="T"}', output: 'enum U {$="T", A="T", _="T", a="T"}', - errors: [ - ['_', 'a'], - ['A', '_'], - ], + errors: [['A', '_']], }, { code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: [ - ['À', 'è'], - ['Z', 'À'], - ], + errors: [['Z', 'À']], }, /** * not ignore simple computed properties. @@ -216,20 +198,14 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {a="T", b="T", ["aa"]="T", c="T"}', output: 'enum U {a="T", ["aa"]="T", b="T", c="T"}', - errors: [ - ['b', 'c'], - ['aa', 'b'], - ], + errors: [['aa', 'b']], }, ], ascendingInsensitiveNonNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', - errors: [ - ['a', 'b'], - ['_', 'a'], - ], + errors: [['_', 'a']], }, { code: 'enum U {c="T", a="T", b="T"}', @@ -244,28 +220,19 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {$="T", A="T", _="T", a="T"}', output: 'enum U {$="T", _="T", A="T", a="T"}', - errors: [ - ['A', 'a'], - ['_', 'A'], - ], + errors: [['_', 'A']], }, { code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: [ - ['À', 'è'], - ['Z', 'À'], - ], + errors: [['Z', 'À']], }, ], ascendingSensitiveNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', - errors: [ - ['a', 'b'], - ['_', 'a'], - ], + errors: [['_', 'a']], }, { code: 'enum U {a="T", c="T", b="T"}', @@ -285,28 +252,19 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {$="T", A="T", _="T", a="T"}', output: 'enum U {$="T", _="T", A="T", a="T"}', - errors: [ - ['A', 'a'], - ['_', 'A'], - ], + errors: [['_', 'A']], }, { code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: [ - ['À', 'è'], - ['Z', 'À'], - ], + errors: [['Z', 'À']], }, ], ascendingInsensitiveNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', - errors: [ - ['a', 'b'], - ['_', 'a'], - ], + errors: [['_', 'a']], }, { code: 'enum U {a="T", c="T", b="T"}', @@ -321,18 +279,12 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {$="T", A="T", _="T", a="T"}', output: 'enum U {$="T", _="T", A="T", a="T"}', - errors: [ - ['A', 'a'], - ['_', 'A'], - ], + errors: [['_', 'A']], }, { code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: [ - ['À', 'è'], - ['Z', 'À'], - ], + errors: [['Z', 'À']], }, ], descendingWithDefaults: [ @@ -354,10 +306,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {b_="T", c="T", C="T"}', output: 'enum U {c="T", b_="T", C="T"}', - errors: [ - ['b_', 'C'], - ['c', 'b_'], - ], + errors: [['c', 'b_']], }, { code: 'enum U {$="T", _="T", A="T", a="T"}', @@ -427,10 +376,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {b_="T", c="T", C="T"}', output: 'enum U {c="T", b_="T", C="T"}', - errors: [ - ['b_', 'C'], - ['c', 'b_'], - ], + errors: [['c', 'b_']], }, { code: 'enum U {$="T", _="T", A="T", a="T"}', diff --git a/tests/rules/enum/string-enum.spec.ts b/tests/rules/enum/string-enum.spec.ts index 951ad42..17ddb84 100644 --- a/tests/rules/enum/string-enum.spec.ts +++ b/tests/rules/enum/string-enum.spec.ts @@ -131,7 +131,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {a="a", _="b", b="c"}', output: 'enum U {_="b", a="a", b="c"}', - errors: 3, + errors: 2, }, { code: 'enum U {a="T", c="T", b="T"}', @@ -151,42 +151,17 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {$="T", _="T", A="T", a="T"}', output: 'enum U {$="T", A="T", _="T", a="T"}', - errors: 3, + errors: 2, }, { code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: 3, + errors: 2, }, { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', - errors: 3, - }, - { - code: 'enum U {a="T", c="T", b="T"}', - output: 'enum U {a="T", b="T", c="T"}', - errors: 3, - }, - { - code: 'enum U {b_="T", a="T", b="T"}', - output: 'enum U {a="T", b="T", b_="T"}', - errors: 3, - }, - { - code: 'enum U {b_="T", c="T", C="T"}', - output: 'enum U {C="T", b_="T", c="T"}', - errors: 3, - }, - { - code: 'enum U {$="T", _="T", A="T", a="T"}', - output: 'enum U {$="T", A="T", _="T", a="T"}', - errors: 3, - }, - { - code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", - output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: 3, + errors: 2, }, /** * not ignore simple computed properties. @@ -194,14 +169,14 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {a="T", b="T", ["aa"]="T", c="T"}', output: 'enum U {a="T", ["aa"]="T", b="T", c="T"}', - errors: 3, + errors: 2, }, ], ascendingInsensitiveNonNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', - errors: 3, + errors: 2, }, { code: 'enum U {c="T", a="T", b="T"}', @@ -216,19 +191,19 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {$="T", A="T", _="T", a="T"}', output: 'enum U {$="T", _="T", A="T", a="T"}', - errors: 3, + errors: 2, }, { code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: 3, + errors: 2, }, ], ascendingSensitiveNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', - errors: 3, + errors: 2, }, { code: 'enum U {a="T", c="T", b="T"}', @@ -248,19 +223,19 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {$="T", A="T", _="T", a="T"}', output: 'enum U {$="T", _="T", A="T", a="T"}', - errors: 3, + errors: 2, }, { code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: 3, + errors: 2, }, ], ascendingInsensitiveNaturalNotRequired: [ { code: 'enum U {a="T", _="T", b="T"}', output: 'enum U {_="T", a="T", b="T"}', - errors: 3, + errors: 2, }, { code: 'enum U {a="T", c="T", b="T"}', @@ -275,12 +250,12 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {$="T", A="T", _="T", a="T"}', output: 'enum U {$="T", _="T", A="T", a="T"}', - errors: 3, + errors: 2, }, { code: "enum U {'#'='T', À='T', 'Z'='T', è='T'}", output: "enum U {'#'='T', 'Z'='T', À='T', è='T'}", - errors: 3, + errors: 2, }, ], descendingWithDefaults: [ @@ -302,7 +277,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {b_="T", c="T", C="T"}', output: 'enum U {c="T", b_="T", C="T"}', - errors: 3, + errors: 2, }, { code: 'enum U {$="T", _="T", A="T", a="T"}', @@ -366,7 +341,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'enum U {b_="T", c="T", C="T"}', output: 'enum U {c="T", b_="T", C="T"}', - errors: 3, + errors: 2, }, { code: 'enum U {$="T", _="T", A="T", a="T"}', diff --git a/tests/rules/interface/interface.spec.ts b/tests/rules/interface/interface.spec.ts index 3bbac2f..5de0a47 100644 --- a/tests/rules/interface/interface.spec.ts +++ b/tests/rules/interface/interface.spec.ts @@ -89,7 +89,7 @@ const valid: PreValidTestCaseObject = { 'interface U {a:T; _:T; A:T; $:T;}', "interface U {A:T; 2:T; '11':T; 1:T;}", "interface U {è:T; À:T; 'Z':T; '#':T;}", - `interface U { a: T; _: T; A: T; $: T; [skey: string]: T; [nkey: number]: T; }`, + 'interface U { a: T; _: T; A: T; $: T; [skey: string]: T; [nkey: number]: T; }', ], descendingInsensitiveNonNaturalNotRequired: [ 'interface U {b:T; a:T; _:T;}', @@ -110,6 +110,7 @@ const valid: PreValidTestCaseObject = { 'interface U {a:T; A:T; _:T; $:T;}', "interface U {A:T; '11':T; 2:T; 1:T;}", "interface U {è:T; À:T; 'Z':T; '#':T;}", + 'interface U {a?:T; A:T; _:T; $:T;}', ], descendingInsensitiveNaturalNotRequired: [ 'interface U {b:T; a:T; _:T;}', @@ -139,6 +140,7 @@ const valid: PreValidTestCaseObject = { 'interface U {_:T; $:T; a?:T; A?:T;}', "interface U { A:T; '11':T; 1:T; 2?:T;}", "interface U {è:T; 'Z':T; À?:T; '#'?:T;}", + 'interface U {A:T; _:T; $:T; a?:T;}', ], descendingSensitiveNonNaturalRequired: [ 'interface U {b:T; _:T; a?:T;}', @@ -157,10 +159,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U { A: T; [skey: string]: T; _: T; }', output: 'interface U { [skey: string]: T; A: T; _: T; }', - errors: [ - ['A', '_'], - ['[index: skey]', 'A'], - ], + errors: [['[index: skey]', 'A']], }, ], ascendingSensitiveNonNaturalNotRequired: [ @@ -187,10 +186,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {a:T; _:T; b:T;}', output: 'interface U {_:T; a:T; b:T;}', - errors: [ - ['a', 'b'], - ['_', 'a'], - ], + errors: [['_', 'a']], }, { code: 'interface U {a:T; c:T; b:T;}', @@ -200,18 +196,12 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {$:T; _:T; A:T; a:T;}', output: 'interface U {$:T; A:T; _:T; a:T;}', - errors: [ - ['_', 'a'], - ['A', '_'], - ], + errors: [['A', '_']], }, { code: "interface U {'#':T; À:T; 'Z':T; è:T;}", output: "interface U {'#':T; 'Z':T; À:T; è:T;}", - errors: [ - ['À', 'è'], - ['Z', 'À'], - ], + errors: [['Z', 'À']], }, /** * methods @@ -224,10 +214,7 @@ const invalid: PreInvalidTestCaseObject = { { code: "interface U {'#'():T; À():T; 'Z':T; è:T;}", output: "interface U {'#'():T; 'Z':T; À():T; è:T;}", - errors: [ - ['À', 'è'], - ['Z', 'À'], - ], + errors: [['Z', 'À']], }, /** * not ignore simple computed properties. @@ -235,10 +222,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {a:T; b:T; ["a"]:T; c:T;}', output: 'interface U {a:T; ["a"]:T; b:T; c:T;}', - errors: [ - ['b', 'c'], - ['a', 'b'], - ], + errors: [['a', 'b']], }, /** * nested @@ -268,10 +252,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {a:T; _:T; b:T;}', output: 'interface U {_:T; a:T; b:T;}', - errors: [ - ['a', 'b'], - ['_', 'a'], - ], + errors: [['_', 'a']], }, { code: 'interface U {a:T; c:T; b:T;}', @@ -286,10 +267,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {$:T; A:T; _:T; a:T;}', output: 'interface U {$:T; _:T; A:T; a:T;}', - errors: [ - ['A', 'a'], - ['_', 'A'], - ], + errors: [['_', 'A']], }, { code: "interface U {1:T; 2:T; A:T; '11':T;}", @@ -299,20 +277,14 @@ const invalid: PreInvalidTestCaseObject = { { code: "interface U {'#':T; À:T; 'Z':T; è:T;}", output: "interface U {'#':T; 'Z':T; À:T; è:T;}", - errors: [ - ['À', 'è'], - ['Z', 'À'], - ], + errors: [['Z', 'À']], }, ], ascendingSensitiveNaturalNotRequired: [ { code: 'interface U {a:T; _:T; b:T;}', output: 'interface U {_:T; a:T; b:T;}', - errors: [ - ['a', 'b'], - ['_', 'a'], - ], + errors: [['_', 'a']], }, { code: 'interface U {a:T; c:T; b:T;}', @@ -332,10 +304,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {$:T; A:T; _:T; a:T;}', output: 'interface U {$:T; _:T; A:T; a:T;}', - errors: [ - ['A', 'a'], - ['_', 'A'], - ], + errors: [['_', 'A']], }, { code: "interface U {1:T; 2:T; A:T; '11':T;}", @@ -345,20 +314,14 @@ const invalid: PreInvalidTestCaseObject = { { code: "interface U {'#':T; À:T; 'Z':T; è:T;}", output: "interface U {'#':T; 'Z':T; À:T; è:T;}", - errors: [ - ['À', 'è'], - ['Z', 'À'], - ], + errors: [['Z', 'À']], }, ], ascendingInsensitiveNaturalNotRequired: [ { code: 'interface U {a:T; _:T; b:T;}', output: 'interface U {_:T; a:T; b:T;}', - errors: [ - ['a', 'b'], - ['_', 'a'], - ], + errors: [['_', 'a']], }, { code: 'interface U {a:T; c:T; b:T;}', @@ -373,26 +336,17 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {$:T; A:T; _:T; a:T;}', output: 'interface U {$:T; _:T; A:T; a:T;}', - errors: [ - ['A', 'a'], - ['_', 'A'], - ], + errors: [['_', 'A']], }, { code: "interface U {1:T; '11':T; 2:T; A:T;}", output: "interface U {1:T; 2:T; '11':T; A:T;}", - errors: [ - ['11', 'A'], - ['2', '11'], - ], + errors: [['2', '11']], }, { code: "interface U {'#':T; À:T; 'Z':T; è:T;}", output: "interface U {'#':T; 'Z':T; À:T; è:T;}", - errors: [ - ['À', 'è'], - ['Z', 'À'], - ], + errors: [['Z', 'À']], }, { @@ -403,50 +357,32 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {b?:T; a:T; c:T;}', output: 'interface U {a:T; b?:T; c:T;}', - errors: [ - ['b', 'c'], - ['a', 'b'], - ], + errors: [['a', 'b']], }, { code: 'interface U {b:T; a?:T; b_:T;}', output: 'interface U {a?:T; b:T; b_:T;}', - errors: [ - ['b', 'b_'], - ['a', 'b'], - ], + errors: [['a', 'b']], }, { code: 'interface U {C:T; b_?:T; c:T;}', output: 'interface U {b_?:T; C:T; c:T;}', - errors: [ - ['C', 'c'], - ['b_', 'C'], - ], + errors: [['b_', 'C']], }, { code: 'interface U {$:T; A?:T; _:T; a?:T;}', output: 'interface U {$:T; _:T; A?:T; a?:T;}', - errors: [ - ['A', 'a'], - ['_', 'A'], - ], + errors: [['_', 'A']], }, { code: "interface U {1:T; '11':T; 2?:T; A:T;}", output: "interface U {1:T; 2?:T; '11':T; A:T;}", - errors: [ - ['11', 'A'], - ['2', '11'], - ], + errors: [['2', '11']], }, { code: "interface U {'Z':T; À:T; '#'?:T; è:T;}", output: "interface U {'#'?:T; 'Z':T; À:T; è:T;}", - errors: [ - ['À', 'è'], - ['#', 'Z'], - ], + errors: [['#', 'Z']], }, ], ascendingInsensitiveNaturalRequired: [ @@ -473,10 +409,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {$:T; A?:T; _:T; a?:T;}', output: 'interface U {$:T; _:T; A?:T; a?:T;}', - errors: [ - ['A', 'a'], - ['_', 'A'], - ], + errors: [['_', 'A']], }, { code: "interface U {1:T; '11':T; 2?:T; A:T;}", @@ -508,10 +441,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {b_:T; c:T; C:T;}', output: 'interface U {c:T; b_:T; C:T;}', - errors: [ - ['b_', 'C'], - ['c', 'b_'], - ], + errors: [['c', 'b_']], }, { code: 'interface U {$:T; _:T; A:T; a:T;}', @@ -590,10 +520,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {b_:T; c:T; C:T;}', output: 'interface U {c:T; b_:T; C:T;}', - errors: [ - ['b_', 'C'], - ['c', 'b_'], - ], + errors: [['c', 'b_']], }, { code: 'interface U {$:T; _:T; A:T; a:T;}', @@ -656,18 +583,12 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {a?:T; b:T; _:T;}', output: 'interface U {b:T; a?:T; _:T;}', - errors: [ - ['a', '_'], - ['b', 'a'], - ], + errors: [['b', 'a']], }, { code: 'interface U {b:T; b_:T; a?:T;}', output: 'interface U {b_:T; b:T; a?:T;}', - errors: [ - ['b', 'a'], - ['b_', 'b'], - ], + errors: [['b_', 'b']], }, { code: 'interface U {c:T; b_?:T; C:T;}', @@ -682,12 +603,12 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {_:T; a?:T; $:T; A?:T;}', output: 'interface U {a?:T; A?:T; _:T; $:T;}', - errors: [['_', '$'], ['a', 'A'], ['$'], ['A', '_']], + errors: [['$'], ['A', '_']], }, { code: "interface U {2?:T; A:T; 1:T; '11':T;}", output: "interface U {A:T; '11':T; 2?:T; 1:T;}", - errors: [['2', '1'], ['A', '11'], ['1'], ['11', '2']], + errors: [['1'], ['11', '2']], }, { code: "interface U {è:T; 'Z':T; '#'?:T; À?:T;}", @@ -714,10 +635,7 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {b:T; b_:T; a?:T;}', output: 'interface U {b_:T; b:T; a?:T;}', - errors: [ - ['b', 'a'], - ['b_', 'b'], - ], + errors: [['b_', 'b']], }, { code: 'interface U {c:T; b_?:T; C:T;}', @@ -732,15 +650,18 @@ const invalid: PreInvalidTestCaseObject = { { code: 'interface U {_:T; a?:T; $:T; A?:T;}', output: 'interface U {_:T; $:T; a?:T; A?:T;}', - errors: [ - ['a', 'A'], - ['$', 'a'], - ], + errors: [['$', 'a']], + }, + { + // Edge case on reporting partial sorts + code: 'interface U {_:T; a?:T; $:T; A:T;}', + output: 'interface U {A:T; _:T; $:T; a?:T;}', + errors: [['a'], ['A', '_']], }, { code: "interface U {2?:T; A:T; 1:T; '11':T;}", output: "interface U {A:T; '11':T; 1:T; 2?:T;}", - errors: [['2'], ['A', '11'], ['11', '1']], + errors: [['2'], ['11', '1']], }, { code: "interface U {è:T; 'Z':T; '#'?:T; À?:T;}", @@ -750,7 +671,7 @@ const invalid: PreInvalidTestCaseObject = { { code: "interface U {À?:T; 'Z':T; '#'?:T; è:T;}", output: "interface U {è:T; 'Z':T; À?:T; '#'?:T;}", - errors: [['À', '#'], ['#'], ['è', 'Z']], + errors: [['#'], ['è', 'Z']], }, ], } From fa25630c8e9198607ff6eb8628e0f1d4c521eef8 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sun, 21 Apr 2024 01:04:03 -0700 Subject: [PATCH 21/26] plural message fix --- src/report.ts | 1 + src/types/error.ts | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/report.ts b/src/report.ts index 3a81591..1cc8efb 100644 --- a/src/report.ts +++ b/src/report.ts @@ -31,6 +31,7 @@ export function reportParentNode( loc, messageId, data: { + plural: unsortedCount > 1 ? 's' : '', unsortedCount, notice: getDeprecationMessage(context.id.split('/').at(-1)!), }, diff --git a/src/types/error.ts b/src/types/error.ts index 42659bd..a91f48d 100644 --- a/src/types/error.ts +++ b/src/types/error.ts @@ -1,6 +1,6 @@ export enum ErrorMessage { - InterfaceParentInvalidOrder = `Found {{ unsortedCount }} keys out of order.`, - EnumParentInvalidOrder = `Found {{ unsortedCount }} members out of order.{{ notice }}`, + InterfaceParentInvalidOrder = `Found {{ unsortedCount }} key{{plural}} out of order.`, + EnumParentInvalidOrder = `Found {{ unsortedCount }} member{{plural}} out of order.{{ notice }}`, InterfaceInvalidOrder = `Expected interface keys to be in {{ order }}ending {{ options }}order. '{{ nodeName }}' should be {{ messageShouldBeWhere }}. Run autofix to sort entire body.`, EnumInvalidOrder = `Expected enum members to be in {{ order }}ending {{ options }}order. '{{ nodeName }}' should be {{ messageShouldBeWhere }}. Run autofix to sort entire body.{{ notice }}`, } From 3979775422c636b0beedde81fbac719754992722 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sun, 21 Apr 2024 17:08:27 -0700 Subject: [PATCH 22/26] update plugin messages --- src/plugin.ts | 11 ++++++++--- src/report.ts | 33 +++++++++++++++++-------------- src/types/error.ts | 8 ++++---- src/utils/reportUtils.ts | 2 +- tests/helpers/cases/preprocess.ts | 10 ++++------ tests/helpers/strings.ts | 29 ++++++++++----------------- 6 files changed, 45 insertions(+), 48 deletions(-) diff --git a/src/plugin.ts b/src/plugin.ts index 4928216..22df4c1 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -80,13 +80,18 @@ export function createReporter( ) if (unsortedCount > 0) { - const fixerFunctionMemoKey = `fixerFunction_${baseMemoKey}` - const fixerFunction = memoize(fixerFunctionMemoKey, () => + const fixerFunction = memoize(`fixerFunction_${baseMemoKey}`, () => getFixerFunction(baseMemoKey, createReporterArgs, body, sortedBody), ) reportParentNode(createReporterArgs, bodyParent.loc, unsortedCount, fixerFunction) - reportBodyNodes(createReporterArgs, nodePositions, sortedBody, finalIndicesToReport) + reportBodyNodes( + createReporterArgs, + nodePositions, + sortedBody, + finalIndicesToReport, + fixerFunction, + ) } } } diff --git a/src/report.ts b/src/report.ts index 1cc8efb..72874d5 100644 --- a/src/report.ts +++ b/src/report.ts @@ -27,6 +27,20 @@ export function reportParentNode( ) { const { context, createReportParentObject } = createReporterArgs const { loc, messageId } = createReportParentObject(_loc) + + const { isInsensitive, isNatural, isRequiredFirst, order } = getOptions( + createReporterArgs.context, + ) + + let optionsString = [ + isRequiredFirst && 'required-first', + isInsensitive && 'insensitive', + isNatural && 'natural', + ] + .filter(Boolean) + .join(', ') + if (optionsString) optionsString += ' ' + context.report({ loc, messageId, @@ -34,6 +48,8 @@ export function reportParentNode( plural: unsortedCount > 1 ? 's' : '', unsortedCount, notice: getDeprecationMessage(context.id.split('/').at(-1)!), + order, + options: optionsString, }, fix: fixerFunction, }) @@ -50,11 +66,9 @@ export function reportBodyNodes( nodePositions: Map, sortedBody: NodeOrToken[], finalIndicesToReport: boolean[], + fixerFunction: ReportFixFunction, ) { const { context, createReportPropertiesObject } = createReporterArgs - const { isInsensitive, isNatural, isRequiredFirst, order } = getOptions( - createReporterArgs.context, - ) for (const [node, { finalIndex }] of nodePositions.entries()) { // If the node is not in the correct position, report it @@ -65,15 +79,6 @@ export function reportBodyNodes( assert(loc, 'createReportObject return value must include a node location') assert(messageId, 'createReportObject return value must include a problem message') - let optionsString = [ - isRequiredFirst && 'required-first', - isInsensitive && 'insensitive', - isNatural && 'natural', - ] - .filter(Boolean) - .join(', ') - if (optionsString) optionsString += ' ' - context.report({ loc, messageId, @@ -84,10 +89,8 @@ export function reportBodyNodes( finalIndex + 1 < sortedBody.length ? `before '${getPropertyName(sortedBody[finalIndex + 1])}'` : 'at the end', - order, - options: optionsString, - notice: getDeprecationMessage(context.id), }, + fix: fixerFunction, }) } } diff --git a/src/types/error.ts b/src/types/error.ts index a91f48d..58a5c8c 100644 --- a/src/types/error.ts +++ b/src/types/error.ts @@ -1,6 +1,6 @@ export enum ErrorMessage { - InterfaceParentInvalidOrder = `Found {{ unsortedCount }} key{{plural}} out of order.`, - EnumParentInvalidOrder = `Found {{ unsortedCount }} member{{plural}} out of order.{{ notice }}`, - InterfaceInvalidOrder = `Expected interface keys to be in {{ order }}ending {{ options }}order. '{{ nodeName }}' should be {{ messageShouldBeWhere }}. Run autofix to sort entire body.`, - EnumInvalidOrder = `Expected enum members to be in {{ order }}ending {{ options }}order. '{{ nodeName }}' should be {{ messageShouldBeWhere }}. Run autofix to sort entire body.{{ notice }}`, + InterfaceParentInvalidOrder = `Found {{ unsortedCount }} key{{plural}} out of {{ order }}ending {{ options }}order.`, + EnumParentInvalidOrder = `Found {{ unsortedCount }} member{{plural}} out of {{ order }}ending {{ options }}order.{{ notice }}`, + InterfaceInvalidOrder = `Property '{{ nodeName }}' should be {{ messageShouldBeWhere }}.`, + EnumInvalidOrder = `Member '{{ nodeName }}' should be {{ messageShouldBeWhere }}.`, } diff --git a/src/utils/reportUtils.ts b/src/utils/reportUtils.ts index 228839a..eb6ddb4 100644 --- a/src/utils/reportUtils.ts +++ b/src/utils/reportUtils.ts @@ -49,7 +49,7 @@ export function getUnsortedInfo( export function getDeprecationMessage(name: string) { switch (name) { case RuleNames.StringEnum: - return `\nThis rule is deprecated. Use \`${PLUGIN_NAME}/${RuleNames.Enum}\` instead.` + return `\nThis rule is deprecated: use \`${PLUGIN_NAME}/${RuleNames.Enum}\` instead.` default: return '' } diff --git a/tests/helpers/cases/preprocess.ts b/tests/helpers/cases/preprocess.ts index a2f2bce..e81e504 100644 --- a/tests/helpers/cases/preprocess.ts +++ b/tests/helpers/cases/preprocess.ts @@ -37,23 +37,21 @@ function processErrorArgs( } if (!omitInferredErrorCount) - errorMessages.push(getCountErrorString(category, errorArgs.length)) + errorMessages.push(getCountErrorString(category, optionsSetsKey, errorArgs.length)) for (const args of errorArgs) { // At this point args is number or string[] if (Array.isArray(args)) { switch (args.length) { case 1: - errorMessages.push(getEndErrorString(category, optionsSetsKey, args[0])) + errorMessages.push(getEndErrorString(category, args[0])) break case 2: - errorMessages.push( - getSwapErrorString(category, optionsSetsKey, args[0], args[1]), - ) + errorMessages.push(getSwapErrorString(category, args[0], args[1])) break } } else { - errorMessages.push(getCountErrorString(category, args)) + errorMessages.push(getCountErrorString(category, optionsSetsKey, args)) } } return errorMessages diff --git a/tests/helpers/strings.ts b/tests/helpers/strings.ts index 2bfd158..5737d8f 100644 --- a/tests/helpers/strings.ts +++ b/tests/helpers/strings.ts @@ -28,10 +28,10 @@ export enum CaseCategory { function getCategoryErrorString(category: CaseCategory) { switch (category) { case CaseCategory.Interface: - return 'interface keys' + return 'Property' case CaseCategory.Enum: default: - return 'enum members' + return 'Member' } } @@ -45,27 +45,18 @@ function getCategoryParentErrorString(category: CaseCategory) { } } -export const getSwapErrorString = ( - category: CaseCategory, - order: OptionsSetsKey, - a: string, - b: string, -) => { - return `Expected ${getCategoryErrorString(category)} to be in ${ - orderStrings[order] - } order. '${a}' should be before '${b}'. Run autofix to sort entire body.` +export const getSwapErrorString = (category: CaseCategory, a: string, b: string) => { + return `${getCategoryErrorString(category)} '${a}' should be before '${b}'.` } -export const getEndErrorString = ( +export const getEndErrorString = (category: CaseCategory, a: string) => + `${getCategoryErrorString(category)} '${a}' should be at the end.` + +export const getCountErrorString = ( category: CaseCategory, order: OptionsSetsKey, - a: string, + count: number, ) => - `Expected ${getCategoryErrorString(category)} to be in ${ - orderStrings[order] - } order. '${a}' should be at the end. Run autofix to sort entire body.` - -export const getCountErrorString = (category: CaseCategory, count: number) => `Found ${count} ${getCategoryParentErrorString(category)}${ count > 1 ? 's' : '' - } out of order.` + } out of ${orderStrings[order]} order.` From c488efd10a16f67b2bb9e51e3bfa9d0caacfea72 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sun, 21 Apr 2024 17:27:24 -0700 Subject: [PATCH 23/26] enable requiredFirst config --- README.md | 12 ++++++++++-- src/config/requiredFirst.config.ts | 4 ++-- src/index.ts | 2 ++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 488bb04..de1efd0 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Sort interface and enum keys -Inspired by and sourced from [eslint/sort-keys]([https://github.com/eslint/eslint/blob/master/docs/rules/sort-keys.md](https://github.com/eslint/eslint/blob/main/docs/src/rules/sort-keys.md)) +Inspired by and sourced from [eslint/sort-keys](<[https://github.com/eslint/eslint/blob/master/docs/rules/sort-keys.md](https://github.com/eslint/eslint/blob/main/docs/src/rules/sort-keys.md)>) ## Installation @@ -57,7 +57,7 @@ Then configure the rules you want to use under the rules section. } ``` -Or enable all rules with defaults +Or enable all rules with defaults: ```json { @@ -65,6 +65,14 @@ Or enable all rules with defaults } ``` +If you'd like to enable the recommended config with interface required keys first: + +```json +{ + "extends": ["plugin:typescript-sort-keys/requiredFirst"] +} +``` + ## Supported Rules diff --git a/src/config/requiredFirst.config.ts b/src/config/requiredFirst.config.ts index 2a638a2..a09802e 100644 --- a/src/config/requiredFirst.config.ts +++ b/src/config/requiredFirst.config.ts @@ -1,14 +1,14 @@ import { Linter } from '@typescript-eslint/utils/ts-eslint' import { defaultOptions, defaultSortingOrder } from '../common/options' -import { PLUGIN_NAME } from './constants' +import { PLUGIN_NAME, RuleNames } from './constants' import recommended from './recommended.config' export default { plugins: recommended.plugins, rules: { ...recommended.rules, - [`${PLUGIN_NAME}/interface`]: [ + [`${PLUGIN_NAME}/${RuleNames.Interface}`]: [ 'error' as const, defaultSortingOrder, { ...defaultOptions, requiredFirst: true }, diff --git a/src/index.ts b/src/index.ts index b82f180..46dbd05 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,10 +1,12 @@ import recommended from './config/recommended.config' +import requiredFirst from './config/requiredFirst.config' import { rules } from './rules' const config = { rules, configs: { recommended, + requiredFirst, }, } From 93015c888c81d020c4ef0c65d3ce3bab848d8f74 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sun, 21 Apr 2024 17:56:14 -0700 Subject: [PATCH 24/26] fix report regression --- src/plugin.ts | 8 +------- src/report.ts | 2 -- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/src/plugin.ts b/src/plugin.ts index 22df4c1..9578084 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -85,13 +85,7 @@ export function createReporter( ) reportParentNode(createReporterArgs, bodyParent.loc, unsortedCount, fixerFunction) - reportBodyNodes( - createReporterArgs, - nodePositions, - sortedBody, - finalIndicesToReport, - fixerFunction, - ) + reportBodyNodes(createReporterArgs, nodePositions, sortedBody, finalIndicesToReport) } } } diff --git a/src/report.ts b/src/report.ts index 72874d5..936f2ca 100644 --- a/src/report.ts +++ b/src/report.ts @@ -66,7 +66,6 @@ export function reportBodyNodes( nodePositions: Map, sortedBody: NodeOrToken[], finalIndicesToReport: boolean[], - fixerFunction: ReportFixFunction, ) { const { context, createReportPropertiesObject } = createReporterArgs @@ -90,7 +89,6 @@ export function reportBodyNodes( ? `before '${getPropertyName(sortedBody[finalIndex + 1])}'` : 'at the end', }, - fix: fixerFunction, }) } } From b2ed63bdc6efb45a101b5ac1cae793c3b6573203 Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sun, 21 Apr 2024 18:04:56 -0700 Subject: [PATCH 25/26] update readme --- README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index de1efd0..c4e8343 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,11 @@ # eslint-plugin-typescript-sort-keys -Sort interface and enum keys - -Inspired by and sourced from [eslint/sort-keys](<[https://github.com/eslint/eslint/blob/master/docs/rules/sort-keys.md](https://github.com/eslint/eslint/blob/main/docs/src/rules/sort-keys.md)>) +Sort interface and enum keys. Inspired by and sourced from [eslint/sort-keys](<[https://github.com/eslint/eslint/blob/master/docs/rules/sort-keys.md](https://github.com/eslint/eslint/blob/main/docs/src/rules/sort-keys.md)>) ## Installation -Supported on Node 18+ - -You'll first need to install +This plugin is supported on **Node 18+**. You'll first need to install: - [eslint](http://eslint.org) - [typescript](http://www.typescriptlang.org/) @@ -57,7 +53,7 @@ Then configure the rules you want to use under the rules section. } ``` -Or enable all rules with defaults: +Or alternatively to the individual rules, enable all rules with defaults: ```json { From 33ec5b5dc0ee010270a0101efb3e8d2f5345be6c Mon Sep 17 00:00:00 2001 From: Zach Bryant Date: Sun, 21 Apr 2024 18:07:23 -0700 Subject: [PATCH 26/26] update config test --- tests/config.spec.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/config.spec.ts b/tests/config.spec.ts index 02dfe98..3b83dd0 100644 --- a/tests/config.spec.ts +++ b/tests/config.spec.ts @@ -28,7 +28,7 @@ describe('recommended config', () => { }) }) -describe('recommended plugin', () => { +describe('plugin configs', () => { const ruleFiles: readonly string[] = readdirSync('./src/rules').filter( file => file !== 'index.ts' && file.endsWith('.ts'), ) @@ -38,8 +38,8 @@ describe('recommended plugin', () => { expect(Object.keys(plugin.rules)).toHaveLength(ruleFiles.length) }) - it('should have the recommended config', () => { + it('should have the recommended & requiredFirst configs', () => { expect(plugin).toHaveProperty('configs') - expect(Object.keys(plugin.configs)).toHaveLength(1) + expect(Object.keys(plugin.configs)).toHaveLength(2) }) })