@empire-builder-kit/nx 1.0.0-beta.10

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 (243) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +5 -0
  3. package/README.md +34 -0
  4. package/executors.json +74 -0
  5. package/generators.json +40 -0
  6. package/migrations/standard-pre-v1-to-v1.md +11 -0
  7. package/package.json +80 -0
  8. package/src/blueprints/execution.d.ts +31 -0
  9. package/src/blueprints/execution.js +166 -0
  10. package/src/blueprints/execution.js.map +1 -0
  11. package/src/blueprints/index.d.ts +5 -0
  12. package/src/blueprints/index.js +9 -0
  13. package/src/blueprints/index.js.map +1 -0
  14. package/src/blueprints/inputs.d.ts +43 -0
  15. package/src/blueprints/inputs.js +103 -0
  16. package/src/blueprints/inputs.js.map +1 -0
  17. package/src/blueprints/manifest.d.ts +281 -0
  18. package/src/blueprints/manifest.js +441 -0
  19. package/src/blueprints/manifest.js.map +1 -0
  20. package/src/blueprints/resolver.d.ts +28 -0
  21. package/src/blueprints/resolver.js +218 -0
  22. package/src/blueprints/resolver.js.map +1 -0
  23. package/src/blueprints/transitions.d.ts +20 -0
  24. package/src/blueprints/transitions.js +61 -0
  25. package/src/blueprints/transitions.js.map +1 -0
  26. package/src/executors/deploy/deploy.d.ts +4 -0
  27. package/src/executors/deploy/deploy.js +6 -0
  28. package/src/executors/deploy/deploy.js.map +1 -0
  29. package/src/executors/deployment-plan/deployment-plan.d.ts +9 -0
  30. package/src/executors/deployment-plan/deployment-plan.js +50 -0
  31. package/src/executors/deployment-plan/deployment-plan.js.map +1 -0
  32. package/src/executors/deployment-plan/schema.json +24 -0
  33. package/src/executors/dev/dev.d.ts +4 -0
  34. package/src/executors/dev/dev.js +6 -0
  35. package/src/executors/dev/dev.js.map +1 -0
  36. package/src/executors/dev-doctor/dev-doctor.d.ts +31 -0
  37. package/src/executors/dev-doctor/dev-doctor.js +260 -0
  38. package/src/executors/dev-doctor/dev-doctor.js.map +1 -0
  39. package/src/executors/dev-doctor/schema.json +17 -0
  40. package/src/executors/dev-setup/dev-setup.d.ts +11 -0
  41. package/src/executors/dev-setup/dev-setup.js +454 -0
  42. package/src/executors/dev-setup/dev-setup.js.map +1 -0
  43. package/src/executors/dev-setup/schema.json +16 -0
  44. package/src/executors/fleet/fleet.d.ts +62 -0
  45. package/src/executors/fleet/fleet.js +613 -0
  46. package/src/executors/fleet/fleet.js.map +1 -0
  47. package/src/executors/fleet/schema.json +37 -0
  48. package/src/executors/foundation-preflight/foundation-preflight.d.ts +15 -0
  49. package/src/executors/foundation-preflight/foundation-preflight.js +116 -0
  50. package/src/executors/foundation-preflight/foundation-preflight.js.map +1 -0
  51. package/src/executors/foundation-preflight/schema.json +31 -0
  52. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.d.ts +8 -0
  53. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js +41 -0
  54. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js.map +1 -0
  55. package/src/executors/foundation-profile-preflight/schema.json +21 -0
  56. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.d.ts +13 -0
  57. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js +69 -0
  58. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js.map +1 -0
  59. package/src/executors/foundation-remove-preflight/schema.json +17 -0
  60. package/src/executors/github-bootstrap/github-bootstrap.d.ts +8 -0
  61. package/src/executors/github-bootstrap/github-bootstrap.js +30 -0
  62. package/src/executors/github-bootstrap/github-bootstrap.js.map +1 -0
  63. package/src/executors/github-bootstrap/schema.json +25 -0
  64. package/src/executors/refresh/refresh.d.ts +4 -0
  65. package/src/executors/refresh/refresh.js +6 -0
  66. package/src/executors/refresh/refresh.js.map +1 -0
  67. package/src/executors/remove/remove.d.ts +4 -0
  68. package/src/executors/remove/remove.js +6 -0
  69. package/src/executors/remove/remove.js.map +1 -0
  70. package/src/executors/sst-lifecycle/run-sst-command.d.ts +31 -0
  71. package/src/executors/sst-lifecycle/run-sst-command.js +226 -0
  72. package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -0
  73. package/src/executors/sst-lifecycle/schema.json +45 -0
  74. package/src/executors/unlock/unlock.d.ts +4 -0
  75. package/src/executors/unlock/unlock.js +6 -0
  76. package/src/executors/unlock/unlock.js.map +1 -0
  77. package/src/executors/work-markers/schema.json +14 -0
  78. package/src/executors/work-markers/work-markers.d.ts +6 -0
  79. package/src/executors/work-markers/work-markers.js +20 -0
  80. package/src/executors/work-markers/work-markers.js.map +1 -0
  81. package/src/foundation/aurora-logical-database.d.ts +76 -0
  82. package/src/foundation/aurora-logical-database.js +419 -0
  83. package/src/foundation/aurora-logical-database.js.map +1 -0
  84. package/src/foundation/discovery.d.ts +55 -0
  85. package/src/foundation/discovery.js +55 -0
  86. package/src/foundation/discovery.js.map +1 -0
  87. package/src/foundation/index.d.ts +6 -0
  88. package/src/foundation/index.js +10 -0
  89. package/src/foundation/index.js.map +1 -0
  90. package/src/foundation/local-database-contract.d.ts +30 -0
  91. package/src/foundation/local-database-contract.js +75 -0
  92. package/src/foundation/local-database-contract.js.map +1 -0
  93. package/src/foundation/preflight.d.ts +31 -0
  94. package/src/foundation/preflight.js +114 -0
  95. package/src/foundation/preflight.js.map +1 -0
  96. package/src/foundation/provision-database-bindings.d.ts +30 -0
  97. package/src/foundation/provision-database-bindings.js +113 -0
  98. package/src/foundation/provision-database-bindings.js.map +1 -0
  99. package/src/foundation/provision-logical-database.d.ts +26 -0
  100. package/src/foundation/provision-logical-database.js +163 -0
  101. package/src/foundation/provision-logical-database.js.map +1 -0
  102. package/src/foundation/requirements.d.ts +37 -0
  103. package/src/foundation/requirements.js +141 -0
  104. package/src/foundation/requirements.js.map +1 -0
  105. package/src/foundation/stages.d.ts +14 -0
  106. package/src/foundation/stages.js +51 -0
  107. package/src/foundation/stages.js.map +1 -0
  108. package/src/generators/function/function.d.ts +13 -0
  109. package/src/generators/function/function.js +71 -0
  110. package/src/generators/function/function.js.map +1 -0
  111. package/src/generators/function/schema.d.ts +5 -0
  112. package/src/generators/function/schema.json +20 -0
  113. package/src/generators/job/job.d.ts +4 -0
  114. package/src/generators/job/job.js +5 -0
  115. package/src/generators/job/job.js.map +1 -0
  116. package/src/generators/preset/generator.d.ts +5 -0
  117. package/src/generators/preset/generator.js +41 -0
  118. package/src/generators/preset/generator.js.map +1 -0
  119. package/src/generators/preset/schema.d.ts +4 -0
  120. package/src/generators/preset/schema.json +22 -0
  121. package/src/generators/preset/workspace-files.d.ts +18 -0
  122. package/src/generators/preset/workspace-files.js +1605 -0
  123. package/src/generators/preset/workspace-files.js.map +1 -0
  124. package/src/generators/repository-policy/repository-policy.d.ts +4 -0
  125. package/src/generators/repository-policy/repository-policy.js +107 -0
  126. package/src/generators/repository-policy/repository-policy.js.map +1 -0
  127. package/src/generators/repository-policy/schema.d.ts +18 -0
  128. package/src/generators/repository-policy/schema.json +46 -0
  129. package/src/generators/service/service.d.ts +4 -0
  130. package/src/generators/service/service.js +5 -0
  131. package/src/generators/service/service.js.map +1 -0
  132. package/src/generators/slice/schema.d.ts +7 -0
  133. package/src/generators/slice/schema.json +38 -0
  134. package/src/generators/slice/slice.d.ts +26 -0
  135. package/src/generators/slice/slice.js +1698 -0
  136. package/src/generators/slice/slice.js.map +1 -0
  137. package/src/generators/upgrade/schema.d.ts +8 -0
  138. package/src/generators/upgrade/schema.json +31 -0
  139. package/src/generators/upgrade/upgrade.d.ts +27 -0
  140. package/src/generators/upgrade/upgrade.js +682 -0
  141. package/src/generators/upgrade/upgrade.js.map +1 -0
  142. package/src/generators/workload/schema.d.ts +6 -0
  143. package/src/generators/workload/schema.json +21 -0
  144. package/src/generators/workload/workload.d.ts +16 -0
  145. package/src/generators/workload/workload.js +157 -0
  146. package/src/generators/workload/workload.js.map +1 -0
  147. package/src/git-policy/action-pins.d.ts +28 -0
  148. package/src/git-policy/action-pins.js +35 -0
  149. package/src/git-policy/action-pins.js.map +1 -0
  150. package/src/git-policy/github-bootstrap.d.ts +23 -0
  151. package/src/git-policy/github-bootstrap.js +759 -0
  152. package/src/git-policy/github-bootstrap.js.map +1 -0
  153. package/src/git-policy/index.d.ts +3 -0
  154. package/src/git-policy/index.js +7 -0
  155. package/src/git-policy/index.js.map +1 -0
  156. package/src/git-policy/routing.d.ts +15 -0
  157. package/src/git-policy/routing.js +77 -0
  158. package/src/git-policy/routing.js.map +1 -0
  159. package/src/index.d.ts +8 -0
  160. package/src/index.js +12 -0
  161. package/src/index.js.map +1 -0
  162. package/src/local-dev/contracts.d.ts +31 -0
  163. package/src/local-dev/contracts.js +126 -0
  164. package/src/local-dev/contracts.js.map +1 -0
  165. package/src/local-dev/effects.d.ts +16 -0
  166. package/src/local-dev/effects.js +63 -0
  167. package/src/local-dev/effects.js.map +1 -0
  168. package/src/local-dev/gateway-daemon.d.ts +4 -0
  169. package/src/local-dev/gateway-daemon.js +39 -0
  170. package/src/local-dev/gateway-daemon.js.map +1 -0
  171. package/src/local-dev/gateway.d.ts +60 -0
  172. package/src/local-dev/gateway.js +368 -0
  173. package/src/local-dev/gateway.js.map +1 -0
  174. package/src/local-dev/identity.d.ts +16 -0
  175. package/src/local-dev/identity.js +101 -0
  176. package/src/local-dev/identity.js.map +1 -0
  177. package/src/local-dev/index.d.ts +7 -0
  178. package/src/local-dev/index.js +11 -0
  179. package/src/local-dev/index.js.map +1 -0
  180. package/src/local-dev/portless.d.ts +15 -0
  181. package/src/local-dev/portless.js +115 -0
  182. package/src/local-dev/portless.js.map +1 -0
  183. package/src/local-dev/ports.d.ts +10 -0
  184. package/src/local-dev/ports.js +39 -0
  185. package/src/local-dev/ports.js.map +1 -0
  186. package/src/local-dev/proxy.d.ts +37 -0
  187. package/src/local-dev/proxy.js +271 -0
  188. package/src/local-dev/proxy.js.map +1 -0
  189. package/src/local-dev/tls.d.ts +24 -0
  190. package/src/local-dev/tls.js +294 -0
  191. package/src/local-dev/tls.js.map +1 -0
  192. package/src/ownership/composition.d.ts +16 -0
  193. package/src/ownership/composition.js +125 -0
  194. package/src/ownership/composition.js.map +1 -0
  195. package/src/ownership/foundation-record.d.ts +66 -0
  196. package/src/ownership/foundation-record.js +108 -0
  197. package/src/ownership/foundation-record.js.map +1 -0
  198. package/src/ownership/hash.d.ts +2 -0
  199. package/src/ownership/hash.js +10 -0
  200. package/src/ownership/hash.js.map +1 -0
  201. package/src/ownership/index.d.ts +6 -0
  202. package/src/ownership/index.js +10 -0
  203. package/src/ownership/index.js.map +1 -0
  204. package/src/ownership/json-ownership.d.ts +13 -0
  205. package/src/ownership/json-ownership.js +147 -0
  206. package/src/ownership/json-ownership.js.map +1 -0
  207. package/src/ownership/record.d.ts +186 -0
  208. package/src/ownership/record.js +336 -0
  209. package/src/ownership/record.js.map +1 -0
  210. package/src/ownership/workspace-record.d.ts +66 -0
  211. package/src/ownership/workspace-record.js +108 -0
  212. package/src/ownership/workspace-record.js.map +1 -0
  213. package/src/repository-policy/aurora-preflight.d.ts +15 -0
  214. package/src/repository-policy/aurora-preflight.js +45 -0
  215. package/src/repository-policy/aurora-preflight.js.map +1 -0
  216. package/src/repository-policy/deployment-plan.d.ts +24 -0
  217. package/src/repository-policy/deployment-plan.js +124 -0
  218. package/src/repository-policy/deployment-plan.js.map +1 -0
  219. package/src/repository-policy/foundation-profile.d.ts +20 -0
  220. package/src/repository-policy/foundation-profile.js +45 -0
  221. package/src/repository-policy/foundation-profile.js.map +1 -0
  222. package/src/repository-policy/index.d.ts +4 -0
  223. package/src/repository-policy/index.js +8 -0
  224. package/src/repository-policy/index.js.map +1 -0
  225. package/src/repository-policy/policy.d.ts +59 -0
  226. package/src/repository-policy/policy.js +274 -0
  227. package/src/repository-policy/policy.js.map +1 -0
  228. package/src/schemas/blueprint-input-schema-v1.json +23 -0
  229. package/src/schemas/blueprint-v1.json +186 -0
  230. package/src/schemas/foundation-ownership-v2.json +42 -0
  231. package/src/schemas/foundation-requirement-v1.json +32 -0
  232. package/src/schemas/generated-ownership-v2.json +117 -0
  233. package/src/schemas/repository-policy-v1.json +58 -0
  234. package/src/schemas/workspace-ownership-v2.json +42 -0
  235. package/src/validation.d.ts +14 -0
  236. package/src/validation.js +14 -0
  237. package/src/validation.js.map +1 -0
  238. package/src/work-markers/index.d.ts +1 -0
  239. package/src/work-markers/index.js +5 -0
  240. package/src/work-markers/index.js.map +1 -0
  241. package/src/work-markers/work-markers.d.ts +39 -0
  242. package/src/work-markers/work-markers.js +359 -0
  243. package/src/work-markers/work-markers.js.map +1 -0
