From 522cecf09979c4d33d32484d557e40dce8a8fd85 Mon Sep 17 00:00:00 2001 From: rconner46 Date: Tue, 15 Oct 2024 10:43:23 -0500 Subject: [PATCH] Update node and dependencies --- .eslintignore | 6 - .eslintrc.cjs | 32 - .node-version | 2 +- dist/hooks.cjs.map | 2 +- dist/hooks.min.js.map | 2 +- dist/hooks.mjs.map | 2 +- dist/index.cjs | 7 +- dist/index.cjs.map | 2 +- dist/index.d.ts | 2 +- dist/index.min.js | 2 +- dist/index.min.js.map | 2 +- dist/index.mjs | 7 +- dist/index.mjs.map | 2 +- eslint.config.js | 11 + package.json | 35 +- src/hooks.ts | 2 +- src/index.ts | 5 +- yarn.lock | 1496 ++++++++++++++++++++++++++--------------- 18 files changed, 1015 insertions(+), 604 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.cjs create mode 100644 eslint.config.js diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index f00c859..0000000 --- a/.eslintignore +++ /dev/null @@ -1,6 +0,0 @@ -# don't ever lint node_modules -node_modules -# don't lint build output (make sure it's set to your correct build folder name) -dist -# don't lint nyc coverage output -coverage \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 24ba632..0000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,32 +0,0 @@ -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint', 'node', 'prettier'], - parserOptions: { - tsconfigRootDir: __dirname, - project: ['./tsconfig.json'], - }, - extends: [ - 'eslint:recommended', - 'plugin:node/recommended', - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:@typescript-eslint/recommended-requiring-type-checking', - 'plugin:prettier/recommended', - ], - rules: { - 'prettier/prettier': 'warn', - 'node/no-missing-import': 'off', - 'node/no-empty-function': 'off', - 'node/no-unsupported-features/es-syntax': 'off', - 'node/no-missing-require': 'off', - 'node/shebang': 'off', - '@typescript-eslint/no-use-before-define': 'off', - quotes: ['warn', 'single', { avoidEscape: true }], - 'node/no-unpublished-import': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - '@typescript-eslint/no-var-requires': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - '@typescript-eslint/no-explicit-any': 'off', - }, - }; \ No newline at end of file diff --git a/.node-version b/.node-version index c48f715..726a201 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -20.6.0 \ No newline at end of file +20.11.1 \ No newline at end of file diff --git a/dist/hooks.cjs.map b/dist/hooks.cjs.map index e3d5879..026de74 100644 --- a/dist/hooks.cjs.map +++ b/dist/hooks.cjs.map @@ -1 +1 @@ -{"version":3,"file":"hooks.cjs","sources":["../src/hooks.ts"],"sourcesContent":["import { IWorld } from '@cucumber/cucumber';\n\nexport const APPLAUSE_SESSION_ID_ATTACHMENT = 'applause-session-id';\n\nexport function linkSessionId(this: IWorld, sessionId: string) {\n this.attach(sessionId, {\n fileName: APPLAUSE_SESSION_ID_ATTACHMENT,\n mediaType: 'text/plain',\n });\n}\n"],"names":[],"mappings":";;AAEO,MAAM,8BAA8B,GAAG,sBAAsB;AAE9D,SAAU,aAAa,CAAoB,SAAiB,EAAA;AAChE,IAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACrB,QAAA,QAAQ,EAAE,8BAA8B;AACxC,QAAA,SAAS,EAAE,YAAY;AACxB,KAAA,CAAC,CAAC;AACL;;;;;"} \ No newline at end of file +{"version":3,"file":"hooks.cjs","sources":["../src/hooks.ts"],"sourcesContent":["import { IWorld } from '@cucumber/cucumber';\n\nexport const APPLAUSE_SESSION_ID_ATTACHMENT = 'applause-session-id';\n\nexport function linkSessionId(this: IWorld, sessionId: string) {\n this.attach(sessionId, {\n fileName: APPLAUSE_SESSION_ID_ATTACHMENT,\n mediaType: 'text/plain',\n });\n}\n"],"names":[],"mappings":";;AAEO,MAAM,8BAA8B,GAAG,sBAAsB;AAE9D,SAAU,aAAa,CAAwB,SAAiB,EAAA;AACpE,IAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACrB,QAAA,QAAQ,EAAE,8BAA8B;AACxC,QAAA,SAAS,EAAE,YAAY;AACxB,KAAA,CAAC,CAAC;AACL;;;;;"} \ No newline at end of file diff --git a/dist/hooks.min.js.map b/dist/hooks.min.js.map index f7ae7ab..71309a4 100644 --- a/dist/hooks.min.js.map +++ b/dist/hooks.min.js.map @@ -1 +1 @@ -{"version":3,"file":"hooks.min.js","sources":["../src/hooks.ts"],"sourcesContent":["import { IWorld } from '@cucumber/cucumber';\n\nexport const APPLAUSE_SESSION_ID_ATTACHMENT = 'applause-session-id';\n\nexport function linkSessionId(this: IWorld, sessionId: string) {\n this.attach(sessionId, {\n fileName: APPLAUSE_SESSION_ID_ATTACHMENT,\n mediaType: 'text/plain',\n });\n}\n"],"names":["APPLAUSE_SESSION_ID_ATTACHMENT","sessionId","this","attach","fileName","mediaType"],"mappings":"qQAEa,MAAAA,EAAiC,yEAExC,SAA2CC,GAC/CC,KAAKC,OAAOF,EAAW,CACrBG,SAAUJ,EACVK,UAAW,cAEf"} \ No newline at end of file +{"version":3,"file":"hooks.min.js","sources":["../src/hooks.ts"],"sourcesContent":["import { IWorld } from '@cucumber/cucumber';\n\nexport const APPLAUSE_SESSION_ID_ATTACHMENT = 'applause-session-id';\n\nexport function linkSessionId(this: IWorld, sessionId: string) {\n this.attach(sessionId, {\n fileName: APPLAUSE_SESSION_ID_ATTACHMENT,\n mediaType: 'text/plain',\n });\n}\n"],"names":["APPLAUSE_SESSION_ID_ATTACHMENT","sessionId","this","attach","fileName","mediaType"],"mappings":"qQAEa,MAAAA,EAAiC,yEAExC,SAA+CC,GACnDC,KAAKC,OAAOF,EAAW,CACrBG,SAAUJ,EACVK,UAAW,cAEf"} \ No newline at end of file diff --git a/dist/hooks.mjs.map b/dist/hooks.mjs.map index c920092..fc84a44 100644 --- a/dist/hooks.mjs.map +++ b/dist/hooks.mjs.map @@ -1 +1 @@ -{"version":3,"file":"hooks.mjs","sources":["../src/hooks.ts"],"sourcesContent":["import { IWorld } from '@cucumber/cucumber';\n\nexport const APPLAUSE_SESSION_ID_ATTACHMENT = 'applause-session-id';\n\nexport function linkSessionId(this: IWorld, sessionId: string) {\n this.attach(sessionId, {\n fileName: APPLAUSE_SESSION_ID_ATTACHMENT,\n mediaType: 'text/plain',\n });\n}\n"],"names":[],"mappings":"AAEO,MAAM,8BAA8B,GAAG,sBAAsB;AAE9D,SAAU,aAAa,CAAoB,SAAiB,EAAA;AAChE,IAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACrB,QAAA,QAAQ,EAAE,8BAA8B;AACxC,QAAA,SAAS,EAAE,YAAY;AACxB,KAAA,CAAC,CAAC;AACL;;;;"} \ No newline at end of file +{"version":3,"file":"hooks.mjs","sources":["../src/hooks.ts"],"sourcesContent":["import { IWorld } from '@cucumber/cucumber';\n\nexport const APPLAUSE_SESSION_ID_ATTACHMENT = 'applause-session-id';\n\nexport function linkSessionId(this: IWorld, sessionId: string) {\n this.attach(sessionId, {\n fileName: APPLAUSE_SESSION_ID_ATTACHMENT,\n mediaType: 'text/plain',\n });\n}\n"],"names":[],"mappings":"AAEO,MAAM,8BAA8B,GAAG,sBAAsB;AAE9D,SAAU,aAAa,CAAwB,SAAiB,EAAA;AACpE,IAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACrB,QAAA,QAAQ,EAAE,8BAA8B;AACxC,QAAA,SAAS,EAAE,YAAY;AACxB,KAAA,CAAC,CAAC;AACL;;;;"} \ No newline at end of file diff --git a/dist/index.cjs b/dist/index.cjs index 679bc48..505dbb9 100644 --- a/dist/index.cjs +++ b/dist/index.cjs @@ -30,9 +30,7 @@ class CucumberAutoApiFormatter extends cucumber.Formatter { this.REMOVE_CONTROL_CHARS = new RegExp( /* eslint-disable-next-line no-control-regex */ /[^\x00-\x7F]/gm); - this.REMOVE_ANSI_CHARACTERS = new RegExp( - /* eslint-disable-next-line no-control-regex */ - [ + this.REMOVE_ANSI_CHARACTERS = new RegExp([ '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))', ].join('|'), 'gm'); @@ -41,7 +39,8 @@ class CucumberAutoApiFormatter extends cucumber.Formatter { configFile: 'applause.json', properties: { apiKey: options.parsedArgvOptions['apiKey'], - baseUrl: options.parsedArgvOptions['autoApiUrl'], + autoApiBaseUrl: options.parsedArgvOptions['autoApiBaseUrl'], + publicApiBaseUrl: options.parsedArgvOptions['publicApiBaseUrl'], productId: options.parsedArgvOptions['productId'], testRailOptions: (options.parsedArgvOptions['testRailOptions']), applauseTestCycleId: (options.parsedArgvOptions['applauseTestCycleId']), diff --git a/dist/index.cjs.map b/dist/index.cjs.map index f4870e5..dadbc9c 100644 --- a/dist/index.cjs.map +++ b/dist/index.cjs.map @@ -1 +1 @@ -{"version":3,"file":"index.cjs","sources":["../src/hooks.ts","../src/index.ts"],"sourcesContent":["import { IWorld } from '@cucumber/cucumber';\n\nexport const APPLAUSE_SESSION_ID_ATTACHMENT = 'applause-session-id';\n\nexport function linkSessionId(this: IWorld, sessionId: string) {\n this.attach(sessionId, {\n fileName: APPLAUSE_SESSION_ID_ATTACHMENT,\n mediaType: 'text/plain',\n });\n}\n","import { Formatter, IFormatterOptions } from '@cucumber/cucumber';\nimport {\n ApplauseReporter,\n TestRailOptions,\n TestResultStatus,\n loadConfig,\n} from 'applause-reporter-common';\nimport { EventEmitter } from 'events';\nimport {\n Envelope,\n Pickle,\n PickleStep,\n TestCase,\n TestCaseFinished,\n TestCaseStarted,\n TestStep,\n TestStepFinished,\n TestStepResultStatus,\n} from '@cucumber/messages';\nimport { APPLAUSE_SESSION_ID_ATTACHMENT } from './hooks';\n\nexport default class CucumberAutoApiFormatter extends Formatter {\n private reporter: ApplauseReporter;\n\n // Maps used to handle data lookup between events.\n // Test Case Storage Handles Storing Information about a TestCase by the TestCaseId\n private testCaseStorage: Record = {};\n // Test Case Instance Map Maps a TestCaseInstance Id (Single Execution of a TestCase) to the TestCaseId\n private testCaseInstanceMap: Record = {};\n private testCaseInstanceSessionMap: Record = {};\n // Pickle Map Holds Information about the Gherkin TestCase Information (The actual written out test case)\n private pickleMap: { [pickleId: string]: Pickle } = {};\n // TestResult Status Map keeps track of the status for a TestCaseInstance. If a step fails, the test case fails\n private testResultStatusMap: {\n [testCaseInstanceId: string]: [TestResultStatus, string | undefined];\n } = {};\n\n private readonly REMOVE_CONTROL_CHARS: RegExp = new RegExp(\n /* eslint-disable-next-line no-control-regex */\n /[^\\x00-\\x7F]/gm\n );\n private readonly REMOVE_ANSI_CHARACTERS: RegExp = new RegExp(\n /* eslint-disable-next-line no-control-regex */\n [\n '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n '(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n ].join('|'),\n 'gm'\n );\n\n constructor(options: IFormatterOptions) {\n super(options);\n console.log('CDP is: ' + process.cwd());\n const config = loadConfig({\n configFile: 'applause.json',\n properties: {\n apiKey: options.parsedArgvOptions['apiKey'],\n baseUrl: options.parsedArgvOptions['autoApiUrl'],\n productId: options.parsedArgvOptions['productId'],\n testRailOptions: (\n options.parsedArgvOptions['testRailOptions']\n ),\n applauseTestCycleId: (\n options.parsedArgvOptions['applauseTestCycleId']\n ),\n },\n });\n\n // Setup our Http Client\n this.reporter = new ApplauseReporter(config);\n\n // Add in listener hooks\n this.registerListeners(options.eventBroadcaster);\n }\n\n /**\n * Registering an event listener to Cucumber's Messaging Api. Only one event will\n * be contained in each envelope\n *\n * @param eventBroadcaster An Event Emitter\n */\n registerListeners(eventBroadcaster: EventEmitter): void {\n eventBroadcaster.on('envelope', (envelope: Envelope) => {\n if (envelope.gherkinDocument) {\n envelope.gherkinDocument.feature?.children.map(\n child => child.scenario?.name\n );\n }\n if (envelope.testRunStarted) {\n this.reporter.runnerStart(\n Object.values(this.testCaseStorage).map(\n testCase => this.pickleMap[testCase.pickleId].name\n )\n );\n } else if (envelope.attachment) {\n if (envelope.attachment.fileName == APPLAUSE_SESSION_ID_ATTACHMENT) {\n const testCaseStartedId = envelope.attachment.testCaseStartedId;\n if (testCaseStartedId === undefined) {\n return;\n }\n const existingSessions =\n this.testCaseInstanceSessionMap[testCaseStartedId] || [];\n this.testCaseInstanceSessionMap[testCaseStartedId] = [\n ...existingSessions,\n envelope.attachment.body,\n ];\n }\n } else if (envelope.testCase) {\n this.testCaseStorage[envelope.testCase.id] = envelope.testCase;\n } else if (envelope.pickle) {\n this.pickleMap[envelope.pickle.id] = envelope.pickle;\n } else if (envelope.testCaseStarted) {\n this.onTestCaseStarted(envelope.testCaseStarted);\n } else if (envelope.testStepFinished) {\n this.onTestStepFinished(envelope.testStepFinished);\n } else if (envelope.testCaseFinished) {\n void this.onTestCaseFinished(envelope.testCaseFinished);\n } else if (envelope.testRunFinished) {\n void this.reporter.runnerEnd();\n }\n });\n }\n\n /**\n * Hook called when a single instance of a test case is started. Used to register the start of a TestCase\n *\n * @param event The Test Case Started Event\n */\n onTestCaseStarted(event: TestCaseStarted): void {\n this.testCaseInstanceMap[event.id] = event.testCaseId;\n const testCase = this.testCaseStorage[event.testCaseId];\n this.reporter.startTestCase(\n testCase.id,\n this.pickleMap[testCase.pickleId].name,\n { providerSessionIds: this.testCaseInstanceSessionMap[event.id] || [] }\n );\n this.testResultStatusMap[event.id] = [TestResultStatus.PASSED, undefined];\n }\n\n /**\n * Hook called when a TestStep is finished. Used to tell if and when a TestCase fails.\n *\n * @param event The Test Step Finished Event\n */\n onTestStepFinished(event: TestStepFinished): void {\n // We already assume that the test case will pass, so if it did, just move on\n if (event.testStepResult.status == TestStepResultStatus.PASSED) {\n return;\n }\n\n const currentStatus = this.testResultStatusMap[event.testCaseStartedId][0];\n // If the current result already has a status set, don't override it\n if (currentStatus != TestResultStatus.PASSED) {\n return;\n }\n\n // Get the test case ID\n const testCaseId = this.testCaseInstanceMap[event.testCaseStartedId];\n\n // Lookup the TestCase\n const testCase = this.testCaseStorage[testCaseId];\n\n // Look for the TestStep that was executed\n const testStepOptions: TestStep[] = testCase.testSteps.filter(\n s => s.id == event.testStepId\n );\n if (testStepOptions && testStepOptions.length != 1) {\n throw new Error('Could not find test step within the test case');\n }\n\n // Now that we have the test step, lets look it up in the pickle to get the actual step text\n const pickle: Pickle | undefined = this.pickleMap[testCase.pickleId];\n const pickleStepId: string | undefined = testStepOptions[0].pickleStepId;\n const pickleSteps: readonly PickleStep[] = pickle ? pickle.steps : [];\n const pickleStep: PickleStep | undefined = pickleSteps.filter(\n step => step.id == pickleStepId\n )[0];\n\n const stepText: string | undefined = pickleStep\n ? pickleStep.text\n : undefined;\n\n // Map the step status to a result status\n let status: TestResultStatus;\n switch (event.testStepResult.status) {\n case TestStepResultStatus.FAILED:\n status = TestResultStatus.FAILED;\n break;\n case TestStepResultStatus.AMBIGUOUS:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.PENDING:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.SKIPPED:\n status = TestResultStatus.SKIPPED;\n break;\n case TestStepResultStatus.UNDEFINED:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.UNKNOWN:\n status = TestResultStatus.FAILED;\n break;\n }\n const cucumberMessage = this.cleanCucumberMessage(\n event.testStepResult.message || 'Unknown'\n );\n let errorMessage: string;\n if (stepText != undefined) {\n errorMessage = `${event.testStepResult.status} Test Step: ${stepText}. Reason: ${cucumberMessage}`;\n } else {\n errorMessage = `Test Case ${event.testStepResult.status} at Unknown Step. Reason: ${cucumberMessage}`;\n }\n // Finally, save off the updated statuses\n this.testResultStatusMap[event.testCaseStartedId] = [status, errorMessage];\n }\n\n /**\n * Hook called when a TestCase finishes it's execution. USed to submit test results to AutoApi\n *\n * @param event The TestCaseFinished event\n */\n onTestCaseFinished(event: TestCaseFinished): void {\n // Pull the TestResults from the TestResultStatusMap\n const [status, failure] = this.testResultStatusMap[event.testCaseStartedId];\n\n const testCaseId = this.testCaseInstanceMap[event.testCaseStartedId];\n\n // Finally, submit the TestResult\n this.reporter.submitTestCaseResult(\n testCaseId,\n status || TestResultStatus.PASSED,\n {\n failureReason: failure,\n providerSessionGuids:\n this.testCaseInstanceSessionMap[event.testCaseStartedId] || [],\n }\n );\n }\n\n private cleanCucumberMessage(message: string): string {\n return message\n .replace(this.REMOVE_ANSI_CHARACTERS, '')\n .replace(this.REMOVE_CONTROL_CHARS, '');\n }\n}\n\nexport * from './hooks.ts';\n"],"names":["Formatter","loadConfig","ApplauseReporter","TestResultStatus","TestStepResultStatus"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.cjs","sources":["../src/hooks.ts","../src/index.ts"],"sourcesContent":["import { IWorld } from '@cucumber/cucumber';\n\nexport const APPLAUSE_SESSION_ID_ATTACHMENT = 'applause-session-id';\n\nexport function linkSessionId(this: IWorld, sessionId: string) {\n this.attach(sessionId, {\n fileName: APPLAUSE_SESSION_ID_ATTACHMENT,\n mediaType: 'text/plain',\n });\n}\n","import { Formatter, IFormatterOptions } from '@cucumber/cucumber';\nimport {\n ApplauseReporter,\n TestRailOptions,\n TestResultStatus,\n loadConfig,\n} from 'applause-reporter-common';\nimport { EventEmitter } from 'events';\nimport {\n Envelope,\n Pickle,\n PickleStep,\n TestCase,\n TestCaseFinished,\n TestCaseStarted,\n TestStep,\n TestStepFinished,\n TestStepResultStatus,\n} from '@cucumber/messages';\nimport { APPLAUSE_SESSION_ID_ATTACHMENT } from './hooks';\n\nexport default class CucumberAutoApiFormatter extends Formatter {\n private reporter: ApplauseReporter;\n\n // Maps used to handle data lookup between events.\n // Test Case Storage Handles Storing Information about a TestCase by the TestCaseId\n private testCaseStorage: Record = {};\n // Test Case Instance Map Maps a TestCaseInstance Id (Single Execution of a TestCase) to the TestCaseId\n private testCaseInstanceMap: Record = {};\n private testCaseInstanceSessionMap: Record = {};\n // Pickle Map Holds Information about the Gherkin TestCase Information (The actual written out test case)\n private pickleMap: { [pickleId: string]: Pickle } = {};\n // TestResult Status Map keeps track of the status for a TestCaseInstance. If a step fails, the test case fails\n private testResultStatusMap: {\n [testCaseInstanceId: string]: [TestResultStatus, string | undefined];\n } = {};\n\n private readonly REMOVE_CONTROL_CHARS: RegExp = new RegExp(\n /* eslint-disable-next-line no-control-regex */\n /[^\\x00-\\x7F]/gm\n );\n private readonly REMOVE_ANSI_CHARACTERS: RegExp = new RegExp(\n \n [\n '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n '(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n ].join('|'),\n 'gm'\n );\n\n constructor(options: IFormatterOptions) {\n super(options);\n console.log('CDP is: ' + process.cwd());\n const config = loadConfig({\n configFile: 'applause.json',\n properties: {\n apiKey: options.parsedArgvOptions['apiKey'],\n autoApiBaseUrl: options.parsedArgvOptions['autoApiBaseUrl'],\n publicApiBaseUrl: options.parsedArgvOptions['publicApiBaseUrl'],\n productId: options.parsedArgvOptions['productId'],\n testRailOptions: (\n options.parsedArgvOptions['testRailOptions']\n ),\n applauseTestCycleId: (\n options.parsedArgvOptions['applauseTestCycleId']\n ),\n },\n });\n\n // Setup our Http Client\n this.reporter = new ApplauseReporter(config);\n\n // Add in listener hooks\n this.registerListeners(options.eventBroadcaster);\n }\n\n /**\n * Registering an event listener to Cucumber's Messaging Api. Only one event will\n * be contained in each envelope\n *\n * @param eventBroadcaster An Event Emitter\n */\n registerListeners(eventBroadcaster: EventEmitter): void {\n eventBroadcaster.on('envelope', (envelope: Envelope) => {\n if (envelope.gherkinDocument) {\n envelope.gherkinDocument.feature?.children.map(\n child => child.scenario?.name\n );\n }\n if (envelope.testRunStarted) {\n this.reporter.runnerStart(\n Object.values(this.testCaseStorage).map(\n testCase => this.pickleMap[testCase.pickleId].name\n )\n );\n } else if (envelope.attachment) {\n if (envelope.attachment.fileName == APPLAUSE_SESSION_ID_ATTACHMENT) {\n const testCaseStartedId = envelope.attachment.testCaseStartedId;\n if (testCaseStartedId === undefined) {\n return;\n }\n const existingSessions =\n this.testCaseInstanceSessionMap[testCaseStartedId] || [];\n this.testCaseInstanceSessionMap[testCaseStartedId] = [\n ...existingSessions,\n envelope.attachment.body,\n ];\n }\n } else if (envelope.testCase) {\n this.testCaseStorage[envelope.testCase.id] = envelope.testCase;\n } else if (envelope.pickle) {\n this.pickleMap[envelope.pickle.id] = envelope.pickle;\n } else if (envelope.testCaseStarted) {\n this.onTestCaseStarted(envelope.testCaseStarted);\n } else if (envelope.testStepFinished) {\n this.onTestStepFinished(envelope.testStepFinished);\n } else if (envelope.testCaseFinished) {\n void this.onTestCaseFinished(envelope.testCaseFinished);\n } else if (envelope.testRunFinished) {\n void this.reporter.runnerEnd();\n }\n });\n }\n\n /**\n * Hook called when a single instance of a test case is started. Used to register the start of a TestCase\n *\n * @param event The Test Case Started Event\n */\n onTestCaseStarted(event: TestCaseStarted): void {\n this.testCaseInstanceMap[event.id] = event.testCaseId;\n const testCase = this.testCaseStorage[event.testCaseId];\n this.reporter.startTestCase(\n testCase.id,\n this.pickleMap[testCase.pickleId].name,\n { providerSessionIds: this.testCaseInstanceSessionMap[event.id] || [] }\n );\n this.testResultStatusMap[event.id] = [TestResultStatus.PASSED, undefined];\n }\n\n /**\n * Hook called when a TestStep is finished. Used to tell if and when a TestCase fails.\n *\n * @param event The Test Step Finished Event\n */\n onTestStepFinished(event: TestStepFinished): void {\n // We already assume that the test case will pass, so if it did, just move on\n if (event.testStepResult.status == TestStepResultStatus.PASSED) {\n return;\n }\n\n const currentStatus = this.testResultStatusMap[event.testCaseStartedId][0];\n // If the current result already has a status set, don't override it\n if (currentStatus != TestResultStatus.PASSED) {\n return;\n }\n\n // Get the test case ID\n const testCaseId = this.testCaseInstanceMap[event.testCaseStartedId];\n\n // Lookup the TestCase\n const testCase = this.testCaseStorage[testCaseId];\n\n // Look for the TestStep that was executed\n const testStepOptions: TestStep[] = testCase.testSteps.filter(\n s => s.id == event.testStepId\n );\n if (testStepOptions && testStepOptions.length != 1) {\n throw new Error('Could not find test step within the test case');\n }\n\n // Now that we have the test step, lets look it up in the pickle to get the actual step text\n const pickle: Pickle | undefined = this.pickleMap[testCase.pickleId];\n const pickleStepId: string | undefined = testStepOptions[0].pickleStepId;\n const pickleSteps: readonly PickleStep[] = pickle ? pickle.steps : [];\n const pickleStep: PickleStep | undefined = pickleSteps.filter(\n step => step.id == pickleStepId\n )[0];\n\n const stepText: string | undefined = pickleStep\n ? pickleStep.text\n : undefined;\n\n // Map the step status to a result status\n let status: TestResultStatus;\n switch (event.testStepResult.status) {\n case TestStepResultStatus.FAILED:\n status = TestResultStatus.FAILED;\n break;\n case TestStepResultStatus.AMBIGUOUS:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.PENDING:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.SKIPPED:\n status = TestResultStatus.SKIPPED;\n break;\n case TestStepResultStatus.UNDEFINED:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.UNKNOWN:\n status = TestResultStatus.FAILED;\n break;\n }\n const cucumberMessage = this.cleanCucumberMessage(\n event.testStepResult.message || 'Unknown'\n );\n let errorMessage: string;\n if (stepText != undefined) {\n errorMessage = `${event.testStepResult.status} Test Step: ${stepText}. Reason: ${cucumberMessage}`;\n } else {\n errorMessage = `Test Case ${event.testStepResult.status} at Unknown Step. Reason: ${cucumberMessage}`;\n }\n // Finally, save off the updated statuses\n this.testResultStatusMap[event.testCaseStartedId] = [status, errorMessage];\n }\n\n /**\n * Hook called when a TestCase finishes it's execution. USed to submit test results to AutoApi\n *\n * @param event The TestCaseFinished event\n */\n onTestCaseFinished(event: TestCaseFinished): void {\n // Pull the TestResults from the TestResultStatusMap\n const [status, failure] = this.testResultStatusMap[event.testCaseStartedId];\n\n const testCaseId = this.testCaseInstanceMap[event.testCaseStartedId];\n\n // Finally, submit the TestResult\n this.reporter.submitTestCaseResult(\n testCaseId,\n status || TestResultStatus.PASSED,\n {\n failureReason: failure,\n providerSessionGuids:\n this.testCaseInstanceSessionMap[event.testCaseStartedId] || [],\n }\n );\n }\n\n private cleanCucumberMessage(message: string): string {\n return message\n .replace(this.REMOVE_ANSI_CHARACTERS, '')\n .replace(this.REMOVE_CONTROL_CHARS, '');\n }\n}\n\nexport * from './hooks.ts';\n"],"names":["Formatter","loadConfig","ApplauseReporter","TestResultStatus","TestStepResultStatus"],"mappings":";;;;;;;;AAEO,MAAM,8BAA8B,GAAG,sBAAsB;AAE9D,SAAU,aAAa,CAAwB,SAAiB,EAAA;AACpE,IAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACrB,QAAA,QAAQ,EAAE,8BAA8B;AACxC,QAAA,SAAS,EAAE,YAAY;AACxB,KAAA,CAAC,CAAC;AACL;;ACYqB,MAAA,wBAAyB,SAAQA,kBAAS,CAAA;AA6B7D,IAAA,WAAA,CAAY,OAA0B,EAAA;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC;;;QAzBT,IAAe,CAAA,eAAA,GAA6B,EAAE,CAAC;;QAE/C,IAAmB,CAAA,mBAAA,GAA2B,EAAE,CAAC;QACjD,IAA0B,CAAA,0BAAA,GAA6B,EAAE,CAAC;;QAE1D,IAAS,CAAA,SAAA,GAAmC,EAAE,CAAC;;QAE/C,IAAmB,CAAA,mBAAA,GAEvB,EAAE,CAAC;QAEU,IAAoB,CAAA,oBAAA,GAAW,IAAI,MAAM;;AAExD,QAAA,gBAAgB,CACjB,CAAC;QACe,IAAsB,CAAA,sBAAA,GAAW,IAAI,MAAM,CAE1D;YACE,8HAA8H;YAC9H,0DAA0D;AAC3D,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EACX,IAAI,CACL,CAAC;QAIA,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACxC,MAAM,MAAM,GAAGC,iCAAU,CAAC;AACxB,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,UAAU,EAAE;AACV,gBAAA,MAAM,EAAU,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC;AACnD,gBAAA,cAAc,EAAU,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;AACnE,gBAAA,gBAAgB,EAAU,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC;AACvE,gBAAA,SAAS,EAAU,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC;gBACzD,eAAe,GACb,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAC7C;gBACD,mBAAmB,GACjB,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CACjD;AACF,aAAA;AACF,SAAA,CAAC,CAAC;;QAGH,IAAI,CAAC,QAAQ,GAAG,IAAIC,uCAAgB,CAAC,MAAM,CAAC,CAAC;;AAG7C,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;KAClD;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAC,gBAA8B,EAAA;QAC9C,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAkB,KAAI;AACrD,YAAA,IAAI,QAAQ,CAAC,eAAe,EAAE;AAC5B,gBAAA,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAC5C,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,CAC9B,CAAC;aACH;AACD,YAAA,IAAI,QAAQ,CAAC,cAAc,EAAE;AAC3B,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CACrC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CACnD,CACF,CAAC;aACH;AAAM,iBAAA,IAAI,QAAQ,CAAC,UAAU,EAAE;gBAC9B,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,IAAI,8BAA8B,EAAE;AAClE,oBAAA,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC;AAChE,oBAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;wBACnC,OAAO;qBACR;oBACD,MAAM,gBAAgB,GACpB,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAC3D,oBAAA,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,GAAG;AACnD,wBAAA,GAAG,gBAAgB;wBACnB,QAAQ,CAAC,UAAU,CAAC,IAAI;qBACzB,CAAC;iBACH;aACF;AAAM,iBAAA,IAAI,QAAQ,CAAC,QAAQ,EAAE;AAC5B,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;aAChE;AAAM,iBAAA,IAAI,QAAQ,CAAC,MAAM,EAAE;AAC1B,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;aACtD;AAAM,iBAAA,IAAI,QAAQ,CAAC,eAAe,EAAE;AACnC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;aAClD;AAAM,iBAAA,IAAI,QAAQ,CAAC,gBAAgB,EAAE;AACpC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;aACpD;AAAM,iBAAA,IAAI,QAAQ,CAAC,gBAAgB,EAAE;gBACpC,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;aACzD;AAAM,iBAAA,IAAI,QAAQ,CAAC,eAAe,EAAE;AACnC,gBAAA,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;aAChC;AACH,SAAC,CAAC,CAAC;KACJ;AAED;;;;AAIG;AACH,IAAA,iBAAiB,CAAC,KAAsB,EAAA;QACtC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CACzB,QAAQ,CAAC,EAAE,EACX,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EACtC,EAAE,kBAAkB,EAAE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CACxE,CAAC;AACF,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAACC,uCAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAC3E;AAED;;;;AAIG;AACH,IAAA,kBAAkB,CAAC,KAAuB,EAAA;;QAExC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,IAAIC,6BAAoB,CAAC,MAAM,EAAE;YAC9D,OAAO;SACR;AAED,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE3E,QAAA,IAAI,aAAa,IAAID,uCAAgB,CAAC,MAAM,EAAE;YAC5C,OAAO;SACR;;QAGD,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;;QAGrE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;;QAGlD,MAAM,eAAe,GAAe,QAAQ,CAAC,SAAS,CAAC,MAAM,CAC3D,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,UAAU,CAC9B,CAAC;QACF,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE;AAClD,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SAClE;;QAGD,MAAM,MAAM,GAAuB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,YAAY,GAAuB,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,QAAA,MAAM,WAAW,GAA0B,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;AACtE,QAAA,MAAM,UAAU,GAA2B,WAAW,CAAC,MAAM,CAC3D,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,YAAY,CAChC,CAAC,CAAC,CAAC,CAAC;QAEL,MAAM,QAAQ,GAAuB,UAAU;cAC3C,UAAU,CAAC,IAAI;cACf,SAAS,CAAC;;AAGd,QAAA,IAAI,MAAwB,CAAC;AAC7B,QAAA,QAAQ,KAAK,CAAC,cAAc,CAAC,MAAM;YACjC,KAAKC,6BAAoB,CAAC,MAAM;AAC9B,gBAAA,MAAM,GAAGD,uCAAgB,CAAC,MAAM,CAAC;gBACjC,MAAM;YACR,KAAKC,6BAAoB,CAAC,SAAS;AACjC,gBAAA,MAAM,GAAGD,uCAAgB,CAAC,KAAK,CAAC;gBAChC,MAAM;YACR,KAAKC,6BAAoB,CAAC,OAAO;AAC/B,gBAAA,MAAM,GAAGD,uCAAgB,CAAC,KAAK,CAAC;gBAChC,MAAM;YACR,KAAKC,6BAAoB,CAAC,OAAO;AAC/B,gBAAA,MAAM,GAAGD,uCAAgB,CAAC,OAAO,CAAC;gBAClC,MAAM;YACR,KAAKC,6BAAoB,CAAC,SAAS;AACjC,gBAAA,MAAM,GAAGD,uCAAgB,CAAC,KAAK,CAAC;gBAChC,MAAM;YACR,KAAKC,6BAAoB,CAAC,OAAO;AAC/B,gBAAA,MAAM,GAAGD,uCAAgB,CAAC,MAAM,CAAC;gBACjC,MAAM;SACT;AACD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAC/C,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,SAAS,CAC1C,CAAC;AACF,QAAA,IAAI,YAAoB,CAAC;AACzB,QAAA,IAAI,QAAQ,IAAI,SAAS,EAAE;AACzB,YAAA,YAAY,GAAG,CAAA,EAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAA,YAAA,EAAe,QAAQ,CAAA,UAAA,EAAa,eAAe,CAAA,CAAE,CAAC;SACpG;aAAM;YACL,YAAY,GAAG,CAAa,UAAA,EAAA,KAAK,CAAC,cAAc,CAAC,MAAM,CAAA,0BAAA,EAA6B,eAAe,CAAA,CAAE,CAAC;SACvG;;AAED,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KAC5E;AAED;;;;AAIG;AACH,IAAA,kBAAkB,CAAC,KAAuB,EAAA;;AAExC,QAAA,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAE5E,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;;AAGrE,QAAA,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAChC,UAAU,EACV,MAAM,IAAIA,uCAAgB,CAAC,MAAM,EACjC;AACE,YAAA,aAAa,EAAE,OAAO;YACtB,oBAAoB,EAClB,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE;AACjE,SAAA,CACF,CAAC;KACH;AAEO,IAAA,oBAAoB,CAAC,OAAe,EAAA;AAC1C,QAAA,OAAO,OAAO;AACX,aAAA,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;AACxC,aAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;KAC3C;AACF;;;;;;"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index 7dc4769..b38d871 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -3,7 +3,7 @@ import { EventEmitter } from 'events'; import { TestCaseStarted, TestStepFinished, TestCaseFinished } from '@cucumber/messages'; declare const APPLAUSE_SESSION_ID_ATTACHMENT = "applause-session-id"; -declare function linkSessionId(this: IWorld, sessionId: string): void; +declare function linkSessionId(this: IWorld, sessionId: string): void; declare class CucumberAutoApiFormatter extends Formatter { private reporter; diff --git a/dist/index.min.js b/dist/index.min.js index 1239462..176161e 100644 --- a/dist/index.min.js +++ b/dist/index.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@cucumber/cucumber"),require("applause-reporter-common"),require("@cucumber/messages")):"function"==typeof define&&define.amd?define(["exports","@cucumber/cucumber","applause-reporter-common","@cucumber/messages"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["cucumber-applause-reporter"]={},e.cucumber,e.applauseReporterCommon,e.messages)}(this,(function(e,t,s,a){"use strict";const i="applause-session-id";class n extends t.Formatter{constructor(e){super(e),this.testCaseStorage={},this.testCaseInstanceMap={},this.testCaseInstanceSessionMap={},this.pickleMap={},this.testResultStatusMap={},this.REMOVE_CONTROL_CHARS=new RegExp(/[^\x00-\x7F]/gm),this.REMOVE_ANSI_CHARACTERS=new RegExp(["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|"),"gm"),console.log("CDP is: "+process.cwd());const t=s.loadConfig({configFile:"applause.json",properties:{apiKey:e.parsedArgvOptions.apiKey,baseUrl:e.parsedArgvOptions.autoApiUrl,productId:e.parsedArgvOptions.productId,testRailOptions:e.parsedArgvOptions.testRailOptions,applauseTestCycleId:e.parsedArgvOptions.applauseTestCycleId}});this.reporter=new s.ApplauseReporter(t),this.registerListeners(e.eventBroadcaster)}registerListeners(e){e.on("envelope",(e=>{if(e.gherkinDocument&&e.gherkinDocument.feature?.children.map((e=>e.scenario?.name)),e.testRunStarted)this.reporter.runnerStart(Object.values(this.testCaseStorage).map((e=>this.pickleMap[e.pickleId].name)));else if(e.attachment){if(e.attachment.fileName==i){const t=e.attachment.testCaseStartedId;if(void 0===t)return;const s=this.testCaseInstanceSessionMap[t]||[];this.testCaseInstanceSessionMap[t]=[...s,e.attachment.body]}}else e.testCase?this.testCaseStorage[e.testCase.id]=e.testCase:e.pickle?this.pickleMap[e.pickle.id]=e.pickle:e.testCaseStarted?this.onTestCaseStarted(e.testCaseStarted):e.testStepFinished?this.onTestStepFinished(e.testStepFinished):e.testCaseFinished?this.onTestCaseFinished(e.testCaseFinished):e.testRunFinished&&this.reporter.runnerEnd()}))}onTestCaseStarted(e){this.testCaseInstanceMap[e.id]=e.testCaseId;const t=this.testCaseStorage[e.testCaseId];this.reporter.startTestCase(t.id,this.pickleMap[t.pickleId].name,{providerSessionIds:this.testCaseInstanceSessionMap[e.id]||[]}),this.testResultStatusMap[e.id]=[s.TestResultStatus.PASSED,void 0]}onTestStepFinished(e){if(e.testStepResult.status==a.TestStepResultStatus.PASSED)return;if(this.testResultStatusMap[e.testCaseStartedId][0]!=s.TestResultStatus.PASSED)return;const t=this.testCaseInstanceMap[e.testCaseStartedId],i=this.testCaseStorage[t],n=i.testSteps.filter((t=>t.id==e.testStepId));if(n&&1!=n.length)throw new Error("Could not find test step within the test case");const r=this.pickleMap[i.pickleId],p=n[0].pickleStepId,u=(r?r.steps:[]).filter((e=>e.id==p))[0],o=u?u.text:void 0;let c;switch(e.testStepResult.status){case a.TestStepResultStatus.FAILED:c=s.TestResultStatus.FAILED;break;case a.TestStepResultStatus.AMBIGUOUS:case a.TestStepResultStatus.PENDING:c=s.TestResultStatus.ERROR;break;case a.TestStepResultStatus.SKIPPED:c=s.TestResultStatus.SKIPPED;break;case a.TestStepResultStatus.UNDEFINED:c=s.TestResultStatus.ERROR;break;case a.TestStepResultStatus.UNKNOWN:c=s.TestResultStatus.FAILED}const d=this.cleanCucumberMessage(e.testStepResult.message||"Unknown");let l;l=null!=o?`${e.testStepResult.status} Test Step: ${o}. Reason: ${d}`:`Test Case ${e.testStepResult.status} at Unknown Step. Reason: ${d}`,this.testResultStatusMap[e.testCaseStartedId]=[c,l]}onTestCaseFinished(e){const[t,a]=this.testResultStatusMap[e.testCaseStartedId],i=this.testCaseInstanceMap[e.testCaseStartedId];this.reporter.submitTestCaseResult(i,t||s.TestResultStatus.PASSED,{failureReason:a,providerSessionGuids:this.testCaseInstanceSessionMap[e.testCaseStartedId]||[]})}cleanCucumberMessage(e){return e.replace(this.REMOVE_ANSI_CHARACTERS,"").replace(this.REMOVE_CONTROL_CHARS,"")}}e.APPLAUSE_SESSION_ID_ATTACHMENT=i,e.default=n,e.linkSessionId=function(e){this.attach(e,{fileName:i,mediaType:"text/plain"})},Object.defineProperty(e,"__esModule",{value:!0})})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@cucumber/cucumber"),require("applause-reporter-common"),require("@cucumber/messages")):"function"==typeof define&&define.amd?define(["exports","@cucumber/cucumber","applause-reporter-common","@cucumber/messages"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["cucumber-applause-reporter"]={},e.cucumber,e.applauseReporterCommon,e.messages)}(this,(function(e,t,s,a){"use strict";const i="applause-session-id";class n extends t.Formatter{constructor(e){super(e),this.testCaseStorage={},this.testCaseInstanceMap={},this.testCaseInstanceSessionMap={},this.pickleMap={},this.testResultStatusMap={},this.REMOVE_CONTROL_CHARS=new RegExp(/[^\x00-\x7F]/gm),this.REMOVE_ANSI_CHARACTERS=new RegExp(["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|"),"gm"),console.log("CDP is: "+process.cwd());const t=s.loadConfig({configFile:"applause.json",properties:{apiKey:e.parsedArgvOptions.apiKey,autoApiBaseUrl:e.parsedArgvOptions.autoApiBaseUrl,publicApiBaseUrl:e.parsedArgvOptions.publicApiBaseUrl,productId:e.parsedArgvOptions.productId,testRailOptions:e.parsedArgvOptions.testRailOptions,applauseTestCycleId:e.parsedArgvOptions.applauseTestCycleId}});this.reporter=new s.ApplauseReporter(t),this.registerListeners(e.eventBroadcaster)}registerListeners(e){e.on("envelope",(e=>{if(e.gherkinDocument&&e.gherkinDocument.feature?.children.map((e=>e.scenario?.name)),e.testRunStarted)this.reporter.runnerStart(Object.values(this.testCaseStorage).map((e=>this.pickleMap[e.pickleId].name)));else if(e.attachment){if(e.attachment.fileName==i){const t=e.attachment.testCaseStartedId;if(void 0===t)return;const s=this.testCaseInstanceSessionMap[t]||[];this.testCaseInstanceSessionMap[t]=[...s,e.attachment.body]}}else e.testCase?this.testCaseStorage[e.testCase.id]=e.testCase:e.pickle?this.pickleMap[e.pickle.id]=e.pickle:e.testCaseStarted?this.onTestCaseStarted(e.testCaseStarted):e.testStepFinished?this.onTestStepFinished(e.testStepFinished):e.testCaseFinished?this.onTestCaseFinished(e.testCaseFinished):e.testRunFinished&&this.reporter.runnerEnd()}))}onTestCaseStarted(e){this.testCaseInstanceMap[e.id]=e.testCaseId;const t=this.testCaseStorage[e.testCaseId];this.reporter.startTestCase(t.id,this.pickleMap[t.pickleId].name,{providerSessionIds:this.testCaseInstanceSessionMap[e.id]||[]}),this.testResultStatusMap[e.id]=[s.TestResultStatus.PASSED,void 0]}onTestStepFinished(e){if(e.testStepResult.status==a.TestStepResultStatus.PASSED)return;if(this.testResultStatusMap[e.testCaseStartedId][0]!=s.TestResultStatus.PASSED)return;const t=this.testCaseInstanceMap[e.testCaseStartedId],i=this.testCaseStorage[t],n=i.testSteps.filter((t=>t.id==e.testStepId));if(n&&1!=n.length)throw new Error("Could not find test step within the test case");const r=this.pickleMap[i.pickleId],p=n[0].pickleStepId,u=(r?r.steps:[]).filter((e=>e.id==p))[0],o=u?u.text:void 0;let c;switch(e.testStepResult.status){case a.TestStepResultStatus.FAILED:c=s.TestResultStatus.FAILED;break;case a.TestStepResultStatus.AMBIGUOUS:case a.TestStepResultStatus.PENDING:c=s.TestResultStatus.ERROR;break;case a.TestStepResultStatus.SKIPPED:c=s.TestResultStatus.SKIPPED;break;case a.TestStepResultStatus.UNDEFINED:c=s.TestResultStatus.ERROR;break;case a.TestStepResultStatus.UNKNOWN:c=s.TestResultStatus.FAILED}const l=this.cleanCucumberMessage(e.testStepResult.message||"Unknown");let d;d=null!=o?`${e.testStepResult.status} Test Step: ${o}. Reason: ${l}`:`Test Case ${e.testStepResult.status} at Unknown Step. Reason: ${l}`,this.testResultStatusMap[e.testCaseStartedId]=[c,d]}onTestCaseFinished(e){const[t,a]=this.testResultStatusMap[e.testCaseStartedId],i=this.testCaseInstanceMap[e.testCaseStartedId];this.reporter.submitTestCaseResult(i,t||s.TestResultStatus.PASSED,{failureReason:a,providerSessionGuids:this.testCaseInstanceSessionMap[e.testCaseStartedId]||[]})}cleanCucumberMessage(e){return e.replace(this.REMOVE_ANSI_CHARACTERS,"").replace(this.REMOVE_CONTROL_CHARS,"")}}e.APPLAUSE_SESSION_ID_ATTACHMENT=i,e.default=n,e.linkSessionId=function(e){this.attach(e,{fileName:i,mediaType:"text/plain"})},Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=index.min.js.map diff --git a/dist/index.min.js.map b/dist/index.min.js.map index 6d83dd2..63c4e79 100644 --- a/dist/index.min.js.map +++ b/dist/index.min.js.map @@ -1 +1 @@ -{"version":3,"file":"index.min.js","sources":["../src/hooks.ts","../src/index.ts"],"sourcesContent":["import { IWorld } from '@cucumber/cucumber';\n\nexport const APPLAUSE_SESSION_ID_ATTACHMENT = 'applause-session-id';\n\nexport function linkSessionId(this: IWorld, sessionId: string) {\n this.attach(sessionId, {\n fileName: APPLAUSE_SESSION_ID_ATTACHMENT,\n mediaType: 'text/plain',\n });\n}\n","import { Formatter, IFormatterOptions } from '@cucumber/cucumber';\nimport {\n ApplauseReporter,\n TestRailOptions,\n TestResultStatus,\n loadConfig,\n} from 'applause-reporter-common';\nimport { EventEmitter } from 'events';\nimport {\n Envelope,\n Pickle,\n PickleStep,\n TestCase,\n TestCaseFinished,\n TestCaseStarted,\n TestStep,\n TestStepFinished,\n TestStepResultStatus,\n} from '@cucumber/messages';\nimport { APPLAUSE_SESSION_ID_ATTACHMENT } from './hooks';\n\nexport default class CucumberAutoApiFormatter extends Formatter {\n private reporter: ApplauseReporter;\n\n // Maps used to handle data lookup between events.\n // Test Case Storage Handles Storing Information about a TestCase by the TestCaseId\n private testCaseStorage: Record = {};\n // Test Case Instance Map Maps a TestCaseInstance Id (Single Execution of a TestCase) to the TestCaseId\n private testCaseInstanceMap: Record = {};\n private testCaseInstanceSessionMap: Record = {};\n // Pickle Map Holds Information about the Gherkin TestCase Information (The actual written out test case)\n private pickleMap: { [pickleId: string]: Pickle } = {};\n // TestResult Status Map keeps track of the status for a TestCaseInstance. If a step fails, the test case fails\n private testResultStatusMap: {\n [testCaseInstanceId: string]: [TestResultStatus, string | undefined];\n } = {};\n\n private readonly REMOVE_CONTROL_CHARS: RegExp = new RegExp(\n /* eslint-disable-next-line no-control-regex */\n /[^\\x00-\\x7F]/gm\n );\n private readonly REMOVE_ANSI_CHARACTERS: RegExp = new RegExp(\n /* eslint-disable-next-line no-control-regex */\n [\n '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n '(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n ].join('|'),\n 'gm'\n );\n\n constructor(options: IFormatterOptions) {\n super(options);\n console.log('CDP is: ' + process.cwd());\n const config = loadConfig({\n configFile: 'applause.json',\n properties: {\n apiKey: options.parsedArgvOptions['apiKey'],\n baseUrl: options.parsedArgvOptions['autoApiUrl'],\n productId: options.parsedArgvOptions['productId'],\n testRailOptions: (\n options.parsedArgvOptions['testRailOptions']\n ),\n applauseTestCycleId: (\n options.parsedArgvOptions['applauseTestCycleId']\n ),\n },\n });\n\n // Setup our Http Client\n this.reporter = new ApplauseReporter(config);\n\n // Add in listener hooks\n this.registerListeners(options.eventBroadcaster);\n }\n\n /**\n * Registering an event listener to Cucumber's Messaging Api. Only one event will\n * be contained in each envelope\n *\n * @param eventBroadcaster An Event Emitter\n */\n registerListeners(eventBroadcaster: EventEmitter): void {\n eventBroadcaster.on('envelope', (envelope: Envelope) => {\n if (envelope.gherkinDocument) {\n envelope.gherkinDocument.feature?.children.map(\n child => child.scenario?.name\n );\n }\n if (envelope.testRunStarted) {\n this.reporter.runnerStart(\n Object.values(this.testCaseStorage).map(\n testCase => this.pickleMap[testCase.pickleId].name\n )\n );\n } else if (envelope.attachment) {\n if (envelope.attachment.fileName == APPLAUSE_SESSION_ID_ATTACHMENT) {\n const testCaseStartedId = envelope.attachment.testCaseStartedId;\n if (testCaseStartedId === undefined) {\n return;\n }\n const existingSessions =\n this.testCaseInstanceSessionMap[testCaseStartedId] || [];\n this.testCaseInstanceSessionMap[testCaseStartedId] = [\n ...existingSessions,\n envelope.attachment.body,\n ];\n }\n } else if (envelope.testCase) {\n this.testCaseStorage[envelope.testCase.id] = envelope.testCase;\n } else if (envelope.pickle) {\n this.pickleMap[envelope.pickle.id] = envelope.pickle;\n } else if (envelope.testCaseStarted) {\n this.onTestCaseStarted(envelope.testCaseStarted);\n } else if (envelope.testStepFinished) {\n this.onTestStepFinished(envelope.testStepFinished);\n } else if (envelope.testCaseFinished) {\n void this.onTestCaseFinished(envelope.testCaseFinished);\n } else if (envelope.testRunFinished) {\n void this.reporter.runnerEnd();\n }\n });\n }\n\n /**\n * Hook called when a single instance of a test case is started. Used to register the start of a TestCase\n *\n * @param event The Test Case Started Event\n */\n onTestCaseStarted(event: TestCaseStarted): void {\n this.testCaseInstanceMap[event.id] = event.testCaseId;\n const testCase = this.testCaseStorage[event.testCaseId];\n this.reporter.startTestCase(\n testCase.id,\n this.pickleMap[testCase.pickleId].name,\n { providerSessionIds: this.testCaseInstanceSessionMap[event.id] || [] }\n );\n this.testResultStatusMap[event.id] = [TestResultStatus.PASSED, undefined];\n }\n\n /**\n * Hook called when a TestStep is finished. Used to tell if and when a TestCase fails.\n *\n * @param event The Test Step Finished Event\n */\n onTestStepFinished(event: TestStepFinished): void {\n // We already assume that the test case will pass, so if it did, just move on\n if (event.testStepResult.status == TestStepResultStatus.PASSED) {\n return;\n }\n\n const currentStatus = this.testResultStatusMap[event.testCaseStartedId][0];\n // If the current result already has a status set, don't override it\n if (currentStatus != TestResultStatus.PASSED) {\n return;\n }\n\n // Get the test case ID\n const testCaseId = this.testCaseInstanceMap[event.testCaseStartedId];\n\n // Lookup the TestCase\n const testCase = this.testCaseStorage[testCaseId];\n\n // Look for the TestStep that was executed\n const testStepOptions: TestStep[] = testCase.testSteps.filter(\n s => s.id == event.testStepId\n );\n if (testStepOptions && testStepOptions.length != 1) {\n throw new Error('Could not find test step within the test case');\n }\n\n // Now that we have the test step, lets look it up in the pickle to get the actual step text\n const pickle: Pickle | undefined = this.pickleMap[testCase.pickleId];\n const pickleStepId: string | undefined = testStepOptions[0].pickleStepId;\n const pickleSteps: readonly PickleStep[] = pickle ? pickle.steps : [];\n const pickleStep: PickleStep | undefined = pickleSteps.filter(\n step => step.id == pickleStepId\n )[0];\n\n const stepText: string | undefined = pickleStep\n ? pickleStep.text\n : undefined;\n\n // Map the step status to a result status\n let status: TestResultStatus;\n switch (event.testStepResult.status) {\n case TestStepResultStatus.FAILED:\n status = TestResultStatus.FAILED;\n break;\n case TestStepResultStatus.AMBIGUOUS:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.PENDING:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.SKIPPED:\n status = TestResultStatus.SKIPPED;\n break;\n case TestStepResultStatus.UNDEFINED:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.UNKNOWN:\n status = TestResultStatus.FAILED;\n break;\n }\n const cucumberMessage = this.cleanCucumberMessage(\n event.testStepResult.message || 'Unknown'\n );\n let errorMessage: string;\n if (stepText != undefined) {\n errorMessage = `${event.testStepResult.status} Test Step: ${stepText}. Reason: ${cucumberMessage}`;\n } else {\n errorMessage = `Test Case ${event.testStepResult.status} at Unknown Step. Reason: ${cucumberMessage}`;\n }\n // Finally, save off the updated statuses\n this.testResultStatusMap[event.testCaseStartedId] = [status, errorMessage];\n }\n\n /**\n * Hook called when a TestCase finishes it's execution. USed to submit test results to AutoApi\n *\n * @param event The TestCaseFinished event\n */\n onTestCaseFinished(event: TestCaseFinished): void {\n // Pull the TestResults from the TestResultStatusMap\n const [status, failure] = this.testResultStatusMap[event.testCaseStartedId];\n\n const testCaseId = this.testCaseInstanceMap[event.testCaseStartedId];\n\n // Finally, submit the TestResult\n this.reporter.submitTestCaseResult(\n testCaseId,\n status || TestResultStatus.PASSED,\n {\n failureReason: failure,\n providerSessionGuids:\n this.testCaseInstanceSessionMap[event.testCaseStartedId] || [],\n }\n );\n }\n\n private cleanCucumberMessage(message: string): string {\n return message\n .replace(this.REMOVE_ANSI_CHARACTERS, '')\n .replace(this.REMOVE_CONTROL_CHARS, '');\n }\n}\n\nexport * from './hooks.ts';\n"],"names":["APPLAUSE_SESSION_ID_ATTACHMENT","CucumberAutoApiFormatter","Formatter","constructor","options","super","this","testCaseStorage","testCaseInstanceMap","testCaseInstanceSessionMap","pickleMap","testResultStatusMap","REMOVE_CONTROL_CHARS","RegExp","REMOVE_ANSI_CHARACTERS","join","console","log","process","cwd","config","loadConfig","configFile","properties","apiKey","parsedArgvOptions","baseUrl","productId","testRailOptions","applauseTestCycleId","reporter","ApplauseReporter","registerListeners","eventBroadcaster","on","envelope","gherkinDocument","feature","children","map","child","scenario","name","testRunStarted","runnerStart","Object","values","testCase","pickleId","attachment","fileName","testCaseStartedId","undefined","existingSessions","body","id","pickle","testCaseStarted","onTestCaseStarted","testStepFinished","onTestStepFinished","testCaseFinished","onTestCaseFinished","testRunFinished","runnerEnd","event","testCaseId","startTestCase","providerSessionIds","TestResultStatus","PASSED","testStepResult","status","TestStepResultStatus","testStepOptions","testSteps","filter","s","testStepId","length","Error","pickleStepId","pickleStep","steps","step","stepText","text","FAILED","AMBIGUOUS","PENDING","ERROR","SKIPPED","UNDEFINED","UNKNOWN","cucumberMessage","cleanCucumberMessage","message","errorMessage","failure","submitTestCaseResult","failureReason","providerSessionGuids","replace","sessionId","attach","mediaType"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.min.js","sources":["../src/hooks.ts","../src/index.ts"],"sourcesContent":["import { IWorld } from '@cucumber/cucumber';\n\nexport const APPLAUSE_SESSION_ID_ATTACHMENT = 'applause-session-id';\n\nexport function linkSessionId(this: IWorld, sessionId: string) {\n this.attach(sessionId, {\n fileName: APPLAUSE_SESSION_ID_ATTACHMENT,\n mediaType: 'text/plain',\n });\n}\n","import { Formatter, IFormatterOptions } from '@cucumber/cucumber';\nimport {\n ApplauseReporter,\n TestRailOptions,\n TestResultStatus,\n loadConfig,\n} from 'applause-reporter-common';\nimport { EventEmitter } from 'events';\nimport {\n Envelope,\n Pickle,\n PickleStep,\n TestCase,\n TestCaseFinished,\n TestCaseStarted,\n TestStep,\n TestStepFinished,\n TestStepResultStatus,\n} from '@cucumber/messages';\nimport { APPLAUSE_SESSION_ID_ATTACHMENT } from './hooks';\n\nexport default class CucumberAutoApiFormatter extends Formatter {\n private reporter: ApplauseReporter;\n\n // Maps used to handle data lookup between events.\n // Test Case Storage Handles Storing Information about a TestCase by the TestCaseId\n private testCaseStorage: Record = {};\n // Test Case Instance Map Maps a TestCaseInstance Id (Single Execution of a TestCase) to the TestCaseId\n private testCaseInstanceMap: Record = {};\n private testCaseInstanceSessionMap: Record = {};\n // Pickle Map Holds Information about the Gherkin TestCase Information (The actual written out test case)\n private pickleMap: { [pickleId: string]: Pickle } = {};\n // TestResult Status Map keeps track of the status for a TestCaseInstance. If a step fails, the test case fails\n private testResultStatusMap: {\n [testCaseInstanceId: string]: [TestResultStatus, string | undefined];\n } = {};\n\n private readonly REMOVE_CONTROL_CHARS: RegExp = new RegExp(\n /* eslint-disable-next-line no-control-regex */\n /[^\\x00-\\x7F]/gm\n );\n private readonly REMOVE_ANSI_CHARACTERS: RegExp = new RegExp(\n \n [\n '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n '(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n ].join('|'),\n 'gm'\n );\n\n constructor(options: IFormatterOptions) {\n super(options);\n console.log('CDP is: ' + process.cwd());\n const config = loadConfig({\n configFile: 'applause.json',\n properties: {\n apiKey: options.parsedArgvOptions['apiKey'],\n autoApiBaseUrl: options.parsedArgvOptions['autoApiBaseUrl'],\n publicApiBaseUrl: options.parsedArgvOptions['publicApiBaseUrl'],\n productId: options.parsedArgvOptions['productId'],\n testRailOptions: (\n options.parsedArgvOptions['testRailOptions']\n ),\n applauseTestCycleId: (\n options.parsedArgvOptions['applauseTestCycleId']\n ),\n },\n });\n\n // Setup our Http Client\n this.reporter = new ApplauseReporter(config);\n\n // Add in listener hooks\n this.registerListeners(options.eventBroadcaster);\n }\n\n /**\n * Registering an event listener to Cucumber's Messaging Api. Only one event will\n * be contained in each envelope\n *\n * @param eventBroadcaster An Event Emitter\n */\n registerListeners(eventBroadcaster: EventEmitter): void {\n eventBroadcaster.on('envelope', (envelope: Envelope) => {\n if (envelope.gherkinDocument) {\n envelope.gherkinDocument.feature?.children.map(\n child => child.scenario?.name\n );\n }\n if (envelope.testRunStarted) {\n this.reporter.runnerStart(\n Object.values(this.testCaseStorage).map(\n testCase => this.pickleMap[testCase.pickleId].name\n )\n );\n } else if (envelope.attachment) {\n if (envelope.attachment.fileName == APPLAUSE_SESSION_ID_ATTACHMENT) {\n const testCaseStartedId = envelope.attachment.testCaseStartedId;\n if (testCaseStartedId === undefined) {\n return;\n }\n const existingSessions =\n this.testCaseInstanceSessionMap[testCaseStartedId] || [];\n this.testCaseInstanceSessionMap[testCaseStartedId] = [\n ...existingSessions,\n envelope.attachment.body,\n ];\n }\n } else if (envelope.testCase) {\n this.testCaseStorage[envelope.testCase.id] = envelope.testCase;\n } else if (envelope.pickle) {\n this.pickleMap[envelope.pickle.id] = envelope.pickle;\n } else if (envelope.testCaseStarted) {\n this.onTestCaseStarted(envelope.testCaseStarted);\n } else if (envelope.testStepFinished) {\n this.onTestStepFinished(envelope.testStepFinished);\n } else if (envelope.testCaseFinished) {\n void this.onTestCaseFinished(envelope.testCaseFinished);\n } else if (envelope.testRunFinished) {\n void this.reporter.runnerEnd();\n }\n });\n }\n\n /**\n * Hook called when a single instance of a test case is started. Used to register the start of a TestCase\n *\n * @param event The Test Case Started Event\n */\n onTestCaseStarted(event: TestCaseStarted): void {\n this.testCaseInstanceMap[event.id] = event.testCaseId;\n const testCase = this.testCaseStorage[event.testCaseId];\n this.reporter.startTestCase(\n testCase.id,\n this.pickleMap[testCase.pickleId].name,\n { providerSessionIds: this.testCaseInstanceSessionMap[event.id] || [] }\n );\n this.testResultStatusMap[event.id] = [TestResultStatus.PASSED, undefined];\n }\n\n /**\n * Hook called when a TestStep is finished. Used to tell if and when a TestCase fails.\n *\n * @param event The Test Step Finished Event\n */\n onTestStepFinished(event: TestStepFinished): void {\n // We already assume that the test case will pass, so if it did, just move on\n if (event.testStepResult.status == TestStepResultStatus.PASSED) {\n return;\n }\n\n const currentStatus = this.testResultStatusMap[event.testCaseStartedId][0];\n // If the current result already has a status set, don't override it\n if (currentStatus != TestResultStatus.PASSED) {\n return;\n }\n\n // Get the test case ID\n const testCaseId = this.testCaseInstanceMap[event.testCaseStartedId];\n\n // Lookup the TestCase\n const testCase = this.testCaseStorage[testCaseId];\n\n // Look for the TestStep that was executed\n const testStepOptions: TestStep[] = testCase.testSteps.filter(\n s => s.id == event.testStepId\n );\n if (testStepOptions && testStepOptions.length != 1) {\n throw new Error('Could not find test step within the test case');\n }\n\n // Now that we have the test step, lets look it up in the pickle to get the actual step text\n const pickle: Pickle | undefined = this.pickleMap[testCase.pickleId];\n const pickleStepId: string | undefined = testStepOptions[0].pickleStepId;\n const pickleSteps: readonly PickleStep[] = pickle ? pickle.steps : [];\n const pickleStep: PickleStep | undefined = pickleSteps.filter(\n step => step.id == pickleStepId\n )[0];\n\n const stepText: string | undefined = pickleStep\n ? pickleStep.text\n : undefined;\n\n // Map the step status to a result status\n let status: TestResultStatus;\n switch (event.testStepResult.status) {\n case TestStepResultStatus.FAILED:\n status = TestResultStatus.FAILED;\n break;\n case TestStepResultStatus.AMBIGUOUS:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.PENDING:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.SKIPPED:\n status = TestResultStatus.SKIPPED;\n break;\n case TestStepResultStatus.UNDEFINED:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.UNKNOWN:\n status = TestResultStatus.FAILED;\n break;\n }\n const cucumberMessage = this.cleanCucumberMessage(\n event.testStepResult.message || 'Unknown'\n );\n let errorMessage: string;\n if (stepText != undefined) {\n errorMessage = `${event.testStepResult.status} Test Step: ${stepText}. Reason: ${cucumberMessage}`;\n } else {\n errorMessage = `Test Case ${event.testStepResult.status} at Unknown Step. Reason: ${cucumberMessage}`;\n }\n // Finally, save off the updated statuses\n this.testResultStatusMap[event.testCaseStartedId] = [status, errorMessage];\n }\n\n /**\n * Hook called when a TestCase finishes it's execution. USed to submit test results to AutoApi\n *\n * @param event The TestCaseFinished event\n */\n onTestCaseFinished(event: TestCaseFinished): void {\n // Pull the TestResults from the TestResultStatusMap\n const [status, failure] = this.testResultStatusMap[event.testCaseStartedId];\n\n const testCaseId = this.testCaseInstanceMap[event.testCaseStartedId];\n\n // Finally, submit the TestResult\n this.reporter.submitTestCaseResult(\n testCaseId,\n status || TestResultStatus.PASSED,\n {\n failureReason: failure,\n providerSessionGuids:\n this.testCaseInstanceSessionMap[event.testCaseStartedId] || [],\n }\n );\n }\n\n private cleanCucumberMessage(message: string): string {\n return message\n .replace(this.REMOVE_ANSI_CHARACTERS, '')\n .replace(this.REMOVE_CONTROL_CHARS, '');\n }\n}\n\nexport * from './hooks.ts';\n"],"names":["APPLAUSE_SESSION_ID_ATTACHMENT","CucumberAutoApiFormatter","Formatter","constructor","options","super","this","testCaseStorage","testCaseInstanceMap","testCaseInstanceSessionMap","pickleMap","testResultStatusMap","REMOVE_CONTROL_CHARS","RegExp","REMOVE_ANSI_CHARACTERS","join","console","log","process","cwd","config","loadConfig","configFile","properties","apiKey","parsedArgvOptions","autoApiBaseUrl","publicApiBaseUrl","productId","testRailOptions","applauseTestCycleId","reporter","ApplauseReporter","registerListeners","eventBroadcaster","on","envelope","gherkinDocument","feature","children","map","child","scenario","name","testRunStarted","runnerStart","Object","values","testCase","pickleId","attachment","fileName","testCaseStartedId","undefined","existingSessions","body","id","pickle","testCaseStarted","onTestCaseStarted","testStepFinished","onTestStepFinished","testCaseFinished","onTestCaseFinished","testRunFinished","runnerEnd","event","testCaseId","startTestCase","providerSessionIds","TestResultStatus","PASSED","testStepResult","status","TestStepResultStatus","testStepOptions","testSteps","filter","s","testStepId","length","Error","pickleStepId","pickleStep","steps","step","stepText","text","FAILED","AMBIGUOUS","PENDING","ERROR","SKIPPED","UNDEFINED","UNKNOWN","cucumberMessage","cleanCucumberMessage","message","errorMessage","failure","submitTestCaseResult","failureReason","providerSessionGuids","replace","sessionId","attach","mediaType"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.mjs b/dist/index.mjs index 4e46046..e006414 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -26,9 +26,7 @@ class CucumberAutoApiFormatter extends Formatter { this.REMOVE_CONTROL_CHARS = new RegExp( /* eslint-disable-next-line no-control-regex */ /[^\x00-\x7F]/gm); - this.REMOVE_ANSI_CHARACTERS = new RegExp( - /* eslint-disable-next-line no-control-regex */ - [ + this.REMOVE_ANSI_CHARACTERS = new RegExp([ '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))', ].join('|'), 'gm'); @@ -37,7 +35,8 @@ class CucumberAutoApiFormatter extends Formatter { configFile: 'applause.json', properties: { apiKey: options.parsedArgvOptions['apiKey'], - baseUrl: options.parsedArgvOptions['autoApiUrl'], + autoApiBaseUrl: options.parsedArgvOptions['autoApiBaseUrl'], + publicApiBaseUrl: options.parsedArgvOptions['publicApiBaseUrl'], productId: options.parsedArgvOptions['productId'], testRailOptions: (options.parsedArgvOptions['testRailOptions']), applauseTestCycleId: (options.parsedArgvOptions['applauseTestCycleId']), diff --git a/dist/index.mjs.map b/dist/index.mjs.map index b68f531..f81f9fc 100644 --- a/dist/index.mjs.map +++ b/dist/index.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index.mjs","sources":["../src/hooks.ts","../src/index.ts"],"sourcesContent":["import { IWorld } from '@cucumber/cucumber';\n\nexport const APPLAUSE_SESSION_ID_ATTACHMENT = 'applause-session-id';\n\nexport function linkSessionId(this: IWorld, sessionId: string) {\n this.attach(sessionId, {\n fileName: APPLAUSE_SESSION_ID_ATTACHMENT,\n mediaType: 'text/plain',\n });\n}\n","import { Formatter, IFormatterOptions } from '@cucumber/cucumber';\nimport {\n ApplauseReporter,\n TestRailOptions,\n TestResultStatus,\n loadConfig,\n} from 'applause-reporter-common';\nimport { EventEmitter } from 'events';\nimport {\n Envelope,\n Pickle,\n PickleStep,\n TestCase,\n TestCaseFinished,\n TestCaseStarted,\n TestStep,\n TestStepFinished,\n TestStepResultStatus,\n} from '@cucumber/messages';\nimport { APPLAUSE_SESSION_ID_ATTACHMENT } from './hooks';\n\nexport default class CucumberAutoApiFormatter extends Formatter {\n private reporter: ApplauseReporter;\n\n // Maps used to handle data lookup between events.\n // Test Case Storage Handles Storing Information about a TestCase by the TestCaseId\n private testCaseStorage: Record = {};\n // Test Case Instance Map Maps a TestCaseInstance Id (Single Execution of a TestCase) to the TestCaseId\n private testCaseInstanceMap: Record = {};\n private testCaseInstanceSessionMap: Record = {};\n // Pickle Map Holds Information about the Gherkin TestCase Information (The actual written out test case)\n private pickleMap: { [pickleId: string]: Pickle } = {};\n // TestResult Status Map keeps track of the status for a TestCaseInstance. If a step fails, the test case fails\n private testResultStatusMap: {\n [testCaseInstanceId: string]: [TestResultStatus, string | undefined];\n } = {};\n\n private readonly REMOVE_CONTROL_CHARS: RegExp = new RegExp(\n /* eslint-disable-next-line no-control-regex */\n /[^\\x00-\\x7F]/gm\n );\n private readonly REMOVE_ANSI_CHARACTERS: RegExp = new RegExp(\n /* eslint-disable-next-line no-control-regex */\n [\n '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n '(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n ].join('|'),\n 'gm'\n );\n\n constructor(options: IFormatterOptions) {\n super(options);\n console.log('CDP is: ' + process.cwd());\n const config = loadConfig({\n configFile: 'applause.json',\n properties: {\n apiKey: options.parsedArgvOptions['apiKey'],\n baseUrl: options.parsedArgvOptions['autoApiUrl'],\n productId: options.parsedArgvOptions['productId'],\n testRailOptions: (\n options.parsedArgvOptions['testRailOptions']\n ),\n applauseTestCycleId: (\n options.parsedArgvOptions['applauseTestCycleId']\n ),\n },\n });\n\n // Setup our Http Client\n this.reporter = new ApplauseReporter(config);\n\n // Add in listener hooks\n this.registerListeners(options.eventBroadcaster);\n }\n\n /**\n * Registering an event listener to Cucumber's Messaging Api. Only one event will\n * be contained in each envelope\n *\n * @param eventBroadcaster An Event Emitter\n */\n registerListeners(eventBroadcaster: EventEmitter): void {\n eventBroadcaster.on('envelope', (envelope: Envelope) => {\n if (envelope.gherkinDocument) {\n envelope.gherkinDocument.feature?.children.map(\n child => child.scenario?.name\n );\n }\n if (envelope.testRunStarted) {\n this.reporter.runnerStart(\n Object.values(this.testCaseStorage).map(\n testCase => this.pickleMap[testCase.pickleId].name\n )\n );\n } else if (envelope.attachment) {\n if (envelope.attachment.fileName == APPLAUSE_SESSION_ID_ATTACHMENT) {\n const testCaseStartedId = envelope.attachment.testCaseStartedId;\n if (testCaseStartedId === undefined) {\n return;\n }\n const existingSessions =\n this.testCaseInstanceSessionMap[testCaseStartedId] || [];\n this.testCaseInstanceSessionMap[testCaseStartedId] = [\n ...existingSessions,\n envelope.attachment.body,\n ];\n }\n } else if (envelope.testCase) {\n this.testCaseStorage[envelope.testCase.id] = envelope.testCase;\n } else if (envelope.pickle) {\n this.pickleMap[envelope.pickle.id] = envelope.pickle;\n } else if (envelope.testCaseStarted) {\n this.onTestCaseStarted(envelope.testCaseStarted);\n } else if (envelope.testStepFinished) {\n this.onTestStepFinished(envelope.testStepFinished);\n } else if (envelope.testCaseFinished) {\n void this.onTestCaseFinished(envelope.testCaseFinished);\n } else if (envelope.testRunFinished) {\n void this.reporter.runnerEnd();\n }\n });\n }\n\n /**\n * Hook called when a single instance of a test case is started. Used to register the start of a TestCase\n *\n * @param event The Test Case Started Event\n */\n onTestCaseStarted(event: TestCaseStarted): void {\n this.testCaseInstanceMap[event.id] = event.testCaseId;\n const testCase = this.testCaseStorage[event.testCaseId];\n this.reporter.startTestCase(\n testCase.id,\n this.pickleMap[testCase.pickleId].name,\n { providerSessionIds: this.testCaseInstanceSessionMap[event.id] || [] }\n );\n this.testResultStatusMap[event.id] = [TestResultStatus.PASSED, undefined];\n }\n\n /**\n * Hook called when a TestStep is finished. Used to tell if and when a TestCase fails.\n *\n * @param event The Test Step Finished Event\n */\n onTestStepFinished(event: TestStepFinished): void {\n // We already assume that the test case will pass, so if it did, just move on\n if (event.testStepResult.status == TestStepResultStatus.PASSED) {\n return;\n }\n\n const currentStatus = this.testResultStatusMap[event.testCaseStartedId][0];\n // If the current result already has a status set, don't override it\n if (currentStatus != TestResultStatus.PASSED) {\n return;\n }\n\n // Get the test case ID\n const testCaseId = this.testCaseInstanceMap[event.testCaseStartedId];\n\n // Lookup the TestCase\n const testCase = this.testCaseStorage[testCaseId];\n\n // Look for the TestStep that was executed\n const testStepOptions: TestStep[] = testCase.testSteps.filter(\n s => s.id == event.testStepId\n );\n if (testStepOptions && testStepOptions.length != 1) {\n throw new Error('Could not find test step within the test case');\n }\n\n // Now that we have the test step, lets look it up in the pickle to get the actual step text\n const pickle: Pickle | undefined = this.pickleMap[testCase.pickleId];\n const pickleStepId: string | undefined = testStepOptions[0].pickleStepId;\n const pickleSteps: readonly PickleStep[] = pickle ? pickle.steps : [];\n const pickleStep: PickleStep | undefined = pickleSteps.filter(\n step => step.id == pickleStepId\n )[0];\n\n const stepText: string | undefined = pickleStep\n ? pickleStep.text\n : undefined;\n\n // Map the step status to a result status\n let status: TestResultStatus;\n switch (event.testStepResult.status) {\n case TestStepResultStatus.FAILED:\n status = TestResultStatus.FAILED;\n break;\n case TestStepResultStatus.AMBIGUOUS:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.PENDING:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.SKIPPED:\n status = TestResultStatus.SKIPPED;\n break;\n case TestStepResultStatus.UNDEFINED:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.UNKNOWN:\n status = TestResultStatus.FAILED;\n break;\n }\n const cucumberMessage = this.cleanCucumberMessage(\n event.testStepResult.message || 'Unknown'\n );\n let errorMessage: string;\n if (stepText != undefined) {\n errorMessage = `${event.testStepResult.status} Test Step: ${stepText}. Reason: ${cucumberMessage}`;\n } else {\n errorMessage = `Test Case ${event.testStepResult.status} at Unknown Step. Reason: ${cucumberMessage}`;\n }\n // Finally, save off the updated statuses\n this.testResultStatusMap[event.testCaseStartedId] = [status, errorMessage];\n }\n\n /**\n * Hook called when a TestCase finishes it's execution. USed to submit test results to AutoApi\n *\n * @param event The TestCaseFinished event\n */\n onTestCaseFinished(event: TestCaseFinished): void {\n // Pull the TestResults from the TestResultStatusMap\n const [status, failure] = this.testResultStatusMap[event.testCaseStartedId];\n\n const testCaseId = this.testCaseInstanceMap[event.testCaseStartedId];\n\n // Finally, submit the TestResult\n this.reporter.submitTestCaseResult(\n testCaseId,\n status || TestResultStatus.PASSED,\n {\n failureReason: failure,\n providerSessionGuids:\n this.testCaseInstanceSessionMap[event.testCaseStartedId] || [],\n }\n );\n }\n\n private cleanCucumberMessage(message: string): string {\n return message\n .replace(this.REMOVE_ANSI_CHARACTERS, '')\n .replace(this.REMOVE_CONTROL_CHARS, '');\n }\n}\n\nexport * from './hooks.ts';\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.mjs","sources":["../src/hooks.ts","../src/index.ts"],"sourcesContent":["import { IWorld } from '@cucumber/cucumber';\n\nexport const APPLAUSE_SESSION_ID_ATTACHMENT = 'applause-session-id';\n\nexport function linkSessionId(this: IWorld, sessionId: string) {\n this.attach(sessionId, {\n fileName: APPLAUSE_SESSION_ID_ATTACHMENT,\n mediaType: 'text/plain',\n });\n}\n","import { Formatter, IFormatterOptions } from '@cucumber/cucumber';\nimport {\n ApplauseReporter,\n TestRailOptions,\n TestResultStatus,\n loadConfig,\n} from 'applause-reporter-common';\nimport { EventEmitter } from 'events';\nimport {\n Envelope,\n Pickle,\n PickleStep,\n TestCase,\n TestCaseFinished,\n TestCaseStarted,\n TestStep,\n TestStepFinished,\n TestStepResultStatus,\n} from '@cucumber/messages';\nimport { APPLAUSE_SESSION_ID_ATTACHMENT } from './hooks';\n\nexport default class CucumberAutoApiFormatter extends Formatter {\n private reporter: ApplauseReporter;\n\n // Maps used to handle data lookup between events.\n // Test Case Storage Handles Storing Information about a TestCase by the TestCaseId\n private testCaseStorage: Record = {};\n // Test Case Instance Map Maps a TestCaseInstance Id (Single Execution of a TestCase) to the TestCaseId\n private testCaseInstanceMap: Record = {};\n private testCaseInstanceSessionMap: Record = {};\n // Pickle Map Holds Information about the Gherkin TestCase Information (The actual written out test case)\n private pickleMap: { [pickleId: string]: Pickle } = {};\n // TestResult Status Map keeps track of the status for a TestCaseInstance. If a step fails, the test case fails\n private testResultStatusMap: {\n [testCaseInstanceId: string]: [TestResultStatus, string | undefined];\n } = {};\n\n private readonly REMOVE_CONTROL_CHARS: RegExp = new RegExp(\n /* eslint-disable-next-line no-control-regex */\n /[^\\x00-\\x7F]/gm\n );\n private readonly REMOVE_ANSI_CHARACTERS: RegExp = new RegExp(\n \n [\n '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n '(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n ].join('|'),\n 'gm'\n );\n\n constructor(options: IFormatterOptions) {\n super(options);\n console.log('CDP is: ' + process.cwd());\n const config = loadConfig({\n configFile: 'applause.json',\n properties: {\n apiKey: options.parsedArgvOptions['apiKey'],\n autoApiBaseUrl: options.parsedArgvOptions['autoApiBaseUrl'],\n publicApiBaseUrl: options.parsedArgvOptions['publicApiBaseUrl'],\n productId: options.parsedArgvOptions['productId'],\n testRailOptions: (\n options.parsedArgvOptions['testRailOptions']\n ),\n applauseTestCycleId: (\n options.parsedArgvOptions['applauseTestCycleId']\n ),\n },\n });\n\n // Setup our Http Client\n this.reporter = new ApplauseReporter(config);\n\n // Add in listener hooks\n this.registerListeners(options.eventBroadcaster);\n }\n\n /**\n * Registering an event listener to Cucumber's Messaging Api. Only one event will\n * be contained in each envelope\n *\n * @param eventBroadcaster An Event Emitter\n */\n registerListeners(eventBroadcaster: EventEmitter): void {\n eventBroadcaster.on('envelope', (envelope: Envelope) => {\n if (envelope.gherkinDocument) {\n envelope.gherkinDocument.feature?.children.map(\n child => child.scenario?.name\n );\n }\n if (envelope.testRunStarted) {\n this.reporter.runnerStart(\n Object.values(this.testCaseStorage).map(\n testCase => this.pickleMap[testCase.pickleId].name\n )\n );\n } else if (envelope.attachment) {\n if (envelope.attachment.fileName == APPLAUSE_SESSION_ID_ATTACHMENT) {\n const testCaseStartedId = envelope.attachment.testCaseStartedId;\n if (testCaseStartedId === undefined) {\n return;\n }\n const existingSessions =\n this.testCaseInstanceSessionMap[testCaseStartedId] || [];\n this.testCaseInstanceSessionMap[testCaseStartedId] = [\n ...existingSessions,\n envelope.attachment.body,\n ];\n }\n } else if (envelope.testCase) {\n this.testCaseStorage[envelope.testCase.id] = envelope.testCase;\n } else if (envelope.pickle) {\n this.pickleMap[envelope.pickle.id] = envelope.pickle;\n } else if (envelope.testCaseStarted) {\n this.onTestCaseStarted(envelope.testCaseStarted);\n } else if (envelope.testStepFinished) {\n this.onTestStepFinished(envelope.testStepFinished);\n } else if (envelope.testCaseFinished) {\n void this.onTestCaseFinished(envelope.testCaseFinished);\n } else if (envelope.testRunFinished) {\n void this.reporter.runnerEnd();\n }\n });\n }\n\n /**\n * Hook called when a single instance of a test case is started. Used to register the start of a TestCase\n *\n * @param event The Test Case Started Event\n */\n onTestCaseStarted(event: TestCaseStarted): void {\n this.testCaseInstanceMap[event.id] = event.testCaseId;\n const testCase = this.testCaseStorage[event.testCaseId];\n this.reporter.startTestCase(\n testCase.id,\n this.pickleMap[testCase.pickleId].name,\n { providerSessionIds: this.testCaseInstanceSessionMap[event.id] || [] }\n );\n this.testResultStatusMap[event.id] = [TestResultStatus.PASSED, undefined];\n }\n\n /**\n * Hook called when a TestStep is finished. Used to tell if and when a TestCase fails.\n *\n * @param event The Test Step Finished Event\n */\n onTestStepFinished(event: TestStepFinished): void {\n // We already assume that the test case will pass, so if it did, just move on\n if (event.testStepResult.status == TestStepResultStatus.PASSED) {\n return;\n }\n\n const currentStatus = this.testResultStatusMap[event.testCaseStartedId][0];\n // If the current result already has a status set, don't override it\n if (currentStatus != TestResultStatus.PASSED) {\n return;\n }\n\n // Get the test case ID\n const testCaseId = this.testCaseInstanceMap[event.testCaseStartedId];\n\n // Lookup the TestCase\n const testCase = this.testCaseStorage[testCaseId];\n\n // Look for the TestStep that was executed\n const testStepOptions: TestStep[] = testCase.testSteps.filter(\n s => s.id == event.testStepId\n );\n if (testStepOptions && testStepOptions.length != 1) {\n throw new Error('Could not find test step within the test case');\n }\n\n // Now that we have the test step, lets look it up in the pickle to get the actual step text\n const pickle: Pickle | undefined = this.pickleMap[testCase.pickleId];\n const pickleStepId: string | undefined = testStepOptions[0].pickleStepId;\n const pickleSteps: readonly PickleStep[] = pickle ? pickle.steps : [];\n const pickleStep: PickleStep | undefined = pickleSteps.filter(\n step => step.id == pickleStepId\n )[0];\n\n const stepText: string | undefined = pickleStep\n ? pickleStep.text\n : undefined;\n\n // Map the step status to a result status\n let status: TestResultStatus;\n switch (event.testStepResult.status) {\n case TestStepResultStatus.FAILED:\n status = TestResultStatus.FAILED;\n break;\n case TestStepResultStatus.AMBIGUOUS:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.PENDING:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.SKIPPED:\n status = TestResultStatus.SKIPPED;\n break;\n case TestStepResultStatus.UNDEFINED:\n status = TestResultStatus.ERROR;\n break;\n case TestStepResultStatus.UNKNOWN:\n status = TestResultStatus.FAILED;\n break;\n }\n const cucumberMessage = this.cleanCucumberMessage(\n event.testStepResult.message || 'Unknown'\n );\n let errorMessage: string;\n if (stepText != undefined) {\n errorMessage = `${event.testStepResult.status} Test Step: ${stepText}. Reason: ${cucumberMessage}`;\n } else {\n errorMessage = `Test Case ${event.testStepResult.status} at Unknown Step. Reason: ${cucumberMessage}`;\n }\n // Finally, save off the updated statuses\n this.testResultStatusMap[event.testCaseStartedId] = [status, errorMessage];\n }\n\n /**\n * Hook called when a TestCase finishes it's execution. USed to submit test results to AutoApi\n *\n * @param event The TestCaseFinished event\n */\n onTestCaseFinished(event: TestCaseFinished): void {\n // Pull the TestResults from the TestResultStatusMap\n const [status, failure] = this.testResultStatusMap[event.testCaseStartedId];\n\n const testCaseId = this.testCaseInstanceMap[event.testCaseStartedId];\n\n // Finally, submit the TestResult\n this.reporter.submitTestCaseResult(\n testCaseId,\n status || TestResultStatus.PASSED,\n {\n failureReason: failure,\n providerSessionGuids:\n this.testCaseInstanceSessionMap[event.testCaseStartedId] || [],\n }\n );\n }\n\n private cleanCucumberMessage(message: string): string {\n return message\n .replace(this.REMOVE_ANSI_CHARACTERS, '')\n .replace(this.REMOVE_CONTROL_CHARS, '');\n }\n}\n\nexport * from './hooks.ts';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..ce716ff --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,11 @@ +import globals from "globals"; +import pluginJs from "@eslint/js"; +import tseslint from "typescript-eslint"; + + +export default [ + {files: ["**/*.{js,mjs,cjs,ts}"], ignores: ["**/node_modules/**"]}, + {languageOptions: { globals: globals.browser }}, + pluginJs.configs.recommended, + ...tseslint.configs.recommended, +]; \ No newline at end of file diff --git a/package.json b/package.json index 5e73bc0..ea095b0 100644 --- a/package.json +++ b/package.json @@ -35,31 +35,28 @@ "Applause" ], "devDependencies": { + "@eslint/js": "^9.12.0", "@rollup/plugin-json": "^6.0.0", - "@rollup/plugin-node-resolve": "15.2.1", + "@rollup/plugin-node-resolve": "15.3.0", "@rollup/plugin-terser": "^0.4.3", "@rollup/plugin-typescript": "^11.1.3", - "@tsconfig/node20": "^20.1.2", - "@types/node": "^20.6.0", - "@typescript-eslint/eslint-plugin": "^6.7.0", - "@typescript-eslint/parser": "^6.7.0", + "@tsconfig/node20": "^20.1.4", + "@types/node": "^22.7.5", "cross-env": "^7.0.3", - "eslint": "^8.49.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^5.0.0", - "prettier": "^3.0.3", - "rollup": "3.29.5", + "eslint": "^9.12.0", + "globals": "^15.11.0", + "prettier": "^3.3.3", + "rollup": "4.24.0", "rollup-plugin-dts": "^6.0.2", - "ts-node": "10.9.1", - "tslib": "^2.6.2", - "typescript": "5.2.2" + "ts-node": "10.9.2", + "tslib": "^2.7.0", + "typescript": "5.6.3", + "typescript-eslint": "^8.9.0" }, "dependencies": { - "@cucumber/cucumber": "^9.5.1", - "@cucumber/messages": "^22.0.0", - "applause-reporter-common": "https://github.com/ApplauseOSS/applause-reporter-common#v1.0.0", - "events": "^3.3.0", - "yarn": "^1.22.19" + "@cucumber/cucumber": "^11.0.1", + "@cucumber/messages": "^26.0.1", + "applause-reporter-common": "https://github.com/ApplauseOSS/applause-reporter-common#master", + "yarn": "^1.22.22" } } diff --git a/src/hooks.ts b/src/hooks.ts index 368e97b..76b5ec7 100644 --- a/src/hooks.ts +++ b/src/hooks.ts @@ -2,7 +2,7 @@ import { IWorld } from '@cucumber/cucumber'; export const APPLAUSE_SESSION_ID_ATTACHMENT = 'applause-session-id'; -export function linkSessionId(this: IWorld, sessionId: string) { +export function linkSessionId(this: IWorld, sessionId: string) { this.attach(sessionId, { fileName: APPLAUSE_SESSION_ID_ATTACHMENT, mediaType: 'text/plain', diff --git a/src/index.ts b/src/index.ts index 6b0c429..c3cb0e4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -40,7 +40,7 @@ export default class CucumberAutoApiFormatter extends Formatter { /[^\x00-\x7F]/gm ); private readonly REMOVE_ANSI_CHARACTERS: RegExp = new RegExp( - /* eslint-disable-next-line no-control-regex */ + [ '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))', @@ -55,7 +55,8 @@ export default class CucumberAutoApiFormatter extends Formatter { configFile: 'applause.json', properties: { apiKey: options.parsedArgvOptions['apiKey'], - baseUrl: options.parsedArgvOptions['autoApiUrl'], + autoApiBaseUrl: options.parsedArgvOptions['autoApiBaseUrl'], + publicApiBaseUrl: options.parsedArgvOptions['publicApiBaseUrl'], productId: options.parsedArgvOptions['productId'], testRailOptions: ( options.parsedArgvOptions['testRailOptions'] diff --git a/yarn.lock b/yarn.lock index ccff530..6ac8471 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,25 +2,25 @@ # yarn lockfile v1 -"@babel/code-frame@^7.24.2": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" - integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.24.2": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.25.7.tgz#438f2c524071531d643c6f0188e1e28f130cebc7" + integrity sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g== dependencies: - "@babel/highlight" "^7.24.7" + "@babel/highlight" "^7.25.7" picocolors "^1.0.0" -"@babel/helper-validator-identifier@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" - integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== +"@babel/helper-validator-identifier@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz#77b7f60c40b15c97df735b38a66ba1d7c3e93da5" + integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg== -"@babel/highlight@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" - integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== +"@babel/highlight@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.7.tgz#20383b5f442aa606e7b5e3043b0b1aafe9f37de5" + integrity sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw== dependencies: - "@babel/helper-validator-identifier" "^7.24.7" + "@babel/helper-validator-identifier" "^7.25.7" chalk "^2.4.2" js-tokens "^4.0.0" picocolors "^1.0.0" @@ -30,6 +30,11 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== +"@colors/colors@1.6.0", "@colors/colors@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" + integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -37,32 +42,32 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@cucumber/ci-environment@9.2.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@cucumber/ci-environment/-/ci-environment-9.2.0.tgz#3942f39d6a7595295256d97a88d39d02469ba50f" - integrity sha512-jLzRtVwdtNt+uAmTwvXwW9iGYLEOJFpDSmnx/dgoMGKXUWRx1UHT86Q696CLdgXO8kyTwsgJY0c6n5SW9VitAA== +"@cucumber/ci-environment@10.0.1": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@cucumber/ci-environment/-/ci-environment-10.0.1.tgz#c8584f1d4a619e4318cf60c01b838db096d72ccd" + integrity sha512-/+ooDMPtKSmvcPMDYnMZt4LuoipfFfHaYspStI4shqw8FyKcfQAmekz6G+QKWjQQrvM+7Hkljwx58MEwPCwwzg== -"@cucumber/cucumber-expressions@16.1.2": - version "16.1.2" - resolved "https://registry.yarnpkg.com/@cucumber/cucumber-expressions/-/cucumber-expressions-16.1.2.tgz#8c7200a4490b48a0309f5cc4e058cf6578b5b578" - integrity sha512-CfHEbxJ5FqBwF6mJyLLz4B353gyHkoi6cCL4J0lfDZ+GorpcWw4n2OUAdxJmP7ZlREANWoTFlp4FhmkLKrCfUA== +"@cucumber/cucumber-expressions@17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@cucumber/cucumber-expressions/-/cucumber-expressions-17.1.0.tgz#1a428548a2c98ef3224bd484fc5666b4f7153a72" + integrity sha512-PCv/ppsPynniKPWJr5v566daCVe+pbxQpHGrIu/Ev57cCH9Rv+X0F6lio4Id3Z64TaG7btCRLUGewIgLwmrwOA== dependencies: regexp-match-indices "1.0.2" -"@cucumber/cucumber@^9.5.1": - version "9.6.0" - resolved "https://registry.yarnpkg.com/@cucumber/cucumber/-/cucumber-9.6.0.tgz#7653b6bb2dc417ac21bf81711f6c8c2f376b0cd0" - integrity sha512-bCw2uJdGHHLg4B3RoZpLzx0RXyXURmPe+swtdK1cGoA8rs+vv+/6osifcNwvFM2sv0nQ91+gDACSrXK7AHCylg== +"@cucumber/cucumber@^11.0.1": + version "11.0.1" + resolved "https://registry.yarnpkg.com/@cucumber/cucumber/-/cucumber-11.0.1.tgz#6c4b5890886815d91d8b83d3b0d4abd96c527148" + integrity sha512-8ypR+tQiY0sZSzQ5WS+RIKL0rUI38skRuyIK0g/crP/JmDAovG6KNJ6t0YLnGQ43UofG9jR8HWt/EPz2mtZD0w== dependencies: - "@cucumber/ci-environment" "9.2.0" - "@cucumber/cucumber-expressions" "16.1.2" - "@cucumber/gherkin" "26.2.0" + "@cucumber/ci-environment" "10.0.1" + "@cucumber/cucumber-expressions" "17.1.0" + "@cucumber/gherkin" "28.0.0" "@cucumber/gherkin-streams" "5.0.1" - "@cucumber/gherkin-utils" "8.0.2" - "@cucumber/html-formatter" "20.4.0" + "@cucumber/gherkin-utils" "9.0.0" + "@cucumber/html-formatter" "21.6.0" "@cucumber/message-streams" "4.0.1" - "@cucumber/messages" "22.0.0" - "@cucumber/tag-expressions" "5.0.1" + "@cucumber/messages" "24.1.0" + "@cucumber/tag-expressions" "6.1.0" assertion-error-formatter "^3.0.0" capital-case "^1.0.4" chalk "^4.1.2" @@ -71,7 +76,7 @@ debug "^4.3.4" error-stack-parser "^2.1.4" figures "^3.2.0" - glob "^7.1.6" + glob "^10.3.10" has-ansi "^4.0.1" indent-string "^4.0.0" is-installed-globally "^0.4.0" @@ -80,17 +85,19 @@ lodash.merge "^4.6.2" lodash.mergewith "^4.6.2" luxon "3.2.1" + mime "^3.0.0" mkdirp "^2.1.5" mz "^2.7.0" progress "^2.0.3" + read-pkg-up "^7.0.1" resolve-pkg "^2.0.0" semver "7.5.3" - string-argv "^0.3.1" + string-argv "0.3.1" strip-ansi "6.0.1" supports-color "^8.1.1" - tmp "^0.2.1" + tmp "0.2.3" + type-fest "^4.8.3" util-arity "^1.1.0" - verror "^1.10.0" xmlbuilder "^15.1.1" yaml "^2.2.2" yup "1.2.0" @@ -103,65 +110,67 @@ commander "9.1.0" source-map-support "0.5.21" -"@cucumber/gherkin-utils@8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@cucumber/gherkin-utils/-/gherkin-utils-8.0.2.tgz#deae231f84e91f120501d22187c66d36e6c6b59f" - integrity sha512-aQlziN3r3cTwprEDbLEcFoMRQajb9DTOu2OZZp5xkuNz6bjSTowSY90lHUD2pWT7jhEEckZRIREnk7MAwC2d1A== +"@cucumber/gherkin-utils@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@cucumber/gherkin-utils/-/gherkin-utils-9.0.0.tgz#944c64c458742d8e73b750e5dde2cf56b161d674" + integrity sha512-clk4q39uj7pztZuZtyI54V8lRsCUz0Y/p8XRjIeHh7ExeEztpWkp4ca9q1FjUOPfQQ8E7OgqFbqoQQXZ1Bx7fw== dependencies: - "@cucumber/gherkin" "^25.0.0" - "@cucumber/messages" "^19.1.4" - "@teppeis/multimaps" "2.0.0" - commander "9.4.1" + "@cucumber/gherkin" "^28.0.0" + "@cucumber/messages" "^24.0.0" + "@teppeis/multimaps" "3.0.0" + commander "12.0.0" source-map-support "^0.5.21" -"@cucumber/gherkin@26.2.0": - version "26.2.0" - resolved "https://registry.yarnpkg.com/@cucumber/gherkin/-/gherkin-26.2.0.tgz#256129ef5e4d1cba87a673ce78d7296809d1e4c9" - integrity sha512-iRSiK8YAIHAmLrn/mUfpAx7OXZ7LyNlh1zT89RoziSVCbqSVDxJS6ckEzW8loxs+EEXl0dKPQOXiDmbHV+C/fA== +"@cucumber/gherkin@28.0.0", "@cucumber/gherkin@^28.0.0": + version "28.0.0" + resolved "https://registry.yarnpkg.com/@cucumber/gherkin/-/gherkin-28.0.0.tgz#91246da622524807b21430c1692bedd319d3d4bb" + integrity sha512-Ee6zJQq0OmIUPdW0mSnsCsrWA2PZAELNDPICD2pLfs0Oz7RAPgj80UsD2UCtqyAhw2qAR62aqlktKUlai5zl/A== dependencies: - "@cucumber/messages" ">=19.1.4 <=22" + "@cucumber/messages" ">=19.1.4 <=24" -"@cucumber/gherkin@^25.0.0": - version "25.0.2" - resolved "https://registry.yarnpkg.com/@cucumber/gherkin/-/gherkin-25.0.2.tgz#e430879f01978d1f9e7a7aa0563031a3a36022e7" - integrity sha512-EdsrR33Y5GjuOoe2Kq5Y9DYwgNRtUD32H4y2hCrT6+AWo7ibUQu7H+oiWTgfVhwbkHsZmksxHSxXz/AwqqyCRQ== - dependencies: - "@cucumber/messages" "^19.1.4" - -"@cucumber/html-formatter@20.4.0": - version "20.4.0" - resolved "https://registry.yarnpkg.com/@cucumber/html-formatter/-/html-formatter-20.4.0.tgz#ac3d24ed6c6127b07024f5bf869836e6ec7265db" - integrity sha512-TnLSXC5eJd8AXHENo69f5z+SixEVtQIf7Q2dZuTpT/Y8AOkilGpGl1MQR1Vp59JIw+fF3EQSUKdf+DAThCxUNg== +"@cucumber/html-formatter@21.6.0": + version "21.6.0" + resolved "https://registry.yarnpkg.com/@cucumber/html-formatter/-/html-formatter-21.6.0.tgz#bfd8c4db31c6c96a8520332efba2ea9838ca36f0" + integrity sha512-Qw1tdObBJrgXgXwVjKVjB3hFhFPI8WhIFb+ULy8g5lDl5AdnKDiyDXAMvAWRX+pphnRMMNdkPCt6ZXEfWvUuAA== "@cucumber/message-streams@4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@cucumber/message-streams/-/message-streams-4.0.1.tgz#a5339d3504594bb2edb5732aaae94dddb24d0970" integrity sha512-Kxap9uP5jD8tHUZVjTWgzxemi/0uOsbGjd4LBOSxcJoOCRbESFwemUzilJuzNTB8pcTQUh8D5oudUyxfkJOKmA== -"@cucumber/messages@22.0.0", "@cucumber/messages@>=19.1.4 <=22", "@cucumber/messages@^22.0.0": - version "22.0.0" - resolved "https://registry.yarnpkg.com/@cucumber/messages/-/messages-22.0.0.tgz#2d86974ebd73046f66d217334c2245365c7990d4" - integrity sha512-EuaUtYte9ilkxcKmfqGF9pJsHRUU0jwie5ukuZ/1NPTuHS1LxHPsGEODK17RPRbZHOFhqybNzG2rHAwThxEymg== +"@cucumber/messages@24.1.0", "@cucumber/messages@>=19.1.4 <=24", "@cucumber/messages@^24.0.0": + version "24.1.0" + resolved "https://registry.yarnpkg.com/@cucumber/messages/-/messages-24.1.0.tgz#a212c97b0548144c3ccfae021a96d6c56d3841d3" + integrity sha512-hxVHiBurORcobhVk80I9+JkaKaNXkW6YwGOEFIh/2aO+apAN+5XJgUUWjng9NwqaQrW1sCFuawLB1AuzmBaNdQ== dependencies: - "@types/uuid" "9.0.1" + "@types/uuid" "9.0.8" class-transformer "0.5.1" - reflect-metadata "0.1.13" - uuid "9.0.0" + reflect-metadata "0.2.1" + uuid "9.0.1" -"@cucumber/messages@^19.1.4": - version "19.1.4" - resolved "https://registry.yarnpkg.com/@cucumber/messages/-/messages-19.1.4.tgz#5cefc47cac3004c0bc38d42933042ec248bb747c" - integrity sha512-Pksl0pnDz2l1+L5Ug85NlG6LWrrklN9qkMxN5Mv+1XZ3T6u580dnE6mVaxjJRdcOq4tR17Pc0RqIDZMyVY1FlA== +"@cucumber/messages@^26.0.1": + version "26.0.1" + resolved "https://registry.yarnpkg.com/@cucumber/messages/-/messages-26.0.1.tgz#18765481cf2580066977cbe26af111458e05c424" + integrity sha512-DIxSg+ZGariumO+Lq6bn4kOUIUET83A4umrnWmidjGFl8XxkBieUZtsmNbLYgH/gnsmP07EfxxdTr0hOchV1Sg== dependencies: - "@types/uuid" "8.3.4" + "@types/uuid" "10.0.0" class-transformer "0.5.1" - reflect-metadata "0.1.13" - uuid "9.0.0" + reflect-metadata "0.2.2" + uuid "10.0.0" -"@cucumber/tag-expressions@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@cucumber/tag-expressions/-/tag-expressions-5.0.1.tgz#94ed2299eaa9085f113d71cb4da1186ad57b3de9" - integrity sha512-N43uWud8ZXuVjza423T9ZCIJsaZhFekmakt7S9bvogTxqdVGbRobjR663s0+uW0Rz9e+Pa8I6jUuWtoBLQD2Mw== +"@cucumber/tag-expressions@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@cucumber/tag-expressions/-/tag-expressions-6.1.0.tgz#cb7af908bdb43669b7574c606f71fa707196e962" + integrity sha512-+3DwRumrCJG27AtzCIL37A/X+A/gSfxOPLg8pZaruh5SLumsTmpvilwroVWBT2fPzmno/tGXypeK5a7NHU4RzA== + +"@dabh/diagnostics@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -170,49 +179,91 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.11.0": version "4.11.1" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.1.tgz#a547badfc719eb3e5f4b556325e542fbe9d7a18f" integrity sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q== -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== +"@eslint/config-array@^0.18.0": + version "0.18.0" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.18.0.tgz#37d8fe656e0d5e3dbaea7758ea56540867fd074d" + integrity sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw== + dependencies: + "@eslint/object-schema" "^2.1.4" + debug "^4.3.1" + minimatch "^3.1.2" + +"@eslint/core@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.6.0.tgz#9930b5ba24c406d67a1760e94cdbac616a6eb674" + integrity sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg== + +"@eslint/eslintrc@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6" + integrity sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" + espree "^10.0.1" + globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.57.1": - version "8.57.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" - integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== +"@eslint/js@9.12.0", "@eslint/js@^9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.12.0.tgz#69ca3ca9fab9a808ec6d67b8f6edb156cbac91e1" + integrity sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA== -"@humanwhocodes/config-array@^0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" - integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== +"@eslint/object-schema@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" + integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== + +"@eslint/plugin-kit@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz#8712dccae365d24e9eeecb7b346f85e750ba343d" + integrity sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig== dependencies: - "@humanwhocodes/object-schema" "^2.0.3" - debug "^4.3.1" - minimatch "^3.0.5" + levn "^0.4.1" + +"@humanfs/core@^0.19.0": + version "0.19.0" + resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.0.tgz#08db7a8c73bb07673d9ebd925f2dad746411fcec" + integrity sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw== + +"@humanfs/node@^0.16.5": + version "0.16.5" + resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.5.tgz#a9febb7e7ad2aff65890fdc630938f8d20aa84ba" + integrity sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg== + dependencies: + "@humanfs/core" "^0.19.0" + "@humanwhocodes/retry" "^0.3.0" "@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.3": - 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== +"@humanwhocodes/retry@^0.3.0", "@humanwhocodes/retry@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" + integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== + +"@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" "@jridgewell/gen-mapping@^0.3.5": version "0.3.5" @@ -275,7 +326,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": +"@nodelib/fs.walk@^1.2.3": 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== @@ -283,10 +334,10 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.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== +"@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== "@rollup/plugin-json@^6.0.0": version "6.1.0" @@ -295,15 +346,14 @@ dependencies: "@rollup/pluginutils" "^5.1.0" -"@rollup/plugin-node-resolve@15.2.1": - version "15.2.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz#a15b14fb7969229e26a30feff2816d39eff503f0" - integrity sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w== +"@rollup/plugin-node-resolve@15.3.0": + version "15.3.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.0.tgz#efbb35515c9672e541c08d59caba2eff492a55d5" + integrity sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag== dependencies: "@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.22.1" @@ -333,6 +383,86 @@ estree-walker "^2.0.2" picomatch "^2.3.1" +"@rollup/rollup-android-arm-eabi@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz#1661ff5ea9beb362795304cb916049aba7ac9c54" + integrity sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA== + +"@rollup/rollup-android-arm64@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz#2ffaa91f1b55a0082b8a722525741aadcbd3971e" + integrity sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA== + +"@rollup/rollup-darwin-arm64@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz#627007221b24b8cc3063703eee0b9177edf49c1f" + integrity sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA== + +"@rollup/rollup-darwin-x64@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz#0605506142b9e796c370d59c5984ae95b9758724" + integrity sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ== + +"@rollup/rollup-linux-arm-gnueabihf@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz#62dfd196d4b10c0c2db833897164d2d319ee0cbb" + integrity sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA== + +"@rollup/rollup-linux-arm-musleabihf@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz#53ce72aeb982f1f34b58b380baafaf6a240fddb3" + integrity sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw== + +"@rollup/rollup-linux-arm64-gnu@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz#1632990f62a75c74f43e4b14ab3597d7ed416496" + integrity sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA== + +"@rollup/rollup-linux-arm64-musl@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz#8c03a996efb41e257b414b2e0560b7a21f2d9065" + integrity sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw== + +"@rollup/rollup-linux-powerpc64le-gnu@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz#5b98729628d5bcc8f7f37b58b04d6845f85c7b5d" + integrity sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw== + +"@rollup/rollup-linux-riscv64-gnu@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz#48e42e41f4cabf3573cfefcb448599c512e22983" + integrity sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg== + +"@rollup/rollup-linux-s390x-gnu@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz#e0b4f9a966872cb7d3e21b9e412a4b7efd7f0b58" + integrity sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g== + +"@rollup/rollup-linux-x64-gnu@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz#78144741993100f47bd3da72fce215e077ae036b" + integrity sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A== + +"@rollup/rollup-linux-x64-musl@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz#d9fe32971883cd1bd858336bd33a1c3ca6146127" + integrity sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ== + +"@rollup/rollup-win32-arm64-msvc@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz#71fa3ea369316db703a909c790743972e98afae5" + integrity sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ== + +"@rollup/rollup-win32-ia32-msvc@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz#653f5989a60658e17d7576a3996deb3902e342e2" + integrity sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ== + +"@rollup/rollup-win32-x64-msvc@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz#0574d7e87b44ee8511d08cc7f914bcb802b70818" + integrity sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw== + "@selderee/plugin-htmlparser2@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz#d5b5e29a7ba6d3958a1972c7be16f4b2c188c517" @@ -341,10 +471,10 @@ domhandler "^5.0.3" selderee "^0.11.0" -"@teppeis/multimaps@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@teppeis/multimaps/-/multimaps-2.0.0.tgz#2114ee964b702f9777d0e07899087ad9cd89a0de" - integrity sha512-TL1adzq1HdxUf9WYduLcQ/DNGYiz71U31QRgbnr0Ef1cPyOUOsBojxHVWpFeOSUucB6Lrs0LxFRA14ntgtkc9w== +"@teppeis/multimaps@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@teppeis/multimaps/-/multimaps-3.0.0.tgz#bb9c3f8d569f589e548586fa0bbf423010ddfdc5" + integrity sha512-ID7fosbc50TbT0MK0EG12O+gAP3W3Aa/Pz4DaTtQtEvlc9Odaqi0de+xuZ7Li2GtK4HzEX7IuRWS/JmZLksR3Q== "@tsconfig/node10@^1.0.7": version "1.0.11" @@ -366,138 +496,140 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@tsconfig/node20@^20.1.2": +"@tsconfig/node20@^20.1.4": version "20.1.4" resolved "https://registry.yarnpkg.com/@tsconfig/node20/-/node20-20.1.4.tgz#3457d42eddf12d3bde3976186ab0cd22b85df928" integrity sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg== -"@types/estree@^1.0.0": +"@types/estree@1.0.6", "@types/estree@^1.0.0", "@types/estree@^1.0.6": version "1.0.6" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== -"@types/json-schema@^7.0.12": +"@types/json-schema@^7.0.15": 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/node@^20.6.0": - version "20.16.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.16.10.tgz#0cc3fdd3daf114a4776f54ba19726a01c907ef71" - integrity sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA== +"@types/node@^22.7.5": + version "22.7.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.5.tgz#cfde981727a7ab3611a481510b473ae54442b92b" + integrity sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ== dependencies: undici-types "~6.19.2" +"@types/normalize-package-data@^2.4.0": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + "@types/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.5.0": - version "7.5.8" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" - integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== - -"@types/uuid@8.3.4": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/uuid@9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.1.tgz#98586dc36aee8dacc98cc396dbca8d0429647aa6" - integrity sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA== - -"@typescript-eslint/eslint-plugin@^6.7.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" - integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/type-utils" "6.21.0" - "@typescript-eslint/utils" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" +"@types/triple-beam@^1.3.2": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" + integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== + +"@types/uuid@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-10.0.0.tgz#e9c07fe50da0f53dc24970cca94d619ff03f6f6d" + integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ== + +"@types/uuid@9.0.8": + version "9.0.8" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" + integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== + +"@typescript-eslint/eslint-plugin@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.9.0.tgz#bf0b25305b0bf014b4b194a6919103d7ac2a7907" + integrity sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "8.9.0" + "@typescript-eslint/type-utils" "8.9.0" + "@typescript-eslint/utils" "8.9.0" + "@typescript-eslint/visitor-keys" "8.9.0" graphemer "^1.4.0" - ignore "^5.2.4" + ignore "^5.3.1" natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/parser@^6.7.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" - integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== - dependencies: - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/parser@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.9.0.tgz#0cecda6def8aef95d7c7098359c0fda5a362d6ad" + integrity sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ== + dependencies: + "@typescript-eslint/scope-manager" "8.9.0" + "@typescript-eslint/types" "8.9.0" + "@typescript-eslint/typescript-estree" "8.9.0" + "@typescript-eslint/visitor-keys" "8.9.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" - integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== +"@typescript-eslint/scope-manager@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.9.0.tgz#c98fef0c4a82a484e6a1eb610a55b154d14d46f3" + integrity sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ== dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/types" "8.9.0" + "@typescript-eslint/visitor-keys" "8.9.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== +"@typescript-eslint/type-utils@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.9.0.tgz#aa86da3e4555fe7c8b42ab75e13561c4b5a8dfeb" + integrity sha512-JD+/pCqlKqAk5961vxCluK+clkppHY07IbV3vett97KOV+8C6l+CPEPwpUuiMwgbOz/qrN3Ke4zzjqbT+ls+1Q== dependencies: - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/utils" "6.21.0" + "@typescript-eslint/typescript-estree" "8.9.0" + "@typescript-eslint/utils" "8.9.0" debug "^4.3.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/types@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" - integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== +"@typescript-eslint/types@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.9.0.tgz#b733af07fb340b32e962c6c63b1062aec2dc0fe6" + integrity sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ== -"@typescript-eslint/typescript-estree@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" - integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== +"@typescript-eslint/typescript-estree@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.9.0.tgz#1714f167e9063062dc0df49c1d25afcbc7a96199" + integrity sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g== dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/types" "8.9.0" + "@typescript-eslint/visitor-keys" "8.9.0" debug "^4.3.4" - globby "^11.1.0" + fast-glob "^3.3.2" is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" - integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== +"@typescript-eslint/utils@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.9.0.tgz#748bbe3ea5bee526d9786d9405cf1b0df081c299" + integrity sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - semver "^7.5.4" - -"@typescript-eslint/visitor-keys@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" - integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== - dependencies: - "@typescript-eslint/types" "6.21.0" - eslint-visitor-keys "^3.4.1" - -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + "@typescript-eslint/scope-manager" "8.9.0" + "@typescript-eslint/types" "8.9.0" + "@typescript-eslint/typescript-estree" "8.9.0" + +"@typescript-eslint/visitor-keys@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.9.0.tgz#5f11f4d9db913f37da42776893ffe0dd1ae78f78" + integrity sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA== + dependencies: + "@typescript-eslint/types" "8.9.0" + eslint-visitor-keys "^3.4.3" + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" acorn-jsx@^5.3.2: version "5.3.2" @@ -511,7 +643,7 @@ acorn-walk@^8.1.1: dependencies: acorn "^8.11.0" -acorn@^8.11.0, acorn@^8.4.1, acorn@^8.8.2, acorn@^8.9.0: +acorn@^8.11.0, acorn@^8.12.0, acorn@^8.4.1, acorn@^8.8.2: version "8.12.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== @@ -536,6 +668,11 @@ ansi-regex@^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.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" + integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -543,25 +680,33 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" +ansi-styles@^6.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 sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== -"applause-reporter-common@https://github.com/ApplauseOSS/applause-reporter-common#v1.0.0": - version "0.0.1" - resolved "https://github.com/ApplauseOSS/applause-reporter-common#69e470273a96638ef332036c56234b386b7b2d11" +"applause-reporter-common@https://github.com/ApplauseOSS/applause-reporter-common#master": + version "1.1.0" + resolved "https://github.com/ApplauseOSS/applause-reporter-common#f75e9329e60cdf698ff3ab62894b82c5aea6d2c1" dependencies: axios "^1.6.0" + logform "^2.6.0" mailparser "^3.6.5" validator "^13.11.0" + winston "^3.13.0" + winston-transport "^4.7.0" yarn "^1.22.19" arg@^4.1.0: @@ -574,16 +719,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== -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - assertion-error-formatter@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/assertion-error-formatter/-/assertion-error-formatter-3.0.0.tgz#be9c8825dee6a8a6c72183d915912d9b57d5d265" @@ -593,6 +728,11 @@ assertion-error-formatter@^3.0.0: pad-right "^0.2.2" repeat-string "^1.6.1" +async@^3.2.3: + version "3.2.6" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -612,6 +752,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -639,10 +784,13 @@ buffer-from@^1.0.0: 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== +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" callsites@^3.0.0: version "3.1.0" @@ -689,7 +837,7 @@ cli-table3@0.6.3: optionalDependencies: "@colors/colors" "1.5.0" -color-convert@^1.9.0: +color-convert@^1.9.0, color-convert@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -708,11 +856,35 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -720,16 +892,16 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +commander@12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.0.0.tgz#b929db6df8546080adfd004ab215ed48cf6f2592" + integrity sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA== + commander@9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-9.1.0.tgz#a6b263b2327f2e188c6402c42623327909f2dbec" integrity sha512-i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w== -commander@9.4.1: - version "9.4.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" - integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== - commander@^10.0.0: version "10.0.1" resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" @@ -745,11 +917,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -762,7 +929,7 @@ cross-env@^7.0.3: dependencies: cross-spawn "^7.0.1" -cross-spawn@^7.0.1, cross-spawn@^7.0.2: +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -798,20 +965,6 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - dom-serializer@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" @@ -842,11 +995,26 @@ domutils@^3.0.1: domelementtype "^2.3.0" domhandler "^5.0.3" +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== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + encoding-japanese@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/encoding-japanese/-/encoding-japanese-2.0.0.tgz#fa0226e5469e7b5b69a04fea7d5481bd1fa56936" @@ -862,6 +1030,13 @@ entities@^4.2.0, entities@^4.4.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + error-stack-parser@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" @@ -879,118 +1054,75 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-prettier@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== - -eslint-plugin-es@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" - integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== - dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" - -eslint-plugin-node@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" - integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== - dependencies: - eslint-plugin-es "^3.0.0" - eslint-utils "^2.0.0" - ignore "^5.1.1" - minimatch "^3.0.4" - resolve "^1.10.1" - semver "^6.1.0" - -eslint-plugin-prettier@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz#d1c8f972d8f60e414c25465c163d16f209411f95" - integrity sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.9.1" - -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== +eslint-scope@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.1.0.tgz#70214a174d4cbffbc3e8a26911d8bf51b9ae9d30" + integrity sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.3.0, 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.49.0: - version "8.57.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" - integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== +eslint-visitor-keys@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz#1f785cc5e81eb7534523d85922248232077d2f8c" + integrity sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg== + +eslint@^9.12.0: + version "9.12.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.12.0.tgz#54fcba2876c90528396da0fa44b6446329031e86" + integrity sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.1" - "@humanwhocodes/config-array" "^0.13.0" + "@eslint-community/regexpp" "^4.11.0" + "@eslint/config-array" "^0.18.0" + "@eslint/core" "^0.6.0" + "@eslint/eslintrc" "^3.1.0" + "@eslint/js" "9.12.0" + "@eslint/plugin-kit" "^0.2.0" + "@humanfs/node" "^0.16.5" "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" + "@humanwhocodes/retry" "^0.3.1" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" - doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" + eslint-scope "^8.1.0" + eslint-visitor-keys "^4.1.0" + espree "^10.2.0" + esquery "^1.5.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" + file-entry-cache "^8.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.1.2" natural-compare "^1.4.0" optionator "^0.9.3" - strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== +espree@^10.0.1, espree@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.2.0.tgz#f4bcead9e05b0615c968e85f83816bc386a45df6" + integrity sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g== dependencies: - acorn "^8.9.0" + acorn "^8.12.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" + eslint-visitor-keys "^4.1.0" -esquery@^1.4.2: +esquery@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== @@ -1019,27 +1151,22 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-glob@^3.2.9: +fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -1067,6 +1194,11 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + figures@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -1074,12 +1206,12 @@ figures@^3.2.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: - flat-cache "^3.0.4" + flat-cache "^4.0.0" fill-range@^7.1.1: version "7.1.1" @@ -1088,6 +1220,14 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -1096,39 +1236,46 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== dependencies: flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" + keyv "^4.5.4" 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== +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + follow-redirects@^1.15.6: version "1.15.9" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== +foreground-child@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" + integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + version "4.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48" + integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" mime-types "^2.1.12" -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - fsevents@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" @@ -1153,17 +1300,17 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^7.1.3, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== +glob@^10.3.10: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" global-dirs@^3.0.0: version "3.0.1" @@ -1172,24 +1319,15 @@ global-dirs@^3.0.0: dependencies: ini "2.0.0" -globals@^13.19.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" +globals@^15.11.0: + version "15.11.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-15.11.0.tgz#b96ed4c6998540c6fb824b24b5499216d2438d6e" + integrity sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw== graphemer@^1.4.0: version "1.4.0" @@ -1225,6 +1363,11 @@ he@1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + html-to-text@9.0.5: version "9.0.5" resolved "https://registry.yarnpkg.com/html-to-text/-/html-to-text-9.0.5.tgz#6149a0f618ae7a0db8085dca9bbf96d32bb8368d" @@ -1253,7 +1396,12 @@ iconv-lite@0.6.3: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.4: +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== @@ -1276,15 +1424,7 @@ indent-string@^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" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: +inherits@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1294,12 +1434,15 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== -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-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-core-module@^2.13.0: version "2.15.1" @@ -1343,7 +1486,7 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-inside@^3.0.2, is-path-inside@^3.0.3: +is-path-inside@^3.0.2: 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== @@ -1358,6 +1501,15 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -1375,6 +1527,11 @@ json-buffer@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-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -1385,7 +1542,7 @@ 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 sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -keyv@^4.5.3: +keyv@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== @@ -1399,6 +1556,11 @@ knuth-shuffle-seeded@^1.0.6: dependencies: seed-random "~2.2.0" +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + leac@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/leac/-/leac-0.6.0.tgz#dcf136e382e666bd2475f44a1096061b70dc0912" @@ -1452,6 +1614,11 @@ libqp@2.1.0: resolved "https://registry.yarnpkg.com/libqp/-/libqp-2.1.0.tgz#ce84bffd86b76029032093bd866d316e12a3d3f5" integrity sha512-O6O6/fsG5jiUVbvdgT7YX3xY3uIadR6wEZ7+vy9u7PKHAlSEB6blvC1o5pHBjgsi95Uo0aiBBdkyFecj6jtb7A== +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + linkify-it@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" @@ -1459,6 +1626,13 @@ linkify-it@5.0.0: dependencies: uc.micro "^2.0.0" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + locate-path@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" @@ -1476,6 +1650,18 @@ lodash.mergewith@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== +logform@^2.6.0, logform@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.1.tgz#71403a7d8cae04b2b734147963236205db9b3df0" + integrity sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA== + dependencies: + "@colors/colors" "1.6.0" + "@types/triple-beam" "^1.3.2" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -1483,6 +1669,11 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -1496,9 +1687,9 @@ luxon@3.2.1: integrity sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg== magic-string@^0.30.10: - version "0.30.11" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" - integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== + version "0.30.12" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.12.tgz#9eb11c9d072b9bcb4940a5b2c2e1a217e4ee1a60" + integrity sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" @@ -1532,7 +1723,7 @@ make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -merge2@^1.3.0, merge2@^1.4.1: +merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -1557,26 +1748,36 @@ mime-types@^2.1.12: dependencies: mime-db "1.52.0" -minimatch@9.0.3: - 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" +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +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" +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + mkdirp@^2.1.5: version "2.1.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19" integrity sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A== -ms@^2.1.3: +ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -1608,17 +1809,27 @@ nodemailer@6.9.13: resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.13.tgz#5b292bf1e92645f4852ca872c56a6ba6c4a3d3d6" integrity sha512-7o38Yogx6krdoBf3jCAqnIN4oSQFx+fMa0I7dK1D+me9kBxx12D+/33wSb+fhOCtIxvYJ+4x4IMEhmhCKfAiOA== +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + object-assign@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== dependencies: - wrappy "1" + fn.name "1.x.x" optionator@^0.9.3: version "0.9.4" @@ -1632,6 +1843,13 @@ optionator@^0.9.3: type-check "^0.4.0" word-wrap "^1.2.5" +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -1639,6 +1857,13 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + p-locate@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" @@ -1646,6 +1871,16 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + pad-right@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/pad-right/-/pad-right-0.2.2.tgz#6fbc924045d244f2a2a244503060d3bfc6009774" @@ -1660,6 +1895,16 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + parseley@^0.12.0: version "0.12.1" resolved "https://registry.yarnpkg.com/parseley/-/parseley-0.12.1.tgz#4afd561d50215ebe259e3e7a853e62f600683aef" @@ -1673,11 +1918,6 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -1688,10 +1928,13 @@ 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-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" peberminta@^0.9.0: version "0.9.0" @@ -1713,18 +1956,16 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^3.0.3: +prettier@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -1762,10 +2003,54 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -reflect-metadata@0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09" + integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + +reflect-metadata@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.1.tgz#8d5513c0f5ef2b4b9c3865287f3c0940c1f67f74" + integrity sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw== + +reflect-metadata@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b" + integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== regexp-match-indices@1.0.2: version "1.0.2" @@ -1779,11 +2064,6 @@ regexp-tree@^0.1.11: resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== -regexpp@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -1806,7 +2086,7 @@ resolve-pkg@^2.0.0: dependencies: resolve-from "^5.0.0" -resolve@^1.10.1, resolve@^1.22.1: +resolve@^1.10.0, resolve@^1.22.1: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -1820,13 +2100,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -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-plugin-dts@^6.0.2: version "6.1.1" resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-6.1.1.tgz#46b33f4d1d7f4e66f1171ced9b282ac11a15a254" @@ -1836,11 +2109,29 @@ rollup-plugin-dts@^6.0.2: optionalDependencies: "@babel/code-frame" "^7.24.2" -rollup@3.29.5: - version "3.29.5" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.5.tgz#8a2e477a758b520fb78daf04bca4c522c1da8a54" - integrity sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w== +rollup@4.24.0: + version "4.24.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.24.0.tgz#c14a3576f20622ea6a5c9cad7caca5e6e9555d05" + integrity sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg== + dependencies: + "@types/estree" "1.0.6" optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.24.0" + "@rollup/rollup-android-arm64" "4.24.0" + "@rollup/rollup-darwin-arm64" "4.24.0" + "@rollup/rollup-darwin-x64" "4.24.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.24.0" + "@rollup/rollup-linux-arm-musleabihf" "4.24.0" + "@rollup/rollup-linux-arm64-gnu" "4.24.0" + "@rollup/rollup-linux-arm64-musl" "4.24.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.24.0" + "@rollup/rollup-linux-riscv64-gnu" "4.24.0" + "@rollup/rollup-linux-s390x-gnu" "4.24.0" + "@rollup/rollup-linux-x64-gnu" "4.24.0" + "@rollup/rollup-linux-x64-musl" "4.24.0" + "@rollup/rollup-win32-arm64-msvc" "4.24.0" + "@rollup/rollup-win32-ia32-msvc" "4.24.0" + "@rollup/rollup-win32-x64-msvc" "4.24.0" fsevents "~2.3.2" run-parallel@^1.1.9: @@ -1850,11 +2141,16 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-buffer@^5.1.0: +safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-stable-stringify@^2.3.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd" + integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA== + "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" @@ -1872,6 +2168,11 @@ selderee@^0.11.0: dependencies: parseley "^0.12.0" +"semver@2 || 3 || 4 || 5": + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + semver@7.5.3: version "7.5.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" @@ -1879,12 +2180,7 @@ semver@7.5.3: dependencies: lru-cache "^6.0.0" -semver@^6.1.0: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.5.4: +semver@^7.6.0: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -1908,10 +2204,17 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +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== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" smob@^1.0.0: version "1.5.0" @@ -1931,17 +2234,48 @@ source-map@^0.6.0: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.20" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz#e44ed19ed318dd1e5888f93325cee800f0f51b89" + integrity sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + stackframe@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== -string-argv@^0.3.1: - 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-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-width@^4.2.0: +"string-width-cjs@npm:string-width@^4.2.0": 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== @@ -1950,13 +2284,52 @@ string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -strip-ansi@6.0.1, strip-ansi@^6.0.1: +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1, string_decoder@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + strip-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" @@ -1988,14 +2361,6 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -synckit@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.9.1.tgz#febbfbb6649979450131f64735aa3f6c14575c88" - integrity sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A== - dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" - terser@^5.17.4: version "5.34.1" resolved "https://registry.yarnpkg.com/terser/-/terser-5.34.1.tgz#af40386bdbe54af0d063e0670afd55c3105abeb6" @@ -2006,6 +2371,11 @@ terser@^5.17.4: commander "^2.20.0" source-map-support "~0.5.20" +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -2035,7 +2405,7 @@ tlds@1.252.0: resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.252.0.tgz#71d9617f4ef4cc7347843bee72428e71b8b0f419" integrity sha512-GA16+8HXvqtfEnw/DTcwB0UU354QE1n3+wh08oFjr6Znl7ZLAeUgYzCcK+/CCrOyE0vnHR8/pu3XXG3vDijXpQ== -tmp@^0.2.1: +tmp@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== @@ -2052,15 +2422,20 @@ toposort@^2.0.2: resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== -ts-api-utils@^1.0.1: +triple-beam@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" + integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== + +ts-api-utils@^1.3.0: 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== -ts-node@10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== +ts-node@10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -2076,7 +2451,7 @@ ts-node@10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tslib@^2.0.3, tslib@^2.6.2: +tslib@^2.0.3, tslib@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== @@ -2088,20 +2463,39 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== type-fest@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== -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== +type-fest@^4.8.3: + version "4.26.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.26.1.tgz#a4a17fa314f976dd3e6d6675ef6c775c16d7955e" + integrity sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg== + +typescript-eslint@^8.9.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.9.0.tgz#20a9b8125c57f3de962080ebebf366697f75bf79" + integrity sha512-AuD/FXGYRQyqyOBCpNLldMlsCGvmDNxptQ3Dp58/NXeB+FqyvTfXmMyba3PYa0Vi9ybnj7G8S/yd/4Cw8y47eA== + dependencies: + "@typescript-eslint/eslint-plugin" "8.9.0" + "@typescript-eslint/parser" "8.9.0" + "@typescript-eslint/utils" "8.9.0" + +typescript@5.6.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b" + integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== uc.micro@^2.0.0: version "2.1.0" @@ -2132,30 +2526,39 @@ util-arity@^1.1.0: resolved "https://registry.yarnpkg.com/util-arity/-/util-arity-1.1.0.tgz#59d01af1fdb3fede0ac4e632b0ab5f6ce97c9330" integrity sha512-kkyIsXKwemfSy8ZEoaIz06ApApnWsk5hQO0vLjZS6UkBiGiW++Jsyb8vSBoc0WKlffGoGs5yYy/j5pp8zckrFA== -uuid@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294" + integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ== + +uuid@9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + validator@^13.11.0: version "13.12.0" resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f" integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== -verror@^1.10.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb" - integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -2163,15 +2566,54 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +winston-transport@^4.7.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.8.0.tgz#a15080deaeb80338455ac52c863418c74fcf38ea" + integrity sha512-qxSTKswC6llEMZKgCQdaWgDuMJQnhuvF5f2Nk3SNXc4byfQ+voo2mX1Px9dkNOuR8p0KAjfPG29PuYUSIb+vSA== + dependencies: + logform "^2.6.1" + readable-stream "^4.5.2" + triple-beam "^1.3.0" + +winston@^3.13.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.15.0.tgz#4df7b70be091bc1a38a4f45b969fa79589b73ff5" + integrity sha512-RhruH2Cj0bV0WgNL+lOfoUBI4DVfdUNjVnJGVovWZmrcKtrFTTRzgXYK2O9cymSGjrERCtaAeHwMNnUWXlwZow== + dependencies: + "@colors/colors" "^1.6.0" + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.6.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.7.0" + word-wrap@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" xmlbuilder@^15.1.1: version "15.1.1" @@ -2184,11 +2626,11 @@ yallist@^4.0.0: integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^2.2.2: - version "2.5.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.1.tgz#c9772aacf62cb7494a95b0c4f1fb065b563db130" - integrity sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q== + version "2.6.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.6.0.tgz#14059ad9d0b1680d0f04d3a60fe00f3a857303c3" + integrity sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ== -yarn@^1.22.19: +yarn@^1.22.19, yarn@^1.22.22: version "1.22.22" resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.22.tgz#ac34549e6aa8e7ead463a7407e1c7390f61a6610" integrity sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg==