@syntax-syllogism/warden-core 0.2.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 (191) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/LICENSE +21 -0
  3. package/README.md +111 -0
  4. package/lib/access/assignees.d.ts +27 -0
  5. package/lib/access/assignees.js +139 -0
  6. package/lib/access/assignees.js.map +1 -0
  7. package/lib/access/messages.d.ts +1 -0
  8. package/lib/access/messages.js +24 -0
  9. package/lib/access/messages.js.map +1 -0
  10. package/lib/access/metadata.d.ts +41 -0
  11. package/lib/access/metadata.js +168 -0
  12. package/lib/access/metadata.js.map +1 -0
  13. package/lib/access/muting.d.ts +7 -0
  14. package/lib/access/muting.js +22 -0
  15. package/lib/access/muting.js.map +1 -0
  16. package/lib/access/output.d.ts +12 -0
  17. package/lib/access/output.js +108 -0
  18. package/lib/access/output.js.map +1 -0
  19. package/lib/access/resolvers/field.d.ts +2 -0
  20. package/lib/access/resolvers/field.js +93 -0
  21. package/lib/access/resolvers/field.js.map +1 -0
  22. package/lib/access/resolvers/index.d.ts +2 -0
  23. package/lib/access/resolvers/index.js +22 -0
  24. package/lib/access/resolvers/index.js.map +1 -0
  25. package/lib/access/resolvers/object.d.ts +2 -0
  26. package/lib/access/resolvers/object.js +101 -0
  27. package/lib/access/resolvers/object.js.map +1 -0
  28. package/lib/access/resolvers/recordType.d.ts +2 -0
  29. package/lib/access/resolvers/recordType.js +181 -0
  30. package/lib/access/resolvers/recordType.js.map +1 -0
  31. package/lib/access/resolvers/setupEntity.d.ts +4 -0
  32. package/lib/access/resolvers/setupEntity.js +43 -0
  33. package/lib/access/resolvers/setupEntity.js.map +1 -0
  34. package/lib/access/resolvers/tab.d.ts +2 -0
  35. package/lib/access/resolvers/tab.js +36 -0
  36. package/lib/access/resolvers/tab.js.map +1 -0
  37. package/lib/access/reverse.d.ts +9 -0
  38. package/lib/access/reverse.js +429 -0
  39. package/lib/access/reverse.js.map +1 -0
  40. package/lib/access/soql.d.ts +6 -0
  41. package/lib/access/soql.js +31 -0
  42. package/lib/access/soql.js.map +1 -0
  43. package/lib/access/targetValidation.d.ts +7 -0
  44. package/lib/access/targetValidation.js +110 -0
  45. package/lib/access/targetValidation.js.map +1 -0
  46. package/lib/access/types.d.ts +88 -0
  47. package/lib/access/types.js +20 -0
  48. package/lib/access/types.js.map +1 -0
  49. package/lib/errors.d.ts +18 -0
  50. package/lib/errors.js +39 -0
  51. package/lib/errors.js.map +1 -0
  52. package/lib/index.d.ts +37 -0
  53. package/lib/index.js +33 -0
  54. package/lib/index.js.map +1 -0
  55. package/lib/lifecycle/assignmentState.d.ts +62 -0
  56. package/lib/lifecycle/assignmentState.js +89 -0
  57. package/lib/lifecycle/assignmentState.js.map +1 -0
  58. package/lib/lifecycle/conformance.d.ts +10 -0
  59. package/lib/lifecycle/conformance.js +59 -0
  60. package/lib/lifecycle/conformance.js.map +1 -0
  61. package/lib/lifecycle/diffOutput.d.ts +7 -0
  62. package/lib/lifecycle/diffOutput.js +94 -0
  63. package/lib/lifecycle/diffOutput.js.map +1 -0
  64. package/lib/lifecycle/dmlRunner.d.ts +30 -0
  65. package/lib/lifecycle/dmlRunner.js +45 -0
  66. package/lib/lifecycle/dmlRunner.js.map +1 -0
  67. package/lib/lifecycle/errors.d.ts +5 -0
  68. package/lib/lifecycle/errors.js +8 -0
  69. package/lib/lifecycle/errors.js.map +1 -0
  70. package/lib/lifecycle/freezeState.d.ts +28 -0
  71. package/lib/lifecycle/freezeState.js +88 -0
  72. package/lib/lifecycle/freezeState.js.map +1 -0
  73. package/lib/lifecycle/messages.d.ts +1 -0
  74. package/lib/lifecycle/messages.js +20 -0
  75. package/lib/lifecycle/messages.js.map +1 -0
  76. package/lib/lifecycle/output.d.ts +23 -0
  77. package/lib/lifecycle/output.js +148 -0
  78. package/lib/lifecycle/output.js.map +1 -0
  79. package/lib/lifecycle/snapshotState.d.ts +12 -0
  80. package/lib/lifecycle/snapshotState.js +353 -0
  81. package/lib/lifecycle/snapshotState.js.map +1 -0
  82. package/lib/lifecycle/stripApply.d.ts +3 -0
  83. package/lib/lifecycle/stripApply.js +17 -0
  84. package/lib/lifecycle/stripApply.js.map +1 -0
  85. package/lib/lifecycle/stripPlan.d.ts +75 -0
  86. package/lib/lifecycle/stripPlan.js +192 -0
  87. package/lib/lifecycle/stripPlan.js.map +1 -0
  88. package/lib/lifecycle/targeting.d.ts +32 -0
  89. package/lib/lifecycle/targeting.js +195 -0
  90. package/lib/lifecycle/targeting.js.map +1 -0
  91. package/lib/lifecycle/types.d.ts +88 -0
  92. package/lib/lifecycle/types.js +2 -0
  93. package/lib/lifecycle/types.js.map +1 -0
  94. package/lib/lifecycle/userDiff.d.ts +70 -0
  95. package/lib/lifecycle/userDiff.js +393 -0
  96. package/lib/lifecycle/userDiff.js.map +1 -0
  97. package/lib/matching/index.d.ts +53 -0
  98. package/lib/matching/index.js +181 -0
  99. package/lib/matching/index.js.map +1 -0
  100. package/lib/provisioning/assignmentPlan.d.ts +53 -0
  101. package/lib/provisioning/assignmentPlan.js +90 -0
  102. package/lib/provisioning/assignmentPlan.js.map +1 -0
  103. package/lib/provisioning/definitionReader.d.ts +38 -0
  104. package/lib/provisioning/definitionReader.js +77 -0
  105. package/lib/provisioning/definitionReader.js.map +1 -0
  106. package/lib/provisioning/errors.d.ts +9 -0
  107. package/lib/provisioning/errors.js +14 -0
  108. package/lib/provisioning/errors.js.map +1 -0
  109. package/lib/provisioning/licenseUsage.d.ts +15 -0
  110. package/lib/provisioning/licenseUsage.js +53 -0
  111. package/lib/provisioning/licenseUsage.js.map +1 -0
  112. package/lib/provisioning/messages.d.ts +4 -0
  113. package/lib/provisioning/messages.js +72 -0
  114. package/lib/provisioning/messages.js.map +1 -0
  115. package/lib/provisioning/planner.d.ts +63 -0
  116. package/lib/provisioning/planner.js +407 -0
  117. package/lib/provisioning/planner.js.map +1 -0
  118. package/lib/provisioning/provisionUserUseCase.d.ts +52 -0
  119. package/lib/provisioning/provisionUserUseCase.js +200 -0
  120. package/lib/provisioning/provisionUserUseCase.js.map +1 -0
  121. package/lib/provisioning/referenceResolution.d.ts +4 -0
  122. package/lib/provisioning/referenceResolution.js +173 -0
  123. package/lib/provisioning/referenceResolution.js.map +1 -0
  124. package/lib/provisioning/userPlan.d.ts +85 -0
  125. package/lib/provisioning/userPlan.js +162 -0
  126. package/lib/provisioning/userPlan.js.map +1 -0
  127. package/lib/provisioning/userSave.d.ts +24 -0
  128. package/lib/provisioning/userSave.js +119 -0
  129. package/lib/provisioning/userSave.js.map +1 -0
  130. package/lib/relatedRecords/apply.d.ts +18 -0
  131. package/lib/relatedRecords/apply.js +121 -0
  132. package/lib/relatedRecords/apply.js.map +1 -0
  133. package/lib/relatedRecords/catalog.d.ts +7 -0
  134. package/lib/relatedRecords/catalog.js +108 -0
  135. package/lib/relatedRecords/catalog.js.map +1 -0
  136. package/lib/relatedRecords/errors.d.ts +5 -0
  137. package/lib/relatedRecords/errors.js +8 -0
  138. package/lib/relatedRecords/errors.js.map +1 -0
  139. package/lib/relatedRecords/messages.d.ts +1 -0
  140. package/lib/relatedRecords/messages.js +2 -0
  141. package/lib/relatedRecords/messages.js.map +1 -0
  142. package/lib/relatedRecords/plan.d.ts +22 -0
  143. package/lib/relatedRecords/plan.js +271 -0
  144. package/lib/relatedRecords/plan.js.map +1 -0
  145. package/lib/relatedRecords/preflight.d.ts +29 -0
  146. package/lib/relatedRecords/preflight.js +164 -0
  147. package/lib/relatedRecords/preflight.js.map +1 -0
  148. package/lib/relatedRecords/sources.d.ts +25 -0
  149. package/lib/relatedRecords/sources.js +65 -0
  150. package/lib/relatedRecords/sources.js.map +1 -0
  151. package/lib/relatedRecords/types.d.ts +46 -0
  152. package/lib/relatedRecords/types.js +2 -0
  153. package/lib/relatedRecords/types.js.map +1 -0
  154. package/lib/shared/csv.d.ts +26 -0
  155. package/lib/shared/csv.js +237 -0
  156. package/lib/shared/csv.js.map +1 -0
  157. package/lib/shared/output.d.ts +25 -0
  158. package/lib/shared/output.js +74 -0
  159. package/lib/shared/output.js.map +1 -0
  160. package/lib/shared/prompt.d.ts +4 -0
  161. package/lib/shared/prompt.js +15 -0
  162. package/lib/shared/prompt.js.map +1 -0
  163. package/lib/shared/sfUtils.d.ts +19 -0
  164. package/lib/shared/sfUtils.js +42 -0
  165. package/lib/shared/sfUtils.js.map +1 -0
  166. package/lib/shared/userFields.d.ts +23 -0
  167. package/lib/shared/userFields.js +41 -0
  168. package/lib/shared/userFields.js.map +1 -0
  169. package/lib/spec/index.d.ts +10 -0
  170. package/lib/spec/index.js +6 -0
  171. package/lib/spec/index.js.map +1 -0
  172. package/lib/spec/parse.d.ts +32 -0
  173. package/lib/spec/parse.js +77 -0
  174. package/lib/spec/parse.js.map +1 -0
  175. package/lib/spec/personaDefinitions.d.ts +56 -0
  176. package/lib/spec/personaDefinitions.js +25 -0
  177. package/lib/spec/personaDefinitions.js.map +1 -0
  178. package/lib/spec/relatedCatalog.d.ts +61 -0
  179. package/lib/spec/relatedCatalog.js +32 -0
  180. package/lib/spec/relatedCatalog.js.map +1 -0
  181. package/lib/spec/snapshot.d.ts +42 -0
  182. package/lib/spec/snapshot.js +32 -0
  183. package/lib/spec/snapshot.js.map +1 -0
  184. package/lib/spec/usersDefinition.d.ts +19 -0
  185. package/lib/spec/usersDefinition.js +21 -0
  186. package/lib/spec/usersDefinition.js.map +1 -0
  187. package/package.json +78 -0
  188. package/schemas/persona-definitions.schema.json +108 -0
  189. package/schemas/related-catalog.schema.json +141 -0
  190. package/schemas/snapshot.schema.json +128 -0
  191. package/schemas/users-definition.schema.json +36 -0
