@syntax-syllogism/warden-core 0.2.0 → 0.3.1

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 (63) hide show
  1. package/README.md +26 -4
  2. package/conformance/README.md +21 -0
  3. package/conformance/fixtures/01-single-persona.json +34 -0
  4. package/conformance/fixtures/02-multi-persona-union.json +32 -0
  5. package/conformance/fixtures/03-duplicate-grant-dedup.json +24 -0
  6. package/conformance/fixtures/04-already-present-noop.json +15 -0
  7. package/conformance/fixtures/05-unresolved-reference.json +17 -0
  8. package/conformance/fixtures/06-multi-user.json +28 -0
  9. package/conformance/fixtures/07-deterministic-ordering.json +39 -0
  10. package/conformance/fixtures/08-category-specific-reference-keys.json +42 -0
  11. package/lib/commandOptions.d.ts +84 -0
  12. package/lib/commandOptions.js +71 -0
  13. package/lib/commandOptions.js.map +1 -0
  14. package/lib/index.d.ts +10 -3
  15. package/lib/index.js +6 -3
  16. package/lib/index.js.map +1 -1
  17. package/lib/lifecycle/errors.d.ts +1 -1
  18. package/lib/lifecycle/errors.js.map +1 -1
  19. package/lib/lifecycle/freezeState.d.ts +0 -16
  20. package/lib/lifecycle/freezeState.js +0 -73
  21. package/lib/lifecycle/freezeState.js.map +1 -1
  22. package/lib/lifecycle/stripPlan.d.ts +2 -13
  23. package/lib/lifecycle/stripPlan.js +2 -53
  24. package/lib/lifecycle/stripPlan.js.map +1 -1
  25. package/lib/matching/index.js +8 -8
  26. package/lib/matching/index.js.map +1 -1
  27. package/lib/provisioning/conformancePlan.d.ts +7 -0
  28. package/lib/provisioning/conformancePlan.js +135 -0
  29. package/lib/provisioning/conformancePlan.js.map +1 -0
  30. package/lib/provisioning/provisionUserUseCase.d.ts +0 -1
  31. package/lib/provisioning/provisionUserUseCase.js +0 -5
  32. package/lib/provisioning/provisionUserUseCase.js.map +1 -1
  33. package/lib/provisioning/userPlan.js +2 -2
  34. package/lib/provisioning/userPlan.js.map +1 -1
  35. package/lib/provisioning/userSave.d.ts +2 -1
  36. package/lib/provisioning/userSave.js +10 -6
  37. package/lib/provisioning/userSave.js.map +1 -1
  38. package/lib/relatedRecords/apply.d.ts +1 -1
  39. package/lib/relatedRecords/apply.js +5 -4
  40. package/lib/relatedRecords/apply.js.map +1 -1
  41. package/lib/relatedRecords/preflight.d.ts +2 -4
  42. package/lib/relatedRecords/preflight.js +2 -4
  43. package/lib/relatedRecords/preflight.js.map +1 -1
  44. package/lib/spec/conformanceFixture.d.ts +209 -0
  45. package/lib/spec/conformanceFixture.js +77 -0
  46. package/lib/spec/conformanceFixture.js.map +1 -0
  47. package/lib/spec/index.d.ts +3 -1
  48. package/lib/spec/index.js +2 -1
  49. package/lib/spec/index.js.map +1 -1
  50. package/lib/spec/parse.d.ts +4 -0
  51. package/lib/spec/parse.js +4 -0
  52. package/lib/spec/parse.js.map +1 -1
  53. package/lib/useCase.d.ts +45 -0
  54. package/lib/useCase.js +31 -0
  55. package/lib/useCase.js.map +1 -0
  56. package/lib/useCases.d.ts +152 -0
  57. package/lib/useCases.js +698 -0
  58. package/lib/useCases.js.map +1 -0
  59. package/package.json +1 -1
  60. package/schemas/conformance-fixture.schema.json +444 -0
  61. package/lib/shared/prompt.d.ts +0 -4
  62. package/lib/shared/prompt.js +0 -15
  63. package/lib/shared/prompt.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/spec/parse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAWjE,MAAM,UAAU,GAAG,CAAC,MAAoB,EAAiB,EAAE,CACzD,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAA2B,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC;IAC1G,OAAO;CACR,CAAC,CAAC,CAAC;AAEN,MAAM,SAAS,GAAG,CAAC,MAAqB,EAAU,EAAE,CAClD,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAExG,MAAM,YAAY,GAAG,CAAC,IAA4B,EAAe,EAAE,CAAC,CAAC;IACnE,IAAI;IACJ,OAAO,EAAE,4DAA4D;CACtE,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,KAAc,EAAmC,EAAE;IACnF,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,eAAe,IAAI,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzF,MAAM,aAAa,GAAI,KAAqC,CAAC,aAAa,CAAC;IAC3E,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,aAAa,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAClH,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM;QACN,KAAK,EAAE,IAAI,eAAe,CAAC,4BAA4B,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;KACxF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAI,MAAoB,EAAE,KAAc,EAAmB,EAAE;IAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM;YACN,KAAK,EAAE,IAAI,eAAe,CAAC,gBAAgB,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAI,MAAoB,EAAE,KAAc,EAAmB,EAAE;IACxF,MAAM,WAAW,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAI,MAAuB,EAAK,EAAE;IACrD,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,MAAM,CAAC,KAAK,CAAC;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAI,KAA0C,EAAE,IAAY,EAAE,KAAa,EAAmB,EAAE;IAChH,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,MAAM,GAAkB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,iBAAiB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACxF,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM;gBACN,KAAK,EAAE,IAAI,eAAe,CAAC,gBAAgB,EAAE,GAAG,KAAK,KAAK,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;aAC3F,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAc,EAAwC,EAAE,CAClG,oBAAoB,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAA0B,EAAE,CAChF,YAAY,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,IAAY,EAAwC,EAAE,CACnG,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,4BAA4B,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC;AAE/G,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAc,EAAqC,EAAE,CAC5F,oBAAoB,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAuB,EAAE,CAC1E,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAY,EAAqC,EAAE,CAC7F,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,yBAAyB,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;AAEzG,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAgC,EAAE,CACtF,oBAAoB,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAkB,EAAE,CAAC,YAAY,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;AACpH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAgC,EAAE,CACvF,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAkC,EAAE,CAClF,WAAW,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAoB,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1G,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAkC,EAAE,CACnF,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,kBAAkB,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/spec/parse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { Connection } from '@salesforce/core';
