sfdx-hardis 6.10.0 → 6.10.1-alpha202511021043.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/lib/commands/hardis/doc/mkdocs-to-cf.js +38 -39
  3. package/lib/commands/hardis/doc/mkdocs-to-cf.js.map +1 -1
  4. package/lib/commands/hardis/project/deploy/notify.js +19 -23
  5. package/lib/commands/hardis/project/deploy/notify.js.map +1 -1
  6. package/lib/commands/hardis/project/deploy/quick.js +3 -2
  7. package/lib/commands/hardis/project/deploy/quick.js.map +1 -1
  8. package/lib/commands/hardis/project/deploy/start.js +4 -5
  9. package/lib/commands/hardis/project/deploy/start.js.map +1 -1
  10. package/lib/commands/hardis/project/deploy/validate.js +4 -3
  11. package/lib/commands/hardis/project/deploy/validate.js.map +1 -1
  12. package/lib/commands/hardis/source/deploy.js +4 -3
  13. package/lib/commands/hardis/source/deploy.js.map +1 -1
  14. package/lib/common/actionsProvider/actionsProvider.d.ts +41 -0
  15. package/lib/common/actionsProvider/actionsProvider.js +110 -0
  16. package/lib/common/actionsProvider/actionsProvider.js.map +1 -0
  17. package/lib/common/actionsProvider/apexAction.d.ts +6 -0
  18. package/lib/common/actionsProvider/apexAction.js +35 -0
  19. package/lib/common/actionsProvider/apexAction.js.map +1 -0
  20. package/lib/common/actionsProvider/commandAction.d.ts +6 -0
  21. package/lib/common/actionsProvider/commandAction.js +29 -0
  22. package/lib/common/actionsProvider/commandAction.js.map +1 -0
  23. package/lib/common/actionsProvider/dataAction.d.ts +6 -0
  24. package/lib/common/actionsProvider/dataAction.js +50 -0
  25. package/lib/common/actionsProvider/dataAction.js.map +1 -0
  26. package/lib/common/actionsProvider/manualAction.d.ts +6 -0
  27. package/lib/common/actionsProvider/manualAction.js +26 -0
  28. package/lib/common/actionsProvider/manualAction.js.map +1 -0
  29. package/lib/common/actionsProvider/publishCommunityAction.d.ts +6 -0
  30. package/lib/common/actionsProvider/publishCommunityAction.js +30 -0
  31. package/lib/common/actionsProvider/publishCommunityAction.js.map +1 -0
  32. package/lib/common/gitProvider/azureDevops.d.ts +1 -0
  33. package/lib/common/gitProvider/azureDevops.js +71 -3
  34. package/lib/common/gitProvider/azureDevops.js.map +1 -1
  35. package/lib/common/gitProvider/bitbucket.d.ts +1 -0
  36. package/lib/common/gitProvider/bitbucket.js +81 -2
  37. package/lib/common/gitProvider/bitbucket.js.map +1 -1
  38. package/lib/common/gitProvider/gitProviderRoot.d.ts +1 -0
  39. package/lib/common/gitProvider/gitProviderRoot.js +6 -0
  40. package/lib/common/gitProvider/gitProviderRoot.js.map +1 -1
  41. package/lib/common/gitProvider/github.d.ts +1 -0
  42. package/lib/common/gitProvider/github.js +74 -1
  43. package/lib/common/gitProvider/github.js.map +1 -1
  44. package/lib/common/gitProvider/gitlab.d.ts +3 -0
  45. package/lib/common/gitProvider/gitlab.js +110 -2
  46. package/lib/common/gitProvider/gitlab.js.map +1 -1
  47. package/lib/common/gitProvider/index.d.ts +1 -1
  48. package/lib/common/gitProvider/index.js +12 -5
  49. package/lib/common/gitProvider/index.js.map +1 -1
  50. package/lib/common/utils/authUtils.d.ts +15 -2
  51. package/lib/common/utils/authUtils.js +48 -29
  52. package/lib/common/utils/authUtils.js.map +1 -1
  53. package/lib/common/utils/dataUtils.d.ts +2 -2
  54. package/lib/common/utils/dataUtils.js +10 -2
  55. package/lib/common/utils/dataUtils.js.map +1 -1
  56. package/lib/common/utils/deployTips.js +2 -1
  57. package/lib/common/utils/deployTips.js.map +1 -1
  58. package/lib/common/utils/deployUtils.d.ts +0 -7
  59. package/lib/common/utils/deployUtils.js +28 -75
  60. package/lib/common/utils/deployUtils.js.map +1 -1
  61. package/lib/common/utils/gitUtils.d.ts +2 -0
  62. package/lib/common/utils/gitUtils.js +7 -1
  63. package/lib/common/utils/gitUtils.js.map +1 -1
  64. package/lib/common/utils/orgUtils.d.ts +1 -0
  65. package/lib/common/utils/orgUtils.js +12 -0
  66. package/lib/common/utils/orgUtils.js.map +1 -1
  67. package/lib/common/utils/prePostCommandUtils.d.ts +7 -0
  68. package/lib/common/utils/prePostCommandUtils.js +299 -0
  69. package/lib/common/utils/prePostCommandUtils.js.map +1 -0
  70. package/oclif.lock +17 -17
  71. package/oclif.manifest.json +1384 -1384
  72. package/package.json +6 -6
@@ -0,0 +1,299 @@
1
+ import { SfError } from '@salesforce/core';
2
+ import c from 'chalk';
3
+ import fs from 'fs-extra';
4
+ import yaml from 'js-yaml';
5
+ import * as path from 'path';
6
+ import { getConfig } from '../../config/index.js';
7
+ import { uxLog } from './index.js';
8
+ import { GitProvider } from '../gitProvider/index.js';
9
+ import { checkSfdxHardisTraceAvailable, listMajorOrgs } from './orgConfigUtils.js';
10
+ import { soqlQuery } from './apiUtils.js';
11
+ // data import moved to DataAction class in actionsProvider
12
+ import { getPullRequestData, setPullRequestData } from './gitUtils.js';
13
+ import { ActionsProvider } from '../actionsProvider/actionsProvider.js';
14
+ export async function executePrePostCommands(property, options) {
15
+ const actionLabel = property === 'commandsPreDeploy' ? 'Pre-deployment actions' : 'Post-deployment actions';
16
+ uxLog("action", this, c.cyan(`[DeploymentActions] Listing ${actionLabel}...`));
17
+ const branchConfig = await getConfig('branch');
18
+ const commands = [...(branchConfig[property] || []), ...(options.extraCommands || [])];
19
+ await completeWithCommandsFromPullRequests(property, commands, options.checkOnly);
20
+ if (commands.length === 0) {
21
+ uxLog("action", this, c.cyan(`[DeploymentActions] No ${actionLabel} defined in branch config or pull requests`));
22
+ uxLog("log", this, c.grey(`No ${property} found to run`));
23
+ return;
24
+ }
25
+ uxLog("action", this, c.cyan(`[DeploymentActions] Found ${commands.length} ${actionLabel} to run`));
26
+ uxLog("log", this, c.grey(commands.map(c => `- ${c.label} (${c.type || 'command'})`).join('\n')));
27
+ for (const cmd of commands) {
28
+ const actionsInstance = await ActionsProvider.buildActionInstance(cmd);
29
+ const actionsIssues = await actionsInstance.checkValidityIssues(cmd);
30
+ if (actionsIssues) {
31
+ cmd.result = actionsIssues;
32
+ uxLog("error", this, c.red(`[DeploymentActions] Action ${cmd.label} is not valid: ${actionsIssues.skippedReason}`));
33
+ continue;
34
+ }
35
+ // If if skipIfError is true and deployment failed
36
+ if (options.success === false && cmd.skipIfError === true) {
37
+ uxLog("action", this, c.yellow(`[DeploymentActions] Skipping ${cmd.label} (skipIfError=true) `));
38
+ cmd.result = {
39
+ statusCode: "skipped",
40
+ skippedReason: "skipIfError is true and deployment failed"
41
+ };
42
+ continue;
43
+ }
44
+ // Skip if we are in another context than the requested one
45
+ const cmdContext = cmd.context || "all";
46
+ if (cmdContext === "check-deployment-only" && options.checkOnly === false) {
47
+ uxLog("action", this, c.grey(`[DeploymentActions] Skipping ${cmd.label}: check-deployment-only action, and we are in process deployment mode`));
48
+ cmd.result = {
49
+ statusCode: "skipped",
50
+ skippedReason: "Action context is check-deployment-only but we are in process deployment mode"
51
+ };
52
+ continue;
53
+ }
54
+ if (cmdContext === "process-deployment-only" && options.checkOnly === true) {
55
+ uxLog("action", this, c.grey(`[DeploymentActions] Skipping ${cmd.label}: process-deployment-only action as we are in check deployment mode`));
56
+ cmd.result = {
57
+ statusCode: "skipped",
58
+ skippedReason: "Action context is process-deployment-only but we are in check deployment mode"
59
+ };
60
+ continue;
61
+ }
62
+ const runOnlyOnceByOrg = cmd.runOnlyOnceByOrg || false;
63
+ if (runOnlyOnceByOrg) {
64
+ await checkSfdxHardisTraceAvailable(options.conn);
65
+ const commandTraceQuery = `SELECT Id,CreatedDate FROM SfdxHardisTrace__c WHERE Type__c='${property}' AND Key__c='${cmd.id}' LIMIT 1`;
66
+ const commandTraceRes = await soqlQuery(commandTraceQuery, options.conn);
67
+ if (commandTraceRes?.records?.length > 0) {
68
+ uxLog("action", this, c.grey(`[DeploymentActions] Skipping ${cmd.label}: it has been defined with runOnlyOnceByOrg and has already been run on ${commandTraceRes.records[0].CreatedDate}`));
69
+ cmd.result = {
70
+ statusCode: "skipped",
71
+ skippedReason: "runOnlyOnceByOrg is true and command has already been run on this org"
72
+ };
73
+ continue;
74
+ }
75
+ }
76
+ // Run command
77
+ uxLog("action", this, c.cyan(`[DeploymentActions] Running action ${cmd.label}`));
78
+ await executeAction(cmd);
79
+ if (cmd.result?.statusCode === "success" && runOnlyOnceByOrg) {
80
+ const hardisTraceRecord = {
81
+ Name: property + "--" + cmd.id,
82
+ Type__c: property,
83
+ Key__c: cmd.id
84
+ };
85
+ const insertRes = await options.conn.insert("SfdxHardisTrace__c", [hardisTraceRecord]);
86
+ if (insertRes[0].success) {
87
+ uxLog("success", this, c.green(`[DeploymentActions] Stored SfdxHardisTrace__c entry ${insertRes[0].id} with command [${cmd.id}] so it is not run again in the future (runOnlyOnceByOrg: true)`));
88
+ }
89
+ else {
90
+ uxLog("error", this, c.red(`[DeploymentActions] Error storing SfdxHardisTrace__c entry :` + JSON.stringify(insertRes, null, 2)));
91
+ }
92
+ }
93
+ else if (cmd.result?.statusCode === "failed" && cmd.allowFailure !== true) {
94
+ uxLog("error", this, c.red(`[DeploymentActions] Action ${cmd.label} failed, stopping execution of further actions.`));
95
+ break;
96
+ }
97
+ }
98
+ manageResultMarkdownBody(property, commands, options.checkOnly);
99
+ // Check commands results
100
+ const failedCommands = commands.filter(c => c.result?.statusCode === "failed");
101
+ if (failedCommands.length > 0) {
102
+ uxLog("error", this, c.red(`[DeploymentActions] ${failedCommands.length} action(s) failed during ${actionLabel}:`));
103
+ // throw error if failed and allowFailure is not set
104
+ const failedAndNotAllowFailure = failedCommands.filter(c => c.allowFailure !== true);
105
+ if (failedAndNotAllowFailure.length > 0) {
106
+ let prData = getPullRequestData();
107
+ prData = Object.assign(prData, {
108
+ title: "❌ Error: Failed deployment actions",
109
+ messageKey: prData.messageKey ?? 'deployment',
110
+ });
111
+ setPullRequestData(prData);
112
+ await GitProvider.managePostPullRequestComment(options.checkOnly);
113
+ throw new SfError(`One or more ${actionLabel} have failed. See logs for more details.`);
114
+ }
115
+ }
116
+ }
117
+ async function completeWithCommandsFromPullRequests(property, commands, checkOnly) {
118
+ await checkForDraftCommandsFile(property, checkOnly);
119
+ const pullRequests = await listAllPullRequestsToUse();
120
+ for (const pr of pullRequests) {
121
+ // Check if there is a .sfdx-hardis.PULL_REQUEST_ID.yml file in the PR
122
+ const prConfigFileName = path.join("scripts", "actions", `.sfdx-hardis.${pr.idStr}.yml`);
123
+ if (fs.existsSync(prConfigFileName)) {
124
+ try {
125
+ const prConfig = await fs.readFile(prConfigFileName, 'utf8');
126
+ const prConfigParsed = yaml.load(prConfig);
127
+ if (prConfigParsed && prConfigParsed[property] && Array.isArray(prConfigParsed[property])) {
128
+ const prConfigCommands = prConfigParsed[property];
129
+ for (const cmd of prConfigCommands) {
130
+ cmd.pullRequest = pr;
131
+ commands.push(cmd);
132
+ }
133
+ }
134
+ }
135
+ catch (e) {
136
+ uxLog("error", this, c.red(`Error while parsing ${prConfigFileName} file: ${e.message}`));
137
+ }
138
+ }
139
+ }
140
+ }
141
+ let _cachedPullRequests = null;
142
+ async function listAllPullRequestsToUse() {
143
+ if (_cachedPullRequests) {
144
+ return _cachedPullRequests;
145
+ }
146
+ const gitProvider = await GitProvider.getInstance();
147
+ if (!gitProvider) {
148
+ uxLog("warning", this, c.yellow('No git provider configured, skipping retrieval of commands from pull requests'));
149
+ return [];
150
+ }
151
+ const pullRequestInfo = await gitProvider.getPullRequestInfo();
152
+ if (!pullRequestInfo) {
153
+ uxLog("warning", this, c.yellow('No pull request info available, skipping retrieval of commands from pull requests'));
154
+ return [];
155
+ }
156
+ const majorOrgs = await listMajorOrgs();
157
+ const childBranchesNames = recursiveGetChildBranches(pullRequestInfo.targetBranch, majorOrgs);
158
+ const pullRequests = await gitProvider.listPullRequestsInBranchSinceLastMerge(pullRequestInfo.sourceBranch, pullRequestInfo.targetBranch, [...childBranchesNames]);
159
+ pullRequests.reverse(); // Oldest PR first
160
+ if (!pullRequests.some(pr => pr.idStr === pullRequestInfo.idStr)) {
161
+ pullRequests.push(pullRequestInfo);
162
+ }
163
+ _cachedPullRequests = pullRequests;
164
+ return pullRequests;
165
+ }
166
+ function recursiveGetChildBranches(branchName, majorOrgs, collected = new Set()) {
167
+ const directChildren = majorOrgs
168
+ .filter((o) => o.mergeTargets.includes(branchName))
169
+ .map((o) => o.branchName);
170
+ for (const child of directChildren) {
171
+ if (!collected.has(child)) {
172
+ collected.add(child);
173
+ recursiveGetChildBranches(child, majorOrgs, collected);
174
+ }
175
+ }
176
+ return collected;
177
+ }
178
+ async function checkForDraftCommandsFile(property, checkOnly) {
179
+ const prConfigFileName = path.join("scripts", "actions", `.sfdx-hardis.draft.yml`);
180
+ if (fs.existsSync(prConfigFileName)) {
181
+ let suggestedFileName = ".sfdx-hardis.PULL_REQUEST_ID.yml (ex: .sfdx-hardis.123.yml)";
182
+ const prInfo = await GitProvider.getPullRequestInfo();
183
+ if (prInfo && prInfo.idStr) {
184
+ suggestedFileName = `.sfdx-hardis.${prInfo.idStr}.yml`;
185
+ }
186
+ const errorMessage = `Draft deployment actions file ${prConfigFileName} found.
187
+
188
+ Please assign it to a Pull Request before proceeding, or delete the file it if you don't need it.
189
+
190
+ To assign it, rename .sfdx-hardis.draft.yml into ${suggestedFileName}.
191
+ `;
192
+ const propertyFormatted = property === 'commandsPreDeploy' ? 'preDeployCommandsResultMarkdownBody' : 'postDeployCommandsResultMarkdownBody';
193
+ let prData = getPullRequestData();
194
+ prData = Object.assign(prData, {
195
+ title: "❌ Error: Draft deployment actions file found",
196
+ messageKey: prData.messageKey ?? 'deployment',
197
+ [propertyFormatted]: errorMessage
198
+ });
199
+ setPullRequestData(prData);
200
+ await GitProvider.managePostPullRequestComment(checkOnly);
201
+ uxLog("error", this, c.red(`[DeploymentActions] ${errorMessage}`));
202
+ throw new SfError(`Draft commands file ${prConfigFileName} found. Please assign it to a Pull Request or delete it before proceeding.`);
203
+ }
204
+ }
205
+ async function executeAction(cmd) {
206
+ // Use ActionsProvider classes to execute actions
207
+ const actionInstance = await ActionsProvider.buildActionInstance(cmd);
208
+ try {
209
+ const res = await actionInstance.run(cmd);
210
+ cmd.result = res;
211
+ }
212
+ catch (e) {
213
+ uxLog("error", this, c.red(`[DeploymentActions] Exception while running action ${cmd.label}: ${e.message}`));
214
+ cmd.result = {
215
+ statusCode: 'failed',
216
+ output: e.message
217
+ };
218
+ }
219
+ }
220
+ function buildManualActionsSection(commands, isPreDeploy, checkOnly) {
221
+ if (isPreDeploy && !checkOnly) {
222
+ return '';
223
+ }
224
+ if (!isPreDeploy && checkOnly) {
225
+ return '';
226
+ }
227
+ const manualCommands = commands.filter(c => c.result?.statusCode === "manual");
228
+ if (manualCommands.length === 0) {
229
+ return '';
230
+ }
231
+ const title = isPreDeploy
232
+ ? `#### Manual Actions to perform before proceeding with deployment:\n\n`
233
+ : `#### Manual Actions to perform after deployment:\n\n`;
234
+ let section = title;
235
+ for (const cmd of manualCommands) {
236
+ const labelCol = cmd.pullRequest
237
+ ? `${cmd.label} ([${cmd.pullRequest.idStr || "?"}](${cmd.pullRequest.webUrl || ""}))`
238
+ : cmd.label;
239
+ section += `- [ ] ${labelCol}\n`;
240
+ }
241
+ section += `\n---\n\n`;
242
+ return section;
243
+ }
244
+ function manageResultMarkdownBody(property, commands, checkOnly) {
245
+ let markdownBody = `### ${property === 'commandsPreDeploy' ? 'Pre-deployment Actions' : 'Post-deployment Actions'} Results\n\n`;
246
+ // Add manual actions section
247
+ const isPreDeploy = property === 'commandsPreDeploy';
248
+ markdownBody += buildManualActionsSection(commands, isPreDeploy, checkOnly);
249
+ // Build markdown table
250
+ markdownBody += `| <!-- --> | Label | Type | Status | Details |\n`;
251
+ markdownBody += `|:--------:|-------|------|--------|---------|\n`;
252
+ for (const cmd of commands) {
253
+ const statusIcon = cmd.result?.statusCode === "manual" ?
254
+ "👋" :
255
+ cmd.result?.statusCode === "success" ? '✅' :
256
+ (cmd.result?.statusCode === "failed" && cmd.allowFailure === true) ? '⚠️' :
257
+ (cmd.result?.statusCode === "failed") ? '❌' :
258
+ cmd.result?.statusCode === "skipped" ? '⚪' : '❓';
259
+ const statusCol = `${cmd.result?.statusCode || 'not run'}`;
260
+ const detailCol = cmd.result?.statusCode === "skipped" ?
261
+ (cmd.result?.skippedReason || '<!-- -->') :
262
+ (cmd.result?.statusCode === "failed" && cmd.allowFailure === true) ?
263
+ (cmd.result.skippedReason ? `${cmd.result.skippedReason} (Allowed to fail)` : "(Allowed to fail)") :
264
+ (cmd.result?.statusCode === "failed" && cmd.result.skippedReason) ?
265
+ cmd.result.skippedReason :
266
+ "See details below";
267
+ const labelCol = cmd.pullRequest ?
268
+ `${cmd.label} ([${cmd.pullRequest.idStr || "?"}](${cmd.pullRequest.webUrl || ""}))` :
269
+ cmd.label;
270
+ markdownBody += `| ${statusIcon} | ${labelCol} | ${cmd.type || 'command'} | ${statusCol} | ${detailCol} |\n`;
271
+ }
272
+ // Add details in html <detail> blocks, embedded in a root <details> block to avoid markdown rendering issues
273
+ markdownBody += `\n<details>\n<summary>Expand to see details for each action</summary>\n\n`;
274
+ for (const cmd of commands) {
275
+ if (cmd.result?.output) {
276
+ // Truncate output if too long
277
+ const maxOutputLength = 10000;
278
+ let outputForMarkdown = cmd.result.output;
279
+ if (outputForMarkdown.length > maxOutputLength) {
280
+ outputForMarkdown = outputForMarkdown.substring(0, maxOutputLength) + `\n\n... Output truncated to ${maxOutputLength} characters ...`;
281
+ }
282
+ const labeTitle = cmd.pullRequest ?
283
+ `${cmd.label} (${cmd.pullRequest.idStr || "?"})` :
284
+ cmd.label;
285
+ markdownBody += `\n<details id="command-${cmd.id}">\n<summary>${labeTitle}</summary>\n\n`;
286
+ markdownBody += '```\n';
287
+ markdownBody += outputForMarkdown;
288
+ markdownBody += '\n```\n';
289
+ markdownBody += '</details>\n';
290
+ }
291
+ }
292
+ markdownBody += `\n</details>\n`;
293
+ const propertyFormatted = property === 'commandsPreDeploy' ? 'preDeployCommandsResultMarkdownBody' : 'postDeployCommandsResultMarkdownBody';
294
+ const prData = {
295
+ [propertyFormatted]: markdownBody
296
+ };
297
+ setPullRequestData(prData);
298
+ }
299
+ //# sourceMappingURL=prePostCommandUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prePostCommandUtils.js","sourceRoot":"","sources":["../../../src/common/utils/prePostCommandUtils.ts"],"names":[],"mappings":"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"}
package/oclif.lock CHANGED
@@ -1718,10 +1718,10 @@
1718
1718
  zod "^3.22.4"