@@ -0,0 +1,141 @@
1
+ {
2
+ "$id": "https://raw.githubusercontent.com/Syntax-Syllogism/warden-core/release/schemas/related-catalog.schema.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": {},
5
+ "description": "A Warden related-record catalog.",
6
+ "properties": {
7
+ "relationships": {
8
+ "additionalProperties": {
9
+ "additionalProperties": {},
10
+ "description": "A reusable related-record relationship.",
11
+ "properties": {
12
+ "fields": {
13
+ "additionalProperties": {
14
+ "anyOf": [
15
+ {
16
+ "additionalProperties": false,
17
+ "properties": {
18
+ "from": {
19
+ "description": "A source such as user.Department or user.Id.",
20
+ "type": "string"
21
+ }
22
+ },
23
+ "required": [
24
+ "from"
25
+ ],
26
+ "type": "object"
27
+ },
28
+ {
29
+ "additionalProperties": false,
30
+ "properties": {
31
+ "value": {
32
+ "description": "A literal value."
33
+ }
34
+ },
35
+ "required": [
36
+ "value"
37
+ ],
38
+ "type": "object"
39
+ }
40
+ ]
41
+ },
42
+ "description": "Target fields and their source expressions.",
43
+ "propertyNames": {
44
+ "type": "string"
45
+ },
46
+ "type": "object"
47
+ },
48
+ "match": {
49
+ "additionalProperties": {},
50
+ "description": "Target match configuration.",
51
+ "properties": {
52
+ "field": {
53
+ "description": "Target field used to find an existing record.",
54
+ "type": "string"
55
+ },
56
+ "from": {
57
+ "description": "User source used for the target match.",
58
+ "type": "string"
59
+ }
60
+ },
61
+ "required": [
62
+ "field",
63
+ "from"
64
+ ],
65
+ "type": "object"
66
+ },
67
+ "mode": {
68
+ "anyOf": [
69
+ {
70
+ "enum": [
71
+ "setIfEmpty",
72
+ "sync"
73
+ ],
74
+ "type": "string"
75
+ },
76
+ {
77
+ "type": "null"
78
+ }
79
+ ],
80
+ "description": "How configured fields are updated."
81
+ },
82
+ "phase": {
83
+ "description": "When the relationship is applied.",
84
+ "enum": [
85
+ "before",
86
+ "after"
87
+ ],
88
+ "type": "string"
89
+ },
90
+ "recordType": {
91
+ "anyOf": [
92
+ {
93
+ "additionalProperties": {},
94
+ "properties": {
95
+ "developerName": {
96
+ "description": "Record Type developer name.",
97
+ "type": "string"
98
+ }
99
+ },
100
+ "required": [
101
+ "developerName"
102
+ ],
103
+ "type": "object"
104
+ },
105
+ {
106
+ "type": "null"
107
+ }
108
+ ],
109
+ "description": "Optional target record type."
110
+ },
111
+ "sobject": {
112
+ "description": "Target Salesforce object API name.",
113
+ "type": "string"
114
+ }
115
+ },
116
+ "required": [
117
+ "sobject",
118
+ "phase",
119
+ "match",
120
+ "fields"
121
+ ],
122
+ "type": "object"
123
+ },
124
+ "description": "Relationships keyed by name.",
125
+ "propertyNames": {
126
+ "type": "string"
127
+ },
128
+ "type": "object"
129
+ },
130
+ "schemaVersion": {
131
+ "const": 1,
132
+ "description": "Supported file schema version. Omit it for version 1.",
133
+ "type": "number"
134
+ }
135
+ },
136
+ "required": [
137
+ "relationships"
138
+ ],
139
+ "title": "Warden related catalog schema",
140
+ "type": "object"
141
+ }
@@ -0,0 +1,128 @@
1
+ {
2
+ "$id": "https://raw.githubusercontent.com/Syntax-Syllogism/warden-core/release/schemas/snapshot.schema.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": {},
5
+ "description": "A Warden User snapshot file.",
6
+ "properties": {
7
+ "capturedAt": {
8
+ "description": "Capture timestamp in ISO format.",
9
+ "type": "string"
10
+ },
11
+ "org": {
12
+ "description": "Optional org alias or username.",
13
+ "type": "string"
14
+ },
15
+ "snapshotVersion": {
16
+ "const": 1,
17
+ "description": "Snapshot format version.",
18
+ "type": "number"
19
+ },
20
+ "users": {
21
+ "description": "Captured User state.",
22
+ "items": {
23
+ "additionalProperties": {},
24
+ "description": "A User assignment snapshot entry.",
25
+ "properties": {
26
+ "email": {
27
+ "description": "User email at capture time.",
28
+ "type": "string"
29
+ },
30
+ "IsActive": {
31
+ "description": "Whether the User was active at capture time.",
32
+ "type": "boolean"
33
+ },
34
+ "IsFrozen": {
35
+ "description": "Whether the User login was frozen at capture time.",
36
+ "type": "boolean"
37
+ },
38
+ "match": {
39
+ "description": "User field used to identify the snapshot entry.",
40
+ "minLength": 1,
41
+ "type": "string"
42
+ },
43
+ "matchValue": {
44
+ "description": "Value used with the match field.",
45
+ "minLength": 1,
46
+ "type": "string"
47
+ },
48
+ "name": {
49
+ "description": "User name at capture time.",
50
+ "type": "string"
51
+ },
52
+ "permissionSetGroups": {
53
+ "description": "Permission Set Group names.",
54
+ "items": {
55
+ "type": "string"
56
+ },
57
+ "type": "array"
58
+ },
59
+ "permissionSetLicenses": {
60
+ "description": "Permission Set License names.",
61
+ "items": {
62
+ "type": "string"
63
+ },
64
+ "type": "array"
65
+ },
66
+ "permissionSets": {
67
+ "description": "Permission Set names.",
68
+ "items": {
69
+ "type": "string"
70
+ },
71
+ "type": "array"
72
+ },
73
+ "profile": {
74
+ "description": "User profile at capture time.",
75
+ "type": "string"
76
+ },
77
+ "publicGroups": {
78
+ "description": "Public Group names.",
79
+ "items": {
80
+ "type": "string"
81
+ },
82
+ "type": "array"
83
+ },
84
+ "queues": {
85
+ "description": "Queue names.",
86
+ "items": {
87
+ "type": "string"
88
+ },
89
+ "type": "array"
90
+ },
91
+ "role": {
92
+ "description": "User role at capture time.",
93
+ "type": "string"
94
+ },
95
+ "userId": {
96
+ "description": "Salesforce User Id.",
97
+ "minLength": 1,
98
+ "type": "string"
99
+ },
100
+ "username": {
101
+ "description": "User username at capture time.",
102
+ "type": "string"
103
+ }
104
+ },
105
+ "required": [
106
+ "match",
107
+ "matchValue",
108
+ "userId",
109
+ "IsActive",
110
+ "IsFrozen",
111
+ "permissionSets",
112
+ "permissionSetGroups",
113
+ "publicGroups",
114
+ "queues",
115
+ "permissionSetLicenses"
116
+ ],
117
+ "type": "object"
118
+ },
119
+ "type": "array"
120
+ }
121
+ },
122
+ "required": [
123
+ "snapshotVersion",
124
+ "users"
125
+ ],
126
+ "title": "Warden snapshot schema",
127
+ "type": "object"
128
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "$id": "https://raw.githubusercontent.com/Syntax-Syllogism/warden-core/release/schemas/users-definition.schema.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": {},
5
+ "description": "A Warden JSON users definition file.",
6
+ "properties": {
7
+ "schemaVersion": {
8
+ "const": 1,
9
+ "description": "Supported file schema version. Omit it for version 1.",
10
+ "type": "number"
11
+ },
12
+ "users": {
13
+ "description": "User definitions.",
14
+ "items": {
15
+ "additionalProperties": {},
16
+ "description": "A User field record with optional Warden metadata.",
17
+ "properties": {
18
+ "personas": {
19
+ "description": "Persona names to merge for this user.",
20
+ "items": {
21
+ "type": "string"
22
+ },
23
+ "type": "array"
24
+ }
25
+ },
26
+ "type": "object"
27
+ },
28
+ "type": "array"
29
+ }
30
+ },
31
+ "required": [
32
+ "users"
33
+ ],
34
+ "title": "Warden users definition schema",
35
+ "type": "object"
36
+ }