@@ -0,0 +1,336 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generatedOwnershipSchema = exports.managedJsonPointersSchema = exports.GENERATED_PATH_ORIGINS = exports.GENERATED_PATH_MODES = exports.GENERATED_OWNERSHIP_SCHEMA_VERSION = void 0;
4
+ exports.validateManagedJsonPointers = validateManagedJsonPointers;
5
+ exports.validateGeneratedOwnershipRecord = validateGeneratedOwnershipRecord;
6
+ const index_js_1 = require("../foundation/index.js");
7
+ const validation_js_1 = require("../validation.js");
8
+ const hash_js_1 = require("./hash.js");
9
+ const json_ownership_js_1 = require("./json-ownership.js");
10
+ exports.GENERATED_OWNERSHIP_SCHEMA_VERSION = 2;
11
+ exports.GENERATED_PATH_MODES = ['managed', 'seeded'];
12
+ exports.GENERATED_PATH_ORIGINS = [
13
+ 'blueprint',
14
+ 'composition',
15
+ 'framework',
16
+ ];
17
+ function validateManagedJsonPointers(entry, path, issues) {
18
+ if (entry.managedJsonPointers === undefined)
19
+ return;
20
+ if (entry.mode !== 'managed') {
21
+ issues.push({
22
+ message: 'is only valid for managed paths',
23
+ path: `${path}.managedJsonPointers`,
24
+ });
25
+ }
26
+ if (!Array.isArray(entry.managedJsonPointers) ||
27
+ entry.managedJsonPointers.length === 0) {
28
+ issues.push({
29
+ message: 'must be a non-empty array',
30
+ path: `${path}.managedJsonPointers`,
31
+ });
32
+ return;
33
+ }
34
+ const pointers = entry.managedJsonPointers;
35
+ pointers.forEach((pointer, index) => {
36
+ if (typeof pointer !== 'string' ||
37
+ !json_ownership_js_1.MANAGED_JSON_POINTER_PATTERN.test(pointer)) {
38
+ issues.push({
39
+ message: 'must be a valid non-root RFC 6901 JSON pointer',
40
+ path: `${path}.managedJsonPointers[${index}]`,
41
+ });
42
+ }
43
+ });
44
+ if (new Set(pointers).size !== pointers.length) {
45
+ issues.push({
46
+ message: 'must not contain duplicates',
47
+ path: `${path}.managedJsonPointers`,
48
+ });
49
+ }
50
+ }
51
+ exports.managedJsonPointersSchema = {
52
+ items: {
53
+ pattern: '^(?:/(?:[^~/]|~[01])*)+$',
54
+ type: 'string',
55
+ },
56
+ minItems: 1,
57
+ type: 'array',
58
+ uniqueItems: true,
59
+ };
60
+ const exactSemanticVersionPattern = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
61
+ function validateMigrationHistory(value, issues) {
62
+ if (value === undefined)
63
+ return;
64
+ if (!Array.isArray(value) || value.length === 0) {
65
+ issues.push({
66
+ message: 'must be a non-empty array when present',
67
+ path: 'ownership.migrationHistory',
68
+ });
69
+ return;
70
+ }
71
+ const identities = new Set();
72
+ value.forEach((entry, index) => {
73
+ const path = `ownership.migrationHistory[${index}]`;
74
+ if (!(0, validation_js_1.isRecord)(entry)) {
75
+ issues.push({ message: 'must be an object', path });
76
+ return;
77
+ }
78
+ for (const key of Object.keys(entry)) {
79
+ if (![
80
+ 'managedPlanDigest',
81
+ 'migrationId',
82
+ 'sourceVersion',
83
+ 'targetVersion',
84
+ ].includes(key)) {
85
+ issues.push({
86
+ message: 'is not an allowed property',
87
+ path: `${path}.${key}`,
88
+ });
89
+ }
90
+ }
91
+ if (typeof entry.migrationId !== 'string' ||
92
+ entry.migrationId.trim() === '') {
93
+ issues.push({
94
+ message: 'must be a non-empty string',
95
+ path: `${path}.migrationId`,
96
+ });
97
+ }
98
+ for (const member of ['sourceVersion', 'targetVersion']) {
99
+ if (typeof entry[member] !== 'string' ||
100
+ !exactSemanticVersionPattern.test(entry[member])) {
101
+ issues.push({
102
+ message: 'must be an exact semantic version',
103
+ path: `${path}.${member}`,
104
+ });
105
+ }
106
+ }
107
+ if (typeof entry.managedPlanDigest !== 'string' ||
108
+ !hash_js_1.GENERATED_CONTENT_HASH_PATTERN.test(entry.managedPlanDigest)) {
109
+ issues.push({
110
+ message: 'must be a lowercase SHA-256 digest',
111
+ path: `${path}.managedPlanDigest`,
112
+ });
113
+ }
114
+ const identity = `${String(entry.migrationId)}\0${String(entry.sourceVersion)}\0${String(entry.targetVersion)}`;
115
+ if (identities.has(identity)) {
116
+ issues.push({
117
+ message: 'must not duplicate a migration history entry',
118
+ path,
119
+ });
120
+ }
121
+ identities.add(identity);
122
+ });
123
+ }
124
+ function validateStringArray(value, path, issues) {
125
+ if (!Array.isArray(value)) {
126
+ issues.push({ message: 'must be an array', path });
127
+ return;
128
+ }
129
+ value.forEach((entry, index) => {
130
+ if (typeof entry !== 'string' || entry.trim() === '') {
131
+ issues.push({
132
+ message: 'must be a non-empty string',
133
+ path: `${path}[${index}]`,
134
+ });
135
+ }
136
+ });
137
+ }
138
+ function isSafeWorkspacePath(value) {
139
+ return (value !== '' &&
140
+ !value.startsWith('/') &&
141
+ !value.startsWith('\\') &&
142
+ !value.split(/[\\/]/).includes('..'));
143
+ }
144
+ function validateGeneratedOwnershipRecord(value) {
145
+ if (!(0, validation_js_1.isRecord)(value)) {
146
+ return {
147
+ valid: false,
148
+ issues: [{ message: 'must be an object', path: 'ownership' }],
149
+ };
150
+ }
151
+ const issues = [];
152
+ if (value.schemaVersion !== exports.GENERATED_OWNERSHIP_SCHEMA_VERSION) {
153
+ issues.push({ message: 'must equal 2', path: 'ownership.schemaVersion' });
154
+ }
155
+ if (typeof value.slice !== 'string' || value.slice.trim() === '') {
156
+ issues.push({
157
+ message: 'must be a non-empty string',
158
+ path: 'ownership.slice',
159
+ });
160
+ }
161
+ if (!(0, validation_js_1.isRecord)(value.blueprint)) {
162
+ issues.push({ message: 'must be an object', path: 'ownership.blueprint' });
163
+ }
164
+ else {
165
+ if (typeof value.blueprint.name !== 'string' ||
166
+ value.blueprint.name === '') {
167
+ issues.push({
168
+ message: 'must be non-empty',
169
+ path: 'ownership.blueprint.name',
170
+ });
171
+ }
172
+ if (typeof value.blueprint.version !== 'string' ||
173
+ value.blueprint.version === '') {
174
+ issues.push({
175
+ message: 'must be non-empty',
176
+ path: 'ownership.blueprint.version',
177
+ });
178
+ }
179
+ }
180
+ const foundation = (0, index_js_1.validateFoundationRequirement)(value.foundation, 'ownership.foundation');
181
+ if (!foundation.valid) {
182
+ issues.push(...foundation.issues);
183
+ }
184
+ if (!(0, validation_js_1.isRecord)(value.inputs)) {
185
+ issues.push({ message: 'must be an object', path: 'ownership.inputs' });
186
+ }
187
+ validateMigrationHistory(value.migrationHistory, issues);
188
+ if (!Array.isArray(value.paths)) {
189
+ issues.push({ message: 'must be an array', path: 'ownership.paths' });
190
+ }
191
+ else {
192
+ value.paths.forEach((entry, index) => {
193
+ const path = `ownership.paths[${index}]`;
194
+ if (!(0, validation_js_1.isRecord)(entry)) {
195
+ issues.push({ message: 'must be an object', path });
196
+ return;
197
+ }
198
+ if (typeof entry.path !== 'string' || !isSafeWorkspacePath(entry.path)) {
199
+ issues.push({
200
+ message: 'must be a safe workspace-relative path',
201
+ path: `${path}.path`,
202
+ });
203
+ }
204
+ if (!exports.GENERATED_PATH_MODES.includes(entry.mode)) {
205
+ issues.push({
206
+ message: 'must equal managed or seeded',
207
+ path: `${path}.mode`,
208
+ });
209
+ }
210
+ if (!exports.GENERATED_PATH_ORIGINS.includes(entry.origin)) {
211
+ issues.push({
212
+ message: 'must equal blueprint, composition, or framework',
213
+ path: `${path}.origin`,
214
+ });
215
+ }
216
+ if (typeof entry.sha256 !== 'string' ||
217
+ !hash_js_1.GENERATED_CONTENT_HASH_PATTERN.test(entry.sha256)) {
218
+ issues.push({
219
+ message: 'must be a lowercase SHA-256 digest',
220
+ path: `${path}.sha256`,
221
+ });
222
+ }
223
+ validateManagedJsonPointers(entry, path, issues);
224
+ });
225
+ }
226
+ validateStringArray(value.projects, 'ownership.projects', issues);
227
+ validateStringArray(value.verification, 'ownership.verification', issues);
228
+ if (!(0, validation_js_1.isRecord)(value.contracts)) {
229
+ issues.push({ message: 'must be an object', path: 'ownership.contracts' });
230
+ }
231
+ else {
232
+ validateStringArray(value.contracts.publishes, 'ownership.contracts.publishes', issues);
233
+ validateStringArray(value.contracts.consumes, 'ownership.contracts.consumes', issues);
234
+ }
235
+ return (0, validation_js_1.validationResult)(value, issues);
236
+ }
237
+ const stringArraySchema = {
238
+ items: { minLength: 1, type: 'string' },
239
+ type: 'array',
240
+ };
241
+ exports.generatedOwnershipSchema = {
242
+ $id: 'https://empirebuilderkit.dev/schemas/generated-ownership-v2.json',
243
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
244
+ additionalProperties: false,
245
+ properties: {
246
+ blueprint: {
247
+ additionalProperties: false,
248
+ properties: {
249
+ name: { minLength: 1, type: 'string' },
250
+ version: { minLength: 1, type: 'string' },
251
+ },
252
+ required: ['name', 'version'],
253
+ type: 'object',
254
+ },
255
+ contracts: {
256
+ additionalProperties: false,
257
+ properties: {
258
+ consumes: stringArraySchema,
259
+ publishes: stringArraySchema,
260
+ },
261
+ required: ['publishes', 'consumes'],
262
+ type: 'object',
263
+ },
264
+ foundation: {
265
+ $ref: 'https://empirebuilderkit.dev/schemas/foundation-requirement-v1.json',
266
+ },
267
+ inputs: { type: 'object' },
268
+ migrationHistory: {
269
+ items: {
270
+ additionalProperties: false,
271
+ properties: {
272
+ managedPlanDigest: {
273
+ pattern: hash_js_1.GENERATED_CONTENT_HASH_PATTERN.source,
274
+ type: 'string',
275
+ },
276
+ migrationId: { minLength: 1, type: 'string' },
277
+ sourceVersion: {
278
+ pattern: exactSemanticVersionPattern.source,
279
+ type: 'string',
280
+ },
281
+ targetVersion: {
282
+ pattern: exactSemanticVersionPattern.source,
283
+ type: 'string',
284
+ },
285
+ },
286
+ required: [
287
+ 'sourceVersion',
288
+ 'targetVersion',
289
+ 'migrationId',
290
+ 'managedPlanDigest',
291
+ ],
292
+ type: 'object',
293
+ },
294
+ minItems: 1,
295
+ type: 'array',
296
+ uniqueItems: true,
297
+ },
298
+ paths: {
299
+ items: {
300
+ additionalProperties: false,
301
+ properties: {
302
+ managedJsonPointers: exports.managedJsonPointersSchema,
303
+ mode: { enum: [...exports.GENERATED_PATH_MODES] },
304
+ origin: { enum: [...exports.GENERATED_PATH_ORIGINS] },
305
+ path: {
306
+ minLength: 1,
307
+ not: { pattern: '(^[\\\\/])|(^|[\\\\/])\\.\\.([\\\\/]|$)' },
308
+ type: 'string',
309
+ },
310
+ sha256: { pattern: '^[a-f0-9]{64}$', type: 'string' },
311
+ },
312
+ required: ['path', 'mode', 'origin', 'sha256'],
313
+ type: 'object',
314
+ },
315
+ type: 'array',
316
+ },
317
+ projects: stringArraySchema,
318
+ schemaVersion: { const: exports.GENERATED_OWNERSHIP_SCHEMA_VERSION },
319
+ slice: { minLength: 1, type: 'string' },
320
+ verification: stringArraySchema,
321
+ },
322
+ required: [
323
+ 'schemaVersion',
324
+ 'slice',
325
+ 'blueprint',
326
+ 'foundation',
327
+ 'inputs',
328
+ 'paths',
329
+ 'projects',
330
+ 'verification',
331
+ 'contracts',
332
+ ],
333
+ title: 'Empire Builder Kit Generated Ownership Record v2',
334
+ type: 'object',
335
+ };
336
+ //# sourceMappingURL=record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../../packages/nx/src/ownership/record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { type ValidationResult } from '../validation.js';
2
+ import { type GeneratedPathOwnership } from './record.js';
3
+ export declare const WORKSPACE_OWNERSHIP_SCHEMA_VERSION: 2;
4
+ export interface WorkspaceOwnershipRecord {
5
+ frameworkVersion: string;
6
+ kind: 'workspace';
7
+ paths: GeneratedPathOwnership[];
8
+ schemaVersion: typeof WORKSPACE_OWNERSHIP_SCHEMA_VERSION;
9
+ }
10
+ export declare function validateWorkspaceOwnershipRecord(value: unknown): ValidationResult<WorkspaceOwnershipRecord>;
11
+ export declare const workspaceOwnershipSchema: {
12
+ readonly $id: "https://empirebuilderkit.dev/schemas/workspace-ownership-v2.json";
13
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
14
+ readonly additionalProperties: false;
15
+ readonly properties: {
16
+ readonly frameworkVersion: {
17
+ readonly minLength: 1;
18
+ readonly type: "string";
19
+ };
20
+ readonly kind: {
21
+ readonly const: "workspace";
22
+ };
23
+ readonly paths: {
24
+ readonly items: {
25
+ readonly additionalProperties: false;
26
+ readonly properties: {
27
+ readonly managedJsonPointers: {
28
+ readonly items: {
29
+ readonly pattern: "^(?:/(?:[^~/]|~[01])*)+$";
30
+ readonly type: "string";
31
+ };
32
+ readonly minItems: 1;
33
+ readonly type: "array";
34
+ readonly uniqueItems: true;
35
+ };
36
+ readonly mode: {
37
+ readonly enum: readonly ["managed", "seeded"];
38
+ };
39
+ readonly origin: {
40
+ readonly const: "framework";
41
+ };
42
+ readonly path: {
43
+ readonly minLength: 1;
44
+ readonly not: {
45
+ readonly pattern: "(^[\\\\/])|(^|[\\\\/])\\.\\.([\\\\/]|$)";
46
+ };
47
+ readonly type: "string";
48
+ };
49
+ readonly sha256: {
50
+ readonly pattern: "^[a-f0-9]{64}$";
51
+ readonly type: "string";
52
+ };
53
+ };
54
+ readonly required: readonly ["path", "mode", "origin", "sha256"];
55
+ readonly type: "object";
56
+ };
57
+ readonly type: "array";
58
+ };
59
+ readonly schemaVersion: {
60
+ readonly const: 2;
61
+ };
62
+ };
63
+ readonly required: readonly ["schemaVersion", "kind", "frameworkVersion", "paths"];
64
+ readonly title: "Empire Builder Kit Workspace Ownership Record v2";
65
+ readonly type: "object";
66
+ };
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.workspaceOwnershipSchema = exports.WORKSPACE_OWNERSHIP_SCHEMA_VERSION = void 0;
4
+ exports.validateWorkspaceOwnershipRecord = validateWorkspaceOwnershipRecord;
5
+ const validation_js_1 = require("../validation.js");
6
+ const hash_js_1 = require("./hash.js");
7
+ const record_js_1 = require("./record.js");
8
+ exports.WORKSPACE_OWNERSHIP_SCHEMA_VERSION = 2;
9
+ function isSafeWorkspacePath(value) {
10
+ return (value !== '' &&
11
+ !value.startsWith('/') &&
12
+ !value.startsWith('\\') &&
13
+ !value.split(/[\\/]/).includes('..'));
14
+ }
15
+ function validateWorkspaceOwnershipRecord(value) {
16
+ if (!(0, validation_js_1.isRecord)(value)) {
17
+ return {
18
+ valid: false,
19
+ issues: [{ message: 'must be an object', path: 'ownership' }],
20
+ };
21
+ }
22
+ const issues = [];
23
+ if (value.schemaVersion !== exports.WORKSPACE_OWNERSHIP_SCHEMA_VERSION) {
24
+ issues.push({ message: 'must equal 2', path: 'ownership.schemaVersion' });
25
+ }
26
+ if (value.kind !== 'workspace') {
27
+ issues.push({ message: 'must equal workspace', path: 'ownership.kind' });
28
+ }
29
+ if (typeof value.frameworkVersion !== 'string' ||
30
+ value.frameworkVersion.trim() === '') {
31
+ issues.push({
32
+ message: 'must be a non-empty string',
33
+ path: 'ownership.frameworkVersion',
34
+ });
35
+ }
36
+ if (!Array.isArray(value.paths)) {
37
+ issues.push({ message: 'must be an array', path: 'ownership.paths' });
38
+ }
39
+ else {
40
+ value.paths.forEach((entry, index) => {
41
+ const path = `ownership.paths[${index}]`;
42
+ if (!(0, validation_js_1.isRecord)(entry)) {
43
+ issues.push({ message: 'must be an object', path });
44
+ return;
45
+ }
46
+ if (typeof entry.path !== 'string' || !isSafeWorkspacePath(entry.path)) {
47
+ issues.push({
48
+ message: 'must be a safe workspace-relative path',
49
+ path: `${path}.path`,
50
+ });
51
+ }
52
+ if (!record_js_1.GENERATED_PATH_MODES.includes(entry.mode)) {
53
+ issues.push({
54
+ message: 'must equal managed or seeded',
55
+ path: `${path}.mode`,
56
+ });
57
+ }
58
+ if (entry.origin !== 'framework') {
59
+ issues.push({
60
+ message: 'must equal framework',
61
+ path: `${path}.origin`,
62
+ });
63
+ }
64
+ if (typeof entry.sha256 !== 'string' ||
65
+ !hash_js_1.GENERATED_CONTENT_HASH_PATTERN.test(entry.sha256)) {
66
+ issues.push({
67
+ message: 'must be a lowercase SHA-256 digest',
68
+ path: `${path}.sha256`,
69
+ });
70
+ }
71
+ (0, record_js_1.validateManagedJsonPointers)(entry, path, issues);
72
+ });
73
+ }
74
+ return (0, validation_js_1.validationResult)(value, issues);
75
+ }
76
+ exports.workspaceOwnershipSchema = {
77
+ $id: 'https://empirebuilderkit.dev/schemas/workspace-ownership-v2.json',
78
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
79
+ additionalProperties: false,
80
+ properties: {
81
+ frameworkVersion: { minLength: 1, type: 'string' },
82
+ kind: { const: 'workspace' },
83
+ paths: {
84
+ items: {
85
+ additionalProperties: false,
86
+ properties: {
87
+ managedJsonPointers: record_js_1.managedJsonPointersSchema,
88
+ mode: { enum: [...record_js_1.GENERATED_PATH_MODES] },
89
+ origin: { const: 'framework' },
90
+ path: {
91
+ minLength: 1,
92
+ not: { pattern: '(^[\\\\/])|(^|[\\\\/])\\.\\.([\\\\/]|$)' },
93
+ type: 'string',
94
+ },
95
+ sha256: { pattern: '^[a-f0-9]{64}$', type: 'string' },
96
+ },
97
+ required: ['path', 'mode', 'origin', 'sha256'],
98
+ type: 'object',
99
+ },
100
+ type: 'array',
101
+ },
102
+ schemaVersion: { const: exports.WORKSPACE_OWNERSHIP_SCHEMA_VERSION },
103
+ },
104
+ required: ['schemaVersion', 'kind', 'frameworkVersion', 'paths'],
105
+ title: 'Empire Builder Kit Workspace Ownership Record v2',
106
+ type: 'object',
107
+ };
108
+ //# sourceMappingURL=workspace-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-record.js","sourceRoot":"","sources":["../../../../../packages/nx/src/ownership/workspace-record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { FOUNDATION_AURORA_ENGINE_FAMILY, FOUNDATION_AURORA_ENGINE_VERSION } from './foundation-profile.js';
2
+ export interface AuroraProfileCapabilityReport {
3
+ engine: typeof FOUNDATION_AURORA_ENGINE_FAMILY;
4
+ engineVersion: typeof FOUNDATION_AURORA_ENGINE_VERSION;
5
+ ok: boolean;
6
+ region: string;
7
+ }
8
+ export declare function createAuroraProfileCapabilityReader(options: {
9
+ profile?: string;
10
+ region?: string;
11
+ }): {
12
+ read: () => Promise<string[]>;
13
+ resolveRegion: () => Promise<string>;
14
+ };
15
+ export declare function evaluateAuroraProfileCapability(availableVersions: readonly string[], region: string): AuroraProfileCapabilityReport;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAuroraProfileCapabilityReader = createAuroraProfileCapabilityReader;
4
+ exports.evaluateAuroraProfileCapability = evaluateAuroraProfileCapability;
5
+ const client_rds_1 = require("@aws-sdk/client-rds");
6
+ const credential_providers_1 = require("@aws-sdk/credential-providers");
7
+ const foundation_profile_js_1 = require("./foundation-profile.js");
8
+ function createAuroraProfileCapabilityReader(options) {
9
+ const profile = options.profile?.trim();
10
+ const client = new client_rds_1.RDSClient({
11
+ ...(profile ? { credentials: (0, credential_providers_1.fromIni)({ profile }) } : {}),
12
+ ...(options.region?.trim() ? { region: options.region.trim() } : {}),
13
+ });
14
+ return {
15
+ read: async () => {
16
+ const versions = new Set();
17
+ let marker;
18
+ do {
19
+ const response = await client.send(new client_rds_1.DescribeOrderableDBInstanceOptionsCommand({
20
+ DBInstanceClass: 'db.serverless',
21
+ Engine: foundation_profile_js_1.FOUNDATION_AURORA_ENGINE_FAMILY,
22
+ EngineVersion: foundation_profile_js_1.FOUNDATION_AURORA_ENGINE_VERSION,
23
+ Marker: marker,
24
+ Vpc: true,
25
+ }));
26
+ for (const option of response.OrderableDBInstanceOptions ?? []) {
27
+ if (option.EngineVersion)
28
+ versions.add(option.EngineVersion);
29
+ }
30
+ marker = response.Marker;
31
+ } while (marker);
32
+ return [...versions].sort();
33
+ },
34
+ resolveRegion: () => client.config.region(),
35
+ };
36
+ }
37
+ function evaluateAuroraProfileCapability(availableVersions, region) {
38
+ return {
39
+ engine: foundation_profile_js_1.FOUNDATION_AURORA_ENGINE_FAMILY,
40
+ engineVersion: foundation_profile_js_1.FOUNDATION_AURORA_ENGINE_VERSION,
41
+ ok: availableVersions.includes(foundation_profile_js_1.FOUNDATION_AURORA_ENGINE_VERSION),
42
+ region,
43
+ };
44
+ }
45
+ //# sourceMappingURL=aurora-preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aurora-preflight.js","sourceRoot":"","sources":["../../../../../packages/nx/src/repository-policy/aurora-preflight.ts"],"names":[],"mappings":";;AAiBA,kFAmCC;AAED,0EAUC;AAhED,oDAG6B;AAC7B,wEAAwD;AACxD,mEAGiC;AASjC,SAAgB,mCAAmC,CAAC,OAGnD;IAIC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC;QAC3B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAA,8BAAO,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrE,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;YACnC,IAAI,MAA0B,CAAC;YAC/B,GAAG,CAAC;gBACF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,IAAI,sDAAyC,CAAC;oBAC5C,eAAe,EAAE,eAAe;oBAChC,MAAM,EAAE,uDAA+B;oBACvC,aAAa,EAAE,wDAAgC;oBAC/C,MAAM,EAAE,MAAM;oBACd,GAAG,EAAE,IAAI;iBACV,CAAC,CACH,CAAC;gBACF,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,0BAA0B,IAAI,EAAE,EAAE,CAAC;oBAC/D,IAAI,MAAM,CAAC,aAAa;wBAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC/D,CAAC;gBACD,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC3B,CAAC,QAAQ,MAAM,EAAE;YACjB,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QACD,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;KAC5C,CAAC;AACJ,CAAC;AAED,SAAgB,+BAA+B,CAC7C,iBAAoC,EACpC,MAAc;IAEd,OAAO;QACL,MAAM,EAAE,uDAA+B;QACvC,aAAa,EAAE,wDAAgC;QAC/C,EAAE,EAAE,iBAAiB,CAAC,QAAQ,CAAC,wDAAgC,CAAC;QAChE,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { ProductionFoundationProfile, RepositoryOperatingPolicy } from './policy.js';
2
+ export declare const PROTECTED_DEPLOYMENT_ACTIONS: readonly ["deploy", "refresh", "remove", "unlock"];
3
+ export declare const PROTECTED_DEPLOYMENT_STAGES: readonly ["staging", "production"];
4
+ export type ProtectedDeploymentAction = (typeof PROTECTED_DEPLOYMENT_ACTIONS)[number];
5
+ export type ProtectedDeploymentStage = (typeof PROTECTED_DEPLOYMENT_STAGES)[number];
6
+ export interface DeploymentPlanProject {
7
+ name: string;
8
+ tags?: readonly string[];
9
+ targets?: Readonly<Record<string, unknown>>;
10
+ }
11
+ export interface ProtectedDeploymentPlan {
12
+ action: ProtectedDeploymentAction;
13
+ effectiveProductionProfile?: ProductionFoundationProfile;
14
+ foundationProject?: string;
15
+ orderedProjects: string[];
16
+ sliceProjects: string[];
17
+ stage: ProtectedDeploymentStage;
18
+ }
19
+ export declare function createProtectedDeploymentPlan(policy: RepositoryOperatingPolicy, options: {
20
+ action: ProtectedDeploymentAction;
21
+ projects: readonly DeploymentPlanProject[];
22
+ requestedProject?: string;
23
+ stage: ProtectedDeploymentStage;
24
+ }): ProtectedDeploymentPlan;