1719
1719
  zod-to-json-schema "^3.22.3"
1720
1720
 
1721
- "@langchain/core@^0.3.78":
1722
- version "0.3.78"
1723
- resolved "https://registry.yarnpkg.com/@langchain/core/-/core-0.3.78.tgz#40e69fba6688858edbcab4473358ec7affc685fd"
1724
- integrity sha512-Nn0x9erQlK3zgtRU1Z8NUjLuyW0gzdclMsvLQ6wwLeDqV91pE+YKl6uQb+L2NUDs4F0N7c2Zncgz46HxrvPzuA==
1721
+ "@langchain/core@^0.3.79":
1722
+ version "0.3.79"
1723
+ resolved "https://registry.yarnpkg.com/@langchain/core/-/core-0.3.79.tgz#a7c8ee68e1a92133e073ebfcbebf53a885d9e0bd"
1724
+ integrity sha512-ZLAs5YMM5N2UXN3kExMglltJrKKoW7hs3KMZFlXUnD7a5DFKBYxPFMeXA4rT+uvTxuJRZPCYX0JKI5BhyAWx4A==
1725
1725
  dependencies:
1726
1726
  "@cfworker/json-schema" "^4.0.2"
1727
1727
  ansi-styles "^5.0.0"
@@ -1972,10 +1972,10 @@
1972
1972
  proc-log "^4.0.0"
