sf-plugin-permission-sets 0.3.1 → 0.4.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 (103) hide show
  1. package/LICENSE.md +28 -0
  2. package/README.md +141 -23
  3. package/lib/adapters/connection-org-client.d.ts +7 -3
  4. package/lib/adapters/connection-org-client.d.ts.map +1 -1
  5. package/lib/adapters/connection-org-client.js +94 -63
  6. package/lib/adapters/connection-org-client.js.map +1 -1
  7. package/lib/adapters/index.d.ts +2 -0
  8. package/lib/adapters/index.d.ts.map +1 -0
  9. package/lib/adapters/index.js +2 -0
  10. package/lib/adapters/index.js.map +1 -0
  11. package/lib/commands/ps/apply.d.ts +28 -1
  12. package/lib/commands/ps/apply.d.ts.map +1 -1
  13. package/lib/commands/ps/apply.js +155 -35
  14. package/lib/commands/ps/apply.js.map +1 -1
  15. package/lib/commands/ps/check.d.ts +3 -1
  16. package/lib/commands/ps/check.d.ts.map +1 -1
  17. package/lib/commands/ps/check.js +15 -6
  18. package/lib/commands/ps/check.js.map +1 -1
  19. package/lib/commands/ps/export.d.ts +11 -2
  20. package/lib/commands/ps/export.d.ts.map +1 -1
  21. package/lib/commands/ps/export.js +53 -7
  22. package/lib/commands/ps/export.js.map +1 -1
  23. package/lib/commands/ps/plan.d.ts +19 -1
  24. package/lib/commands/ps/plan.d.ts.map +1 -1
  25. package/lib/commands/ps/plan.js +121 -30
  26. package/lib/commands/ps/plan.js.map +1 -1
  27. package/lib/commands/ps/validate.d.ts +3 -1
  28. package/lib/commands/ps/validate.d.ts.map +1 -1
  29. package/lib/commands/ps/validate.js +16 -7
  30. package/lib/commands/ps/validate.js.map +1 -1
  31. package/lib/core/finding.d.ts +3 -2
  32. package/lib/core/finding.d.ts.map +1 -1
  33. package/lib/core/finding.js +1 -1
  34. package/lib/core/finding.js.map +1 -1
  35. package/lib/core/index.d.ts +11 -0
  36. package/lib/core/index.d.ts.map +1 -0
  37. package/lib/core/index.js +10 -0
  38. package/lib/core/index.js.map +1 -0
  39. package/lib/core/load.d.ts.map +1 -1
  40. package/lib/core/load.js +17 -10
  41. package/lib/core/load.js.map +1 -1
  42. package/lib/core/mode.d.ts +18 -0
  43. package/lib/core/mode.d.ts.map +1 -0
  44. package/lib/core/mode.js +16 -0
  45. package/lib/core/mode.js.map +1 -0
  46. package/lib/core/model.d.ts +5 -0
  47. package/lib/core/model.d.ts.map +1 -1
  48. package/lib/core/normalize.d.ts +2 -0
  49. package/lib/core/normalize.d.ts.map +1 -1
  50. package/lib/core/normalize.js +7 -0
  51. package/lib/core/normalize.js.map +1 -1
  52. package/lib/core/plan-file.d.ts +61 -0
  53. package/lib/core/plan-file.d.ts.map +1 -0
  54. package/lib/core/plan-file.js +74 -0
  55. package/lib/core/plan-file.js.map +1 -0
  56. package/lib/core/report.d.ts +2 -1
  57. package/lib/core/report.d.ts.map +1 -1
  58. package/lib/core/report.js +32 -21
  59. package/lib/core/report.js.map +1 -1
  60. package/lib/core/schema.d.ts +2 -12
  61. package/lib/core/schema.d.ts.map +1 -1
  62. package/lib/core/schema.js +2 -2
  63. package/lib/core/schema.js.map +1 -1
  64. package/lib/services/adapters/index.d.ts +2 -0
  65. package/lib/services/adapters/index.d.ts.map +1 -0
  66. package/lib/services/adapters/index.js +2 -0
  67. package/lib/services/adapters/index.js.map +1 -0
  68. package/lib/services/adapters/org-client.d.ts +3 -3
  69. package/lib/services/adapters/org-client.d.ts.map +1 -1
  70. package/lib/services/apply.d.ts +21 -11
  71. package/lib/services/apply.d.ts.map +1 -1
  72. package/lib/services/apply.js +54 -37
  73. package/lib/services/apply.js.map +1 -1
  74. package/lib/services/check.d.ts +3 -7
  75. package/lib/services/check.d.ts.map +1 -1
  76. package/lib/services/check.js +5 -12
  77. package/lib/services/check.js.map +1 -1
  78. package/lib/services/export.d.ts +11 -6
  79. package/lib/services/export.d.ts.map +1 -1
  80. package/lib/services/export.js +14 -10
  81. package/lib/services/export.js.map +1 -1
  82. package/lib/services/index.d.ts +7 -0
  83. package/lib/services/index.d.ts.map +1 -0
  84. package/lib/services/index.js +7 -0
  85. package/lib/services/index.js.map +1 -0
  86. package/lib/services/plan.d.ts +7 -10
  87. package/lib/services/plan.d.ts.map +1 -1
  88. package/lib/services/plan.js +28 -18
  89. package/lib/services/plan.js.map +1 -1
  90. package/lib/services/resolution.d.ts +6 -6
  91. package/lib/services/resolution.d.ts.map +1 -1
  92. package/lib/services/resolution.js +21 -9
  93. package/lib/services/resolution.js.map +1 -1
  94. package/lib/services/validate.d.ts +7 -7
  95. package/lib/services/validate.d.ts.map +1 -1
  96. package/lib/services/validate.js +20 -13
  97. package/lib/services/validate.js.map +1 -1
  98. package/messages/ps.apply.md +34 -2
  99. package/messages/ps.check.md +1 -1
  100. package/messages/ps.export.md +21 -1
  101. package/messages/ps.plan.md +8 -0
  102. package/messages/ps.validate.md +1 -1
  103. package/package.json +18 -14