2
+ import { z } from 'zod';
3
+ export type ProgressEvent = {
4
+ phase: string;
5
+ done?: number;
6
+ total?: number;
7
+ message?: string;
8
+ };
9
+ export type UseCaseContext = {
10
+ onProgress?: (event: ProgressEvent) => void;
11
+ signal?: AbortSignal;
12
+ };
13
+ export type UiHint = {
14
+ kind: 'file' | 'string' | 'boolean' | 'enum';
15
+ label: string;
16
+ summary?: string;
17
+ placeholder?: string;
18
+ fileFilter?: 'json' | 'csv' | 'json-or-csv';
19
+ exclusiveGroup?: string;
20
+ dependsOn?: string;
21
+ };
22
+ export type CommandId = 'provision' | 'access' | 'diff' | 'freeze' | 'unfreeze' | 'strip' | 'snapshot' | 'restore';
23
+ export type CommandDescriptor<O> = {
24
+ id: CommandId;
25
+ title: string;
26
+ group: 'User Lifecycle';
27
+ destructive: boolean;
28
+ optionsSchema: z.ZodType<O>;
29
+ };
30
+ export type ReadUseCase<O, R> = {
31
+ kind: 'read';
32
+ descriptor: CommandDescriptor<O>;
33
+ run(conn: Connection, options: O, ctx?: UseCaseContext): Promise<R>;
34
+ };
35
+ export type WriteUseCase<O, P, R> = {
36
+ kind: 'write';
37
+ descriptor: CommandDescriptor<O>;
38
+ plan(conn: Connection, options: O, ctx?: UseCaseContext): Promise<P>;
39
+ apply(conn: Connection, plan: P, ctx?: UseCaseContext): Promise<R>;
40
+ };
41
+ export type UseCase<O, R> = ReadUseCase<O, R> | WriteUseCase<O, unknown, R>;
42
+ export declare const uiHints: <O>(schema: z.ZodType<O>) => Record<string, UiHint>;
43
+ export declare const checkCancelled: (ctx?: UseCaseContext) => void;
44
+ export declare const startProgress: (ctx?: UseCaseContext, phase?: string) => void;
45
+ export declare const endProgress: (ctx?: UseCaseContext, phase?: string) => void;
package/lib/useCase.js ADDED
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ import { WardenError } from './errors.js';
3
+ export const uiHints = (schema) => {
4
+ if (!(schema instanceof z.ZodObject))
5
+ return {};
6
+ return Object.fromEntries(Object.entries(schema.shape).flatMap(([key, field]) => {
7
+ let current = field;
8
+ let meta;
9
+ while (current != null) {
10
+ const candidate = current;
11
+ meta = candidate.meta?.();
12
+ if (meta?.ui ?? !candidate.unwrap)
13
+ break;
14
+ current = candidate.unwrap();
15
+ }
16
+ return meta?.ui ? [[key, meta.ui]] : [];
17
+ }));
18
+ };
19
+ export const checkCancelled = (ctx) => {
20
+ if (ctx?.signal?.aborted)
21
+ throw new WardenError('cancelled', 'Operation cancelled.');
22
+ };
23
+ export const startProgress = (ctx, phase = 'start') => {
24
+ checkCancelled(ctx);
25
+ ctx?.onProgress?.({ phase });
26
+ };
27
+ export const endProgress = (ctx, phase = 'complete') => {
28
+ checkCancelled(ctx);
29
+ ctx?.onProgress?.({ phase });
30
+ };
31
+ //# sourceMappingURL=useCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCase.js","sourceRoot":"","sources":["../src/useCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAiD1C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,MAAoB,EAA0B,EAAE;IACzE,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAChD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpD,IAAI,OAAO,GAAY,KAAK,CAAC;QAC7B,IAAI,IAAiC,CAAC;QACtC,OAAO,OAAO,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,OAAmE,CAAC;YACtF,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1B,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;gBAAE,MAAM;YACzC,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAoB,EAAQ,EAAE;IAC3D,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO;QAAE,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;AACvF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAoB,EAAE,KAAK,GAAG,OAAO,EAAQ,EAAE;IAC3E,cAAc,CAAC,GAAG,CAAC,CAAC;IACpB,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAoB,EAAE,KAAK,GAAG,UAAU,EAAQ,EAAE;IAC5E,cAAc,CAAC,GAAG,CAAC,CAAC;IACpB,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/B,CAAC,CAAC"}
@@ -0,0 +1,152 @@
1
+ import type { UserAccessResult } from './access/types.js';
2
+ import type { LifecycleResult, LifecycleUserResult, TargetError, LabelBundle } from './lifecycle/types.js';
3
+ import { type UserSnapshotFile } from './lifecycle/snapshotState.js';
4
+ import { type StripTargetState } from './lifecycle/stripPlan.js';
5
+ import { type ProvisionOptions, type FreezeOptions, type UnfreezeOptions, type StripOptions, type DiffOptions, type AccessOptions, type SnapshotOptions, type RestoreOptions } from './commandOptions.js';
6
+ import { type CommandDescriptor, type ReadUseCase, type WriteUseCase } from './useCase.js';
7
+ import type { ProvisionResult } from './provisioning/provisionUserUseCase.js';
8
+ import { type UserPlan, type OrderedUserResult } from './provisioning/userPlan.js';
9
+ import type { ResolvedRefs } from './provisioning/assignmentPlan.js';
10
+ import { type UserLicenseUsage } from './provisioning/licenseUsage.js';
11
+ type FreezeUpdate = {
12
+ resultIndex: number;
13
+ row: {
14
+ Id: string;
15
+ IsFrozen: boolean;
16
+ };
17
+ actionKey: string;
18
+ };
19
+ export type FreezePlan = {
20
+ direction: 'freeze' | 'unfreeze';
21
+ users: LifecycleUserResult[];
22
+ updates: FreezeUpdate[];
23
+ warnings: string[];
24
+ };
25
+ export declare const freeze: WriteUseCase<FreezeOptions, FreezePlan, LifecycleResult>;
26
+ export declare const unfreeze: WriteUseCase<UnfreezeOptions, FreezePlan, LifecycleResult>;
27
+ export type StripPlan = {
28
+ states: StripTargetState[];
29
+ errors: TargetError[];
30
+ preview: LifecycleResult;
31
+ warnings: string[];
32
+ };
33
+ export declare const strip: WriteUseCase<StripOptions, StripPlan, LifecycleResult>;
34
+ export declare const diff: ReadUseCase<DiffOptions, Awaited<ReturnType<typeof import('./lifecycle/userDiff.js').executePersonaDiff>> | Array<import('./lifecycle/conformance.js').UserConformanceVerdict>>;
35
+ export declare const access: ReadUseCase<AccessOptions, UserAccessResult>;
36
+ export declare const snapshot: ReadUseCase<SnapshotOptions, UserSnapshotFile>;
37
+ export type ProvisionPlan = {
38
+ plans: UserPlan[];
39
+ refs: SerializedRefs;
40
+ validationResults: OrderedUserResult[];
41
+ licenses: UserLicenseUsage[];
42
+ preview: ProvisionResult;
43
+ warnings: string[];
44
+ };
45
+ type SerializedRefs = Omit<ResolvedRefs, 'profilesByRef' | 'rolesByRef' | 'permissionSetIdsByRef' | 'permissionSetGroupIdsByRef' | 'publicGroupIdsByRef' | 'queueIdsByRef'> & {
46
+ profilesByRef: Record<string, string>;
47
+ rolesByRef: Record<string, string>;
48
+ permissionSetIdsByRef: Record<string, string>;
49
+ permissionSetGroupIdsByRef: Record<string, string>;
50
+ publicGroupIdsByRef: Record<string, string>;
51
+ queueIdsByRef: Record<string, string>;
52
+ };
53
+ export declare const provision: WriteUseCase<ProvisionOptions, ProvisionPlan, ProvisionResult>;
54
+ type RestoreUserPlan = {
55
+ userId: string;
56
+ result: LifecycleUserResult;
57
+ preview: LifecycleUserResult;
58
+ userUpdate?: {
59
+ Id: string;
60
+ IsActive: true;
61
+ };
62
+ loginUpdates: Array<{
63
+ Id: string;
64
+ IsFrozen: false;
65
+ }>;
66
+ permissionSetAdds: string[];
67
+ permissionSetGroupAdds: string[];
68
+ publicGroupAdds: string[];
69
+ queueAdds: string[];
70
+ licenseAdds: string[];
71
+ permissionSetItems: LabelBundle[];
72
+ permissionSetGroupItems: LabelBundle[];
73
+ publicGroupItems: LabelBundle[];
74
+ queueItems: LabelBundle[];
75
+ licenseItems: LabelBundle[];
76
+ };
77
+ export type RestorePlan = {
78
+ users: RestoreUserPlan[];
79
+ errors: LifecycleUserResult[];
80
+ warnings: string[];
81
+ preview: LifecycleResult;
82
+ };
83
+ export declare const restore: WriteUseCase<RestoreOptions, RestorePlan, LifecycleResult>;
84
+ export declare const commandDescriptors: readonly [CommandDescriptor<{
85
+ fuzzyUsername: boolean;
86
+ usersPath?: string | undefined;
87
+ usersDoc?: Record<string, unknown> | undefined;
88
+ personasPath?: string | undefined;
89
+ personasDoc?: Record<string, unknown> | undefined;
90
+ relatedPath?: string | undefined;
91
+ relatedDoc?: Record<string, unknown> | undefined;
92
+ externalId?: string | undefined;
93
+ inputFormat?: string | undefined;
94
+ csvListDelimiter?: string | undefined;
95
+ }>, CommandDescriptor<{
96
+ type: string;
97
+ target?: string | undefined;
98
+ user?: string | undefined;
99
+ sobject?: string | undefined;
100
+ }>, CommandDescriptor<{
101
+ mode: string;
102
+ verify: boolean;
103
+ user?: string | undefined;
104
+ against?: string | undefined;
105
+ usersPath?: string | undefined;
106
+ usersDoc?: Record<string, unknown> | undefined;
107
+ personasPath?: string | undefined;
108
+ personasDoc?: Record<string, unknown> | undefined;
109
+ externalId?: string | undefined;
110
+ inputFormat?: string | undefined;
111
+ csvListDelimiter?: string | undefined;
112
+ }>, CommandDescriptor<{
113
+ user?: string | undefined;
114
+ usersPath?: string | undefined;
115
+ usersDoc?: Record<string, unknown> | undefined;
116
+ externalId?: string | undefined;
117
+ inputFormat?: string | undefined;
118
+ csvListDelimiter?: string | undefined;
119
+ }>, CommandDescriptor<{
120
+ user?: string | undefined;
121
+ usersPath?: string | undefined;
122
+ usersDoc?: Record<string, unknown> | undefined;
123
+ externalId?: string | undefined;
124
+ inputFormat?: string | undefined;
125
+ csvListDelimiter?: string | undefined;
126
+ }>, CommandDescriptor<{
127
+ noFreeze: boolean;
128
+ noDeactivate: boolean;
129
+ keepPermsets: boolean;
130
+ keepPermsetGroups: boolean;
131
+ keepPublicGroups: boolean;
132
+ keepQueues: boolean;
133
+ keepLicenses: boolean;
134
+ user?: string | undefined;
135
+ usersPath?: string | undefined;
136
+ usersDoc?: Record<string, unknown> | undefined;
137
+ externalId?: string | undefined;
138
+ inputFormat?: string | undefined;
139
+ csvListDelimiter?: string | undefined;
140
+ }>, CommandDescriptor<{
141
+ org?: string | undefined;
142
+ user?: string | undefined;
143
+ usersPath?: string | undefined;
144
+ usersDoc?: Record<string, unknown> | undefined;
145
+ externalId?: string | undefined;
146
+ inputFormat?: string | undefined;
147
+ csvListDelimiter?: string | undefined;
148
+ }>, CommandDescriptor<{
149
+ snapshotPath?: string | undefined;
150
+ snapshotDoc?: Record<string, unknown> | undefined;
151
+ }>];
152
+ export type { ProvisionOptions, FreezeOptions, UnfreezeOptions, StripOptions, DiffOptions, AccessOptions, SnapshotOptions, RestoreOptions, };