1973
1973
  which "^4.0.0"
1974
1974
 
1975
- "@oclif/core@^4", "@oclif/core@^4.0.27", "@oclif/core@^4.5.4", "@oclif/core@^4.5.5", "@oclif/core@^4.5.6":
1976
- version "4.7.2"
1977
- resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.7.2.tgz#9ebf36b4693500685956f3405c55526d191aa5ef"
1978
- integrity sha512-AmZnhEnyD7bFxmzEKRaOEr0kzonmwIip72eWZPWB5+7D9ayHa/QFX08zhaQT9eOo0//ed64v5p5QZIbYCbQaJQ==
1975
+ "@oclif/core@^4", "@oclif/core@^4.0.27", "@oclif/core@^4.5.5", "@oclif/core@^4.5.6", "@oclif/core@^4.8.0":
1976
+ version "4.8.0"
1977
+ resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.8.0.tgz#bde8fad00019c8c0a8e27787b4b42c4670842785"
1978
+ integrity sha512-jteNUQKgJHLHFbbz806aGZqf+RJJ7t4gwF4MYa8fCwCxQ8/klJNWc0MvaJiBebk7Mc+J39mdlsB4XraaCKznFw==
1979
1979
  dependencies:
1980
1980
  ansi-escapes "^4.3.2"