@@ -15,7 +15,8 @@ export default class Apply extends SfCommand<PsApplyResult> {
15
15
  static readonly examples: string[];
16
16
  static readonly flags: {
17
17
  'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
18
- file: import("@oclif/core/interfaces").OptionFlag<string[], import("@oclif/core/interfaces").CustomOptions>;
18
+ file: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
+ plan: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
20
  mode: import("@oclif/core/interfaces").OptionFlag<"additive" | "destructive" | "sync", import("@oclif/core/interfaces").CustomOptions>;
20
21
  'max-deletes': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
21
22
  'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
@@ -23,6 +24,32 @@ export default class Apply extends SfCommand<PsApplyResult> {
23
24
  'no-prompt': import("@oclif/core/interfaces").BooleanFlag<boolean>;
24
25
  };
25
26
  run(): Promise<PsApplyResult>;
27
+ /** Enforce exactly one source (--file or --plan), and that --mode is not paired with a plan. */
28
+ private validateSource;
29
+ private runFromFiles;
30
+ private runFromPlan;
31
+ /** Read and validate the plan file, erroring out (never returning) if it cannot be used. */
32
+ private readPlan;
33
+ /** Log findings, print the diff body, and report the outcome. Shared by both sources. */
34
+ private report;
35
+ /** Report the outcome of a completed (non-invalid) apply, setting the exit code as needed. */
36
+ private reportOutcome;
26
37
  private reportDrift;
38
+ private logSummaryDryRun;
39
+ private logSummaryDeclined;
40
+ private logSummaryApplied;
41
+ private logFailureLine;
42
+ private logDriftNote;
43
+ private confirmDelete;
44
+ private logApplyingPlan;
45
+ private errorSourceConflict;
46
+ private errorSourceMissing;
47
+ private errorModeWithPlan;
48
+ private errorPlanRead;
49
+ private errorPlanInvalid;
50
+ private errorPlanOrg;
51
+ private errorInvalid;
52
+ private errorMaxDeletes;
53
+ private errorFailed;
27
54
  }
28
55
  //# sourceMappingURL=apply.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/commands/ps/apply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAS,MAAM,6BAA6B,CAAC;AAU/D,MAAM,MAAM,aAAa,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAS,CAAC,aAAa,CAAC;IACvD,gBAAuB,OAAO,SAAkC;IAChE,gBAAuB,WAAW,SAAsC;IACxE,gBAAuB,QAAQ,WAAoC;IAEnE,gBAAuB,KAAK;;;;;;;;MA2B1B;IAEW,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;IAmG1C,OAAO,CAAC,WAAW;CAKtB"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/commands/ps/apply.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAS,MAAM,6BAA6B,CAAC;AAU/D,MAAM,MAAM,aAAa,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAS,CAAC,aAAa,CAAC;IACvD,gBAAuB,OAAO,SAAkC;IAChE,gBAAuB,WAAW,SAAsC;IACxE,gBAAuB,QAAQ,WAAoC;IAEnE,gBAAuB,KAAK;;;;;;;;;MA6B1B;IAEW,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;IAqB1C,gGAAgG;IAChG,OAAO,CAAC,cAAc;YAUR,YAAY;YAaZ,WAAW;IAkBzB,4FAA4F;YAC9E,QAAQ;IAUtB,yFAAyF;IACzF,OAAO,CAAC,MAAM;IA2Cd,8FAA8F;IAC9F,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,WAAW;CAGtB"}
@@ -1,9 +1,9 @@
1
+ import { readFile } from 'node:fs/promises';
1
2
  import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
2
3
  import { Messages } from '@salesforce/core';
3
- import { ConnectionOrgClient } from '../../adapters/connection-org-client.js';
4
- import { ApplyService } from '../../services/apply.js';
5
- import { formatDiff } from '../../core/report.js';
6
- import { formatFindings } from '../../core/finding.js';
4
+ import { ConnectionOrgClient } from '../../adapters/index.js';
5
+ import { ApplyService } from '../../services/index.js';
6
+ import { formatDiff, formatFindings, parsePlan } from '../../core/index.js';
7
7
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
8
8
  const messages = Messages.loadMessages('sf-plugin-permission-sets', 'ps.apply');
9
9
  export default class Apply extends SfCommand {
@@ -15,9 +15,11 @@ export default class Apply extends SfCommand {
15
15
  file: Flags.string({
16
16
  char: 'f',
17
17
  summary: messages.getMessage('flags.file.summary'),
18
- required: true,
19
18
  multiple: true,
20
19
  }),
20
+ plan: Flags.string({
21
+ summary: messages.getMessage('flags.plan.summary'),
22
+ }),
21
23
  mode: Flags.option({
22
24
  summary: messages.getMessage('flags.mode.summary'),
23
25
  options: ['additive', 'destructive', 'sync'],
@@ -40,17 +42,67 @@ export default class Apply extends SfCommand {
40
42
  };
41
43
  async run() {
42
44
  const { flags } = await this.parse(Apply);
43
- const connection = flags['target-org'].getConnection();
45
+ this.validateSource(flags);
46
+ const targetOrg = flags['target-org'];
47
+ const connection = targetOrg.getConnection();
44
48
  const orgClient = new ConnectionOrgClient(connection);
45
49
  const confirmDeletions = async (count) => {
46
50
  if (flags['no-prompt'])
47
51
  return true;
48
52
  if (this.jsonEnabled())
49
53
  throw messages.createError('error.promptInJson');
50
- return this.confirm({ message: messages.getMessage('confirm.delete', [String(count)]) });
54
+ return this.confirmDelete(count);
51
55
  };
52
- const service = new ApplyService(orgClient, flags.file, { mode: flags.mode, maxDeletes: flags['max-deletes'], dryRun: flags['dry-run'] }, confirmDeletions);
53
- const result = await service.run();
56
+ const service = new ApplyService(orgClient, confirmDeletions);
57
+ const outcome = flags.plan
58
+ ? await this.runFromPlan(service, flags, targetOrg)
59
+ : await this.runFromFiles(service, flags);
60
+ return this.report(outcome.result, outcome.mode, flags['max-deletes'], flags['show-unchanged']);
61
+ }
62
+ /** Enforce exactly one source (--file or --plan), and that --mode is not paired with a plan. */
63
+ validateSource(flags) {
64
+ const hasFile = !!flags.file;
65
+ const hasPlan = !!flags.plan;
66
+ if (hasFile && hasPlan)
67
+ this.errorSourceConflict();
68
+ if (!hasFile && !hasPlan)
69
+ this.errorSourceMissing();
70
+ const modeProvided = this.argv.some((arg) => arg === '--mode' || arg.startsWith('--mode='));
71
+ if (hasPlan && modeProvided)
72
+ this.errorModeWithPlan();
73
+ }
74
+ async runFromFiles(service, flags) {
75
+ const result = await service.run(flags.file ?? [], {
76
+ mode: flags.mode,
77
+ maxDeletes: flags['max-deletes'],
78
+ dryRun: flags['dry-run'],
79
+ });
80
+ return { result, mode: flags.mode };
81
+ }
82
+ async runFromPlan(service, flags, targetOrg) {
83
+ const plan = await this.readPlan(flags.plan ?? '');
84
+ const orgId = targetOrg.getOrgId();
85
+ if (plan.org !== orgId)
86
+ this.errorPlanOrg(plan.org, orgId);
87
+ this.logApplyingPlan(plan.mode);
88
+ const result = await service.runPlan(plan, {
89
+ maxDeletes: flags['max-deletes'],
90
+ dryRun: flags['dry-run'],
91
+ });
92
+ return { result, mode: plan.mode };
93
+ }
94
+ /** Read and validate the plan file, erroring out (never returning) if it cannot be used. */
95
+ async readPlan(planFile) {
96
+ const text = await readFile(planFile, 'utf8').catch(() => undefined);
97
+ if (text == null)
98
+ this.errorPlanRead(planFile);
99
+ const parsed = parsePlan(text);
100
+ if (!parsed.plan)
101
+ this.errorPlanInvalid(planFile, parsed.error ?? 'unknown');
102
+ return parsed.plan;
103
+ }
104
+ /** Log findings, print the diff body, and report the outcome. Shared by both sources. */
105
+ report(result, mode, maxDeletes, showUnchanged) {
54
106
  for (const line of formatFindings(result.findings)) {
55
107
  this.log(line);
56
108
  }
@@ -71,59 +123,127 @@ export default class Apply extends SfCommand {
71
123
  if (result.status === 'invalid') {
72
124
  process.exitCode = 1;
73
125
  if (!this.jsonEnabled())
74
- this.error(messages.getMessage('error.invalid'), { exit: 1 });
126
+ this.errorInvalid();
75
127
  return summary;
76
128
  }
77
129
  this.log('');
78
- for (const line of formatDiff(result.diff, { mode: flags.mode, showUnchanged: flags['show-unchanged'] })) {
130
+ for (const line of formatDiff(result.diff, { mode, showUnchanged })) {
79
131
  this.log(line);
80
132
  }
81
133
  this.log('');
134
+ this.reportOutcome(result, summary, mode, maxDeletes);
135
+ return summary;
136
+ }
137
+ /** Report the outcome of a completed (non-invalid) apply, setting the exit code as needed. */
138
+ reportOutcome(result, summary, mode, maxDeletes) {
82
139
  if (result.status === 'max-deletes-exceeded') {
83
140
  process.exitCode = 1;
84
- const tokens = [String(result.diff.toRemove.length), String(flags['max-deletes'])];
85
141
  if (!this.jsonEnabled())
86
- this.error(messages.getMessage('error.maxDeletes', tokens), { exit: 1 });
87
- return summary;
142
+ this.errorMaxDeletes(result.diff.toRemove.length, maxDeletes);
143
+ return;
88
144
  }
89
- this.reportDrift(result.drift, flags.mode);
145
+ this.reportDrift(result.drift, mode);
90
146
  if (result.status === 'dry-run') {
91
147
  // Report what this mode would actually do, matching the mode-scoped body: the full
92
148
  // diff minus whatever the mode leaves as drift. Otherwise the counts contradict it.
93
- this.log(messages.getMessage('summary.dryRun', [
94
- String(summary.toAdd - result.drift.adds),
95
- String(summary.toUpdate - result.drift.updates),
96
- String(summary.toRemove - result.drift.removes),
97
- ]));
98
- return summary;
149
+ this.logSummaryDryRun(summary.toAdd - result.drift.adds, summary.toUpdate - result.drift.updates, summary.toRemove - result.drift.removes);
150
+ return;
99
151
  }
100
152
  if (result.status === 'declined') {
101
- this.log(messages.getMessage('summary.declined'));
102
- return summary;
153
+ this.logSummaryDeclined();
154
+ return;
103
155
  }
104
- this.log(messages.getMessage('summary.applied', [String(added), String(updated), String(removed)]));
156
+ this.logSummaryApplied(summary.added, summary.updated, summary.removed);
157
+ const failures = result.outcomes.filter((outcome) => !outcome.success);
105
158
  for (const failure of failures) {
106
- this.log(messages.getMessage('failure.line', [
107
- failure.operation,
108
- failure.assignee,
109
- failure.target,
110
- failure.message ?? '',
111
- ]));
159
+ this.logFailureLine(failure.operation, failure.assignee, failure.target, failure.message ?? '');
112
160
  }
113
161
  if (result.failed) {
114
162
  process.exitCode = 1;
115
163
  if (!this.jsonEnabled())
116
- this.error(messages.getMessage('error.failed'), { exit: 1 });
164
+ this.errorFailed();
117
165
  }
118
- return summary;
119
166
  }
120
167
  reportDrift(drift, mode) {
121
168
  if (drift.adds > 0)
122
- this.log(messages.getMessage('drift.note', [String(drift.adds), mode]));
169
+ this.logDriftNote(drift.adds, mode);
123
170
  if (drift.updates > 0)
124
- this.log(messages.getMessage('drift.note', [String(drift.updates), mode]));
171
+ this.logDriftNote(drift.updates, mode);
125
172
  if (drift.removes > 0)
126
- this.log(messages.getMessage('drift.note', [String(drift.removes), mode]));
173
+ this.logDriftNote(drift.removes, mode);
174
+ }
175
+ logSummaryDryRun(toAdd, toUpdate, toRemove) {
176
+ this.log(messages.getMessage('summary.dryRun', [
177
+ toAdd,
178
+ toUpdate,
179
+ toRemove,
180
+ ]));
181
+ }
182
+ logSummaryDeclined() {
183
+ this.log(messages.getMessage('summary.declined'));
184
+ }
185
+ logSummaryApplied(added, updated, removed) {
186
+ this.log(messages.getMessage('summary.applied', [
187
+ added,
188
+ updated,
189
+ removed,
190
+ ]));
191
+ }
192
+ logFailureLine(operation, assignee, target, message) {
193
+ this.log(messages.getMessage('failure.line', [
194
+ operation,
195
+ assignee,
196
+ target,
197
+ message,
198
+ ]));
199
+ }
200
+ logDriftNote(count, mode) {
201
+ this.log(messages.getMessage('drift.note', [
202
+ count,
203
+ mode,
204
+ ]));
205
+ }
206
+ confirmDelete(count) {
207
+ return this.confirm({ message: messages.getMessage('confirm.delete', [count]) });
208
+ }
209
+ logApplyingPlan(mode) {
210
+ this.log(messages.getMessage('info.applyingPlan', [mode]));
211
+ }
212
+ errorSourceConflict() {
213
+ this.error(messages.getMessage('error.sourceConflict'), { exit: 1 });
214
+ }
215
+ errorSourceMissing() {
216
+ this.error(messages.getMessage('error.sourceMissing'), { exit: 1 });
217
+ }
218
+ errorModeWithPlan() {
219
+ this.error(messages.getMessage('error.modeWithPlan'), { exit: 1 });
220
+ }
221
+ errorPlanRead(planFile) {
222
+ this.error(messages.getMessage('error.planRead', [planFile]), { exit: 1 });
223
+ }
224
+ errorPlanInvalid(planFile, detail) {
225
+ this.error(messages.getMessage('error.planInvalid', [
226
+ planFile,
227
+ detail,
228
+ ]), { exit: 1 });
229
+ }
230
+ errorPlanOrg(planOrg, targetOrg) {
231
+ this.error(messages.getMessage('error.planOrg', [
232
+ planOrg,
233
+ targetOrg,
234
+ ]), { exit: 1 });
235
+ }
236
+ errorInvalid() {
237
+ this.error(messages.getMessage('error.invalid'), { exit: 1 });
238
+ }
239
+ errorMaxDeletes(removeCount, maxDeletes) {
240
+ this.error(messages.getMessage('error.maxDeletes', [
241
+ removeCount,
242
+ maxDeletes,
243
+ ]), { exit: 1 });
244
+ }
245
+ errorFailed() {
246
+ this.error(messages.getMessage('error.failed'), { exit: 1 });
127
247
  }
128
248
  }
129
249
  //# sourceMappingURL=apply.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/commands/ps/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/commands/ps/apply.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { SfCommand } from '@salesforce/sf-plugins-core';
2
- import { Finding } from '../../core/finding.js';
2
+ import { Finding } from '../../core/index.js';
3
3
  export type PsCheckResult = {
4
4
  files: number;
5
5
  users: number;
@@ -15,5 +15,7 @@ export default class Check extends SfCommand<PsCheckResult> {
15
15
  strict: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
16
  };
17
17
  run(): Promise<PsCheckResult>;
18
+ private logSummaryCounts;
19
+ private errorFailed;
18
20
  }
19
21
  //# sourceMappingURL=check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/commands/ps/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAS,MAAM,6BAA6B,CAAC;AAG/D,OAAO,EAAkB,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKhE,MAAM,MAAM,aAAa,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAS,CAAC,aAAa,CAAC;IACvD,gBAAuB,OAAO,SAAkC;IAChE,gBAAuB,WAAW,SAAsC;IACxE,gBAAuB,QAAQ,WAAoC;IAEnE,gBAAuB,KAAK;;;MAU1B;IAEW,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;CA6B7C"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/commands/ps/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAS,MAAM,6BAA6B,CAAC;AAI/D,OAAO,EAAkB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAK9D,MAAM,MAAM,aAAa,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAS,CAAC,aAAa,CAAC;IACvD,gBAAuB,OAAO,SAAkC;IAChE,gBAAuB,WAAW,SAAsC;IACxE,gBAAuB,QAAQ,WAAoC;IAEnE,gBAAuB,KAAK;;;MAU1B;IAEW,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;IA8B1C,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,WAAW;CAGtB"}
@@ -1,7 +1,7 @@
1
1
  import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
2
2
  import { Messages } from '@salesforce/core';
3
- import { CheckService } from '../../services/check.js';
4
- import { formatFindings } from '../../core/finding.js';
3
+ import { CheckService } from '../../services/index.js';
4
+ import { formatFindings } from '../../core/index.js';
5
5
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
6
6
  const messages = Messages.loadMessages('sf-plugin-permission-sets', 'ps.check');
7
7
  export default class Check extends SfCommand {
@@ -21,18 +21,18 @@ export default class Check extends SfCommand {
21
21
  };
22
22
  async run() {
23
23
  const { flags } = await this.parse(Check);
24
- const service = new CheckService(flags.file, flags.strict);
25
- const result = await service.run();
24
+ const service = new CheckService();
25
+ const result = await service.run(flags.file, flags.strict);
26
26
  for (const line of formatFindings(result.findings)) {
27
27
  this.log(line);
28
28
  }
29
29
  const assignees = new Set(result.assignments.map((assignment) => assignment.assignee));
30
30
  this.log('');
31
- this.log(messages.getMessage('summary.counts', [String(result.errors), String(result.warnings)]));
31
+ this.logSummaryCounts(result.errors, result.warnings);
32
32
  if (result.failed) {
33
33
  process.exitCode = 1;
34
34
  if (!this.jsonEnabled()) {
35
- this.error(messages.getMessage('error.failed'), { exit: 1 });
35
+ this.errorFailed();
36
36
  }
37
37
  }
38
38
  return {
@@ -42,5 +42,14 @@ export default class Check extends SfCommand {
42
42
  findings: result.findings,
43
43
  };
44
44
  }
45
+ logSummaryCounts(errors, warnings) {
46
+ this.log(messages.getMessage('summary.counts', [
47
+ errors,
48
+ warnings,
49
+ ]));
50
+ }
51
+ errorFailed() {
52
+ this.error(messages.getMessage('error.failed'), { exit: 1 });
53
+ }
45
54
  }
46
55
  //# sourceMappingURL=check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/commands/ps/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAW,MAAM,uBAAuB,CAAC;AAEhE,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAC;AAShF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAwB;IAChD,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC3B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACf,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;SACjB,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC;SACvD,CAAC;KACL,CAAC;IAEK,KAAK,CAAC,GAAG;QACZ,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEvF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAElG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;QACL,CAAC;QAED,OAAO;YACH,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC1B,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;YACtC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC5B,CAAC;IACN,CAAC"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/commands/ps/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAW,MAAM,qBAAqB,CAAC;AAE9D,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAC;AAShF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAwB;IAChD,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC3B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACf,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;SACjB,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC;SACvD,CAAC;KACL,CAAC;IAEK,KAAK,CAAC,GAAG;QACZ,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3D,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEvF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtB,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;QACL,CAAC;QAED,OAAO;YACH,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC1B,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;YACtC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC5B,CAAC;IACN,CAAC;IAEO,gBAAgB,CAAC,MAAc,EAAE,QAAgB;QACrD,IAAI,CAAC,GAAG,CACJ,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE;YAClC,MAAM;YACN,QAAQ;SACX,CAAC,CACL,CAAC;IACN,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC"}
@@ -1,8 +1,11 @@
1
1
  import { SfCommand } from '@salesforce/sf-plugins-core';
2
2
  export type PsExportResult = {
3
- outputFile: string;
3
+ outputFile: string | null;
4
4
  users: number;
5
5
  assignments: number;
6
+ unmatchedUsers: string[];
7
+ /** The YAML document, present only when it was written to stdout rather than a file. */
8
+ content?: string;
6
9
  };
7
10
  export default class Export extends SfCommand<PsExportResult> {
8
11
  static readonly summary: string;
@@ -10,8 +13,14 @@ export default class Export extends SfCommand<PsExportResult> {
10
13
  static readonly examples: string[];
11
14
  static readonly flags: {
12
15
  'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
13
- 'output-file': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
16
+ 'output-file': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ user: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ kind: import("@oclif/core/interfaces").OptionFlag<("permissionSets" | "permissionSetGroups" | "permissionSetLicenses")[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
19
  };
15
20
  run(): Promise<PsExportResult>;
21
+ private warnUnmatchedUsers;
22
+ private logExportSuccess;
23
+ /** Write the document to stdout with no extra trailing newline, so it is byte-identical to the file. */
24
+ private logDocument;
16
25
  }
17
26
  //# sourceMappingURL=export.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/commands/ps/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAS,MAAM,6BAA6B,CAAC;AAQ/D,MAAM,MAAM,cAAc,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,SAAS,CAAC,cAAc,CAAC;IACzD,gBAAuB,OAAO,SAAkC;IAChE,gBAAuB,WAAW,SAAsC;IACxE,gBAAuB,QAAQ,WAAoC;IAEnE,gBAAuB,KAAK;;;MAM1B;IAEW,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;CAY9C"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/commands/ps/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAS,MAAM,6BAA6B,CAAC;AAU/D,MAAM,MAAM,cAAc,GAAG;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,SAAS,CAAC,cAAc,CAAC;IACzD,gBAAuB,OAAO,SAAkC;IAChE,gBAAuB,WAAW,SAAsC;IACxE,gBAAuB,QAAQ,WAAoC;IAEnE,gBAAuB,KAAK;;;;;MAe1B;IAEW,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;IAmC3C,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,gBAAgB;IAUxB,wGAAwG;IACxG,OAAO,CAAC,WAAW;CAGtB"}
@@ -1,7 +1,8 @@
1
1
  import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
2
2
  import { Messages } from '@salesforce/core';
3
- import { ConnectionOrgClient } from '../../adapters/connection-org-client.js';
4
- import { ExportService } from '../../services/export.js';
3
+ import { ConnectionOrgClient } from '../../adapters/index.js';
4
+ import { kindForScopeKey } from '../../core/index.js';
5
+ import { ExportService } from '../../services/index.js';
5
6
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
6
7
  const messages = Messages.loadMessages('sf-plugin-permission-sets', 'ps.export');
7
8
  export default class Export extends SfCommand {
@@ -11,18 +12,63 @@ export default class Export extends SfCommand {
11
12
  static flags = {
12
13
  'target-org': Flags.requiredOrg(),
13
14
  'output-file': Flags.string({
15
+ char: 'f',
14
16
  summary: messages.getMessage('flags.output-file.summary'),
15
- required: true,
16
17
  }),
18
+ user: Flags.string({
19
+ summary: messages.getMessage('flags.user.summary'),
20
+ multiple: true,
21
+ }),
22
+ kind: Flags.option({
23
+ summary: messages.getMessage('flags.kind.summary'),
24
+ options: ['permissionSets', 'permissionSetGroups', 'permissionSetLicenses'],
25
+ multiple: true,
26
+ })(),
17
27
  };
18
28
  async run() {
19
29
  const { flags } = await this.parse(Export);
30
+ const filter = {
31
+ usernames: flags.user,
32
+ kinds: flags.kind?.map(kindForScopeKey),
33
+ };
20
34
  const connection = flags['target-org'].getConnection();
21
35
  const orgClient = new ConnectionOrgClient(connection);
22
- const service = new ExportService(orgClient, flags['output-file']);
23
- const result = await service.run();
24
- this.log(messages.getMessage('success', [String(result.assignments), String(result.users), result.outputFile]));
25
- return result;
36
+ const service = new ExportService(orgClient);
37
+ const result = await service.run(flags['output-file'], filter);
38
+ this.warnUnmatchedUsers(result.unmatchedUsers);
39
+ if (result.outputFile) {
40
+ this.logExportSuccess(result.assignments, result.users, result.outputFile);
41
+ return {
42
+ outputFile: result.outputFile,
43
+ users: result.users,
44
+ assignments: result.assignments,
45
+ unmatchedUsers: result.unmatchedUsers,
46
+ };
47
+ }
48
+ this.logDocument(result.content);
49
+ return {
50
+ outputFile: null,
51
+ users: result.users,
52
+ assignments: result.assignments,
53
+ unmatchedUsers: result.unmatchedUsers,
54
+ content: result.content,
55
+ };
56
+ }
57
+ warnUnmatchedUsers(unmatchedUsers) {
58
+ for (const username of unmatchedUsers) {
59
+ this.warn(messages.getMessage('warnNoAssignments', [username]));
60
+ }
61
+ }
62
+ logExportSuccess(assignments, users, outputFile) {
63
+ this.log(messages.getMessage('success', [
64
+ assignments,
65
+ users,
66
+ outputFile,
67
+ ]));
68
+ }
69
+ /** Write the document to stdout with no extra trailing newline, so it is byte-identical to the file. */
70
+ logDocument(content) {
71
+ this.log(content.endsWith('\n') ? content.slice(0, -1) : content);
26
72
  }
27
73
  }
28
74
  //# sourceMappingURL=export.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/commands/ps/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAC;AAQjF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,SAAyB;IAClD,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC3B,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE;QACjC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;YACzD,QAAQ,EAAE,IAAI;SACjB,CAAC;KACL,CAAC;IAEK,KAAK,CAAC,GAAG;QACZ,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3C,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;QAEnC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAEhH,OAAO,MAAM,CAAC;IAClB,CAAC"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/commands/ps/export.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { SfCommand } from '@salesforce/sf-plugins-core';
2
- import { ActualAssignment, AssignmentUpdate, DesiredAssignment } from '../../core/model.js';
2
+ import { ActualAssignment, AssignmentUpdate, DesiredAssignment } from '../../core/index.js';
3
3
  export type PsPlanResult = {
4
4
  org: {
5
5
  username: string;
@@ -26,6 +26,8 @@ export type PsPlanResult = {
26
26
  toRemove: ActualAssignment[];
27
27
  unchanged: ActualAssignment[];
28
28
  };
29
+ /** The plan file written, when --out was given. */
30
+ outFile?: string;
29
31
  };
30
32
  export default class Plan extends SfCommand<PsPlanResult> {
31
33
  static readonly summary: string;
@@ -36,8 +38,14 @@ export default class Plan extends SfCommand<PsPlanResult> {
36
38
  file: import("@oclif/core/interfaces").OptionFlag<string[], import("@oclif/core/interfaces").CustomOptions>;
37
39
  mode: import("@oclif/core/interfaces").OptionFlag<"additive" | "destructive" | "sync", import("@oclif/core/interfaces").CustomOptions>;
38
40
  'show-unchanged': import("@oclif/core/interfaces").BooleanFlag<boolean>;
41
+ out: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
39
42
  };
40
43
  run(): Promise<PsPlanResult>;
44
+ /** Freeze the resolved, mode-scoped change set to a plan file that `apply --plan` runs verbatim. */
45
+ private writePlanFile;
46
+ private logWrotePlan;
47
+ /** Render the human-readable plan body once the run is known to be valid. */
48
+ private logPlan;
41
49
  /** The assignments the chosen mode would actually act on. */
42
50
  private actionable;
43
51
  private logBody;
@@ -45,5 +53,15 @@ export default class Plan extends SfCommand<PsPlanResult> {
45
53
  private reportDrift;
46
54
  private reportUnchanged;
47
55
  private applyCommand;
56
+ private errorInvalid;
57
+ private logHeaderTitle;
58
+ private logHeaderOrg;
59
+ private logEmptyNoChanges;
60
+ private logEmptyNothingToApply;
61
+ private logSummaryNext;
62
+ private logDriftAdditive;
63
+ private logDriftDestructive;
64
+ private logSummaryUnchanged;
65
+ private logSummaryUnchangedListed;
48
66
  }
49
67
  //# sourceMappingURL=plan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/commands/ps/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAS,MAAM,6BAA6B,CAAC;AAM/D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAuB,MAAM,qBAAqB,CAAC;AAKjH,MAAM,MAAM,YAAY,GAAG;IACvB,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IACxG,iEAAiE;IACjE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,mGAAmG;IACnG,OAAO,EAAE;QACL,KAAK,EAAE,iBAAiB,EAAE,CAAC;QAC3B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;QAC7B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;QAC7B,SAAS,EAAE,gBAAgB,EAAE,CAAC;KACjC,CAAC;CACL,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,SAAS,CAAC,YAAY,CAAC;IACrD,gBAAuB,OAAO,SAAkC;IAChE,gBAAuB,WAAW,SAAsC;IACxE,gBAAuB,QAAQ,WAAoC;IAEnE,gBAAuB,KAAK;;;;;MAgB1B;IAEW,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;IAiFzC,6DAA6D;IAC7D,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,YAAY;CAKvB"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/commands/ps/plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAS,MAAM,6BAA6B,CAAC;AAK/D,OAAO,EAMH,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EAIpB,MAAM,qBAAqB,CAAC;AAK7B,MAAM,MAAM,YAAY,GAAG;IACvB,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IACxG,iEAAiE;IACjE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,mGAAmG;IACnG,OAAO,EAAE;QACL,KAAK,EAAE,iBAAiB,EAAE,CAAC;QAC3B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;QAC7B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;QAC7B,SAAS,EAAE,gBAAgB,EAAE,CAAC;KACjC,CAAC;IACF,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,SAAS,CAAC,YAAY,CAAC;IACrD,gBAAuB,OAAO,SAAkC;IAChE,gBAAuB,WAAW,SAAsC;IACxE,gBAAuB,QAAQ,WAAoC;IAEnE,gBAAuB,KAAK;;;;;;MAmB1B;IAEW,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;IAkEzC,oGAAoG;YACtF,aAAa;IAsB3B,OAAO,CAAC,YAAY;IAUpB,6EAA6E;IAC7E,OAAO,CAAC,OAAO;IA0Cf,6DAA6D;IAC7D,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,yBAAyB;CAGpC"}