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.
- package/LICENSE.md +28 -0
- package/README.md +141 -23
- package/lib/adapters/connection-org-client.d.ts +7 -3
- package/lib/adapters/connection-org-client.d.ts.map +1 -1
- package/lib/adapters/connection-org-client.js +94 -63
- package/lib/adapters/connection-org-client.js.map +1 -1
- package/lib/adapters/index.d.ts +2 -0
- package/lib/adapters/index.d.ts.map +1 -0
- package/lib/adapters/index.js +2 -0
- package/lib/adapters/index.js.map +1 -0
- package/lib/commands/ps/apply.d.ts +28 -1
- package/lib/commands/ps/apply.d.ts.map +1 -1
- package/lib/commands/ps/apply.js +155 -35
- package/lib/commands/ps/apply.js.map +1 -1
- package/lib/commands/ps/check.d.ts +3 -1
- package/lib/commands/ps/check.d.ts.map +1 -1
- package/lib/commands/ps/check.js +15 -6
- package/lib/commands/ps/check.js.map +1 -1
- package/lib/commands/ps/export.d.ts +11 -2
- package/lib/commands/ps/export.d.ts.map +1 -1
- package/lib/commands/ps/export.js +53 -7
- package/lib/commands/ps/export.js.map +1 -1
- package/lib/commands/ps/plan.d.ts +19 -1
- package/lib/commands/ps/plan.d.ts.map +1 -1
- package/lib/commands/ps/plan.js +121 -30
- package/lib/commands/ps/plan.js.map +1 -1
- package/lib/commands/ps/validate.d.ts +3 -1
- package/lib/commands/ps/validate.d.ts.map +1 -1
- package/lib/commands/ps/validate.js +16 -7
- package/lib/commands/ps/validate.js.map +1 -1
- package/lib/core/finding.d.ts +3 -2
- package/lib/core/finding.d.ts.map +1 -1
- package/lib/core/finding.js +1 -1
- package/lib/core/finding.js.map +1 -1
- package/lib/core/index.d.ts +11 -0
- package/lib/core/index.d.ts.map +1 -0
- package/lib/core/index.js +10 -0
- package/lib/core/index.js.map +1 -0
- package/lib/core/load.d.ts.map +1 -1
- package/lib/core/load.js +17 -10
- package/lib/core/load.js.map +1 -1
- package/lib/core/mode.d.ts +18 -0
- package/lib/core/mode.d.ts.map +1 -0
- package/lib/core/mode.js +16 -0
- package/lib/core/mode.js.map +1 -0
- package/lib/core/model.d.ts +5 -0
- package/lib/core/model.d.ts.map +1 -1
- package/lib/core/normalize.d.ts +2 -0
- package/lib/core/normalize.d.ts.map +1 -1
- package/lib/core/normalize.js +7 -0
- package/lib/core/normalize.js.map +1 -1
- package/lib/core/plan-file.d.ts +61 -0
- package/lib/core/plan-file.d.ts.map +1 -0
- package/lib/core/plan-file.js +74 -0
- package/lib/core/plan-file.js.map +1 -0
- package/lib/core/report.d.ts +2 -1
- package/lib/core/report.d.ts.map +1 -1
- package/lib/core/report.js +32 -21
- package/lib/core/report.js.map +1 -1
- package/lib/core/schema.d.ts +2 -12
- package/lib/core/schema.d.ts.map +1 -1
- package/lib/core/schema.js +2 -2
- package/lib/core/schema.js.map +1 -1
- package/lib/services/adapters/index.d.ts +2 -0
- package/lib/services/adapters/index.d.ts.map +1 -0
- package/lib/services/adapters/index.js +2 -0
- package/lib/services/adapters/index.js.map +1 -0
- package/lib/services/adapters/org-client.d.ts +3 -3
- package/lib/services/adapters/org-client.d.ts.map +1 -1
- package/lib/services/apply.d.ts +21 -11
- package/lib/services/apply.d.ts.map +1 -1
- package/lib/services/apply.js +54 -37
- package/lib/services/apply.js.map +1 -1
- package/lib/services/check.d.ts +3 -7
- package/lib/services/check.d.ts.map +1 -1
- package/lib/services/check.js +5 -12
- package/lib/services/check.js.map +1 -1
- package/lib/services/export.d.ts +11 -6
- package/lib/services/export.d.ts.map +1 -1
- package/lib/services/export.js +14 -10
- package/lib/services/export.js.map +1 -1
- package/lib/services/index.d.ts +7 -0
- package/lib/services/index.d.ts.map +1 -0
- package/lib/services/index.js +7 -0
- package/lib/services/index.js.map +1 -0
- package/lib/services/plan.d.ts +7 -10
- package/lib/services/plan.d.ts.map +1 -1
- package/lib/services/plan.js +28 -18
- package/lib/services/plan.js.map +1 -1
- package/lib/services/resolution.d.ts +6 -6
- package/lib/services/resolution.d.ts.map +1 -1
- package/lib/services/resolution.js +21 -9
- package/lib/services/resolution.js.map +1 -1
- package/lib/services/validate.d.ts +7 -7
- package/lib/services/validate.d.ts.map +1 -1
- package/lib/services/validate.js +20 -13
- package/lib/services/validate.js.map +1 -1
- package/messages/ps.apply.md +34 -2
- package/messages/ps.check.md +1 -1
- package/messages/ps.export.md +21 -1
- package/messages/ps.plan.md +8 -0
- package/messages/ps.validate.md +1 -1
- 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":"
|
|
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"}
|
package/lib/commands/ps/apply.js
CHANGED
|
@@ -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/
|
|
4
|
-
import { ApplyService } from '../../services/
|
|
5
|
-
import { formatDiff } from '../../core/
|
|
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
|
-
|
|
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.
|
|
54
|
+
return this.confirmDelete(count);
|
|
51
55
|
};
|
|
52
|
-
const service = new ApplyService(orgClient,
|
|
53
|
-
const
|
|
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.
|
|
126
|
+
this.errorInvalid();
|
|
75
127
|
return summary;
|
|
76
128
|
}
|
|
77
129
|
this.log('');
|
|
78
|
-
for (const line of formatDiff(result.diff, { mode
|
|
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.
|
|
87
|
-
return
|
|
142
|
+
this.errorMaxDeletes(result.diff.toRemove.length, maxDeletes);
|
|
143
|
+
return;
|
|
88
144
|
}
|
|
89
|
-
this.reportDrift(result.drift,
|
|
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.
|
|
94
|
-
|
|
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.
|
|
102
|
-
return
|
|
153
|
+
this.logSummaryDeclined();
|
|
154
|
+
return;
|
|
103
155
|
}
|
|
104
|
-
this.
|
|
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.
|
|
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.
|
|
164
|
+
this.errorFailed();
|
|
117
165
|
}
|
|
118
|
-
return summary;
|
|
119
166
|
}
|
|
120
167
|
reportDrift(drift, mode) {
|
|
121
168
|
if (drift.adds > 0)
|
|
122
|
-
this.
|
|
169
|
+
this.logDriftNote(drift.adds, mode);
|
|
123
170
|
if (drift.updates > 0)
|
|
124
|
-
this.
|
|
171
|
+
this.logDriftNote(drift.updates, mode);
|
|
125
172
|
if (drift.removes > 0)
|
|
126
|
-
this.
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
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/
|
|
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;
|
|
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"}
|
package/lib/commands/ps/check.js
CHANGED
|
@@ -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/
|
|
4
|
-
import { formatFindings } from '../../core/
|
|
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(
|
|
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.
|
|
31
|
+
this.logSummaryCounts(result.errors, result.warnings);
|
|
32
32
|
if (result.failed) {
|
|
33
33
|
process.exitCode = 1;
|
|
34
34
|
if (!this.jsonEnabled()) {
|
|
35
|
-
this.
|
|
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;
|
|
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;
|
|
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/
|
|
4
|
-
import {
|
|
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
|
|
23
|
-
const result = await service.run();
|
|
24
|
-
this.
|
|
25
|
-
|
|
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;
|
|
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/
|
|
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":"
|
|
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"}
|