1981
1981
  ansis "^3.17.0"
@@ -1996,10 +1996,10 @@
1996
1996
  wordwrap "^1.0.0"
1997
1997
  wrap-ansi "^7.0.0"
1998
1998
 
1999
- "@oclif/plugin-command-snapshot@^5.3.6":
2000
- version "5.3.6"
2001
- resolved "https://registry.yarnpkg.com/@oclif/plugin-command-snapshot/-/plugin-command-snapshot-5.3.6.tgz#fa9786279b532d8a0c6add51717dd8ea9fc520c9"
2002
- integrity sha512-0uu1KoB5IvS79l7Ao92vUmVHh9eWqP5uWv4oD7aeNFmUnCQrTB8nhdclP2E6MqMoatB6C0Xv+TXWC/ISLqBu3A==
1999
+ "@oclif/plugin-command-snapshot@^5.3.8":
2000
+ version "5.3.8"
2001
+ resolved "https://registry.yarnpkg.com/@oclif/plugin-command-snapshot/-/plugin-command-snapshot-5.3.8.tgz#b952a270bfdfaea941f244363c4bcf781398d9b9"
2002
+ integrity sha512-pxuW6kVAkAJBZzk7w2xUy32D+EQGeef15Kyjz13LYazHNXcVdrzP/5726VGfMnK3U4W1QyJ7CalzZxRLVvxQcg==
2003
2003
  dependencies:
2004
2004
  "@oclif/core" "^4"
2005
2005
  ansis "^3.17.0"
@@ -2008,7 +2008,7 @@
2008
2008
  lodash.difference "^4.5.0"
2009
2009
  lodash.get "^4.4.2"
2010
2010
  lodash.sortby "^4.7.0"
2011
- semver "^7.7.2"
2011
+ semver "^7.7.3"
2012
2012
  ts-json-schema-generator "^1.5.1"
2013
2013
 
2014
2014
  "@oclif/plugin-help@^6.2.33":
@@ -2689,10 +2689,10 @@
2689
2689
  dependencies:
2690
2690
  "@types/node" ">=18.0.0"
2691
2691
 
2692
- "@slack/types@^2.16.0", "@slack/types@^2.17.0":
2693
- version "2.17.0"
2694
- resolved "https://registry.yarnpkg.com/@slack/types/-/types-2.17.0.tgz#f00903485e12bba57b40b0e5e6ea28c889f57044"
2695
- integrity sha512-30KdPUBGJczlchnV8tKSxFG1yPk6rb8waba6HAoNHOy99zomzovQo6WpH9vQsY0g3RlxgVLojxKMRe0WjEjFWw==
2692
+ "@slack/types@^2.17.0", "@slack/types@^2.18.0":
2693
+ version "2.18.0"
2694
+ resolved "https://registry.yarnpkg.com/@slack/types/-/types-2.18.0.tgz#84dab2ebb4593049fa6757a3f69318ffe3876c54"
2695
+ integrity sha512-ZKrdeoppbM+3l2KKOi4/3oFYKCEwiW3dQfdHZDcecJ9rAmEqWPnARYmac9taZNitb0xnSgu6GOpHgwaKI8se2g==
2696
2696
 
2697
2697
  "@slack/web-api@^7.11.0":
2698
2698
  version "7.11.0"