diff --git a/command-snapshot.json b/command-snapshot.json index 400960ed..05fae7f5 100644 --- a/command-snapshot.json +++ b/command-snapshot.json @@ -1,4 +1,20 @@ [ + { + "alias": [], + "command": "devops:pipeline:attach-project", + "flagAliases": [], + "flagChars": ["o"], + "flags": ["api-version", "flags-dir", "json", "pipeline-id", "project-id", "target-org"], + "plugin": "@salesforce/plugin-devops-center" + }, + { + "alias": [], + "command": "devops:project:create", + "flagAliases": [], + "flagChars": ["d", "n", "o"], + "flags": ["api-version", "description", "flags-dir", "json", "name", "target-org"], + "plugin": "@salesforce/plugin-devops-center" + }, { "alias": [], "command": "devops:project:list", @@ -7,6 +23,14 @@ "flags": ["api-version", "flags-dir", "json", "target-org"], "plugin": "@salesforce/plugin-devops-center" }, + { + "alias": [], + "command": "devops:pull-request:create", + "flagAliases": [], + "flagChars": ["n", "o", "w"], + "flags": ["api-version", "body", "flags-dir", "json", "target-org", "title", "work-item-id", "work-item-name"], + "plugin": "@salesforce/plugin-devops-center" + }, { "alias": [], "command": "devops:work-item:create", @@ -23,6 +47,14 @@ "flags": ["api-version", "flags-dir", "json", "project-id", "target-org"], "plugin": "@salesforce/plugin-devops-center" }, + { + "alias": [], + "command": "devops:work-item:status:update", + "flagAliases": [], + "flagChars": ["n", "o", "w"], + "flags": ["api-version", "flags-dir", "json", "status", "target-org", "work-item-id", "work-item-name"], + "plugin": "@salesforce/plugin-devops-center" + }, { "alias": [], "command": "project:deploy:pipeline:quick", diff --git a/messages/devops.pipeline.attach-project.md b/messages/devops.pipeline.attach-project.md new file mode 100644 index 00000000..353e7d5c --- /dev/null +++ b/messages/devops.pipeline.attach-project.md @@ -0,0 +1,29 @@ +# summary + +Attach a DevOps Center project to a pipeline. + +# description + +You can attach a project to only one pipeline. + +# flags.target-org.summary + +Username or alias of the DevOps Center org. + +# flags.pipeline-id.summary + +ID of the pipeline. + +# flags.project-id.summary + +ID of the DevOps Center project. + +# examples + +- Attach a project to a pipeline using the project ID and pipeline ID. + + <%= config.bin %> <%= command.id %> --target-org my-devops-org --pipeline-id 0XB000000000001 --project-id 0Hn000000000001 + +# error.AlreadyAttached + +Project %s is already attached to pipeline %s. Remove the project, and then try again. diff --git a/messages/devops.project.create.md b/messages/devops.project.create.md new file mode 100644 index 00000000..0f5b9ac0 --- /dev/null +++ b/messages/devops.project.create.md @@ -0,0 +1,29 @@ +# summary + +Create a DevOps Center project in a DevOps Center org. + +# description + +Creates a new DevOps Center project with the specified name and optional description. + +# flags.target-org.summary + +Username or alias of the DevOps Center org. + +# flags.name.summary + +Name of the new DevOps Center project. + +# flags.description.summary + +Description of the new project; if not specified, the description is blank. + +# examples + +- Create a new DevOps Center project in the specified org. + + <%= config.bin %> <%= command.id %> --target-org my-devops-org --name "MyApp Release" + +- Create a project with a name and description. + + <%= config.bin %> <%= command.id %> --target-org my-devops-org --name "Platform Update" --description "Platform services update" diff --git a/messages/devops.pull-request.create.md b/messages/devops.pull-request.create.md new file mode 100644 index 00000000..cd3ea41a --- /dev/null +++ b/messages/devops.pull-request.create.md @@ -0,0 +1,57 @@ +# summary + +Create a pull request for a work item branch. + +# description + +The pull request title defaults to the work item subject. The work item must have an associated branch and repository. Requires VCS authentication: set GITHUB_TOKEN (or use `gh auth login`) for GitHub, or set BITBUCKET_TOKEN for Bitbucket. + +# flags.work-item-name.summary + +Name of the work item, such as WI-000001. + +# flags.work-item-id.summary + +ID of the work item. + +# flags.title.summary + +Title of the pull request. + +# flags.body.summary + +Description of the pull request. + +# examples + +- Create a pull request for a work item using the default title. + + <%= config.bin %> <%= command.id %> --target-org my-devops-org --work-item-name WI-000001 + +- Create a pull request with a custom title and description. + + <%= config.bin %> <%= command.id %> --target-org my-devops-org --work-item-id 0Wx000000000001 --title "Fix: Login timeout" --body "Resolves the 30s timeout on the login page" + +# error.NoBranch + +Work item %s doesn't have an associated branch. Mark the work item as In Progress to create a branch, then try again. + +# error.NoRepo + +Work item %s doesn't have an associated repository. Verify the project is connected to a source control repository and try again. + +# error.NoTargetBranch + +Unable to determine the target branch for work item %s. Verify the pipeline stages are configured correctly. + +# error.NoProvider + +Unable to determine the VCS provider for work item %s. Verify the project is connected to a supported source control provider (GitHub or Bitbucket). + +# flags.target-org.summary + +Username or alias of the DevOps Center org. + +# error.NoToken + +No authentication token found for %s. For GitHub, set the GITHUB_TOKEN environment variable or run "gh auth login". For Bitbucket, set the BITBUCKET_TOKEN environment variable. diff --git a/messages/devops.work-item.status.update.md b/messages/devops.work-item.status.update.md new file mode 100644 index 00000000..149e396c --- /dev/null +++ b/messages/devops.work-item.status.update.md @@ -0,0 +1,29 @@ +# summary + +Update the status of a work item in DevOps Center. + +# description + +Allowed statuses are "In Progress" and "Ready to Promote". + +# flags.work-item-name.summary + +Name of the work item, such as WI-000001. + +# flags.work-item-id.summary + +ID of the work item. + +# flags.status.summary + +Status to set for the work item. Allowed values: "In Progress", "Ready to Promote". + +# examples + +- Update a work item status by its name to indicate the work is underway: + + <%= config.bin %> <%= command.id %> --target-org my-devops-org --work-item-name WI-000001 --status "In Progress" + +- Update a work item status by its ID to indicate the changes are ready for promotion: + + <%= config.bin %> <%= command.id %> --target-org my-devops-org --work-item-id 0Wx000000000001 --status "Ready to Promote" diff --git a/package.json b/package.json index 0c977e7d..a88bbca7 100644 --- a/package.json +++ b/package.json @@ -21,8 +21,6 @@ "@salesforce/dev-scripts": "^11", "@salesforce/plugin-command-reference": "^3.1.38", "@salesforce/ts-sinon": "^1.4.30", - "@types/chai": "^5.2.3", - "chai": "^6.2.2", "eslint-plugin-sf-plugin": "^1.20.13", "esmock": "^2.7.6", "oclif": "^4", @@ -85,7 +83,18 @@ "description": "Commands for managing DevOps Center projects." }, "work-item": { - "description": "Commands for managing DevOps Center work items." + "description": "Commands for managing DevOps Center work items.", + "subtopics": { + "status": { + "description": "Commands for managing DevOps Center work item statuses." + } + } + }, + "pull-request": { + "description": "Commands for managing DevOps Center pull requests." + }, + "pipeline": { + "description": "Commands for managing DevOps Center pipelines." } } } diff --git a/schemas/devops-pipeline-attach__project.json b/schemas/devops-pipeline-attach__project.json new file mode 100644 index 00000000..e275eda6 --- /dev/null +++ b/schemas/devops-pipeline-attach__project.json @@ -0,0 +1,25 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/AttachProjectResult", + "definitions": { + "AttachProjectResult": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "projectId": { + "type": "string" + }, + "pipelineId": { + "type": "string" + }, + "error": { + "type": "string" + } + }, + "required": ["success", "projectId", "pipelineId"], + "additionalProperties": false + } + } +} diff --git a/schemas/devops-project-create.json b/schemas/devops-project-create.json new file mode 100644 index 00000000..305d47b5 --- /dev/null +++ b/schemas/devops-project-create.json @@ -0,0 +1,28 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/CreateProjectResult", + "definitions": { + "CreateProjectResult": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "projectId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "error": { + "type": "string" + } + }, + "required": ["success"], + "additionalProperties": false + } + } +} diff --git a/schemas/devops-pull__request-create.json b/schemas/devops-pull__request-create.json new file mode 100644 index 00000000..0b31e3f5 --- /dev/null +++ b/schemas/devops-pull__request-create.json @@ -0,0 +1,34 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/CreatePullRequestResult", + "definitions": { + "CreatePullRequestResult": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "workItemName": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + }, + "sourceBranch": { + "type": "string" + }, + "targetBranch": { + "type": "string" + }, + "error": { + "type": "string" + } + }, + "required": ["success"], + "additionalProperties": false + } + } +} diff --git a/schemas/devops-work__item-status-update.json b/schemas/devops-work__item-status-update.json new file mode 100644 index 00000000..d50bd78b --- /dev/null +++ b/schemas/devops-work__item-status-update.json @@ -0,0 +1,28 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/UpdateWorkItemStatusResult", + "definitions": { + "UpdateWorkItemStatusResult": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "workItemId": { + "type": "string" + }, + "workItemName": { + "type": "string" + }, + "status": { + "type": "string" + }, + "error": { + "type": "string" + } + }, + "required": ["success", "workItemId"], + "additionalProperties": false + } + } +} diff --git a/src/commands/devops/pipeline/attach-project.ts b/src/commands/devops/pipeline/attach-project.ts new file mode 100644 index 00000000..76ee940f --- /dev/null +++ b/src/commands/devops/pipeline/attach-project.ts @@ -0,0 +1,92 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Messages, Org } from '@salesforce/core'; +import { SfCommand, Flags } from '@salesforce/sf-plugins-core'; +import { attachProject, AttachProjectResult, findExistingAttachment } from '../../../utils/attachProject.js'; + +Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); +const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.pipeline.attach-project'); +const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors'); + +export default class DevopsPipelineAttachProject extends SfCommand { + public static readonly summary = messages.getMessage('summary'); + public static readonly description = messages.getMessage('description'); + public static readonly examples = messages.getMessages('examples'); + + public static readonly flags = { + 'target-org': Flags.requiredOrg({ + char: 'o', + summary: messages.getMessage('flags.target-org.summary'), + required: true, + }), + 'api-version': Flags.orgApiVersion(), + 'pipeline-id': Flags.salesforceId({ + summary: messages.getMessage('flags.pipeline-id.summary'), + required: true, + char: undefined, + }), + 'project-id': Flags.salesforceId({ + summary: messages.getMessage('flags.project-id.summary'), + required: true, + char: undefined, + }), + }; + + public async run(): Promise { + const { flags } = await this.parse(DevopsPipelineAttachProject); + const org: Org = flags['target-org']; + const connection = org.getConnection(flags['api-version']); + const projectId = flags['project-id']; + const pipelineId = flags['pipeline-id']; + + let existingPipelineId: string | undefined; + try { + existingPipelineId = await findExistingAttachment(connection, projectId); + } catch (error: unknown) { + const errMsg = error instanceof Error ? error.message : String(error); + if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) { + this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled')); + } + throw error; + } + + if (existingPipelineId) { + this.error(messages.getMessage('error.AlreadyAttached', [projectId, existingPipelineId])); + } + + let result: AttachProjectResult; + try { + result = await attachProject({ connection, projectId, pipelineId }); + } catch (error: unknown) { + const errMsg = error instanceof Error ? error.message : String(error); + if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) { + this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled')); + } + throw error; + } + + if (result.success) { + this.log('Successfully attached project to pipeline.'); + this.log(` Project ID: ${projectId}`); + this.log(` Pipeline ID: ${pipelineId}`); + } else { + this.error(`Failed to attach project to pipeline: ${result.error ?? ''}`); + } + + return result; + } +} diff --git a/src/commands/devops/project/create.ts b/src/commands/devops/project/create.ts new file mode 100644 index 00000000..a02e9b53 --- /dev/null +++ b/src/commands/devops/project/create.ts @@ -0,0 +1,81 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Messages, Org } from '@salesforce/core'; +import { SfCommand, Flags } from '@salesforce/sf-plugins-core'; +import { createProject, CreateProjectResult } from '../../../utils/createProject.js'; + +Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); +const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.project.create'); +const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors'); + +export default class DevopsProjectCreate extends SfCommand { + public static readonly summary = messages.getMessage('summary'); + public static readonly description = messages.getMessage('description'); + public static readonly examples = messages.getMessages('examples'); + + public static readonly flags = { + 'target-org': Flags.requiredOrg({ + char: 'o', + summary: messages.getMessage('flags.target-org.summary'), + required: true, + }), + 'api-version': Flags.orgApiVersion(), + name: Flags.string({ + summary: messages.getMessage('flags.name.summary'), + char: 'n', + required: true, + }), + description: Flags.string({ + summary: messages.getMessage('flags.description.summary'), + char: 'd', + }), + }; + + public async run(): Promise { + const { flags } = await this.parse(DevopsProjectCreate); + const org: Org = flags['target-org']; + const connection = org.getConnection(flags['api-version']); + + let result: CreateProjectResult; + try { + result = await createProject({ + connection, + name: flags['name'], + description: flags['description'] ?? '', + }); + } catch (error: unknown) { + const errMsg = error instanceof Error ? error.message : String(error); + if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) { + this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled')); + } + throw error; + } + + if (result.success) { + this.log(`Successfully created project: ${result.name ?? ''}`); + this.log(` ID: ${result.projectId ?? ''}`); + this.log(` Name: ${result.name ?? ''}`); + if (result.description) { + this.log(` Description: ${result.description}`); + } + } else { + this.error(`Failed to create project: ${result.error ?? ''}`); + } + + return result; + } +} diff --git a/src/commands/devops/pull-request/create.ts b/src/commands/devops/pull-request/create.ts new file mode 100644 index 00000000..ac840ff1 --- /dev/null +++ b/src/commands/devops/pull-request/create.ts @@ -0,0 +1,124 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Messages, Org } from '@salesforce/core'; +import { SfCommand, Flags } from '@salesforce/sf-plugins-core'; +import { + createPullRequest, + CreatePullRequestResult, + fetchWorkItemDetail, + resolveGitHubToken, + WorkItemDetail, +} from '../../../utils/createPullRequest.js'; + +Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); +const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.pull-request.create'); +const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors'); + +export default class DevopsPullRequestCreate extends SfCommand { + public static readonly summary = messages.getMessage('summary'); + public static readonly description = messages.getMessage('description'); + public static readonly examples = messages.getMessages('examples'); + + public static readonly flags = { + 'target-org': Flags.requiredOrg({ + char: 'o', + summary: messages.getMessage('flags.target-org.summary'), + required: true, + }), + 'api-version': Flags.orgApiVersion(), + 'work-item-name': Flags.string({ + summary: messages.getMessage('flags.work-item-name.summary'), + char: 'n', + exactlyOne: ['work-item-name', 'work-item-id'], + }), + 'work-item-id': Flags.salesforceId({ + summary: messages.getMessage('flags.work-item-id.summary'), + char: 'w', + exactlyOne: ['work-item-name', 'work-item-id'], + }), + title: Flags.string({ + summary: messages.getMessage('flags.title.summary'), + }), + body: Flags.string({ + summary: messages.getMessage('flags.body.summary'), + }), + }; + + public async run(): Promise { + const { flags } = await this.parse(DevopsPullRequestCreate); + const org: Org = flags['target-org']; + const connection = org.getConnection(flags['api-version']); + + const filter = flags['work-item-name'] ? { name: flags['work-item-name'] } : { id: flags['work-item-id']! }; + + let detail: WorkItemDetail; + try { + detail = await fetchWorkItemDetail(connection, filter); + } catch (error: unknown) { + const errMsg = error instanceof Error ? error.message : String(error); + if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) { + this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled')); + } + throw error; + } + + if (!detail.branchName) { + this.error(messages.getMessage('error.NoBranch', [detail.workItemName])); + } + if (!detail.repoOwner || !detail.repoName) { + this.error(messages.getMessage('error.NoRepo', [detail.workItemName])); + } + if (!detail.targetBranch) { + this.error(messages.getMessage('error.NoTargetBranch', [detail.workItemName])); + } + if (!detail.provider) { + this.error(messages.getMessage('error.NoProvider', [detail.workItemName])); + } + + let token: string | undefined; + if (detail.provider === 'github') { + token = await resolveGitHubToken(); + } else { + token = process.env.BITBUCKET_TOKEN; + } + if (!token) { + this.error(messages.getMessage('error.NoToken', [detail.provider])); + } + + const prTitle = flags['title'] ?? detail.subject; + + const result = await createPullRequest({ + owner: detail.repoOwner, + repo: detail.repoName, + head: detail.branchName, + base: detail.targetBranch, + title: prTitle, + body: flags['body'], + provider: detail.provider, + token, + }); + + if (result.success) { + this.log(`Successfully created pull request for ${detail.workItemName}.`); + this.log(` Title: ${result.title ?? prTitle}`); + this.log(` URL: ${result.url ?? ''}`); + this.log(` Source: ${detail.workItemName} → ${result.targetBranch ?? detail.targetBranch}`); + } + + return result; + } +} diff --git a/src/commands/devops/work-item/status/update.ts b/src/commands/devops/work-item/status/update.ts new file mode 100644 index 00000000..ad13cd2a --- /dev/null +++ b/src/commands/devops/work-item/status/update.ts @@ -0,0 +1,100 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Messages, Org } from '@salesforce/core'; +import { SfCommand, Flags } from '@salesforce/sf-plugins-core'; +import { + resolveWorkItemByName, + resolveProjectIdForWorkItem, + updateWorkItemStatus, + UpdateWorkItemStatusResult, + ALLOWED_STATUSES, +} from '../../../../utils/updateWorkItemStatus.js'; + +Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); +const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.work-item.status.update'); +const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors'); + +export default class DevopsWorkItemStatusUpdate extends SfCommand { + public static readonly summary = messages.getMessage('summary'); + public static readonly description = messages.getMessage('description'); + public static readonly examples = messages.getMessages('examples'); + + public static readonly flags = { + 'target-org': Flags.requiredOrg(), + 'api-version': Flags.orgApiVersion(), + 'work-item-name': Flags.string({ + summary: messages.getMessage('flags.work-item-name.summary'), + char: 'n', + exactlyOne: ['work-item-name', 'work-item-id'], + }), + 'work-item-id': Flags.salesforceId({ + summary: messages.getMessage('flags.work-item-id.summary'), + char: 'w', + exactlyOne: ['work-item-name', 'work-item-id'], + }), + status: Flags.string({ + summary: messages.getMessage('flags.status.summary'), + required: true, + options: [...ALLOWED_STATUSES], + }), + }; + + public async run(): Promise { + const { flags } = await this.parse(DevopsWorkItemStatusUpdate); + const org: Org = flags['target-org']; + const connection = org.getConnection(flags['api-version']); + + let workItemId: string; + let projectId: string; + try { + if (flags['work-item-name']) { + const ctx = await resolveWorkItemByName(connection, flags['work-item-name']); + workItemId = ctx.workItemId; + projectId = ctx.projectId; + } else { + workItemId = flags['work-item-id']!; + projectId = await resolveProjectIdForWorkItem(connection, workItemId); + } + } catch (error: unknown) { + const errMsg = error instanceof Error ? error.message : String(error); + if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) { + this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled')); + } + throw error; + } + + let result: UpdateWorkItemStatusResult; + try { + result = await updateWorkItemStatus({ connection, workItemId, projectId, status: flags['status'] }); + } catch (error: unknown) { + const errMsg = error instanceof Error ? error.message : String(error); + if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) { + this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled')); + } + throw error; + } + + if (result.success) { + const identifier = flags['work-item-name'] ?? result.workItemId; + this.log(`Successfully updated status for work item ${identifier} to "${result.status ?? flags['status']}".`); + } else { + this.error(`Failed to update work item status: ${result.error ?? ''}`); + } + + return result; + } +} diff --git a/src/utils/attachProject.ts b/src/utils/attachProject.ts new file mode 100644 index 00000000..8582979c --- /dev/null +++ b/src/utils/attachProject.ts @@ -0,0 +1,65 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Connection } from '@salesforce/core'; + +export type AttachProjectParams = { + connection: Connection; + projectId: string; + pipelineId: string; +}; + +export type AttachProjectResult = { + success: boolean; + projectId: string; + pipelineId: string; + error?: string; +}; + +/** + * Checks if a project is already attached to a pipeline. + * Returns the existing pipeline ID if found, undefined otherwise. + */ +export async function findExistingAttachment(connection: Connection, projectId: string): Promise { + const result = await connection.query<{ DevopsPipelineId: string }>( + `SELECT DevopsPipelineId FROM DevopsProjectPipeline WHERE DevopsProjectId = '${projectId}' LIMIT 1` + ); + return (result.records ?? [])[0]?.DevopsPipelineId; +} + +/** + * Attaches a DevOps Center project to a pipeline by creating a DevopsProjectPipeline junction record. + */ +export async function attachProject(params: AttachProjectParams): Promise { + const { connection, projectId, pipelineId } = params; + + const result = await connection.sobject('DevopsProjectPipeline').create({ + DevopsProjectId: projectId, + DevopsPipelineId: pipelineId, + }); + + if (result.success) { + return { success: true, projectId, pipelineId }; + } + + const errorMessages = result.errors?.map((e) => (typeof e === 'string' ? e : JSON.stringify(e))).join('; '); + return { + success: false, + projectId, + pipelineId, + error: errorMessages ?? 'Unknown error', + }; +} diff --git a/src/utils/createProject.ts b/src/utils/createProject.ts new file mode 100644 index 00000000..c426d5a0 --- /dev/null +++ b/src/utils/createProject.ts @@ -0,0 +1,58 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Connection } from '@salesforce/core'; + +export type CreateProjectParams = { + connection: Connection; + name: string; + description: string; +}; + +export type CreateProjectResult = { + success: boolean; + projectId?: string; + name?: string; + description?: string; + error?: string; +}; + +/** + * Creates a new DevOps Center project via sObject create on DevopsProject. + */ +export async function createProject(params: CreateProjectParams): Promise { + const { connection, name, description } = params; + + const result = await connection.sobject('DevopsProject').create({ + Name: name, + Description: description || null, + }); + + if (result.success) { + return { + success: true, + projectId: result.id, + name, + description: description || undefined, + }; + } + + const errorMessages = result.errors?.map((e) => (typeof e === 'string' ? e : JSON.stringify(e))).join('; '); + return { + success: false, + error: errorMessages ?? 'Unknown error', + }; +} diff --git a/src/utils/createPullRequest.ts b/src/utils/createPullRequest.ts new file mode 100644 index 00000000..aaed3d04 --- /dev/null +++ b/src/utils/createPullRequest.ts @@ -0,0 +1,285 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Connection } from '@salesforce/core'; +import { + getPipelineIdForProject, + fetchPipelineStages, + computeFirstStageId, + findStageById, + getBranchNameFromStage, + resolveTargetStageId, +} from './pipelineUtils.js'; +import { WorkItemQueryRecord, VcsType } from './types.js'; + +export type WorkItemDetail = { + workItemId: string; + workItemName: string; + subject: string; + branchName?: string; + targetBranch?: string; + projectId: string; + repoOwner?: string; + repoName?: string; + provider?: string; +}; + +export type CreatePullRequestParams = { + owner: string; + repo: string; + head: string; + base: string; + title: string; + body?: string; + provider: string; + token: string; +}; + +export type CreatePullRequestResult = { + success: boolean; + workItemName?: string; + title?: string; + url?: string; + sourceBranch?: string; + targetBranch?: string; + error?: string; +}; + +type VcsOwnerPayload = { + owner?: string; + owners?: unknown[]; + items?: unknown[]; + records?: unknown[]; +}; + +function normalizeProvider(provider: unknown): string | undefined { + if (!provider) return undefined; + const normalized = String(provider).toLowerCase(); + if (normalized === 'bitbucketcloud') return 'bitbucket'; + return normalized; +} + +function providerToVcsType(provider: unknown): VcsType | undefined { + const normalized = normalizeProvider(provider); + if (normalized === 'github') return 'GITHUB'; + if (normalized === 'bitbucket') return 'BITBUCKET'; + return undefined; +} + +function extractOwnerFromVcsPayload(payload: unknown): string | undefined { + if (!payload) return undefined; + if (typeof payload === 'string') return payload.trim() || undefined; + const obj = payload as VcsOwnerPayload; + if (typeof obj.owner === 'string' && obj.owner.trim()) return obj.owner.trim(); + const list = (obj.owners ?? obj.items ?? obj.records) as unknown[]; + if (Array.isArray(list)) { + for (const candidate of list) { + if (typeof candidate === 'string' && candidate.trim()) return candidate.trim(); + if (candidate && typeof candidate === 'object') { + const ownerVal = (candidate as Record).owner; + if (typeof ownerVal === 'string' && ownerVal.trim()) return ownerVal.trim(); + } + } + } + return undefined; +} + +async function fetchOwnerByVcsType(connection: Connection, vcsType: VcsType): Promise { + const path = `/services/data/v${connection.getApiVersion()}/connect/devops/vcs/${vcsType}`; + const response: unknown = await connection.request({ method: 'GET', url: path }); + return extractOwnerFromVcsPayload(response); +} + +/** + * Queries a work item (by Name or Id) and resolves all info needed + * to create a pull request: branch, repo, owner, provider, and target branch. + */ +export async function fetchWorkItemDetail( + connection: Connection, + filter: { name: string } | { id: string } +): Promise { + const whereClause = 'name' in filter ? `Name = '${filter.name}'` : `Id = '${filter.id}'`; + const identifier = 'name' in filter ? filter.name : filter.id; + + const result = await connection.query( + `SELECT Id, Name, Subject, DevopsProjectId, DevopsPipelineStageId, + SourceCodeRepositoryBranch.Name, + SourceCodeRepositoryBranch.SourceCodeRepository.Name, + SourceCodeRepositoryBranch.SourceCodeRepository.RepositoryOwner, + SourceCodeRepositoryBranch.SourceCodeRepository.Provider + FROM WorkItem + WHERE ${whereClause} + LIMIT 1` + ); + const record = (result.records ?? [])[0]; + if (!record) { + throw new Error(`Work item '${identifier}' not found.`); + } + + const provider = normalizeProvider(record.SourceCodeRepositoryBranch?.SourceCodeRepository?.Provider); + let repoOwner = record.SourceCodeRepositoryBranch?.SourceCodeRepository?.RepositoryOwner ?? undefined; + + const vcsType = providerToVcsType(provider); + if (vcsType && !repoOwner) { + try { + repoOwner = (await fetchOwnerByVcsType(connection, vcsType)) ?? undefined; + } catch { + // owner lookup is best-effort + } + } + + const detail: WorkItemDetail = { + workItemId: record.Id, + workItemName: record.Name, + subject: record.Subject ?? '', + branchName: record.SourceCodeRepositoryBranch?.Name ?? undefined, + projectId: record.DevopsProjectId, + repoOwner, + repoName: record.SourceCodeRepositoryBranch?.SourceCodeRepository?.Name ?? undefined, + provider, + }; + + const pipelineId = await getPipelineIdForProject(connection, record.DevopsProjectId); + if (pipelineId) { + const stages = await fetchPipelineStages(connection, pipelineId); + if (stages.length) { + let targetStageId = resolveTargetStageId(record.DevopsPipelineStageId ?? undefined, stages); + if (!targetStageId) { + targetStageId = computeFirstStageId(stages); + } + detail.targetBranch = getBranchNameFromStage(findStageById(stages, targetStageId)); + } + } + + return detail; +} + +/** + * Creates a pull request on GitHub or Bitbucket using their REST APIs. + */ +export async function createPullRequest(params: CreatePullRequestParams): Promise { + const { owner, repo, head, base, title, body, provider, token } = params; + + if (provider === 'github') { + return createGitHubPullRequest({ owner, repo, head, base, title, body, token }); + } else if (provider === 'bitbucket') { + return createBitbucketPullRequest({ owner, repo, head, base, title, body, token }); + } + throw new Error(`Unsupported VCS provider: ${provider ?? 'unknown'}. Supported providers are GitHub and Bitbucket.`); +} + +async function createGitHubPullRequest(params: { + owner: string; + repo: string; + head: string; + base: string; + title: string; + body?: string; + token: string; +}): Promise { + const { owner, repo, head, base, title, body, token } = params; + const url = `https://api.github.com/repos/${owner}/${repo}/pulls`; + + const response = await fetch(url, { + method: 'POST', + headers: { + Authorization: `Bearer ${token}`, + Accept: 'application/vnd.github+json', + 'Content-Type': 'application/json', + 'X-GitHub-Api-Version': '2022-11-28', + }, + body: JSON.stringify({ title, body: body ?? '', head, base }), + }); + + const data = (await response.json()) as Record; + + if (!response.ok) { + const errors = Array.isArray(data.errors) + ? (data.errors as Array>).map((e) => e.message ?? JSON.stringify(e)).join('; ') + : undefined; + const msg = (data.message as string) ?? `HTTP ${response.status}`; + throw new Error(errors ? `${msg}: ${errors}` : msg); + } + + return { + success: true, + title: data.title as string, + url: data.html_url as string, + sourceBranch: head, + targetBranch: base, + }; +} + +async function createBitbucketPullRequest(params: { + owner: string; + repo: string; + head: string; + base: string; + title: string; + body?: string; + token: string; +}): Promise { + const { owner, repo, head, base, title, body, token } = params; + const url = `https://api.bitbucket.org/2.0/repositories/${owner}/${repo}/pullrequests`; + + const response = await fetch(url, { + method: 'POST', + headers: { + Authorization: `Bearer ${token}`, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + title, + description: body ?? '', + source: { branch: { name: head } }, + destination: { branch: { name: base } }, + }), + }); + + const data = (await response.json()) as Record; + + if (!response.ok) { + const errorMsg = (data.error as Record)?.message ?? data.message ?? `HTTP ${response.status}`; + throw new Error(String(errorMsg)); + } + + const links = data.links as Record> | undefined; + return { + success: true, + title: data.title as string, + url: links?.html?.href ?? (data.url as string) ?? '', + sourceBranch: head, + targetBranch: base, + }; +} + +/** + * Attempts to resolve a VCS authentication token from the environment + * or the `gh` CLI (for GitHub). + */ +export async function resolveGitHubToken(): Promise { + const envToken = process.env.GITHUB_TOKEN ?? process.env.GH_TOKEN; + if (envToken) return envToken; + + try { + const { execSync } = await import('node:child_process'); + const token = execSync('gh auth token', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim(); + if (token) return token; + } catch { + // gh CLI not installed or not authenticated + } + return undefined; +} diff --git a/src/utils/updateWorkItemStatus.ts b/src/utils/updateWorkItemStatus.ts new file mode 100644 index 00000000..b46cab2b --- /dev/null +++ b/src/utils/updateWorkItemStatus.ts @@ -0,0 +1,106 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Connection } from '@salesforce/core'; + +export type WorkItemContext = { + workItemId: string; + projectId: string; +}; + +export type UpdateWorkItemStatusParams = { + connection: Connection; + workItemId: string; + projectId: string; + status: string; +}; + +export type UpdateWorkItemStatusResult = { + success: boolean; + workItemId: string; + workItemName?: string; + status?: string; + error?: string; +}; + +/** + * Resolves a work item's Salesforce ID and project ID from its Name (e.g. WI-000001) via SOQL. + */ +export async function resolveWorkItemByName(connection: Connection, workItemName: string): Promise { + const result = await connection.query<{ Id: string; DevopsProjectId: string }>( + `SELECT Id, DevopsProjectId FROM WorkItem WHERE Name = '${workItemName}' LIMIT 1` + ); + const record = (result.records ?? [])[0]; + if (!record) { + throw new Error(`Work item with name '${workItemName}' not found.`); + } + return { workItemId: record.Id, projectId: record.DevopsProjectId }; +} + +/** + * Fetches the project ID for a given work item ID via SOQL. + */ +export async function resolveProjectIdForWorkItem(connection: Connection, workItemId: string): Promise { + const result = await connection.query<{ DevopsProjectId: string }>( + `SELECT DevopsProjectId FROM WorkItem WHERE Id = '${workItemId}' LIMIT 1` + ); + const record = (result.records ?? [])[0]; + if (!record) { + throw new Error(`Work item with ID '${workItemId}' not found.`); + } + return record.DevopsProjectId; +} + +export const ALLOWED_STATUSES = ['In Progress', 'Ready to Promote'] as const; +export type AllowedStatus = (typeof ALLOWED_STATUSES)[number]; + +const STATUS_LABEL_TO_API: Record = { + 'in progress': 'IN_PROGRESS', + 'ready to promote': 'READY_TO_PROMOTE', +}; + +export function toApiStatus(status: string): string { + const apiStatus = STATUS_LABEL_TO_API[status.toLowerCase()]; + if (!apiStatus) { + throw new Error(`Invalid status "${status}". Allowed values: ${ALLOWED_STATUSES.join(', ')}`); + } + return apiStatus; +} + +/** + * Updates the status of a DevOps Center work item via the Connect API. + * API: PATCH /services/data/v{version}/connect/devops/projects/{projectId}/workitem/{workItemId} + */ +export async function updateWorkItemStatus(params: UpdateWorkItemStatusParams): Promise { + const { connection, workItemId, projectId, status } = params; + + const path = `/services/data/v${connection.getApiVersion()}/connect/devops/projects/${projectId}/workitem/${workItemId}`; + const body = JSON.stringify({ status: toApiStatus(status) }); + + const response = await connection.request({ + method: 'PATCH', + url: path, + body, + headers: { 'Content-Type': 'application/json' }, + }); + + const data = (response as Record) ?? {}; + return { + success: true, + workItemId, + status: (data.status ?? data.Status ?? status) as string, + }; +} diff --git a/test/commands/devops/pipeline/attach-project.test.ts b/test/commands/devops/pipeline/attach-project.test.ts new file mode 100644 index 00000000..bf263c68 --- /dev/null +++ b/test/commands/devops/pipeline/attach-project.test.ts @@ -0,0 +1,190 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import esmock from 'esmock'; +import { expect, test } from '@oclif/test'; +import sinon from 'sinon'; +import { Org } from '@salesforce/core'; + +describe('devops pipeline attach-project', () => { + let sandbox: sinon.SinonSandbox; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let AttachCommand: any; + const mockConnection = { getApiVersion: () => '65.0' }; + const mockOrg = { id: '1', getOrgId: () => '1', getConnection: () => mockConnection }; + const attachProjectStub = sinon.stub(); + const findExistingStub = sinon.stub(); + + before(async () => { + const mod = await esmock('../../../../src/commands/devops/pipeline/attach-project.js', { + '../../../../src/utils/attachProject.js': { + attachProject: attachProjectStub, + findExistingAttachment: findExistingStub, + }, + }); + AttachCommand = mod.default; + }); + + beforeEach(() => { + sandbox = sinon.createSandbox(); + attachProjectStub.reset(); + findExistingStub.reset(); + }); + + afterEach(() => { + sandbox.restore(); + }); + + describe('successful attachment', () => { + test + .stdout() + .stderr() + .it('attaches project and logs success', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + findExistingStub.resolves(undefined); + attachProjectStub.resolves({ + success: true, + projectId: '0Hn000000000001', + pipelineId: '0XB000000000001', + }); + + await AttachCommand.run([ + '--target-org', + 'testOrg', + '--pipeline-id', + '0XB000000000001', + '--project-id', + '0Hn000000000001', + ]); + + expect(ctx.stdout).to.contain('Successfully attached project to pipeline'); + expect(ctx.stdout).to.contain('0Hn000000000001'); + expect(ctx.stdout).to.contain('0XB000000000001'); + }); + }); + + describe('project already attached', () => { + test + .stdout() + .stderr() + .it('errors when project is already attached to another pipeline', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + findExistingStub.resolves('0XB000000000002'); + + try { + await AttachCommand.run([ + '--target-org', + 'testOrg', + '--pipeline-id', + '0XB000000000001', + '--project-id', + '0Hn000000000001', + ]); + expect.fail('should have thrown'); + } catch (e) { + // expected + } + + expect(ctx.stderr).to.contain('already attached to pipeline'); + expect(ctx.stderr).to.contain('0XB000000000002'); + }); + }); + + describe('attach failure', () => { + test + .stdout() + .stderr() + .it('shows failure error from sObject create', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + findExistingStub.resolves(undefined); + attachProjectStub.resolves({ + success: false, + projectId: '0Hn000000000001', + pipelineId: '0XB000000000001', + error: 'INVALID_CROSS_REFERENCE_KEY', + }); + + try { + await AttachCommand.run([ + '--target-org', + 'testOrg', + '--pipeline-id', + '0XB000000000001', + '--project-id', + '0Hn000000000001', + ]); + } catch (e) { + // expected + } + + expect(ctx.stderr).to.contain('Failed to attach project to pipeline'); + }); + }); + + describe('DevOps Center not enabled', () => { + test + .stdout() + .stderr() + .it('shows DevOps Center not enabled error', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + findExistingStub.rejects(new Error("sObject type 'DevopsProjectPipeline' is not supported")); + + try { + await AttachCommand.run([ + '--target-org', + 'testOrg', + '--pipeline-id', + '0XB000000000001', + '--project-id', + '0Hn000000000001', + ]); + } catch (e) { + // expected + } + + expect(ctx.stderr).to.contain("DevOps Center isn't enabled"); + }); + }); + + describe('rethrows other errors', () => { + test + .stdout() + .stderr() + .it('rethrows non-DevOps errors', async () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + findExistingStub.rejects(new Error('Network error')); + + try { + await AttachCommand.run([ + '--target-org', + 'testOrg', + '--pipeline-id', + '0XB000000000001', + '--project-id', + '0Hn000000000001', + ]); + expect.fail('should have thrown'); + } catch (e: unknown) { + expect((e as Error).message).to.contain('Network error'); + } + }); + }); +}); diff --git a/test/commands/devops/project/create.test.ts b/test/commands/devops/project/create.test.ts new file mode 100644 index 00000000..6f9b34b8 --- /dev/null +++ b/test/commands/devops/project/create.test.ts @@ -0,0 +1,154 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import esmock from 'esmock'; +import { expect, test } from '@oclif/test'; +import sinon from 'sinon'; +import { Org } from '@salesforce/core'; + +describe('devops project create', () => { + let sandbox: sinon.SinonSandbox; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let CreateCommand: any; + const mockConnection = { getApiVersion: () => '65.0' }; + const mockOrg = { id: '1', getOrgId: () => '1', getConnection: () => mockConnection }; + const createProjectStub = sinon.stub(); + + before(async () => { + const mod = await esmock('../../../../src/commands/devops/project/create.js', { + '../../../../src/utils/createProject.js': { + createProject: createProjectStub, + }, + }); + CreateCommand = mod.default; + }); + + beforeEach(() => { + sandbox = sinon.createSandbox(); + createProjectStub.reset(); + }); + + afterEach(() => { + sandbox.restore(); + }); + + describe('successful creation', () => { + test + .stdout() + .stderr() + .it('logs success with name and id', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + createProjectStub.resolves({ + success: true, + projectId: '1Qg000000000001', + name: 'MyApp Release', + }); + + await CreateCommand.run(['--target-org', 'testOrg', '--name', 'MyApp Release']); + + expect(ctx.stdout).to.contain('Successfully created project: MyApp Release'); + expect(ctx.stdout).to.contain('1Qg000000000001'); + }); + }); + + describe('successful creation with description', () => { + test + .stdout() + .stderr() + .it('logs description when provided', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + createProjectStub.resolves({ + success: true, + projectId: '1Qg000000000002', + name: 'Platform Update', + description: 'Platform services update', + }); + + await CreateCommand.run([ + '--target-org', + 'testOrg', + '--name', + 'Platform Update', + '--description', + 'Platform services update', + ]); + + expect(ctx.stdout).to.contain('Platform Update'); + expect(ctx.stdout).to.contain('Platform services update'); + }); + }); + + describe('creation failure', () => { + test + .stdout() + .stderr() + .it('shows failure error', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + createProjectStub.resolves({ + success: false, + error: 'DUPLICATE_VALUE: Name already exists', + }); + + try { + await CreateCommand.run(['--target-org', 'testOrg', '--name', 'Duplicate']); + } catch (e) { + // expected + } + + expect(ctx.stderr).to.contain('Failed to create project'); + }); + }); + + describe('DevOps Center not enabled', () => { + test + .stdout() + .stderr() + .it('shows DevOps Center not enabled error', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + createProjectStub.rejects(new Error("sObject type 'DevopsProject' is not supported")); + + try { + await CreateCommand.run(['--target-org', 'testOrg', '--name', 'Test']); + } catch (e) { + // expected + } + + expect(ctx.stderr).to.contain("DevOps Center isn't enabled"); + }); + }); + + describe('rethrows other errors', () => { + test + .stdout() + .stderr() + .it('rethrows non-DevOps errors', async () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + createProjectStub.rejects(new Error('Network error')); + + try { + await CreateCommand.run(['--target-org', 'testOrg', '--name', 'Test']); + expect.fail('should have thrown'); + } catch (e: unknown) { + expect((e as Error).message).to.contain('Network error'); + } + }); + }); +}); diff --git a/test/commands/devops/pull-request/create.test.ts b/test/commands/devops/pull-request/create.test.ts new file mode 100644 index 00000000..dbdc5506 --- /dev/null +++ b/test/commands/devops/pull-request/create.test.ts @@ -0,0 +1,200 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import esmock from 'esmock'; +import { expect, test } from '@oclif/test'; +import sinon from 'sinon'; +import { Org } from '@salesforce/core'; + +describe('devops pull-request create', () => { + let sandbox: sinon.SinonSandbox; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let CreateCommand: any; + const mockConnection = { getApiVersion: () => '65.0' }; + const mockOrg = { id: '1', getOrgId: () => '1', getConnection: () => mockConnection }; + const fetchDetailStub = sinon.stub(); + const createPrStub = sinon.stub(); + const resolveTokenStub = sinon.stub(); + + before(async () => { + const mod = await esmock('../../../../src/commands/devops/pull-request/create.js', { + '../../../../src/utils/createPullRequest.js': { + fetchWorkItemDetail: fetchDetailStub, + createPullRequest: createPrStub, + resolveGitHubToken: resolveTokenStub, + }, + }); + CreateCommand = mod.default; + }); + + beforeEach(() => { + sandbox = sinon.createSandbox(); + fetchDetailStub.reset(); + createPrStub.reset(); + resolveTokenStub.reset(); + resolveTokenStub.resolves('ghp_test_token'); + }); + + afterEach(() => { + sandbox.restore(); + }); + + const fullDetail = { + workItemId: '0Wx000000000001', + workItemName: 'WI-000001', + subject: 'Fix login bug', + branchName: 'feature/WI-000001', + targetBranch: 'integration', + projectId: '1Qg000000000001', + repoOwner: 'myorg', + repoName: 'myrepo', + provider: 'github', + }; + + describe('successful creation by work-item-name', () => { + test + .stdout() + .stderr() + .it('creates PR and logs success', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + fetchDetailStub.resolves(fullDetail); + createPrStub.resolves({ + success: true, + title: 'Fix login bug', + url: 'https://github.com/myorg/myrepo/pull/42', + sourceBranch: 'feature/WI-000001', + targetBranch: 'integration', + }); + + await CreateCommand.run(['--target-org', 'testOrg', '--work-item-name', 'WI-000001']); + + expect(ctx.stdout).to.contain('Successfully created pull request for WI-000001'); + expect(ctx.stdout).to.contain('Title: Fix login bug'); + expect(ctx.stdout).to.contain('https://github.com/myorg/myrepo/pull/42'); + expect(ctx.stdout).to.contain('WI-000001 → integration'); + }); + }); + + describe('successful creation by work-item-id with custom title', () => { + test + .stdout() + .stderr() + .it('creates PR using work item ID', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + fetchDetailStub.resolves(fullDetail); + createPrStub.resolves({ + success: true, + title: 'Custom title', + url: 'https://github.com/myorg/myrepo/pull/99', + targetBranch: 'integration', + }); + + await CreateCommand.run([ + '--target-org', + 'testOrg', + '--work-item-id', + '0Wx000000000001', + '--title', + 'Custom title', + '--body', + 'Custom body', + ]); + + expect(ctx.stdout).to.contain('Successfully created pull request'); + expect(ctx.stdout).to.contain('Custom title'); + }); + }); + + describe('work item has no branch', () => { + test + .stdout() + .stderr() + .it('errors when work item has no associated branch', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + fetchDetailStub.resolves({ ...fullDetail, branchName: undefined }); + + try { + await CreateCommand.run(['--target-org', 'testOrg', '--work-item-name', 'WI-000001']); + expect.fail('should have thrown'); + } catch (e) { + // expected + } + + expect(ctx.stderr).to.contain("doesn't have an associated branch"); + }); + }); + + describe('no VCS token available', () => { + test + .stdout() + .stderr() + .it('errors when no auth token is found', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + fetchDetailStub.resolves(fullDetail); + resolveTokenStub.resolves(undefined); + + try { + await CreateCommand.run(['--target-org', 'testOrg', '--work-item-name', 'WI-000001']); + expect.fail('should have thrown'); + } catch (e) { + // expected + } + + expect(ctx.stderr).to.contain('No authentication token found'); + }); + }); + + describe('DevOps Center not enabled', () => { + test + .stdout() + .stderr() + .it('shows DevOps Center not enabled error', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + fetchDetailStub.rejects(new Error("sObject type 'WorkItem' is not supported")); + + try { + await CreateCommand.run(['--target-org', 'testOrg', '--work-item-name', 'WI-000001']); + } catch (e) { + // expected + } + + expect(ctx.stderr).to.contain("DevOps Center isn't enabled"); + }); + }); + + describe('rethrows other errors', () => { + test + .stdout() + .stderr() + .it('rethrows non-DevOps errors', async () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + fetchDetailStub.rejects(new Error('Network error')); + + try { + await CreateCommand.run(['--target-org', 'testOrg', '--work-item-name', 'WI-000001']); + expect.fail('should have thrown'); + } catch (e: unknown) { + expect((e as Error).message).to.contain('Network error'); + } + }); + }); +}); diff --git a/test/commands/devops/work-item/status/update.test.ts b/test/commands/devops/work-item/status/update.test.ts new file mode 100644 index 00000000..d0879477 --- /dev/null +++ b/test/commands/devops/work-item/status/update.test.ts @@ -0,0 +1,212 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import esmock from 'esmock'; +import { expect, test } from '@oclif/test'; +import sinon from 'sinon'; +import { Org } from '@salesforce/core'; + +describe('devops work-item status update', () => { + let sandbox: sinon.SinonSandbox; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let UpdateCommand: any; + const mockConnection = { getApiVersion: () => '65.0' }; + const mockOrg = { id: '1', getOrgId: () => '1', getConnection: () => mockConnection }; + const updateWorkItemStatusStub = sinon.stub(); + const resolveWorkItemByNameStub = sinon.stub(); + const resolveProjectIdForWorkItemStub = sinon.stub(); + + before(async () => { + const mod = await esmock('../../../../../src/commands/devops/work-item/status/update.js', { + '../../../../../src/utils/updateWorkItemStatus.js': { + updateWorkItemStatus: updateWorkItemStatusStub, + resolveWorkItemByName: resolveWorkItemByNameStub, + resolveProjectIdForWorkItem: resolveProjectIdForWorkItemStub, + }, + }); + UpdateCommand = mod.default; + }); + + beforeEach(() => { + sandbox = sinon.createSandbox(); + updateWorkItemStatusStub.reset(); + resolveWorkItemByNameStub.reset(); + resolveProjectIdForWorkItemStub.reset(); + }); + + afterEach(() => { + sandbox.restore(); + }); + + describe('successful update by work item ID', () => { + test + .stdout() + .stderr() + .it('resolves project ID then logs success', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + resolveProjectIdForWorkItemStub.resolves('1Qg000000000001'); + updateWorkItemStatusStub.resolves({ success: true, workItemId: '0Wx000000000001', status: 'In Progress' }); + + await UpdateCommand.run([ + '--target-org', + 'testOrg', + '--work-item-id', + '0Wx000000000001', + '--status', + 'In Progress', + ]); + + expect(ctx.stdout).to.contain('Successfully updated status for work item'); + expect(ctx.stdout).to.contain('In Progress'); + expect(resolveProjectIdForWorkItemStub.calledOnce).to.be.true; + }); + }); + + describe('successful update by work item name', () => { + test + .stdout() + .stderr() + .it('resolves ID and project from name then updates', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + resolveWorkItemByNameStub.resolves({ workItemId: '0Wx000000000001', projectId: '1Qg000000000001' }); + updateWorkItemStatusStub.resolves({ success: true, workItemId: '0Wx000000000001', status: 'Ready to Promote' }); + + await UpdateCommand.run([ + '--target-org', + 'testOrg', + '--work-item-name', + 'WI-000001', + '--status', + 'Ready to Promote', + ]); + + expect(ctx.stdout).to.contain('WI-000001'); + expect(ctx.stdout).to.contain('Ready to Promote'); + expect(resolveWorkItemByNameStub.calledOnce).to.be.true; + }); + }); + + describe('update failure', () => { + test + .stdout() + .stderr() + .it('shows failure error', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + resolveProjectIdForWorkItemStub.resolves('1Qg000000000001'); + updateWorkItemStatusStub.resolves({ + success: false, + workItemId: '0Wx000000000001', + error: 'Invalid status value', + }); + + try { + await UpdateCommand.run([ + '--target-org', + 'testOrg', + '--work-item-id', + '0Wx000000000001', + '--status', + 'In Progress', + ]); + } catch (e) { + // expected + } + + expect(ctx.stderr).to.contain('Failed to update work item status'); + }); + }); + + describe('work item name not found', () => { + test + .stdout() + .stderr() + .it('throws when name resolves no record', async () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + resolveWorkItemByNameStub.rejects(new Error("Work item with name 'WI-999999' not found.")); + + try { + await UpdateCommand.run([ + '--target-org', + 'testOrg', + '--work-item-name', + 'WI-999999', + '--status', + 'In Progress', + ]); + expect.fail('should have thrown'); + } catch (e: unknown) { + expect((e as Error).message).to.contain('WI-999999'); + } + }); + }); + + describe('DevOps Center not enabled', () => { + test + .stdout() + .stderr() + .it('shows DevOps Center not enabled error', async (ctx) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + resolveProjectIdForWorkItemStub.resolves('1Qg000000000001'); + updateWorkItemStatusStub.rejects(new Error("sObject type 'WorkItem' is not supported")); + + try { + await UpdateCommand.run([ + '--target-org', + 'testOrg', + '--work-item-id', + '0Wx000000000001', + '--status', + 'In Progress', + ]); + } catch (e) { + // expected + } + + expect(ctx.stderr).to.contain("DevOps Center isn't enabled"); + }); + }); + + describe('rethrows other errors', () => { + test + .stdout() + .stderr() + .it('rethrows non-DevOps errors', async () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + sandbox.stub(Org, 'create' as any).returns(mockOrg); + resolveProjectIdForWorkItemStub.resolves('1Qg000000000001'); + updateWorkItemStatusStub.rejects(new Error('Network error')); + + try { + await UpdateCommand.run([ + '--target-org', + 'testOrg', + '--work-item-id', + '0Wx000000000001', + '--status', + 'In Progress', + ]); + expect.fail('should have thrown'); + } catch (e: unknown) { + expect((e as Error).message).to.contain('Network error'); + } + }); + }); +}); diff --git a/test/utils/attachProject.test.ts b/test/utils/attachProject.test.ts new file mode 100644 index 00000000..69c0bef3 --- /dev/null +++ b/test/utils/attachProject.test.ts @@ -0,0 +1,105 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { expect } from '@oclif/test'; +import sinon from 'sinon'; +import { Connection } from '@salesforce/core'; +import { attachProject, findExistingAttachment } from '../../src/utils/attachProject.js'; + +describe('attachProject utilities', () => { + let connectionStub: sinon.SinonStubbedInstance; + let sobjectStub: sinon.SinonStub; + let createStub: sinon.SinonStub; + + beforeEach(() => { + connectionStub = sinon.createStubInstance(Connection); + createStub = sinon.stub(); + sobjectStub = sinon.stub().returns({ create: createStub }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (connectionStub as any).sobject = sobjectStub; + }); + + afterEach(() => { + sinon.restore(); + }); + + describe('findExistingAttachment', () => { + it('returns pipeline ID when project is already attached', async () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (connectionStub.query as any).resolves({ + records: [{ DevopsPipelineId: '0XB000000000002' }], + }); + + const result = await findExistingAttachment(connectionStub as unknown as Connection, '0Hn000000000001'); + + expect(result).to.equal('0XB000000000002'); + }); + + it('returns undefined when project is not attached', async () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (connectionStub.query as any).resolves({ records: [] }); + + const result = await findExistingAttachment(connectionStub as unknown as Connection, '0Hn000000000001'); + + expect(result).to.be.undefined; + }); + }); + + describe('attachProject', () => { + it('returns success when junction record is created', async () => { + createStub.resolves({ success: true, id: 'JCT001', errors: [] }); + + const result = await attachProject({ + connection: connectionStub as unknown as Connection, + projectId: '0Hn000000000001', + pipelineId: '0XB000000000001', + }); + + expect(result.success).to.be.true; + expect(result.projectId).to.equal('0Hn000000000001'); + expect(result.pipelineId).to.equal('0XB000000000001'); + expect(sobjectStub.calledWith('DevopsProjectPipeline')).to.be.true; + }); + + it('returns error on sObject create failure', async () => { + createStub.resolves({ success: false, id: null, errors: ['DUPLICATE_VALUE'] }); + + const result = await attachProject({ + connection: connectionStub as unknown as Connection, + projectId: '0Hn000000000001', + pipelineId: '0XB000000000001', + }); + + expect(result.success).to.be.false; + expect(result.error).to.contain('DUPLICATE_VALUE'); + }); + + it('propagates connection errors', async () => { + createStub.rejects(new Error('Connection refused')); + + try { + await attachProject({ + connection: connectionStub as unknown as Connection, + projectId: '0Hn000000000001', + pipelineId: '0XB000000000001', + }); + expect.fail('should have thrown'); + } catch (e: unknown) { + expect((e as Error).message).to.contain('Connection refused'); + } + }); + }); +}); diff --git a/test/utils/createProject.test.ts b/test/utils/createProject.test.ts new file mode 100644 index 00000000..030013f9 --- /dev/null +++ b/test/utils/createProject.test.ts @@ -0,0 +1,95 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { expect } from '@oclif/test'; +import sinon from 'sinon'; +import { Connection } from '@salesforce/core'; +import { createProject } from '../../src/utils/createProject.js'; + +describe('createProject', () => { + let connectionStub: sinon.SinonStubbedInstance; + let sobjectStub: sinon.SinonStub; + let createStub: sinon.SinonStub; + + beforeEach(() => { + connectionStub = sinon.createStubInstance(Connection); + createStub = sinon.stub(); + sobjectStub = sinon.stub().returns({ create: createStub }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (connectionStub as any).sobject = sobjectStub; + }); + + afterEach(() => { + sinon.restore(); + }); + + it('returns success with project id and name', async () => { + createStub.resolves({ success: true, id: '1Qg000000000001', errors: [] }); + + const result = await createProject({ + connection: connectionStub as unknown as Connection, + name: 'MyApp Release', + description: 'My description', + }); + + expect(result.success).to.be.true; + expect(result.projectId).to.equal('1Qg000000000001'); + expect(result.name).to.equal('MyApp Release'); + expect(result.description).to.equal('My description'); + expect(sobjectStub.calledWith('DevopsProject')).to.be.true; + }); + + it('returns success without description when empty', async () => { + createStub.resolves({ success: true, id: '1Qg000000000002', errors: [] }); + + const result = await createProject({ + connection: connectionStub as unknown as Connection, + name: 'No Desc Project', + description: '', + }); + + expect(result.success).to.be.true; + expect(result.description).to.be.undefined; + }); + + it('returns error on sObject create failure', async () => { + createStub.resolves({ success: false, id: null, errors: ['DUPLICATE_VALUE: Name already exists'] }); + + const result = await createProject({ + connection: connectionStub as unknown as Connection, + name: 'Duplicate', + description: '', + }); + + expect(result.success).to.be.false; + expect(result.error).to.contain('DUPLICATE_VALUE'); + }); + + it('propagates connection errors', async () => { + createStub.rejects(new Error('Connection refused')); + + try { + await createProject({ + connection: connectionStub as unknown as Connection, + name: 'Fail', + description: '', + }); + expect.fail('should have thrown'); + } catch (e: unknown) { + expect((e as Error).message).to.contain('Connection refused'); + } + }); +}); diff --git a/test/utils/createPullRequest.test.ts b/test/utils/createPullRequest.test.ts new file mode 100644 index 00000000..8147ba6c --- /dev/null +++ b/test/utils/createPullRequest.test.ts @@ -0,0 +1,267 @@ +/* + * Copyright 2026, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { expect } from '@oclif/test'; +import sinon from 'sinon'; +import { Connection } from '@salesforce/core'; +import { fetchWorkItemDetail, createPullRequest } from '../../src/utils/createPullRequest.js'; + +describe('createPullRequest utilities', () => { + let connectionStub: sinon.SinonStubbedInstance; + let queryStub: sinon.SinonStub; + + beforeEach(() => { + connectionStub = sinon.createStubInstance(Connection); + // eslint-disable-next-line @typescript-eslint/unbound-method + queryStub = connectionStub.query as unknown as sinon.SinonStub; + }); + + afterEach(() => { + sinon.restore(); + }); + + describe('fetchWorkItemDetail', () => { + it('returns full work item detail by name', async () => { + queryStub.onFirstCall().resolves({ + records: [ + { + Id: '0Wx000000000001', + Name: 'WI-000001', + Subject: 'Fix login bug', + DevopsProjectId: '1Qg000000000001', + DevopsPipelineStageId: null, + SourceCodeRepositoryBranch: { + Name: 'feature/WI-000001', + SourceCodeRepository: { + Name: 'myrepo', + RepositoryOwner: 'myorg', + Provider: 'GitHub', + }, + }, + }, + ], + }); + queryStub.onSecondCall().resolves({ + records: [{ DevopsPipelineId: 'PIPE001' }], + }); + queryStub.onThirdCall().resolves({ + records: [ + { + Id: 'STAGE1', + Name: 'Integration', + NextStageId: 'STAGE2', + SourceCodeRepositoryBranch: { Name: 'integration' }, + }, + { Id: 'STAGE2', Name: 'Production', NextStageId: null, SourceCodeRepositoryBranch: { Name: 'main' } }, + ], + }); + + const result = await fetchWorkItemDetail(connectionStub as unknown as Connection, { name: 'WI-000001' }); + + expect(result.workItemId).to.equal('0Wx000000000001'); + expect(result.workItemName).to.equal('WI-000001'); + expect(result.branchName).to.equal('feature/WI-000001'); + expect(result.repoOwner).to.equal('myorg'); + expect(result.repoName).to.equal('myrepo'); + expect(result.provider).to.equal('github'); + expect(result.targetBranch).to.equal('integration'); + }); + + it('returns undefined branchName when no branch', async () => { + queryStub.onFirstCall().resolves({ + records: [ + { + Id: '0Wx000000000001', + Name: 'WI-000001', + Subject: 'Fix login bug', + DevopsProjectId: '1Qg000000000001', + DevopsPipelineStageId: null, + SourceCodeRepositoryBranch: null, + }, + ], + }); + queryStub.onSecondCall().resolves({ records: [] }); + + const result = await fetchWorkItemDetail(connectionStub as unknown as Connection, { name: 'WI-000001' }); + + expect(result.branchName).to.be.undefined; + }); + + it('throws when work item not found by name', async () => { + queryStub.resolves({ records: [] }); + + try { + await fetchWorkItemDetail(connectionStub as unknown as Connection, { name: 'WI-999999' }); + expect.fail('should have thrown'); + } catch (e: unknown) { + expect((e as Error).message).to.contain('WI-999999'); + expect((e as Error).message).to.contain('not found'); + } + }); + + it('throws when work item not found by id', async () => { + queryStub.resolves({ records: [] }); + + try { + await fetchWorkItemDetail(connectionStub as unknown as Connection, { id: '0Wx999999999999' }); + expect.fail('should have thrown'); + } catch (e: unknown) { + expect((e as Error).message).to.contain('0Wx999999999999'); + expect((e as Error).message).to.contain('not found'); + } + }); + + it('fetches VCS owner from Connect API when RepositoryOwner is null', async () => { + queryStub.onFirstCall().resolves({ + records: [ + { + Id: '0Wx000000000001', + Name: 'WI-000001', + Subject: 'Fix', + DevopsProjectId: '1Qg000000000001', + DevopsPipelineStageId: null, + SourceCodeRepositoryBranch: { + Name: 'feature/WI-000001', + SourceCodeRepository: { + Name: 'myrepo', + RepositoryOwner: null, + Provider: 'GitHub', + }, + }, + }, + ], + }); + queryStub.onSecondCall().resolves({ records: [] }); + (connectionStub.request as unknown as sinon.SinonStub).resolves({ owner: 'api-owner' }); + (connectionStub.getApiVersion as unknown as sinon.SinonStub).returns('65.0'); + + const result = await fetchWorkItemDetail(connectionStub as unknown as Connection, { name: 'WI-000001' }); + + expect(result.repoOwner).to.equal('api-owner'); + }); + }); + + describe('createPullRequest', () => { + let fetchStub: sinon.SinonStub; + + beforeEach(() => { + fetchStub = sinon.stub(globalThis, 'fetch'); + }); + + afterEach(() => { + fetchStub.restore(); + }); + + it('creates a GitHub PR and returns result', async () => { + const htmlUrl = 'https://github.com/myorg/myrepo/pull/42'; + fetchStub.resolves({ + ok: true, + // eslint-disable-next-line camelcase + json: async () => ({ title: 'Fix login bug', html_url: htmlUrl }), + }); + + const result = await createPullRequest({ + owner: 'myorg', + repo: 'myrepo', + head: 'feature/WI-000001', + base: 'integration', + title: 'Fix login bug', + body: 'Description', + provider: 'github', + token: 'ghp_test123', + }); + + expect(result.success).to.be.true; + expect(result.title).to.equal('Fix login bug'); + expect(result.url).to.equal(htmlUrl); + expect(result.sourceBranch).to.equal('feature/WI-000001'); + expect(result.targetBranch).to.equal('integration'); + + const callArgs = fetchStub.firstCall.args; + expect(callArgs[0]).to.equal('https://api.github.com/repos/myorg/myrepo/pulls'); + }); + + it('throws on GitHub API error with message', async () => { + fetchStub.resolves({ + ok: false, + status: 422, + json: async () => ({ + message: 'Validation Failed', + errors: [{ message: 'A pull request already exists' }], + }), + }); + + try { + await createPullRequest({ + owner: 'myorg', + repo: 'myrepo', + head: 'feature/WI-000001', + base: 'integration', + title: 'Fix', + provider: 'github', + token: 'ghp_test', + }); + expect.fail('should have thrown'); + } catch (e: unknown) { + expect((e as Error).message).to.contain('Validation Failed'); + expect((e as Error).message).to.contain('already exists'); + } + }); + + it('creates a Bitbucket PR and returns result', async () => { + fetchStub.resolves({ + ok: true, + json: async () => ({ + title: 'Fix login bug', + links: { html: { href: 'https://bitbucket.org/myorg/myrepo/pull-requests/7' } }, + }), + }); + + const result = await createPullRequest({ + owner: 'myorg', + repo: 'myrepo', + head: 'feature/WI-000001', + base: 'integration', + title: 'Fix login bug', + provider: 'bitbucket', + token: 'bb_test123', + }); + + expect(result.success).to.be.true; + expect(result.url).to.equal('https://bitbucket.org/myorg/myrepo/pull-requests/7'); + + const callArgs = fetchStub.firstCall.args; + expect(callArgs[0]).to.equal('https://api.bitbucket.org/2.0/repositories/myorg/myrepo/pullrequests'); + }); + + it('throws on unsupported provider', async () => { + try { + await createPullRequest({ + owner: 'o', + repo: 'r', + head: 'h', + base: 'b', + title: 't', + provider: 'gitlab', + token: 'tok', + }); + expect.fail('should have thrown'); + } catch (e: unknown) { + expect((e as Error).message).to.contain('Unsupported VCS provider'); + } + }); + }); +}); diff --git a/yarn.lock b/yarn.lock index cd352b3e..8ae18bc7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,14 +15,6 @@ ansi-styles "^6.2.1" is-fullwidth-code-point "^4.0.0" -"@ampproject/remapping@^2.2.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - "@aws-crypto/crc32@5.2.0": version "5.2.0" resolved "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz" @@ -66,7 +58,7 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-crypto/sha256-js@^5.2.0", "@aws-crypto/sha256-js@5.2.0": +"@aws-crypto/sha256-js@5.2.0", "@aws-crypto/sha256-js@^5.2.0": version "5.2.0" resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz" integrity sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA== @@ -82,7 +74,7 @@ dependencies: tslib "^2.6.2" -"@aws-crypto/util@^5.2.0", "@aws-crypto/util@5.2.0": +"@aws-crypto/util@5.2.0", "@aws-crypto/util@^5.2.0": version "5.2.0" resolved "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz" integrity sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ== @@ -91,56 +83,6 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-sdk/client-cloudfront@^3.699.0": - version "3.712.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-cloudfront/-/client-cloudfront-3.712.0.tgz" - integrity sha512-gzLr0Vjn+3YYpph2fm1FJw0UCK1NW7wU6FkuUFj70IXUDzIywjDenmFG3ZGJ9E7OVtl4dnFim/sqAbkHHhqSnw== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.712.0" - "@aws-sdk/client-sts" "3.712.0" - "@aws-sdk/core" "3.709.0" - "@aws-sdk/credential-provider-node" "3.712.0" - "@aws-sdk/middleware-host-header" "3.709.0" - "@aws-sdk/middleware-logger" "3.709.0" - "@aws-sdk/middleware-recursion-detection" "3.709.0" - "@aws-sdk/middleware-user-agent" "3.709.0" - "@aws-sdk/region-config-resolver" "3.709.0" - "@aws-sdk/types" "3.709.0" - "@aws-sdk/util-endpoints" "3.709.0" - "@aws-sdk/util-user-agent-browser" "3.709.0" - "@aws-sdk/util-user-agent-node" "3.712.0" - "@aws-sdk/xml-builder" "3.709.0" - "@smithy/config-resolver" "^3.0.13" - "@smithy/core" "^2.5.5" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/hash-node" "^3.0.11" - "@smithy/invalid-dependency" "^3.0.11" - "@smithy/middleware-content-length" "^3.0.13" - "@smithy/middleware-endpoint" "^3.2.5" - "@smithy/middleware-retry" "^3.0.30" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.30" - "@smithy/util-defaults-mode-node" "^3.0.30" - "@smithy/util-endpoints" "^2.1.7" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - "@smithy/util-stream" "^3.3.2" - "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.2.0" - tslib "^2.6.2" - "@aws-sdk/client-cloudfront@^3.716.0": version "3.721.0" resolved "https://registry.npmjs.org/@aws-sdk/client-cloudfront/-/client-cloudfront-3.721.0.tgz" @@ -191,70 +133,6 @@ "@smithy/util-waiter" "^3.2.0" tslib "^2.6.2" -"@aws-sdk/client-s3@^3.712.0": - version "3.717.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.717.0.tgz" - integrity sha512-jzaH8IskAXVnqlZ3/H/ROwrB2HCnq/atlN7Hi7FIfjWvMPf5nfcJKfzJ1MXFX0EQR5qO6X4TbK7rgi7Bjw9NjQ== - dependencies: - "@aws-crypto/sha1-browser" "5.2.0" - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.716.0" - "@aws-sdk/client-sts" "3.716.0" - "@aws-sdk/core" "3.716.0" - "@aws-sdk/credential-provider-node" "3.716.0" - "@aws-sdk/middleware-bucket-endpoint" "3.714.0" - "@aws-sdk/middleware-expect-continue" "3.714.0" - "@aws-sdk/middleware-flexible-checksums" "3.717.0" - "@aws-sdk/middleware-host-header" "3.714.0" - "@aws-sdk/middleware-location-constraint" "3.714.0" - "@aws-sdk/middleware-logger" "3.714.0" - "@aws-sdk/middleware-recursion-detection" "3.714.0" - "@aws-sdk/middleware-sdk-s3" "3.716.0" - "@aws-sdk/middleware-ssec" "3.714.0" - "@aws-sdk/middleware-user-agent" "3.716.0" - "@aws-sdk/region-config-resolver" "3.714.0" - "@aws-sdk/signature-v4-multi-region" "3.716.0" - "@aws-sdk/types" "3.714.0" - "@aws-sdk/util-endpoints" "3.714.0" - "@aws-sdk/util-user-agent-browser" "3.714.0" - "@aws-sdk/util-user-agent-node" "3.716.0" - "@aws-sdk/xml-builder" "3.709.0" - "@smithy/config-resolver" "^3.0.13" - "@smithy/core" "^2.5.5" - "@smithy/eventstream-serde-browser" "^3.0.14" - "@smithy/eventstream-serde-config-resolver" "^3.0.11" - "@smithy/eventstream-serde-node" "^3.0.13" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/hash-blob-browser" "^3.1.10" - "@smithy/hash-node" "^3.0.11" - "@smithy/hash-stream-node" "^3.1.10" - "@smithy/invalid-dependency" "^3.0.11" - "@smithy/md5-js" "^3.0.11" - "@smithy/middleware-content-length" "^3.0.13" - "@smithy/middleware-endpoint" "^3.2.6" - "@smithy/middleware-retry" "^3.0.31" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.1" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.31" - "@smithy/util-defaults-mode-node" "^3.0.31" - "@smithy/util-endpoints" "^2.1.7" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - "@smithy/util-stream" "^3.3.2" - "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.2.0" - tslib "^2.6.2" - "@aws-sdk/client-s3@^3.717.0": version "3.722.0" resolved "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.722.0.tgz" @@ -319,97 +197,7 @@ "@smithy/util-waiter" "^3.2.0" tslib "^2.6.2" -"@aws-sdk/client-sso-oidc@^3.709.0", "@aws-sdk/client-sso-oidc@3.712.0": - version "3.712.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.712.0.tgz" - integrity sha512-xNFrG9syrG6pxUP7Ld/nu3afQ9+rbJM9qrE+wDNz4VnNZ3vLiJty4fH85zBFhOQ5OF2DIJTWsFzXGi2FYjsCMA== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.709.0" - "@aws-sdk/credential-provider-node" "3.712.0" - "@aws-sdk/middleware-host-header" "3.709.0" - "@aws-sdk/middleware-logger" "3.709.0" - "@aws-sdk/middleware-recursion-detection" "3.709.0" - "@aws-sdk/middleware-user-agent" "3.709.0" - "@aws-sdk/region-config-resolver" "3.709.0" - "@aws-sdk/types" "3.709.0" - "@aws-sdk/util-endpoints" "3.709.0" - "@aws-sdk/util-user-agent-browser" "3.709.0" - "@aws-sdk/util-user-agent-node" "3.712.0" - "@smithy/config-resolver" "^3.0.13" - "@smithy/core" "^2.5.5" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/hash-node" "^3.0.11" - "@smithy/invalid-dependency" "^3.0.11" - "@smithy/middleware-content-length" "^3.0.13" - "@smithy/middleware-endpoint" "^3.2.5" - "@smithy/middleware-retry" "^3.0.30" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.30" - "@smithy/util-defaults-mode-node" "^3.0.30" - "@smithy/util-endpoints" "^2.1.7" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-sso-oidc@^3.714.0", "@aws-sdk/client-sso-oidc@3.716.0": - version "3.716.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.716.0.tgz" - integrity sha512-lA4IB9FzR2KjH7EVCo+mHGFKqdViVyeBQEIX9oVratL/l7P0bMS1fMwgfHOc3ACazqNxBxDES7x08ZCp32y6Lw== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.716.0" - "@aws-sdk/credential-provider-node" "3.716.0" - "@aws-sdk/middleware-host-header" "3.714.0" - "@aws-sdk/middleware-logger" "3.714.0" - "@aws-sdk/middleware-recursion-detection" "3.714.0" - "@aws-sdk/middleware-user-agent" "3.716.0" - "@aws-sdk/region-config-resolver" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@aws-sdk/util-endpoints" "3.714.0" - "@aws-sdk/util-user-agent-browser" "3.714.0" - "@aws-sdk/util-user-agent-node" "3.716.0" - "@smithy/config-resolver" "^3.0.13" - "@smithy/core" "^2.5.5" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/hash-node" "^3.0.11" - "@smithy/invalid-dependency" "^3.0.11" - "@smithy/middleware-content-length" "^3.0.13" - "@smithy/middleware-endpoint" "^3.2.6" - "@smithy/middleware-retry" "^3.0.31" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.1" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.31" - "@smithy/util-defaults-mode-node" "^3.0.31" - "@smithy/util-endpoints" "^2.1.7" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-sso-oidc@^3.721.0", "@aws-sdk/client-sso-oidc@3.721.0": +"@aws-sdk/client-sso-oidc@3.721.0": version "3.721.0" resolved "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.721.0.tgz" integrity sha512-jwsgdUEbNJqs1O0AQtf9M6SI7hFIjxH+IKeKCMca0xVt+Tr1UqLr/qMK/6W8LoMtRFnE0lpBSHW6hvmLp2OCoQ== @@ -454,94 +242,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sso@3.712.0": - version "3.712.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.712.0.tgz" - integrity sha512-tBo/eW3YpZ9f3Q1qA7aA8uliNFJJX0OP7R2IUJ8t6rqVTk15wWCEPNmXzUZKgruDnKUfCaF4+r9q/Yy4fBc9PA== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.709.0" - "@aws-sdk/middleware-host-header" "3.709.0" - "@aws-sdk/middleware-logger" "3.709.0" - "@aws-sdk/middleware-recursion-detection" "3.709.0" - "@aws-sdk/middleware-user-agent" "3.709.0" - "@aws-sdk/region-config-resolver" "3.709.0" - "@aws-sdk/types" "3.709.0" - "@aws-sdk/util-endpoints" "3.709.0" - "@aws-sdk/util-user-agent-browser" "3.709.0" - "@aws-sdk/util-user-agent-node" "3.712.0" - "@smithy/config-resolver" "^3.0.13" - "@smithy/core" "^2.5.5" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/hash-node" "^3.0.11" - "@smithy/invalid-dependency" "^3.0.11" - "@smithy/middleware-content-length" "^3.0.13" - "@smithy/middleware-endpoint" "^3.2.5" - "@smithy/middleware-retry" "^3.0.30" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.30" - "@smithy/util-defaults-mode-node" "^3.0.30" - "@smithy/util-endpoints" "^2.1.7" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-sso@3.716.0": - version "3.716.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.716.0.tgz" - integrity sha512-5Nb0jJXce2TclbjG7WVPufwhgV1TRydz1QnsuBtKU0AdViEpr787YrZhPpGnNIM1Dx+R1H/tmAHZnOoohS6D8g== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.716.0" - "@aws-sdk/middleware-host-header" "3.714.0" - "@aws-sdk/middleware-logger" "3.714.0" - "@aws-sdk/middleware-recursion-detection" "3.714.0" - "@aws-sdk/middleware-user-agent" "3.716.0" - "@aws-sdk/region-config-resolver" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@aws-sdk/util-endpoints" "3.714.0" - "@aws-sdk/util-user-agent-browser" "3.714.0" - "@aws-sdk/util-user-agent-node" "3.716.0" - "@smithy/config-resolver" "^3.0.13" - "@smithy/core" "^2.5.5" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/hash-node" "^3.0.11" - "@smithy/invalid-dependency" "^3.0.11" - "@smithy/middleware-content-length" "^3.0.13" - "@smithy/middleware-endpoint" "^3.2.6" - "@smithy/middleware-retry" "^3.0.31" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.1" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.31" - "@smithy/util-defaults-mode-node" "^3.0.31" - "@smithy/util-endpoints" "^2.1.7" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - "@aws-sdk/client-sso@3.721.0": version "3.721.0" resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.721.0.tgz" @@ -586,53 +286,7 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sts@^3.709.0", "@aws-sdk/client-sts@^3.712.0", "@aws-sdk/client-sts@3.712.0": - version "3.712.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.712.0.tgz" - integrity sha512-gIO6BD+hkEe3GKQhbiFP0zcNQv0EkP1Cl9SOstxS+X9CeudEgVX/xEPUjyoFVkfkntPBJ1g0I1u5xOzzRExl4g== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.712.0" - "@aws-sdk/core" "3.709.0" - "@aws-sdk/credential-provider-node" "3.712.0" - "@aws-sdk/middleware-host-header" "3.709.0" - "@aws-sdk/middleware-logger" "3.709.0" - "@aws-sdk/middleware-recursion-detection" "3.709.0" - "@aws-sdk/middleware-user-agent" "3.709.0" - "@aws-sdk/region-config-resolver" "3.709.0" - "@aws-sdk/types" "3.709.0" - "@aws-sdk/util-endpoints" "3.709.0" - "@aws-sdk/util-user-agent-browser" "3.709.0" - "@aws-sdk/util-user-agent-node" "3.712.0" - "@smithy/config-resolver" "^3.0.13" - "@smithy/core" "^2.5.5" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/hash-node" "^3.0.11" - "@smithy/invalid-dependency" "^3.0.11" - "@smithy/middleware-content-length" "^3.0.13" - "@smithy/middleware-endpoint" "^3.2.5" - "@smithy/middleware-retry" "^3.0.30" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.30" - "@smithy/util-defaults-mode-node" "^3.0.30" - "@smithy/util-endpoints" "^2.1.7" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-sts@^3.716.0", "@aws-sdk/client-sts@^3.721.0", "@aws-sdk/client-sts@3.721.0": +"@aws-sdk/client-sts@3.721.0": version "3.721.0" resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.721.0.tgz" integrity sha512-1Pv8F02hQFmPZs7WtGfQNlnInbG1lLzyngJc/MlZ3Ld2fIoWjaWp7bJWgYAjnzHNEuDtCabWJvIfePdRqsbYoA== @@ -678,69 +332,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sts@3.716.0": - version "3.716.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.716.0.tgz" - integrity sha512-i4SVNsrdXudp8T4bkm7Fi3YWlRnvXCSwvNDqf6nLqSJxqr4CN3VlBELueDyjBK7TAt453/qSif+eNx+bHmwo4Q== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.716.0" - "@aws-sdk/core" "3.716.0" - "@aws-sdk/credential-provider-node" "3.716.0" - "@aws-sdk/middleware-host-header" "3.714.0" - "@aws-sdk/middleware-logger" "3.714.0" - "@aws-sdk/middleware-recursion-detection" "3.714.0" - "@aws-sdk/middleware-user-agent" "3.716.0" - "@aws-sdk/region-config-resolver" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@aws-sdk/util-endpoints" "3.714.0" - "@aws-sdk/util-user-agent-browser" "3.714.0" - "@aws-sdk/util-user-agent-node" "3.716.0" - "@smithy/config-resolver" "^3.0.13" - "@smithy/core" "^2.5.5" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/hash-node" "^3.0.11" - "@smithy/invalid-dependency" "^3.0.11" - "@smithy/middleware-content-length" "^3.0.13" - "@smithy/middleware-endpoint" "^3.2.6" - "@smithy/middleware-retry" "^3.0.31" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.1" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.31" - "@smithy/util-defaults-mode-node" "^3.0.31" - "@smithy/util-endpoints" "^2.1.7" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/core@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/core/-/core-3.709.0.tgz" - integrity sha512-7kuSpzdOTAE026j85wq/fN9UDZ70n0OHw81vFqMWwlEFtm5IQ/MRCLKcC4HkXxTdfy1PqFlmoXxWqeBa15tujw== - dependencies: - "@aws-sdk/types" "3.709.0" - "@smithy/core" "^2.5.5" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/property-provider" "^3.1.11" - "@smithy/protocol-http" "^4.1.8" - "@smithy/signature-v4" "^4.2.4" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/util-middleware" "^3.0.11" - fast-xml-parser "4.4.1" - tslib "^2.6.2" - "@aws-sdk/core@3.716.0": version "3.716.0" resolved "https://registry.npmjs.org/@aws-sdk/core/-/core-3.716.0.tgz" @@ -758,17 +349,6 @@ fast-xml-parser "4.4.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.709.0.tgz" - integrity sha512-ZMAp9LSikvHDFVa84dKpQmow6wsg956Um20cKuioPpX2GGreJFur7oduD+tRJT6FtIOHn+64YH+0MwiXLhsaIQ== - dependencies: - "@aws-sdk/core" "3.709.0" - "@aws-sdk/types" "3.709.0" - "@smithy/property-provider" "^3.1.11" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - "@aws-sdk/credential-provider-env@3.716.0": version "3.716.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.716.0.tgz" @@ -780,22 +360,6 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.709.0.tgz" - integrity sha512-lIS7XLwCOyJnLD70f+VIRr8DNV1HPQe9oN6aguYrhoczqz7vDiVZLe3lh714cJqq9rdxzFypK5DqKHmcscMEPQ== - dependencies: - "@aws-sdk/core" "3.709.0" - "@aws-sdk/types" "3.709.0" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/property-provider" "^3.1.11" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/util-stream" "^3.3.2" - tslib "^2.6.2" - "@aws-sdk/credential-provider-http@3.716.0": version "3.716.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.716.0.tgz" @@ -812,42 +376,6 @@ "@smithy/util-stream" "^3.3.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.712.0": - version "3.712.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.712.0.tgz" - integrity sha512-sTsdQ/Fm/suqMdpjhMuss/5uKL18vcuWnNTQVrG9iGNRqZLbq65MXquwbUpgzfoUmIcH+4CrY6H2ebpTIECIag== - dependencies: - "@aws-sdk/core" "3.709.0" - "@aws-sdk/credential-provider-env" "3.709.0" - "@aws-sdk/credential-provider-http" "3.709.0" - "@aws-sdk/credential-provider-process" "3.709.0" - "@aws-sdk/credential-provider-sso" "3.712.0" - "@aws-sdk/credential-provider-web-identity" "3.709.0" - "@aws-sdk/types" "3.709.0" - "@smithy/credential-provider-imds" "^3.2.8" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-ini@3.716.0": - version "3.716.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.716.0.tgz" - integrity sha512-P37We2GtZvdROxiwP0zrpEL81/HuYK1qlYxp5VCj3uV+G4mG8UQN2gMIU/baYrpOQqa0h81RfyQGRFUjVaDVqw== - dependencies: - "@aws-sdk/core" "3.716.0" - "@aws-sdk/credential-provider-env" "3.716.0" - "@aws-sdk/credential-provider-http" "3.716.0" - "@aws-sdk/credential-provider-process" "3.716.0" - "@aws-sdk/credential-provider-sso" "3.716.0" - "@aws-sdk/credential-provider-web-identity" "3.716.0" - "@aws-sdk/types" "3.714.0" - "@smithy/credential-provider-imds" "^3.2.8" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - "@aws-sdk/credential-provider-ini@3.721.0": version "3.721.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.721.0.tgz" @@ -866,42 +394,6 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.712.0": - version "3.712.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.712.0.tgz" - integrity sha512-gXrHymW3rMRYORkPVQwL8Gi5Lu92F16SoZR543x03qCi7rm00oL9tRD85ACxkhprS1Wh8lUIUMNoeiwnYWTNuQ== - dependencies: - "@aws-sdk/credential-provider-env" "3.709.0" - "@aws-sdk/credential-provider-http" "3.709.0" - "@aws-sdk/credential-provider-ini" "3.712.0" - "@aws-sdk/credential-provider-process" "3.709.0" - "@aws-sdk/credential-provider-sso" "3.712.0" - "@aws-sdk/credential-provider-web-identity" "3.709.0" - "@aws-sdk/types" "3.709.0" - "@smithy/credential-provider-imds" "^3.2.8" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-node@3.716.0": - version "3.716.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.716.0.tgz" - integrity sha512-FGQPK2uKfS53dVvoskN/s/t6m0Po24BGd1PzJdzHBFCOjxbZLM6+8mDMXeyi2hCLVVQOUcuW41kOgmJ0+zMbww== - dependencies: - "@aws-sdk/credential-provider-env" "3.716.0" - "@aws-sdk/credential-provider-http" "3.716.0" - "@aws-sdk/credential-provider-ini" "3.716.0" - "@aws-sdk/credential-provider-process" "3.716.0" - "@aws-sdk/credential-provider-sso" "3.716.0" - "@aws-sdk/credential-provider-web-identity" "3.716.0" - "@aws-sdk/types" "3.714.0" - "@smithy/credential-provider-imds" "^3.2.8" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - "@aws-sdk/credential-provider-node@3.721.0": version "3.721.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.721.0.tgz" @@ -920,52 +412,12 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.709.0.tgz" - integrity sha512-IAC+jPlGQII6jhIylHOwh3RgSobqlgL59nw2qYTURr8hMCI0Z1p5y2ee646HTVt4WeCYyzUAXfxr6YI/Vitv+Q== - dependencies: - "@aws-sdk/core" "3.709.0" - "@aws-sdk/types" "3.709.0" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - "@aws-sdk/credential-provider-process@3.716.0": version "3.716.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.716.0.tgz" - integrity sha512-0spcu2MWVVHSTHH3WE2E//ttUJPwXRM3BCp+WyI41xLzpNu1Fd8zjOrDpEo0SnGUzsSiRTIJWgkuu/tqv9NJ2A== - dependencies: - "@aws-sdk/core" "3.716.0" - "@aws-sdk/types" "3.714.0" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-sso@3.712.0": - version "3.712.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.712.0.tgz" - integrity sha512-8lCMxY7Lb9VK9qdlNXRJXE3W1UDVURnJZ3a4XWYNY6yr1TfQaN40mMyXX1oNlXXJtMV0szRvjM8dZj37E/ESAw== - dependencies: - "@aws-sdk/client-sso" "3.712.0" - "@aws-sdk/core" "3.709.0" - "@aws-sdk/token-providers" "3.709.0" - "@aws-sdk/types" "3.709.0" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-sso@3.716.0": - version "3.716.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.716.0.tgz" - integrity sha512-J2IA3WuCpRGGoZm6VHZVFCnrxXP+41iUWb9Ct/1spljegTa1XjiaZ5Jf3+Ubj7WKiyvP9/dgz1L0bu2bYEjliw== + integrity sha512-0spcu2MWVVHSTHH3WE2E//ttUJPwXRM3BCp+WyI41xLzpNu1Fd8zjOrDpEo0SnGUzsSiRTIJWgkuu/tqv9NJ2A== dependencies: - "@aws-sdk/client-sso" "3.716.0" "@aws-sdk/core" "3.716.0" - "@aws-sdk/token-providers" "3.714.0" "@aws-sdk/types" "3.714.0" "@smithy/property-provider" "^3.1.11" "@smithy/shared-ini-file-loader" "^3.1.12" @@ -986,17 +438,6 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.709.0.tgz" - integrity sha512-2lbDfE0IQ6gma/7BB2JpkjW5G0wGe4AS0x80oybYAYYviJmUtIR3Cn2pXun6bnAWElt4wYKl4su7oC36rs5rNA== - dependencies: - "@aws-sdk/core" "3.709.0" - "@aws-sdk/types" "3.709.0" - "@smithy/property-provider" "^3.1.11" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - "@aws-sdk/credential-provider-web-identity@3.716.0": version "3.716.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.716.0.tgz" @@ -1008,19 +449,6 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/middleware-bucket-endpoint@3.714.0": - version "3.714.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.714.0.tgz" - integrity sha512-I/xSOskiseJJ8i183Z522BgqbgYzLKP7jGcg2Qeib/IWoG2IP+9DH8pwqagKaPAycyswtnoKBJiiFXY43n0CkA== - dependencies: - "@aws-sdk/types" "3.714.0" - "@aws-sdk/util-arn-parser" "3.693.0" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" - "@smithy/util-config-provider" "^3.0.0" - tslib "^2.6.2" - "@aws-sdk/middleware-bucket-endpoint@3.721.0": version "3.721.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.721.0.tgz" @@ -1063,16 +491,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.709.0.tgz" - integrity sha512-8gQYCYAaIw4lOCd5WYdf15Y/61MgRsAnrb2eiTl+icMlUOOzl8aOl5iDwm/Idp0oHZTflwxM4XSvGXO83PRWcw== - dependencies: - "@aws-sdk/types" "3.709.0" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - "@aws-sdk/middleware-host-header@3.714.0": version "3.714.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.714.0.tgz" @@ -1092,15 +510,6 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/middleware-logger@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.709.0.tgz" - integrity sha512-jDoGSccXv9zebnpUoisjWd5u5ZPIalrmm6TjvPzZ8UqzQt3Beiz0tnQwmxQD6KRc7ADweWP5Ntiqzbw9xpVajg== - dependencies: - "@aws-sdk/types" "3.709.0" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - "@aws-sdk/middleware-logger@3.714.0": version "3.714.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.714.0.tgz" @@ -1110,16 +519,6 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.709.0.tgz" - integrity sha512-PObL/wLr4lkfbQ0yXUWaoCWu/jcwfwZzCjsUiXW/H6hW9b/00enZxmx7OhtJYaR6xmh/Lcx5wbhIoDCbzdv0tw== - dependencies: - "@aws-sdk/types" "3.709.0" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - "@aws-sdk/middleware-recursion-detection@3.714.0": version "3.714.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.714.0.tgz" @@ -1159,32 +558,6 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.709.0.tgz" - integrity sha512-ooc9ZJvgkjPhi9q05XwSfNTXkEBEIfL4hleo5rQBKwHG3aTHvwOM7LLzhdX56QZVa6sorPBp6fwULuRDSqiQHw== - dependencies: - "@aws-sdk/core" "3.709.0" - "@aws-sdk/types" "3.709.0" - "@aws-sdk/util-endpoints" "3.709.0" - "@smithy/core" "^2.5.5" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - -"@aws-sdk/middleware-user-agent@3.716.0": - version "3.716.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.716.0.tgz" - integrity sha512-FpAtT6nNKrYdkDZndutEraiRMf+TgDzAGvniqRtZ/YTPA+gIsWrsn+TwMKINR81lFC3nQfb9deS5CFtxd021Ew== - dependencies: - "@aws-sdk/core" "3.716.0" - "@aws-sdk/types" "3.714.0" - "@aws-sdk/util-endpoints" "3.714.0" - "@smithy/core" "^2.5.5" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - "@aws-sdk/middleware-user-agent@3.721.0": version "3.721.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.721.0.tgz" @@ -1198,18 +571,6 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/region-config-resolver@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.709.0.tgz" - integrity sha512-/NoCAMEVKAg3kBKOrNtgOfL+ECt6nrl+L7q2SyYmrcY4tVCmwuECVqewQaHc03fTnJijfKLccw0Fj+6wOCnB6w== - dependencies: - "@aws-sdk/types" "3.709.0" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/types" "^3.7.2" - "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.11" - tslib "^2.6.2" - "@aws-sdk/region-config-resolver@3.714.0": version "3.714.0" resolved "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.714.0.tgz" @@ -1234,28 +595,6 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/token-providers@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.709.0.tgz" - integrity sha512-q5Ar6k71nci43IbULFgC8a89d/3EHpmd7HvBzqVGRcHnoPwh8eZDBfbBXKH83NGwcS1qPSRYiDbVfeWPm4/1jA== - dependencies: - "@aws-sdk/types" "3.709.0" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - -"@aws-sdk/token-providers@3.714.0": - version "3.714.0" - resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.714.0.tgz" - integrity sha512-vKN064aLE3kl+Zl16Ony3jltHnMddMBT7JRkP1L+lLywhA0PcAKxpdvComul/sTBWnbnwLnaS5NsDUhcWySH8A== - dependencies: - "@aws-sdk/types" "3.714.0" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - "@aws-sdk/token-providers@3.721.0": version "3.721.0" resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.721.0.tgz" @@ -1267,7 +606,7 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/types@^3.222.0", "@aws-sdk/types@3.714.0": +"@aws-sdk/types@3.714.0", "@aws-sdk/types@^3.222.0": version "3.714.0" resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.714.0.tgz" integrity sha512-ZjpP2gYbSFlxxaUDa1Il5AVvfggvUPbjzzB/l3q0gIE5Thd6xKW+yzEpt2mLZ5s5UaYSABZbF94g8NUOF4CVGA== @@ -1275,14 +614,6 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@aws-sdk/types@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.709.0.tgz" - integrity sha512-ArtLTMxgjf13Kfu3gWH3Ez9Q5TkDdcRZUofpKH3pMGB/C6KAbeSCtIIDKfoRTUABzyGlPyCrZdnFjKyH+ypIpg== - dependencies: - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - "@aws-sdk/util-arn-parser@3.693.0": version "3.693.0" resolved "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.693.0.tgz" @@ -1290,16 +621,6 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.709.0.tgz" - integrity sha512-Mbc7AtL5WGCTKC16IGeUTz+sjpC3ptBda2t0CcK0kMVw3THDdcSq6ZlNKO747cNqdbwUvW34oHteUiHv4/z88Q== - dependencies: - "@aws-sdk/types" "3.709.0" - "@smithy/types" "^3.7.2" - "@smithy/util-endpoints" "^2.1.7" - tslib "^2.6.2" - "@aws-sdk/util-endpoints@3.714.0": version "3.714.0" resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.714.0.tgz" @@ -1317,16 +638,6 @@ dependencies: tslib "^2.5.0" -"@aws-sdk/util-user-agent-browser@3.709.0": - version "3.709.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.709.0.tgz" - integrity sha512-/rL2GasJzdTWUURCQKFldw2wqBtY4k4kCiA2tVZSKg3y4Ey7zO34SW8ebaeCE2/xoWOyLR2/etdKyphoo4Zrtg== - dependencies: - "@aws-sdk/types" "3.709.0" - "@smithy/types" "^3.7.2" - bowser "^2.11.0" - tslib "^2.6.2" - "@aws-sdk/util-user-agent-browser@3.714.0": version "3.714.0" resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.714.0.tgz" @@ -1337,28 +648,6 @@ bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.712.0": - version "3.712.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.712.0.tgz" - integrity sha512-26X21bZ4FWsVpqs33uOXiB60TOWQdVlr7T7XONDFL/XN7GEpUJkWuuIB4PTok6VOmh1viYcdxZQqekXPuzXexQ== - dependencies: - "@aws-sdk/middleware-user-agent" "3.709.0" - "@aws-sdk/types" "3.709.0" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - -"@aws-sdk/util-user-agent-node@3.716.0": - version "3.716.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.716.0.tgz" - integrity sha512-3PqaXmQbxrtHKAsPCdp7kn5FrQktj8j3YyuNsqFZ8rWZeEQ88GWlsvE61PTsr2peYCKzpFqYVddef2x1axHU0w== - dependencies: - "@aws-sdk/middleware-user-agent" "3.716.0" - "@aws-sdk/types" "3.714.0" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - "@aws-sdk/util-user-agent-node@3.721.0": version "3.721.0" resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.721.0.tgz" @@ -1387,25 +676,12 @@ js-tokens "^4.0.0" picocolors "^1.1.1" -"@babel/code-frame@^7.24.7": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz" - integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== - dependencies: - "@babel/highlight" "^7.24.7" - picocolors "^1.0.0" - -"@babel/compat-data@^7.25.2": - version "7.25.2" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz" - integrity sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ== - "@babel/compat-data@^7.29.7": version "7.29.7" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz" integrity sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg== -"@babel/core@^7.0.0", "@babel/core@^7.23.9": +"@babel/core@^7.23.9": version "7.29.7" resolved "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz" integrity sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA== @@ -1426,16 +702,6 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.25.0": - version "7.25.0" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz" - integrity sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw== - dependencies: - "@babel/types" "^7.25.0" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^2.5.1" - "@babel/generator@^7.29.7": version "7.29.7" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz" @@ -1447,17 +713,6 @@ "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" -"@babel/helper-compilation-targets@^7.25.2": - version "7.25.2" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz" - integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== - dependencies: - "@babel/compat-data" "^7.25.2" - "@babel/helper-validator-option" "^7.24.8" - browserslist "^4.23.1" - lru-cache "^5.1.1" - semver "^6.3.1" - "@babel/helper-compilation-targets@^7.29.7": version "7.29.7" resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz" @@ -1474,14 +729,6 @@ resolved "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz" integrity sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA== -"@babel/helper-module-imports@^7.24.7": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz" - integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - "@babel/helper-module-imports@^7.29.7": version "7.29.7" resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz" @@ -1490,16 +737,6 @@ "@babel/traverse" "^7.29.7" "@babel/types" "^7.29.7" -"@babel/helper-module-transforms@^7.25.2": - version "7.25.2" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz" - integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== - dependencies: - "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-simple-access" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" - "@babel/traverse" "^7.25.2" - "@babel/helper-module-transforms@^7.29.7": version "7.29.7" resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz" @@ -1509,19 +746,6 @@ "@babel/helper-validator-identifier" "^7.29.7" "@babel/traverse" "^7.29.7" -"@babel/helper-simple-access@^7.24.7": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz" - integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" - -"@babel/helper-string-parser@^7.24.8": - version "7.24.8" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz" - integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== - "@babel/helper-string-parser@^7.29.7": version "7.29.7" resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz" @@ -1532,29 +756,11 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz" integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== -"@babel/helper-validator-identifier@^7.24.7": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz" - integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== - -"@babel/helper-validator-option@^7.24.8": - version "7.24.8" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz" - integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== - "@babel/helper-validator-option@^7.29.7": version "7.29.7" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz" integrity sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw== -"@babel/helpers@^7.25.0": - version "7.25.0" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz" - integrity sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw== - dependencies: - "@babel/template" "^7.25.0" - "@babel/types" "^7.25.0" - "@babel/helpers@^7.29.7": version "7.29.7" resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz" @@ -1563,16 +769,6 @@ "@babel/template" "^7.29.7" "@babel/types" "^7.29.7" -"@babel/highlight@^7.24.7": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz" - integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== - dependencies: - "@babel/helper-validator-identifier" "^7.24.7" - chalk "^2.4.2" - js-tokens "^4.0.0" - picocolors "^1.0.0" - "@babel/parser@^7.23.9", "@babel/parser@^7.29.7": version "7.29.7" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz" @@ -1580,22 +776,6 @@ dependencies: "@babel/types" "^7.29.7" -"@babel/parser@^7.25.0", "@babel/parser@^7.25.3": - version "7.25.3" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz" - integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== - dependencies: - "@babel/types" "^7.25.2" - -"@babel/template@^7.25.0": - version "7.25.0" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz" - integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/parser" "^7.25.0" - "@babel/types" "^7.25.0" - "@babel/template@^7.29.7": version "7.29.7" resolved "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz" @@ -1605,19 +785,6 @@ "@babel/parser" "^7.29.7" "@babel/types" "^7.29.7" -"@babel/traverse@^7.24.7", "@babel/traverse@^7.25.2": - version "7.25.3" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz" - integrity sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.25.0" - "@babel/parser" "^7.25.3" - "@babel/template" "^7.25.0" - "@babel/types" "^7.25.2" - debug "^4.3.1" - globals "^11.1.0" - "@babel/traverse@^7.29.7": version "7.29.7" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz" @@ -1631,15 +798,6 @@ "@babel/types" "^7.29.7" debug "^4.3.1" -"@babel/types@^7.24.7", "@babel/types@^7.25.0", "@babel/types@^7.25.2": - version "7.25.2" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz" - integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== - dependencies: - "@babel/helper-string-parser" "^7.24.8" - "@babel/helper-validator-identifier" "^7.24.7" - to-fast-properties "^2.0.0" - "@babel/types@^7.29.7": version "7.29.7" resolved "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz" @@ -1648,11 +806,6 @@ "@babel/helper-string-parser" "^7.29.7" "@babel/helper-validator-identifier" "^7.29.7" -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - "@commitlint/cli@^17.1.2": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-17.8.1.tgz" @@ -1676,14 +829,6 @@ dependencies: conventional-changelog-conventionalcommits "^6.1.0" -"@commitlint/config-validator@^17.4.0": - version "17.4.0" - resolved "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.4.0.tgz" - integrity sha512-Sa/+8KNpDXz4zT4bVbz2fpFjvgkPO6u2V2fP4TKgt6FjmOw2z3eEX859vtfeaTav/ukBw0/0jr+5ZTZp9zCBhA== - dependencies: - "@commitlint/types" "^17.4.0" - ajv "^8.11.0" - "@commitlint/config-validator@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.8.1.tgz" @@ -1692,18 +837,6 @@ "@commitlint/types" "^17.8.1" ajv "^8.11.0" -"@commitlint/ensure@^17.4.0": - version "17.4.0" - resolved "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.4.0.tgz" - integrity sha512-7oAxt25je0jeQ/E0O/M8L3ADb1Cvweu/5lc/kYF8g/kXatI0wxGE5La52onnAUAWeWlsuvBNar15WcrmDmr5Mw== - dependencies: - "@commitlint/types" "^17.4.0" - lodash.camelcase "^4.3.0" - lodash.kebabcase "^4.1.1" - lodash.snakecase "^4.1.1" - lodash.startcase "^4.4.0" - lodash.upperfirst "^4.3.1" - "@commitlint/ensure@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.8.1.tgz" @@ -1716,24 +849,11 @@ lodash.startcase "^4.4.0" lodash.upperfirst "^4.3.1" -"@commitlint/execute-rule@^17.4.0": - version "17.4.0" - resolved "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz" - integrity sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA== - "@commitlint/execute-rule@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.8.1.tgz" integrity sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ== -"@commitlint/format@^17.4.0": - version "17.4.0" - resolved "https://registry.npmjs.org/@commitlint/format/-/format-17.4.0.tgz" - integrity sha512-Z2bWAU5+f1YZh9W76c84J8iLIWIvvm+mzqogTz0Nsc1x6EHW0Z2gI38g5HAjB0r0I3ZjR15IDEJKhsxyblcyhA== - dependencies: - "@commitlint/types" "^17.4.0" - chalk "^4.1.0" - "@commitlint/format@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/format/-/format-17.8.1.tgz" @@ -1742,14 +862,6 @@ "@commitlint/types" "^17.8.1" chalk "^4.1.0" -"@commitlint/is-ignored@^17.4.2": - version "17.4.2" - resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.4.2.tgz" - integrity sha512-1b2Y2qJ6n7bHG9K6h8S4lBGUl6kc7mMhJN9gy1SQfUZqe92ToDjUTtgNWb6LbzR1X8Cq4SEus4VU8Z/riEa94Q== - dependencies: - "@commitlint/types" "^17.4.0" - semver "7.3.8" - "@commitlint/is-ignored@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.8.1.tgz" @@ -1758,16 +870,6 @@ "@commitlint/types" "^17.8.1" semver "7.5.4" -"@commitlint/lint@^17.4.2": - version "17.4.2" - resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-17.4.2.tgz" - integrity sha512-HcymabrdBhsDMNzIv146+ZPNBPBK5gMNsVH+el2lCagnYgCi/4ixrHooeVyS64Fgce2K26+MC7OQ4vVH8wQWVw== - dependencies: - "@commitlint/is-ignored" "^17.4.2" - "@commitlint/parse" "^17.4.2" - "@commitlint/rules" "^17.4.2" - "@commitlint/types" "^17.4.0" - "@commitlint/lint@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-17.8.1.tgz" @@ -1778,26 +880,6 @@ "@commitlint/rules" "^17.8.1" "@commitlint/types" "^17.8.1" -"@commitlint/load@^17.4.2": - version "17.4.2" - resolved "https://registry.npmjs.org/@commitlint/load/-/load-17.4.2.tgz" - integrity sha512-Si++F85rJ9t4hw6JcOw1i2h0fdpdFQt0YKwjuK4bk9KhFjyFkRxvR3SB2dPaMs+EwWlDrDBGL+ygip1QD6gmPw== - dependencies: - "@commitlint/config-validator" "^17.4.0" - "@commitlint/execute-rule" "^17.4.0" - "@commitlint/resolve-extends" "^17.4.0" - "@commitlint/types" "^17.4.0" - "@types/node" "*" - chalk "^4.1.0" - cosmiconfig "^8.0.0" - cosmiconfig-typescript-loader "^4.0.0" - lodash.isplainobject "^4.0.6" - lodash.merge "^4.6.2" - lodash.uniq "^4.5.0" - resolve-from "^5.0.0" - ts-node "^10.8.1" - typescript "^4.6.4" - "@commitlint/load@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/load/-/load-17.8.1.tgz" @@ -1818,25 +900,11 @@ ts-node "^10.8.1" typescript "^4.6.4 || ^5.2.2" -"@commitlint/message@^17.4.2": - version "17.4.2" - resolved "https://registry.npmjs.org/@commitlint/message/-/message-17.4.2.tgz" - integrity sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q== - "@commitlint/message@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/message/-/message-17.8.1.tgz" integrity sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA== -"@commitlint/parse@^17.4.2": - version "17.4.2" - resolved "https://registry.npmjs.org/@commitlint/parse/-/parse-17.4.2.tgz" - integrity sha512-DK4EwqhxfXpyCA+UH8TBRIAXAfmmX4q9QRBz/2h9F9sI91yt6mltTrL6TKURMcjUVmgaB80wgS9QybNIyVBIJA== - dependencies: - "@commitlint/types" "^17.4.0" - conventional-changelog-angular "^5.0.11" - conventional-commits-parser "^3.2.2" - "@commitlint/parse@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/parse/-/parse-17.8.1.tgz" @@ -1846,17 +914,6 @@ conventional-changelog-angular "^6.0.0" conventional-commits-parser "^4.0.0" -"@commitlint/read@^17.4.2": - version "17.4.2" - resolved "https://registry.npmjs.org/@commitlint/read/-/read-17.4.2.tgz" - integrity sha512-hasYOdbhEg+W4hi0InmXHxtD/1favB4WdwyFxs1eOy/DvMw6+2IZBmATgGOlqhahsypk4kChhxjAFJAZ2F+JBg== - dependencies: - "@commitlint/top-level" "^17.4.0" - "@commitlint/types" "^17.4.0" - fs-extra "^11.0.0" - git-raw-commits "^2.0.0" - minimist "^1.2.6" - "@commitlint/read@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/read/-/read-17.8.1.tgz" @@ -1868,18 +925,6 @@ git-raw-commits "^2.0.11" minimist "^1.2.6" -"@commitlint/resolve-extends@^17.4.0": - version "17.4.0" - resolved "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.4.0.tgz" - integrity sha512-3JsmwkrCzoK8sO22AzLBvNEvC1Pmdn/65RKXzEtQMy6oYMl0Snrq97a5bQQEFETF0VsvbtUuKttLqqgn99OXRQ== - dependencies: - "@commitlint/config-validator" "^17.4.0" - "@commitlint/types" "^17.4.0" - import-fresh "^3.0.0" - lodash.mergewith "^4.6.2" - resolve-from "^5.0.0" - resolve-global "^1.0.0" - "@commitlint/resolve-extends@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.8.1.tgz" @@ -1892,17 +937,6 @@ resolve-from "^5.0.0" resolve-global "^1.0.0" -"@commitlint/rules@^17.4.2": - version "17.4.2" - resolved "https://registry.npmjs.org/@commitlint/rules/-/rules-17.4.2.tgz" - integrity sha512-OGrPsMb9Fx3/bZ64/EzJehY9YDSGWzp81Pj+zJiY+r/NSgJI3nUYdlS37jykNIugzazdEXfMtQ10kmA+Kx2pZQ== - dependencies: - "@commitlint/ensure" "^17.4.0" - "@commitlint/message" "^17.4.2" - "@commitlint/to-lines" "^17.4.0" - "@commitlint/types" "^17.4.0" - execa "^5.0.0" - "@commitlint/rules@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/rules/-/rules-17.8.1.tgz" @@ -1914,23 +948,11 @@ "@commitlint/types" "^17.8.1" execa "^5.0.0" -"@commitlint/to-lines@^17.4.0": - version "17.4.0" - resolved "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.4.0.tgz" - integrity sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg== - "@commitlint/to-lines@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.8.1.tgz" integrity sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA== -"@commitlint/top-level@^17.4.0": - version "17.4.0" - resolved "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.4.0.tgz" - integrity sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g== - dependencies: - find-up "^5.0.0" - "@commitlint/top-level@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.8.1.tgz" @@ -1938,13 +960,6 @@ dependencies: find-up "^5.0.0" -"@commitlint/types@^17.4.0": - version "17.4.0" - resolved "https://registry.npmjs.org/@commitlint/types/-/types-17.4.0.tgz" - integrity sha512-2NjAnq5IcxY9kXtUeO2Ac0aPpvkuOmwbH/BxIm36XXK5LtWFObWJWjXOA+kcaABMrthjWu6la+FUpyYFMHRvbA== - dependencies: - chalk "^4.1.0" - "@commitlint/types@^17.8.1": version "17.8.1" resolved "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz" @@ -1952,26 +967,151 @@ dependencies: chalk "^4.1.0" -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@es-joy/jsdoccomment@~0.41.0": + version "0.41.0" + resolved "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz" + integrity sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw== + dependencies: + comment-parser "1.4.1" + esquery "^1.5.0" + jsdoc-type-pratt-parser "~4.0.0" + +"@esbuild/aix-ppc64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz#7a289c158e29cbf59ea0afc83cc80f06d1c89402" + integrity sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA== + +"@esbuild/android-arm64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz#b8828d9edfa3a92660644eb8de6e4f3c203d7b17" + integrity sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw== + +"@esbuild/android-arm@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.0.tgz#5ec1847605e05b5dbe5df90db9ff7e3e4c58dca7" + integrity sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ== + +"@esbuild/android-x64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.0.tgz#390642175b88ef82bad4cce03f8ab13fe9b1912e" + integrity sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA== + +"@esbuild/darwin-arm64@0.28.0": + version "0.28.0" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz" + integrity sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q== + +"@esbuild/darwin-x64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz#c079247d589b6b99449659d94f06951b84bff2e4" + integrity sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ== + +"@esbuild/freebsd-arm64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz#45c456215a486593c94900297202dc11c880a37a" + integrity sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q== + +"@esbuild/freebsd-x64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz#0399494c1c85e4388e9b7040bd60d48f2a5b0d2c" + integrity sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw== + +"@esbuild/linux-arm64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz#d6d9f09ef0de54116bf459a4d53cac7e0952fe39" + integrity sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A== + +"@esbuild/linux-arm@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz#7b42ffa84c288ae94fdc431c1b28a89e3c3b9278" + integrity sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw== + +"@esbuild/linux-ia32@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz#deb15d112ed8dd605346b6b953d23a21ff81253f" + integrity sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ== + +"@esbuild/linux-loong64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz#81fb89d07eecc79b157dea61033757726fce0ca4" + integrity sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg== + +"@esbuild/linux-mips64el@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz#d0e42691b3ff7af9fb2217b70fc01f343bdb62bb" + integrity sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w== + +"@esbuild/linux-ppc64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz#389f3e5e98f17d477c467cc87136e1a076eead87" + integrity sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg== + +"@esbuild/linux-riscv64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz#763bd60d59b242be12da1e67d5729f3024c605fa" + integrity sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ== + +"@esbuild/linux-s390x@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz#aac6061634872e4677de693bce8030d73b1fd055" + integrity sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q== + +"@esbuild/linux-x64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz#4f2917747188fe77632bcec65b2d84b422419779" + integrity sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ== + +"@esbuild/netbsd-arm64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz#814df0ae57a0c386814491b8397eeba82094a947" + integrity sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw== + +"@esbuild/netbsd-x64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz#e01bdf7e60fa1a08e46d46d960b0d9bb8ac210af" + integrity sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw== + +"@esbuild/openbsd-arm64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz#4a15c36aacca68d2d5a4c90b710c06759f4c1ffa" + integrity sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g== + +"@esbuild/openbsd-x64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz#475e6101498a8ecce3008d7c388111d7a27c17bd" + integrity sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA== + +"@esbuild/openharmony-arm64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz#cfdc3957f0b7a69f1bde129aad17fcc2f6fa033e" + integrity sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w== + +"@esbuild/sunos-x64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz#a013c856fecacd1c3aec985c8afe1d1cb017497d" + integrity sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw== + +"@esbuild/win32-arm64@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz#eae05e0f35271cad3898b43168d3e9a3bbaf47e5" + integrity sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA== -"@es-joy/jsdoccomment@~0.41.0": - version "0.41.0" - resolved "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz" - integrity sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw== - dependencies: - comment-parser "1.4.1" - esquery "^1.5.0" - jsdoc-type-pratt-parser "~4.0.0" +"@esbuild/win32-ia32@0.28.0": + version "0.28.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz#06161ebc5bf75c08d69feb3c6b22560515913998" + integrity sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA== -"@esbuild/darwin-arm64@0.28.0": +"@esbuild/win32-x64@0.28.0": version "0.28.0" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz" - integrity sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q== + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz#04d90d5752b4ce65d2b6ac25eba08ff7624fe07c" + integrity sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -2029,17 +1169,6 @@ resolved "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.7.tgz" integrity sha512-3eTuUO1vH2cZm2ZKHeQxnOqlTi9EfZDGgIe3BL3I4u+rJHocr9Fz86M4fjYABPvFnQG/gGK551HqDiIcETwU6Q== -"@inquirer/checkbox@^2.5.0": - version "2.5.0" - resolved "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.5.0.tgz" - integrity sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA== - dependencies: - "@inquirer/core" "^9.1.0" - "@inquirer/figures" "^1.0.5" - "@inquirer/type" "^1.5.3" - ansi-escapes "^4.3.2" - yoctocolors-cjs "^2.1.2" - "@inquirer/checkbox@^4.0.4": version "4.0.4" resolved "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.0.4.tgz" @@ -2103,25 +1232,7 @@ mute-stream "^3.0.0" signal-exit "^4.1.0" -"@inquirer/core@^9.0.10": - version "9.2.1" - resolved "https://registry.npmjs.org/@inquirer/core/-/core-9.2.1.tgz" - integrity sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg== - dependencies: - "@inquirer/figures" "^1.0.6" - "@inquirer/type" "^2.0.0" - "@types/mute-stream" "^0.0.4" - "@types/node" "^22.5.5" - "@types/wrap-ansi" "^3.0.0" - ansi-escapes "^4.3.2" - cli-width "^4.1.0" - mute-stream "^1.0.0" - signal-exit "^4.1.0" - strip-ansi "^6.0.1" - wrap-ansi "^6.2.0" - yoctocolors-cjs "^2.1.2" - -"@inquirer/core@^9.1.0": +"@inquirer/core@^9.0.10", "@inquirer/core@^9.1.0": version "9.2.1" resolved "https://registry.npmjs.org/@inquirer/core/-/core-9.2.1.tgz" integrity sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg== @@ -2157,12 +1268,7 @@ "@inquirer/type" "^3.0.2" yoctocolors-cjs "^2.1.2" -"@inquirer/figures@^1.0.5", "@inquirer/figures@^1.0.6": - version "1.0.9" - resolved "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.9.tgz" - integrity sha512-BXvGj0ehzrngHTPTDqUoDT3NXL8U0RxUk2zJm2A66RhCEIWdtU1v6GuUqNAgArW4PQ9CinqIWyHdQgdwOj06zQ== - -"@inquirer/figures@^1.0.9": +"@inquirer/figures@^1.0.5", "@inquirer/figures@^1.0.6", "@inquirer/figures@^1.0.9": version "1.0.9" resolved "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.9.tgz" integrity sha512-BXvGj0ehzrngHTPTDqUoDT3NXL8U0RxUk2zJm2A66RhCEIWdtU1v6GuUqNAgArW4PQ9CinqIWyHdQgdwOj06zQ== @@ -2180,14 +1286,6 @@ "@inquirer/core" "^9.0.10" "@inquirer/type" "^1.5.2" -"@inquirer/input@^2.3.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@inquirer/input/-/input-2.3.0.tgz" - integrity sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw== - dependencies: - "@inquirer/core" "^9.1.0" - "@inquirer/type" "^1.5.3" - "@inquirer/input@^4.1.1": version "4.1.1" resolved "https://registry.npmjs.org/@inquirer/input/-/input-4.1.1.tgz" @@ -2231,22 +1329,6 @@ "@inquirer/core" "^11.2.1" "@inquirer/type" "^4.0.7" -"@inquirer/prompts@^7.2.0": - version "7.2.1" - resolved "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.2.1.tgz" - integrity sha512-v2JSGri6/HXSfoGIwuKEn8sNCQK6nsB2BNpy2lSX6QH9bsECrMv93QHnj5+f+1ZWpF/VNioIV2B/PDox8EvGuQ== - dependencies: - "@inquirer/checkbox" "^4.0.4" - "@inquirer/confirm" "^5.1.1" - "@inquirer/editor" "^4.2.1" - "@inquirer/expand" "^4.0.4" - "@inquirer/input" "^4.1.1" - "@inquirer/number" "^3.0.4" - "@inquirer/password" "^4.0.4" - "@inquirer/rawlist" "^4.0.4" - "@inquirer/search" "^3.0.4" - "@inquirer/select" "^4.0.4" - "@inquirer/prompts@^7.2.1": version "7.2.1" resolved "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.2.1.tgz" @@ -2304,14 +1386,7 @@ ansi-escapes "^4.3.2" yoctocolors-cjs "^2.1.2" -"@inquirer/type@^1.5.2": - version "1.5.5" - resolved "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz" - integrity sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA== - dependencies: - mute-stream "^1.0.0" - -"@inquirer/type@^1.5.3": +"@inquirer/type@^1.5.2", "@inquirer/type@^1.5.3": version "1.5.5" resolved "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz" integrity sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA== @@ -2384,32 +1459,11 @@ resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== - "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": version "1.5.5" resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz" integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== -"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28": - version "0.3.31" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" - integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - "@jridgewell/trace-mapping@0.3.9": version "0.3.9" resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" @@ -2418,6 +1472,14 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28": + version "0.3.31" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@jsforce/jsforce-node@^3", "@jsforce/jsforce-node@^3.10.13": version "3.10.15" resolved "https://registry.npmjs.org/@jsforce/jsforce-node/-/jsforce-node-3.10.15.tgz" @@ -2450,22 +1512,6 @@ node-fetch "^2.6.1" xml2js "^0.6.2" -"@jsforce/jsforce-node@^3.6.3": - version "3.6.3" - resolved "https://registry.npmjs.org/@jsforce/jsforce-node/-/jsforce-node-3.6.3.tgz" - integrity sha512-sNUeBzfUv57uH0AiYuAOO8yjBP7lNY33mWybrjvBud8gMFVWozY6UAWU1DUk/dpqZ0+FK3iqB++nOQRczj1nSg== - dependencies: - "@sindresorhus/is" "^4" - base64url "^3.0.1" - csv-parse "^5.5.2" - csv-stringify "^6.4.4" - faye "^1.4.0" - form-data "^4.0.0" - https-proxy-agent "^5.0.0" - multistream "^3.1.0" - node-fetch "^2.6.1" - xml2js "^0.6.2" - "@jsonjoy.com/base64@^1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz" @@ -2519,7 +1565,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -2590,7 +1636,7 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" -"@oclif/core@^4.0.27", "@oclif/core@^4.0.34": +"@oclif/core@^4.0.27": version "4.2.0" resolved "https://registry.npmjs.org/@oclif/core/-/core-4.2.0.tgz" integrity sha512-ETM2N/GL7W37Kv1Afv1j1Gh77CynS2ubEPP+p+MnjUXEjghNe7+bKAWhPkHnBuFAVFAqdv0qMpUAjxKLbsmbJw== @@ -2629,13 +1675,6 @@ semver "^7.6.3" ts-json-schema-generator "^1.5.1" -"@oclif/plugin-help@^6.2.17": - version "6.2.19" - resolved "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-6.2.19.tgz" - integrity sha512-q2fIACWHJehppWTTgJm/llleKDgxt42IBVcK6Rp4H6qzET24t2zs0vbALx5XxsNCKl3/UuJhyW2XXQqvGmvWJQ== - dependencies: - "@oclif/core" "^4" - "@oclif/plugin-help@^6.2.20": version "6.2.20" resolved "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-6.2.20.tgz" @@ -2643,16 +1682,6 @@ dependencies: "@oclif/core" "^4" -"@oclif/plugin-not-found@^3.2.30": - version "3.2.31" - resolved "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-3.2.31.tgz" - integrity sha512-EF3GmrenxqPLVCU75xLWbwohH1ot/yg+31vyPa4qJAkFspnmQ/Jv28afyk6q4ePcTA5lRC9PYqla5QsALngt3A== - dependencies: - "@inquirer/prompts" "^7.2.0" - "@oclif/core" "^4" - ansis "^3.3.1" - fast-levenshtein "^3.0.0" - "@oclif/plugin-not-found@^3.2.32": version "3.2.33" resolved "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-3.2.33.tgz" @@ -2663,18 +1692,6 @@ ansis "^3.5.2" fast-levenshtein "^3.0.0" -"@oclif/plugin-warn-if-update-available@^3.1.21": - version "3.1.23" - resolved "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.1.23.tgz" - integrity sha512-0R15OCkpWktUsEdfVNvOIY078rE92Dkor2mB/F2/xW0/VEe3NQEVtiXMatpwYsjc4KKIiWtAVm2P0oQhEbodkg== - dependencies: - "@oclif/core" "^4" - ansis "^3.3.1" - debug "^4.3.5" - http-call "^5.2.2" - lodash "^4.17.21" - registry-auth-token "^5.0.2" - "@oclif/plugin-warn-if-update-available@^3.1.28": version "3.1.28" resolved "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.1.28.tgz" @@ -2687,22 +1704,6 @@ lodash "^4.17.21" registry-auth-token "^5.0.3" -"@oclif/table@^0.3.2": - version "0.3.3" - resolved "https://registry.npmjs.org/@oclif/table/-/table-0.3.3.tgz" - integrity sha512-sz6gGT1JAPP743vxl1491hxboIu0ZFHaP3gyvhz5Prgsuljp2NGyyu7JPEMeVImCnZ9N3K9cy3VXxRFEwRH/ig== - dependencies: - "@oclif/core" "^4" - "@types/react" "^18.3.12" - change-case "^5.4.4" - cli-truncate "^4.0.0" - ink "^5.0.1" - natural-orderby "^3.0.2" - object-hash "^3.0.0" - react "^18.3.1" - strip-ansi "^7.1.0" - wrap-ansi "^9.0.0" - "@oclif/table@^0.5.9": version "0.5.9" resolved "https://registry.npmjs.org/@oclif/table/-/table-0.5.9.tgz" @@ -2889,24 +1890,6 @@ debug "^4.4.0" handlebars "^4.7.8" -"@salesforce/plugin-info@^3.4.25": - version "3.4.25" - resolved "https://registry.npmjs.org/@salesforce/plugin-info/-/plugin-info-3.4.25.tgz" - integrity sha512-E8sU/Ta5Vq9uqRPmM04Cjj836VW9sq82c6RIfghnXhsWIwLlfddW9kNwWU2FDbGkQSfig9OTIREShK3VbaK2kg== - dependencies: - "@inquirer/input" "^2.3.0" - "@jsforce/jsforce-node" "^3.6.3" - "@oclif/core" "^4" - "@salesforce/core" "^8.8.0" - "@salesforce/kit" "^3.2.3" - "@salesforce/sf-plugins-core" "^12" - got "^13.0.0" - marked "^4.3.0" - marked-terminal "^4.2.0" - open "^10.1.0" - proxy-agent "^6.4.0" - semver "^7.6.3" - "@salesforce/prettier-config@^0.0.3": version "0.0.3" resolved "https://registry.npmjs.org/@salesforce/prettier-config/-/prettier-config-0.0.3.tgz" @@ -2951,22 +1934,6 @@ cli-progress "^3.12.0" terminal-link "^3.0.0" -"@salesforce/sf-plugins-core@^12.1.1": - version "12.1.1" - resolved "https://registry.npmjs.org/@salesforce/sf-plugins-core/-/sf-plugins-core-12.1.1.tgz" - integrity sha512-88Vna77gYLj1b9X/aduCsl/5KFthhoM43+o30+0UEAWf93xED1nahmbw7jcJJoiTkaSzLZq08vZfh6X24AyWqg== - dependencies: - "@inquirer/confirm" "^3.1.22" - "@inquirer/password" "^2.2.0" - "@oclif/core" "^4.0.34" - "@oclif/table" "^0.3.2" - "@salesforce/core" "^8.5.1" - "@salesforce/kit" "^3.2.3" - "@salesforce/ts-types" "^2.0.12" - ansis "^3.3.2" - cli-progress "^3.12.0" - terminal-link "^3.0.0" - "@salesforce/ts-sinon@^1.4.30": version "1.4.30" resolved "https://registry.npmjs.org/@salesforce/ts-sinon/-/ts-sinon-1.4.30.tgz" @@ -2981,13 +1948,6 @@ resolved "https://registry.npmjs.org/@salesforce/ts-types/-/ts-types-2.0.12.tgz" integrity sha512-BIJyduJC18Kc8z+arUm5AZ9VkPRyw1KKAm+Tk+9LT99eOzhNilyfKzhZ4t+tG2lIGgnJpmytZfVDZ0e2kFul8g== -"@shikijs/core@1.12.0": - version "1.12.0" - resolved "https://registry.npmjs.org/@shikijs/core/-/core-1.12.0.tgz" - integrity sha512-mc1cLbm6UQ8RxLc0dZES7v5rkH+99LxQp/ZvTqV3NLyYsO/fD6JhEflP1H5b2SDq9gI0+0G36AVZWxvounfR9w== - dependencies: - "@types/hast" "^3.0.4" - "@shikijs/core@1.29.2": version "1.29.2" resolved "https://registry.npmjs.org/@shikijs/core/-/core-1.29.2.tgz" @@ -3332,20 +2292,6 @@ "@smithy/types" "^3.7.2" tslib "^2.6.2" -"@smithy/middleware-endpoint@^3.2.5": - version "3.2.5" - resolved "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.5.tgz" - integrity sha512-VhJNs/s/lyx4weiZdXSloBgoLoS8osV0dKIain8nGmx7of3QFKu5BSdEuk1z/U8x9iwes1i+XCiNusEvuK1ijg== - dependencies: - "@smithy/core" "^2.5.5" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-middleware" "^3.0.11" - tslib "^2.6.2" - "@smithy/middleware-endpoint@^3.2.6": version "3.2.6" resolved "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.6.tgz" @@ -3360,21 +2306,6 @@ "@smithy/util-middleware" "^3.0.11" tslib "^2.6.2" -"@smithy/middleware-retry@^3.0.30": - version "3.0.30" - resolved "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.30.tgz" - integrity sha512-6323RL2BvAR3VQpTjHpa52kH/iSHyxd/G9ohb2MkBk2Ucu+oMtRXT8yi7KTSIS9nb58aupG6nO0OlXnQOAcvmQ== - dependencies: - "@smithy/node-config-provider" "^3.1.12" - "@smithy/protocol-http" "^4.1.8" - "@smithy/service-error-classification" "^3.0.11" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - tslib "^2.6.2" - uuid "^9.0.1" - "@smithy/middleware-retry@^3.0.31": version "3.0.31" resolved "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.31.tgz" @@ -3489,19 +2420,6 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/smithy-client@^3.5.0": - version "3.5.0" - resolved "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.5.0.tgz" - integrity sha512-Y8FeOa7gbDfCWf7njrkoRATPa5eNLUEjlJS5z5rXatYuGkCb80LbHcu8AQR8qgAZZaNHCLyo2N+pxPsV7l+ivg== - dependencies: - "@smithy/core" "^2.5.5" - "@smithy/middleware-endpoint" "^3.2.5" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" - "@smithy/util-stream" "^3.3.2" - tslib "^2.6.2" - "@smithy/smithy-client@^3.5.1": version "3.5.1" resolved "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.5.1.tgz" @@ -3515,13 +2433,6 @@ "@smithy/util-stream" "^3.3.2" tslib "^2.6.2" -"@smithy/types@^3.6.0": - version "3.6.0" - resolved "https://registry.npmjs.org/@smithy/types/-/types-3.6.0.tgz" - integrity sha512-8VXK/KzOHefoC65yRgCn5vG1cysPJjHnOVt9d0ybFQSmJgQj152vMn4EkYhGuaOmnnZvCPav/KnYyE6/KsNZ2w== - dependencies: - tslib "^2.6.2" - "@smithy/types@^3.7.2": version "3.7.2" resolved "https://registry.npmjs.org/@smithy/types/-/types-3.7.2.tgz" @@ -3584,17 +2495,6 @@ dependencies: tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^3.0.30": - version "3.0.30" - resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.30.tgz" - integrity sha512-nLuGmgfcr0gzm64pqF2UT4SGWVG8UGviAdayDlVzJPNa6Z4lqvpDzdRXmLxtOdEjVlTOEdpZ9dd3ZMMu488mzg== - dependencies: - "@smithy/property-provider" "^3.1.11" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - bowser "^2.11.0" - tslib "^2.6.2" - "@smithy/util-defaults-mode-browser@^3.0.31": version "3.0.31" resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.31.tgz" @@ -3606,19 +2506,6 @@ bowser "^2.11.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^3.0.30": - version "3.0.30" - resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.30.tgz" - integrity sha512-OD63eWoH68vp75mYcfYyuVH+p7Li/mY4sYOROnauDrtObo1cS4uWfsy/zhOTW8F8ZPxQC1ZXZKVxoxvMGUv2Ow== - dependencies: - "@smithy/config-resolver" "^3.0.13" - "@smithy/credential-provider-imds" "^3.2.8" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/property-provider" "^3.1.11" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - "@smithy/util-defaults-mode-node@^3.0.31": version "3.0.31" resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.31.tgz" @@ -3718,11 +2605,6 @@ dependencies: defer-to-connect "^2.0.1" -"@tootallnate/quickjs-emscripten@^0.23.0": - version "0.23.0" - resolved "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz" - integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA== - "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" @@ -3743,7 +2625,7 @@ resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@types/chai@*", "@types/chai@^5.2.3": +"@types/chai@*": version "5.2.3" resolved "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz" integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== @@ -3825,11 +2707,6 @@ resolved "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz" integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== -"@types/ms@*": - version "0.7.31" - resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz" - integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== - "@types/mute-stream@^0.0.4": version "0.0.4" resolved "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz" @@ -3837,26 +2714,17 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@^18", "@types/node@>=18": +"@types/node@*", "@types/node@^18": version "18.19.130" resolved "https://registry.npmjs.org/@types/node/-/node-18.19.130.tgz" integrity sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg== dependencies: undici-types "~5.26.4" -"@types/node@^18.19.41": - version "18.19.42" - resolved "https://registry.npmjs.org/@types/node/-/node-18.19.42.tgz" - integrity sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg== - dependencies: - undici-types "~5.26.4" - -"@types/node@^22.5.2": - version "22.5.5" - resolved "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz" - integrity sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA== - dependencies: - undici-types "~6.19.2" +"@types/node@20.5.1": + version "20.5.1" + resolved "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz" + integrity sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg== "@types/node@^22.5.5": version "22.7.4" @@ -3865,11 +2733,6 @@ dependencies: undici-types "~6.19.2" -"@types/node@20.5.1": - version "20.5.1" - resolved "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz" - integrity sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg== - "@types/normalize-package-data@^2.4.0": version "2.4.4" resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz" @@ -3880,7 +2743,7 @@ resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz" integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw== -"@types/react@^18.3.12", "@types/react@>=18.0.0": +"@types/react@^18.3.12": version "18.3.31" resolved "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz" integrity sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw== @@ -3940,7 +2803,7 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.0.0 || ^6.0.0-alpha", "@typescript-eslint/parser@^6.21.0": +"@typescript-eslint/parser@^6.21.0": version "6.21.0" resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz" integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== @@ -4015,16 +2878,6 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/utils@^7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz" - integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/typescript-estree" "7.18.0" - "@typescript-eslint/utils@6.21.0": version "6.21.0" resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz" @@ -4038,6 +2891,16 @@ "@typescript-eslint/typescript-estree" "6.21.0" semver "^7.5.4" +"@typescript-eslint/utils@^7.18.0": + version "7.18.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz" + integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/visitor-keys@6.21.0": version "6.21.0" resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz" @@ -4059,6 +2922,14 @@ resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" @@ -4076,24 +2947,24 @@ acorn-walk@^8.1.1: resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz" integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.4.1, acorn@^8.9.0: +acorn@^8.4.1, acorn@^8.9.0: version "8.11.2" resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz" integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== -agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz" - integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== - dependencies: - debug "^4.3.4" - agent-base@6: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: - debug "4" + debug "4" + +agent-base@^7.0.2: + version "7.1.1" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== + dependencies: + debug "^4.3.4" aggregate-error@^3.0.0: version "3.1.0" @@ -4138,7 +3009,7 @@ ansi-colors@^4.1.3: resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-escapes@^4.3.1, ansi-escapes@^4.3.2: +ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -4174,13 +3045,6 @@ ansi-regex@^6.2.2: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz" integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" @@ -4203,11 +3067,6 @@ ansis@^3.17.0, ansis@^3.3.2, ansis@^3.4.0, ansis@^3.5.2: resolved "https://registry.npmjs.org/ansis/-/ansis-3.17.0.tgz" integrity sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg== -ansis@^3.3.1: - version "3.3.2" - resolved "https://registry.npmjs.org/ansis/-/ansis-3.3.2.tgz" - integrity sha512-cFthbBlt+Oi0i9Pv/j6YdVWJh54CtjGACaMPCIrEV4Ha7HWsIjXDwseYV79TIL0B4+KfSwD5S70PeQDkPUd1rA== - anymatch@~3.1.2: version "3.1.3" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" @@ -4348,13 +3207,6 @@ assertion-error@^2.0.1: resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz" integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== -ast-types@^0.13.4: - version "0.13.4" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz" - integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== - dependencies: - tslib "^2.0.1" - astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" @@ -4422,11 +3274,6 @@ baseline-browser-mapping@^2.10.12: resolved "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.34.tgz" integrity sha512-IMDedajPifLnHNY0X9n8hKxRTQ6/eTHwr5bDo04WnuqxyKw6LYtQywCuuqPZwhl3aBXMvQpJov42GLCwRRdQzw== -basic-ftp@^5.0.2: - version "5.0.5" - resolved "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz" - integrity sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" @@ -4478,7 +3325,7 @@ browser-stdout@^1.3.1: resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserslist@^4.22.3, browserslist@^4.24.0, "browserslist@>= 4.21.0": +browserslist@^4.22.3, browserslist@^4.24.0: version "4.28.2" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz" integrity sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg== @@ -4489,22 +3336,7 @@ browserslist@^4.22.3, browserslist@^4.24.0, "browserslist@>= 4.21.0": node-releases "^2.0.36" update-browserslist-db "^1.2.3" -browserslist@^4.23.0, browserslist@^4.23.1: - version "4.23.3" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz" - integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== - dependencies: - caniuse-lite "^1.0.30001646" - electron-to-chromium "^1.5.4" - node-releases "^2.0.18" - update-browserslist-db "^1.1.0" - -buffer-equal-constant-time@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" - integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== - -buffer-equal-constant-time@1.0.1: +buffer-equal-constant-time@1.0.1, buffer-equal-constant-time@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== @@ -4527,13 +3359,6 @@ builtin-modules@^3.3.0: resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz" integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== -bundle-name@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz" - integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== - dependencies: - run-applescript "^7.0.0" - cacheable-lookup@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz" @@ -4611,11 +3436,6 @@ camelcase@^6.0.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001646: - version "1.0.30001647" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001647.tgz" - integrity sha512-n83xdNiyeNcHpzWY+1aFbqCK7LuLfBricc4+alSQL2Xb6OR3XpnQAmlDG+pQcdTfiHRuLcQ96VOfrPSGiNJYSg== - caniuse-lite@^1.0.30001782: version "1.0.30001797" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001797.tgz" @@ -4643,20 +3463,7 @@ ccount@^2.0.0: resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz" integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== -chai@^4.3.10: - version "4.5.0" - resolved "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz" - integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.3" - deep-eql "^4.1.3" - get-func-name "^2.0.2" - loupe "^2.3.6" - pathval "^1.1.1" - type-detect "^4.1.0" - -chai@^4.4.1: +chai@^4.3.10, chai@^4.4.1: version "4.5.0" resolved "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz" integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== @@ -4669,53 +3476,7 @@ chai@^4.4.1: pathval "^1.1.1" type-detect "^4.1.0" -chai@^6.2.2: - version "6.2.2" - resolved "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz" - integrity sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg== - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.2: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.2: +chalk@^4, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -4841,15 +3602,6 @@ cli-spinners@^2.9.2: resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz" integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== -cli-table3@^0.6.0: - version "0.6.4" - resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz" - integrity sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw== - dependencies: - string-width "^4.2.0" - optionalDependencies: - "@colors/colors" "1.5.0" - cli-truncate@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz" @@ -4897,13 +3649,6 @@ code-excerpt@^4.0.0: dependencies: convert-to-spaces "^2.0.1" -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" @@ -4916,11 +3661,6 @@ color-name@^1.0.0, color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-string@^1.9.0: version "1.9.1" resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" @@ -5004,14 +3744,6 @@ content-type@^1.0.4: resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -conventional-changelog-angular@^5.0.11: - version "5.0.13" - resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz" - integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== - dependencies: - compare-func "^2.0.0" - q "^1.5.1" - conventional-changelog-angular@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz" @@ -5026,25 +3758,13 @@ conventional-changelog-conventionalcommits@^6.1.0: dependencies: compare-func "^2.0.0" -conventional-commits-parser@^3.2.2: - version "3.2.4" - resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz" - integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== - dependencies: - is-text-path "^1.0.1" - JSONStream "^1.0.4" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - conventional-commits-parser@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz" integrity sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg== dependencies: - is-text-path "^1.0.1" JSONStream "^1.3.5" + is-text-path "^1.0.1" meow "^8.1.2" split2 "^3.2.2" @@ -5080,7 +3800,7 @@ cosmiconfig-typescript-loader@^4.0.0: resolved "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz" integrity sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw== -cosmiconfig@^8.0.0, cosmiconfig@^8.3.6, cosmiconfig@>=7: +cosmiconfig@^8.0.0, cosmiconfig@^8.3.6: version "8.3.6" resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== @@ -5111,11 +3831,6 @@ csprng@*: dependencies: sequin "*" -csstype@^3.0.2: - version "3.1.3" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== - csstype@^3.2.2: version "3.2.3" resolved "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz" @@ -5141,16 +3856,18 @@ dargs@^7.0.0: resolved "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz" integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== -data-uri-to-buffer@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz" - integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw== - dateformat@^4.6.3: version "4.6.3" resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz" integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0, debug@^4.4.3: + version "4.4.3" + resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" + debug@^3.2.7: version "3.2.7" resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" @@ -5158,13 +3875,6 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0, debug@^4.4.3, debug@4: - version "4.4.3" - resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - decamelize-keys@^1.1.0: version "1.1.1" resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz" @@ -5202,19 +3912,6 @@ deep-is@^0.1.3: resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -default-browser-id@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz" - integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== - -default-browser@^5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz" - integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== - dependencies: - bundle-name "^4.1.0" - default-browser-id "^5.0.0" - default-require-extensions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz" @@ -5236,11 +3933,6 @@ define-data-property@^1.0.1, define-data-property@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.1" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" @@ -5250,15 +3942,6 @@ define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -degenerator@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz" - integrity sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ== - dependencies: - ast-types "^0.13.4" - escodegen "^2.1.0" - esprima "^4.0.1" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" @@ -5343,15 +4026,6 @@ domhandler@^5.0.2, domhandler@^5.0.3: dependencies: domelementtype "^2.3.0" -domutils@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz" - integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils@^3.2.2: version "3.2.2" resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz" @@ -5409,11 +4083,6 @@ electron-to-chromium@^1.5.328: resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.369.tgz" integrity sha512-XM22K9FNaaCOvMMrBn1caIc8v0g6+pKt660ZbfQqUZvfil0hEzr8ZoiY7VcSLGM3L/x3rz5PqZrk+bKOOmVM9w== -electron-to-chromium@^1.5.4: - version "1.5.4" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.4.tgz" - integrity sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA== - emoji-regex-xs@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz" @@ -5441,7 +4110,7 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -entities@^4.2.0, entities@^4.4.0, entities@^4.5.0: +entities@^4.2.0, entities@^4.4.0: version "4.5.0" resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== @@ -5593,16 +4262,16 @@ escalade@^3.1.1, escalade@^3.2.0: resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== -escalade@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" - integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== - escape-html@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" @@ -5613,53 +4282,16 @@ escape-string-regexp@^2.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^4.0.0, escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz" - integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionalDependencies: - source-map "~0.6.1" - eslint-config-prettier@^9.1.0: version "9.1.0" resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== -eslint-config-salesforce-license@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/eslint-config-salesforce-license/-/eslint-config-salesforce-license-0.2.0.tgz" - integrity sha512-DJdBvgj82Erum82YMe+YvG/o6ukna3UA++lRl0HSTldj0VlBl3Q8hzCp97nRXZHra6JH1I912yievZzklXDw6w== - eslint-config-salesforce-license@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/eslint-config-salesforce-license/-/eslint-config-salesforce-license-1.0.2.tgz" integrity sha512-l/1uz9RJHQHnVEEexHpHsQt3+aP/Ys2HGfZcLuUg/FZ6NGhL15ey33OJfYCYtSUKMLGiEKdUhdWVp34WD4rIdQ== -eslint-config-salesforce-typescript@^3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/eslint-config-salesforce-typescript/-/eslint-config-salesforce-typescript-3.4.0.tgz" - integrity sha512-pT+kJsmLrXIsVw1f24gWB+a2Iefan9qp02iSdx5mk4Jb/Jv68LhS+V/dfJxN5vvKhzvc86UwUPEIQBX9OCSbpQ== - dependencies: - "@typescript-eslint/eslint-plugin" "^6.21.0" - "@typescript-eslint/parser" "^6.21.0" - eslint "^8.56.0" - eslint-config-prettier "^9.1.0" - eslint-config-salesforce "^2.2.0" - eslint-config-salesforce-license "^0.2.0" - eslint-plugin-header "^3.1.1" - eslint-plugin-import "^2.29.1" - eslint-plugin-jsdoc "^46.10.1" - eslint-plugin-unicorn "^50.0.1" - eslint-config-salesforce-typescript@4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/eslint-config-salesforce-typescript/-/eslint-config-salesforce-typescript-4.0.1.tgz" @@ -5783,7 +4415,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.0.0 || ^8.0.0 || ^9.0.0", eslint@^8.56.0, eslint@>=7.0.0, eslint@>=7.7.0, eslint@>=8.56.0: +eslint@^8.56.0: version "8.57.0" resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== @@ -5841,7 +4473,7 @@ espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: +esprima@^4.0.0, esprima@~4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -6061,13 +4693,6 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -filelist@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz" - integrity sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ== - dependencies: - minimatch "^3.0.4" - filelist@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz" @@ -6128,11 +4753,6 @@ flat@^5.0.2: resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^3.1.0: - version "3.2.4" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== - flatted@^3.2.9: version "3.2.9" resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz" @@ -6200,15 +4820,6 @@ fs-extra@^11.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^11.2.0: - version "11.2.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz" - integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@^8.1: version "8.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" @@ -6228,7 +4839,7 @@ fsevents@~2.3.2, fsevents@~2.3.3: resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1, function-bind@^1.1.2: +function-bind@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== @@ -6273,7 +4884,7 @@ get-east-asian-width@^1.0.0, get-east-asian-width@^1.5.0: resolved "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz" integrity sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA== -get-func-name@^2.0.0, get-func-name@^2.0.1, get-func-name@^2.0.2: +get-func-name@^2.0.1, get-func-name@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== @@ -6332,32 +4943,11 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" -get-uri@^6.0.1: - version "6.0.3" - resolved "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz" - integrity sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw== - dependencies: - basic-ftp "^5.0.2" - data-uri-to-buffer "^6.0.2" - debug "^4.3.4" - fs-extra "^11.2.0" - git-hooks-list@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-3.1.0.tgz" integrity sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA== -git-raw-commits@^2.0.0: - version "2.0.11" - resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz" - integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== - dependencies: - dargs "^7.0.0" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - git-raw-commits@^2.0.11: version "2.0.11" resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz" @@ -6416,18 +5006,7 @@ glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.3: - version "8.1.0" - resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -glob@^8.1.0: +glob@^8.0.3, glob@^8.1.0: version "8.1.0" resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -6445,11 +5024,6 @@ global-dirs@^0.1.1: dependencies: ini "^1.3.4" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - globals@^13.19.0: version "13.23.0" resolved "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz" @@ -6504,7 +5078,7 @@ gopd@^1.0.1, gopd@^1.2.0: resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== -got@^13, got@^13.0.0: +got@^13: version "13.0.0" resolved "https://registry.npmjs.org/got/-/got-13.0.0.tgz" integrity sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA== @@ -6521,16 +5095,16 @@ got@^13, got@^13.0.0: p-cancelable "^3.0.0" responselike "^3.0.0" -graceful-fs@^4.1.15, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - graceful-fs@4.2.10: version "4.2.10" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +graceful-fs@^4.1.15, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.11" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + graphemer@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" @@ -6592,13 +5166,6 @@ has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - hasha@^5.0.0: version "5.2.2" resolved "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz" @@ -6695,16 +5262,6 @@ htmlparser2@^10.0.0: domutils "^3.2.2" entities "^7.0.1" -htmlparser2@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.0.0.tgz" - integrity sha512-uxbSI98wmFT/G4P2zXx4OVx04qWUmyFPrD2/CNepa2Zo3GPNaCaaxElDgwUrwYWkK1nr9fft0Ya8dws8coDLLQ== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.1.0" - entities "^4.5.0" - http-cache-semantics@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" @@ -6727,14 +5284,6 @@ http-parser-js@>=0.5.1: resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz" integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== -http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1: - version "7.0.2" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz" - integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== - dependencies: - agent-base "^7.1.0" - debug "^4.3.4" - http2-wrapper@^2.1.10: version "2.2.1" resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz" @@ -6751,7 +5300,7 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" -https-proxy-agent@^7.0.1, https-proxy-agent@^7.0.2, https-proxy-agent@^7.0.3: +https-proxy-agent@^7.0.1: version "7.0.4" resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz" integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg== @@ -6837,7 +5386,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@2: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -6847,36 +5396,6 @@ ini@^1.3.4: resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -ink@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ink/-/ink-5.0.1.tgz" - integrity sha512-ae4AW/t8jlkj/6Ou21H2av0wxTk8vrGzXv+v2v7j4in+bl1M5XRMVbfNghzhBokV++FjF8RBDJvYo+ttR9YVRg== - dependencies: - "@alcalzone/ansi-tokenize" "^0.1.3" - ansi-escapes "^7.0.0" - ansi-styles "^6.2.1" - auto-bind "^5.0.1" - chalk "^5.3.0" - cli-boxes "^3.0.0" - cli-cursor "^4.0.0" - cli-truncate "^4.0.0" - code-excerpt "^4.0.0" - indent-string "^5.0.0" - is-in-ci "^0.1.0" - lodash "^4.17.21" - patch-console "^2.0.0" - react-reconciler "^0.29.0" - scheduler "^0.23.0" - signal-exit "^3.0.7" - slice-ansi "^7.1.0" - stack-utils "^2.0.6" - string-width "^7.0.0" - type-fest "^4.8.3" - widest-line "^5.0.0" - wrap-ansi "^9.0.0" - ws "^8.15.0" - yoga-wasm-web "~0.3.3" - ink@5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ink/-/ink-5.0.1.tgz" @@ -6921,14 +5440,6 @@ interpret@^1.0.0: resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -ip-address@^9.0.5: - version "9.0.5" - resolved "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz" - integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== - dependencies: - jsbn "1.1.0" - sprintf-js "^1.1.3" - is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz" @@ -7001,11 +5512,6 @@ is-docker@^2.0.0: resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" @@ -7040,13 +5546,6 @@ is-in-ci@^0.1.0: resolved "https://registry.npmjs.org/is-in-ci/-/is-in-ci-0.1.0.tgz" integrity sha512-d9PXLEY0v1iJ64xLiQMJ51J128EYHAaOR4yZqQi8aHGfw6KgifM3/Viw1oZZ1GCVmb3gBuyhLyHj0HgR2DhSXQ== -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" @@ -7171,12 +5670,10 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -is-wsl@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz" - integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== - dependencies: - is-inside-container "^1.0.0" +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== isarray@^2.0.5: version "2.0.5" @@ -7188,17 +5685,12 @@ isarray@~1.0.0: resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1, istanbul-lib-coverage@^3.2.0: +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.2" resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz" integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== @@ -7318,21 +5810,11 @@ js2xmlparser@^4.0.1: dependencies: xmlcreate "^2.0.4" -jsbn@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" - integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== - jsdoc-type-pratt-parser@~4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz" integrity sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ== -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - jsesc@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz" @@ -7416,22 +5898,6 @@ jsonparse@^1.2.0: resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== -JSONStream@^1.0.4: - version "1.3.5" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -JSONStream@^1.3.5: - version "1.3.5" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - jsonwebtoken@9.0.2: version "9.0.2" resolved "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz" @@ -7464,7 +5930,7 @@ jsonwebtoken@9.0.3: ms "^2.1.1" semver "^7.5.4" -jszip@^3.10.1, jszip@3.10.1: +jszip@3.10.1, jszip@^3.10.1: version "3.10.1" resolved "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz" integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== @@ -7560,13 +6026,6 @@ lines-and-columns@^1.1.6: resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -linkify-it@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz" - integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== - dependencies: - uc.micro "^2.0.0" - linkify-it@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.1.tgz" @@ -7774,11 +6233,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.14.1: - version "7.18.3" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz" - integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== - lunr@^2.3.9: version "2.3.9" resolved "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz" @@ -7825,23 +6279,6 @@ markdown-it@^14.1.0: punycode.js "^2.3.1" uc.micro "^2.1.0" -marked-terminal@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.2.0.tgz" - integrity sha512-DQfNRV9svZf0Dm9Cf5x5xaVJ1+XjxQW6XjFJ5HFkVyK52SDpj5PCBzS5X5r2w9nHr3mlB0T5201UMLue9fmhUw== - dependencies: - ansi-escapes "^4.3.1" - cardinal "^2.1.1" - chalk "^4.1.0" - cli-table3 "^0.6.0" - node-emoji "^1.10.0" - supports-hyperlinks "^2.1.0" - -"marked@^1.0.0 || ^2.0.0", marked@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz" - integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== - marked@^13.0.0: version "13.0.3" resolved "https://registry.npmjs.org/marked/-/marked-13.0.3.tgz" @@ -7993,6 +6430,13 @@ min-indent@^1.0.0: resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimatch@^10.2.5: version "10.2.5" resolved "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz" @@ -8028,13 +6472,6 @@ minimatch@^9.0.1, minimatch@^9.0.4, minimatch@^9.0.5: dependencies: brace-expansion "^2.0.1" -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimist-options@4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" @@ -8143,11 +6580,6 @@ neo-async@^2.6.2: resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -netmask@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" - integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== - nise@^1.3.3: version "1.5.3" resolved "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz" @@ -8198,13 +6630,6 @@ nock@^13.5.4: json-stringify-safe "^5.0.1" propagate "^2.0.0" -node-emoji@^1.10.0: - version "1.11.0" - resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz" - integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== - dependencies: - lodash "^4.17.21" - node-fetch@^2.6.1, node-fetch@^2.6.9: version "2.7.0" resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" @@ -8219,11 +6644,6 @@ node-preload@^0.2.1: dependencies: process-on-spawn "^1.0.0" -node-releases@^2.0.18: - version "2.0.18" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz" - integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== - node-releases@^2.0.36: version "2.0.47" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.47.tgz" @@ -8425,16 +6845,6 @@ oniguruma-to-es@^2.2.0: regex "^5.1.1" regex-recursion "^5.1.1" -open@^10.1.0: - version "10.1.0" - resolved "https://registry.npmjs.org/open/-/open-10.1.0.tgz" - integrity sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw== - dependencies: - default-browser "^5.2.1" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^3.1.0" - optionator@^0.9.3: version "0.9.3" resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" @@ -8497,28 +6907,6 @@ p-try@^2.0.0: resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pac-proxy-agent@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz" - integrity sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A== - dependencies: - "@tootallnate/quickjs-emscripten" "^0.23.0" - agent-base "^7.0.2" - debug "^4.3.4" - get-uri "^6.0.1" - http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.2" - pac-resolver "^7.0.0" - socks-proxy-agent "^8.0.2" - -pac-resolver@^7.0.0: - version "7.0.1" - resolved "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz" - integrity sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg== - dependencies: - degenerator "^5.0.0" - netmask "^2.0.2" - package-hash@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz" @@ -8656,26 +7044,21 @@ picocolors@^1.0.0, picocolors@^1.1.1: resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picocolors@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" - integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== - picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -"picomatch@^3 || ^4", picomatch@^4.0.4: - version "4.0.4" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz" - integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A== - picomatch@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz" integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag== +picomatch@^4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz" + integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A== + pino-abstract-transport@^1.0.0, pino-abstract-transport@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz" @@ -8787,7 +7170,7 @@ prelude-ls@^1.2.1: resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^2.0.0, prettier@^2.8.8: +prettier@^2.8.8: version "2.8.8" resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== @@ -8856,25 +7239,6 @@ proto-list@~1.2.1: resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== -proxy-agent@^6.4.0: - version "6.4.0" - resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz" - integrity sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ== - dependencies: - agent-base "^7.0.2" - debug "^4.3.4" - http-proxy-agent "^7.0.1" - https-proxy-agent "^7.0.3" - lru-cache "^7.14.1" - pac-proxy-agent "^7.0.1" - proxy-from-env "^1.1.0" - socks-proxy-agent "^8.0.2" - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - psl@^1.1.33: version "1.9.0" resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" @@ -8898,11 +7262,6 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -q@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - querystringify@^2.1.1: version "2.2.0" resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" @@ -8943,7 +7302,7 @@ react-reconciler@^0.29.0: loose-envify "^1.1.0" scheduler "^0.23.2" -react@^18.3.1, react@>=18.0.0: +react@^18.3.1: version "18.3.1" resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== @@ -8969,7 +7328,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -readable-stream@^3.0.0, readable-stream@^3.4.0, readable-stream@3: +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.4.0: version "3.6.0" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -9070,13 +7429,6 @@ regexp.prototype.flags@^1.5.1: define-properties "^1.2.0" set-function-name "^2.0.0" -registry-auth-token@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz" - integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== - dependencies: - "@pnpm/npm-conf" "^2.1.0" - registry-auth-token@^5.0.3: version "5.0.3" resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.3.tgz" @@ -9123,17 +7475,17 @@ resolve-alpn@^1.2.0: resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-from@^5.0.0, resolve-from@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-global@^1.0.0, resolve-global@1.0.0: +resolve-global@1.0.0, resolve-global@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz" integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== @@ -9164,16 +7516,16 @@ restore-cursor@^4.0.0: onetime "^5.1.0" signal-exit "^3.0.2" -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - retry@0.13.1: version "0.13.1" resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + reusify@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" @@ -9186,11 +7538,6 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -run-applescript@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz" - integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" @@ -9208,7 +7555,7 @@ safe-array-concat@^1.0.1: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@*, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0: +safe-buffer@*, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -9259,33 +7606,11 @@ secure-json-parse@^2.4.0: resolved "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz" integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== -semver@^6.0.0: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^6.3.1: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.3.4, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3, semver@^7.8.0, semver@^7.8.1: - version "7.8.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.8.3.tgz" - integrity sha512-wnilbGyMxzbY7dNOl7jpKbLSjcfeweJWU5j4+u5qW+6/wuGD9KzIGOyZnQVSBM9E7DtWaaH3CyHkppYrKYoxwg== - "semver@2 || 3 || 4 || 5": version "5.7.2" resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.3.8: - version "7.3.8" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - semver@7.5.4: version "7.5.4" resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" @@ -9293,6 +7618,16 @@ semver@7.5.4: dependencies: lru-cache "^6.0.0" +semver@^6.0.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.4, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3, semver@^7.8.0, semver@^7.8.1: + version "7.8.3" + resolved "https://registry.npmjs.org/semver/-/semver-7.8.3.tgz" + integrity sha512-wnilbGyMxzbY7dNOl7jpKbLSjcfeweJWU5j4+u5qW+6/wuGD9KzIGOyZnQVSBM9E7DtWaaH3CyHkppYrKYoxwg== + sentence-case@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz" @@ -9383,14 +7718,6 @@ shiki@^1.16.2: "@shikijs/vscode-textmate" "^10.0.1" "@types/hast" "^3.0.4" -shiki@^1.9.1: - version "1.12.0" - resolved "https://registry.npmjs.org/shiki/-/shiki-1.12.0.tgz" - integrity sha512-BuAxWOm5JhRcbSOl7XCei8wGjgJJonnV0oipUupPY58iULxUGyHhW5CF+9FRMuM1pcJ5cGEJGll1LusX6FwpPA== - dependencies: - "@shikijs/core" "1.12.0" - "@types/hast" "^3.0.4" - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" @@ -9417,6 +7744,18 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" +sinon@10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/sinon/-/sinon-10.0.0.tgz" + integrity sha512-XAn5DxtGVJBlBWYrcYKEhWCz7FLwZGdyvANRyK06419hyEpdT0dMc5A8Vcxg5SCGHc40CsqoKsc1bt1CbJPfNw== + dependencies: + "@sinonjs/commons" "^1.8.1" + "@sinonjs/fake-timers" "^6.0.1" + "@sinonjs/samsam" "^5.3.1" + diff "^4.0.2" + nise "^4.1.0" + supports-color "^7.1.0" + sinon@^16.1.3: version "16.1.3" resolved "https://registry.npmjs.org/sinon/-/sinon-16.1.3.tgz" @@ -9454,18 +7793,6 @@ sinon@^5.1.1: supports-color "^5.4.0" type-detect "^4.0.8" -sinon@10.0.0: - version "10.0.0" - resolved "https://registry.npmjs.org/sinon/-/sinon-10.0.0.tgz" - integrity sha512-XAn5DxtGVJBlBWYrcYKEhWCz7FLwZGdyvANRyK06419hyEpdT0dMc5A8Vcxg5SCGHc40CsqoKsc1bt1CbJPfNw== - dependencies: - "@sinonjs/commons" "^1.8.1" - "@sinonjs/fake-timers" "^6.0.1" - "@sinonjs/samsam" "^5.3.1" - diff "^4.0.2" - nise "^4.1.0" - supports-color "^7.1.0" - slash@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" @@ -9506,11 +7833,6 @@ slice-ansi@^7.1.0: ansi-styles "^6.2.1" is-fullwidth-code-point "^5.0.0" -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - snake-case@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz" @@ -9519,23 +7841,6 @@ snake-case@^3.0.4: dot-case "^3.0.4" tslib "^2.0.3" -socks-proxy-agent@^8.0.2: - version "8.0.3" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz" - integrity sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A== - dependencies: - agent-base "^7.1.1" - debug "^4.3.4" - socks "^2.7.1" - -socks@^2.7.1: - version "2.8.3" - resolved "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz" - integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== - dependencies: - ip-address "^9.0.5" - smart-buffer "^4.2.0" - sonic-boom@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz" @@ -9570,7 +7875,7 @@ source-map-support@^0.5.21: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -9638,11 +7943,6 @@ split2@^4.0.0: resolved "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz" integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== -sprintf-js@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz" - integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" @@ -9668,20 +7968,6 @@ stdout-stderr@^0.1.9: debug "^4.1.1" strip-ansi "^6.0.0" -string_decoder@^1.1.1, string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -string_decoder@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" @@ -9709,16 +7995,7 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string-width@^7.0.0: - version "7.2.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz" - integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== - dependencies: - emoji-regex "^10.3.0" - get-east-asian-width "^1.0.0" - strip-ansi "^7.1.0" - -string-width@^7.2.0: +string-width@^7.0.0, string-width@^7.2.0: version "7.2.0" resolved "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz" integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== @@ -9762,6 +8039,20 @@ string.prototype.trimstart@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" +string_decoder@^1.1.1, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +string_decoder@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + stringify-entities@^4.0.0: version "4.0.4" resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz" @@ -9777,7 +8068,7 @@ stringify-entities@^4.0.0: dependencies: ansi-regex "^5.0.1" -strip-ansi@^6.0.0, strip-ansi@^6.0.1, strip-ansi@6.0.1: +strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -9830,13 +8121,6 @@ strnum@^1.0.5: resolved "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - supports-color@^5.4.0: version "5.5.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" @@ -9844,21 +8128,7 @@ supports-color@^5.4.0: dependencies: has-flag "^3.0.0" -supports-color@^7: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^7.2.0: +supports-color@^7, supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -9872,7 +8142,7 @@ supports-color@^8, supports-color@^8.1.1: dependencies: has-flag "^4.0.0" -supports-hyperlinks@^2.1.0, supports-hyperlinks@^2.2.0: +supports-hyperlinks@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz" integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== @@ -9924,11 +8194,6 @@ thread-stream@^3.0.0: dependencies: real-require "^0.2.0" -"through@>=2.2.7 <3": - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - through2@^4.0.0: version "4.0.2" resolved "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz" @@ -9936,6 +8201,11 @@ through2@^4.0.0: dependencies: readable-stream "3" +"through@>=2.2.7 <3": + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + tiny-jsonc@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/tiny-jsonc/-/tiny-jsonc-1.0.1.tgz" @@ -9956,11 +8226,6 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -10016,7 +8281,7 @@ ts-json-schema-generator@^1.5.1: safe-stable-stringify "^2.4.3" typescript "~5.4.2" -ts-node@^10.8.1, ts-node@^10.9.2, ts-node@>=10: +ts-node@^10.8.1, ts-node@^10.9.2: version "10.9.2" resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz" integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== @@ -10050,16 +8315,11 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^2, tslib@^2.0.0, tslib@^2.0.3, tslib@^2.5.0, tslib@^2.6.2, tslib@^2.8.1, tslib@2: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.5.0, tslib@^2.6.2, tslib@^2.8.1: version "2.8.1" resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== -tslib@^2.0.1: - version "2.6.3" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz" - integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== - tsx@^4: version "4.22.4" resolved "https://registry.npmjs.org/tsx/-/tsx-4.22.4.tgz" @@ -10083,7 +8343,7 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-detect@^4.0.0, type-detect@^4.0.8, type-detect@4.0.8: +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -10179,7 +8439,7 @@ typedoc-plugin-missing-exports@^3.0.0: resolved "https://registry.npmjs.org/typedoc-plugin-missing-exports/-/typedoc-plugin-missing-exports-3.1.0.tgz" integrity sha512-Sogbaj+qDa21NjB3SlIw4JXSwmcl/WOjwiPNaVEcPhpNG/MiRTtpwV81cT7h1cbu9StpONFPbddYWR0KV/fTWA== -typedoc@^0.26.5, "typedoc@0.26.x || 0.27.x": +typedoc@^0.26.5: version "0.26.11" resolved "https://registry.npmjs.org/typedoc/-/typedoc-0.26.11.tgz" integrity sha512-sFEgRRtrcDl2FxVP58Ze++ZK2UQAEvtvvH8rRlig1Ja3o7dDaMHmaBfvJmdGnNEFaLTpQsN8dpvZaTqJSu/Ugw== @@ -10190,37 +8450,16 @@ typedoc@^0.26.5, "typedoc@0.26.x || 0.27.x": shiki "^1.16.2" yaml "^2.5.1" -typedoc@0.26.x: - version "0.26.5" - resolved "https://registry.npmjs.org/typedoc/-/typedoc-0.26.5.tgz" - integrity sha512-Vn9YKdjKtDZqSk+by7beZ+xzkkr8T8CYoiasqyt4TTRFy5+UHzL/mF/o4wGBjRF+rlWQHDb0t6xCpA3JNL5phg== - dependencies: - lunr "^2.3.9" - markdown-it "^14.1.0" - minimatch "^9.0.5" - shiki "^1.9.1" - yaml "^2.4.5" - -"typescript@^4.6.4 || ^5.2.2", typescript@^5.5.4, typescript@^5.7.2, typescript@>=2.7, typescript@>=4, typescript@>=4.2.0, typescript@>=4.9.5, "typescript@4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x": +"typescript@^4.6.4 || ^5.2.2", typescript@^5.5.4, typescript@^5.7.2: version "5.7.2" resolved "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz" integrity sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg== -typescript@^4.6.4, typescript@>=3: - version "4.9.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - typescript@~5.4.2: version "5.4.5" resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz" integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== -"typescript@4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x": - version "5.5.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz" - integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== - uc.micro@^2.0.0, uc.micro@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz" @@ -10309,14 +8548,6 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -update-browserslist-db@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz" - integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== - dependencies: - escalade "^3.1.2" - picocolors "^1.0.1" - update-browserslist-db@^1.2.3: version "1.2.3" resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz" @@ -10359,11 +8590,6 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -uuid@^3.3.3: - version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - uuid@^8.3.2: version "8.3.2" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" @@ -10494,17 +8720,6 @@ wireit@^0.14.12: jsonc-parser "^3.0.0" proper-lockfile "^4.1.2" -wireit@^0.14.5: - version "0.14.5" - resolved "https://registry.npmjs.org/wireit/-/wireit-0.14.5.tgz" - integrity sha512-K4ka9YBpSyD6pmFZYTJd4VpPsAiPT6j/fOtLzYgnKWlPIMM7lAZjQQ30H7urO+Lqx1Wvrw88tQHBz4njy+lglg== - dependencies: - brace-expansion "^4.0.0" - chokidar "^3.5.3" - fast-glob "^3.2.11" - jsonc-parser "^3.0.0" - proper-lockfile "^4.1.2" - wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" @@ -10551,16 +8766,7 @@ wrap-ansi@^8.1.0: string-width "^5.0.1" strip-ansi "^7.0.1" -wrap-ansi@^9.0.0: - version "9.0.2" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz" - integrity sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww== - dependencies: - ansi-styles "^6.2.1" - string-width "^7.0.0" - strip-ansi "^7.1.0" - -wrap-ansi@^9.0.2: +wrap-ansi@^9.0.0, wrap-ansi@^9.0.2: version "9.0.2" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz" integrity sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww== @@ -10627,11 +8833,6 @@ yallist@^4.0.0: resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^2.4.5: - version "2.5.0" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz" - integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== - yaml@^2.5.1: version "2.9.0" resolved "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz" @@ -10650,11 +8851,6 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9: resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.0.0: - version "21.0.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== - yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz"