@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,226 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSstChildEnvironment = createSstChildEnvironment;
4
+ exports.assertSafeSstForwardedArguments = assertSafeSstForwardedArguments;
5
+ exports.resolveSstDevMode = resolveSstDevMode;
6
+ exports.assertSstLifecyclePolicy = assertSstLifecyclePolicy;
7
+ exports.resolveSstLifecycleStages = resolveSstLifecycleStages;
8
+ exports.buildSstCommandInvocation = buildSstCommandInvocation;
9
+ exports.runSstCommand = runSstCommand;
10
+ const devkit_1 = require("@nx/devkit");
11
+ const node_child_process_1 = require("node:child_process");
12
+ const node_path_1 = require("node:path");
13
+ const stages_js_1 = require("../../foundation/stages.js");
14
+ const index_js_1 = require("../../repository-policy/index.js");
15
+ const index_js_2 = require("../../work-markers/index.js");
16
+ const PROTECTED_STAGES = new Set(['staging', 'production']);
17
+ const RESERVED_FORWARDED_OPTIONS = new Set([
18
+ '--config',
19
+ '--profile',
20
+ '--stage',
21
+ '--target',
22
+ ]);
23
+ const SST_DEV_MODES = new Set(['basic', 'mono']);
24
+ function projectKind(context) {
25
+ if (!context.projectName) {
26
+ throw new Error('SST lifecycle requires an Nx project name for tag-derived Repository Operating Policy evaluation.');
27
+ }
28
+ const tags = context.projectsConfigurations?.projects[context.projectName]?.tags ?? [];
29
+ const foundation = tags.includes('scope:foundation');
30
+ const slice = tags.includes('type:slice');
31
+ if (foundation === slice) {
32
+ throw new Error(`Nx project ${context.projectName} must declare exactly one lifecycle kind tag: scope:foundation or type:slice.`);
33
+ }
34
+ return foundation ? 'foundation' : 'slice';
35
+ }
36
+ function createSstChildEnvironment(ambient, invocation) {
37
+ const sanitized = { ...ambient };
38
+ delete sanitized.EBK_PRODUCTION_FOUNDATION_PROFILE;
39
+ return { ...sanitized, ...invocation };
40
+ }
41
+ function assertSafeSstForwardedArguments(args) {
42
+ const reserved = args.find((argument) => {
43
+ const option = argument.split('=', 1)[0].toLowerCase();
44
+ return RESERVED_FORWARDED_OPTIONS.has(option);
45
+ });
46
+ if (reserved) {
47
+ const option = reserved.split('=', 1)[0].toLowerCase();
48
+ throw new Error(`SST forwarded arguments cannot override lifecycle option ${option}. Use the corresponding Nx executor option instead.`);
49
+ }
50
+ }
51
+ function resolveSstDevMode(environment, forwardedArguments = []) {
52
+ if (forwardedArguments.some((argument) => argument.split('=', 1)[0].toLowerCase() === '--mode')) {
53
+ return undefined;
54
+ }
55
+ const requested = environment.EBK_SST_DEV_MODE?.trim().toLowerCase();
56
+ if (!requested || requested === 'multiplexer')
57
+ return undefined;
58
+ if (!SST_DEV_MODES.has(requested)) {
59
+ throw new Error('EBK_SST_DEV_MODE must be mono, basic, or multiplexer when set.');
60
+ }
61
+ return requested;
62
+ }
63
+ function assertSstLifecyclePolicy(command, stage, environment = process.env) {
64
+ if (!PROTECTED_STAGES.has(stage))
65
+ return;
66
+ if (command === 'dev') {
67
+ throw new Error(`SST dev is not permitted for protected stage ${stage}.`);
68
+ }
69
+ const repository = environment.GITHUB_REPOSITORY;
70
+ const expectedBranch = stage === 'staging' ? 'develop' : 'main';
71
+ const expectedRef = `refs/heads/${expectedBranch}`;
72
+ const expectedWorkflowRef = repository
73
+ ? `${repository}/.github/workflows/deploy.yml@${expectedRef}`
74
+ : undefined;
75
+ const eventName = environment.GITHUB_EVENT_NAME;
76
+ const allowedEvent = eventName === 'workflow_dispatch' ||
77
+ (eventName === 'push' && command === 'deploy');
78
+ const trustedWorkflow = Boolean(repository) &&
79
+ environment.GITHUB_ACTIONS === 'true' &&
80
+ allowedEvent &&
81
+ environment.GITHUB_REF === expectedRef &&
82
+ environment.GITHUB_WORKFLOW_REF === expectedWorkflowRef;
83
+ if (!trustedWorkflow) {
84
+ throw new Error(`SST ${command} for protected stage ${stage} must run from the ${expectedBranch}-branch deploy workflow; pushes may run only deploy and other lifecycle actions require workflow_dispatch.`);
85
+ }
86
+ if (command === 'remove' &&
87
+ stage === 'production' &&
88
+ environment.EBK_ALLOW_PRODUCTION_REMOVE !== 'true') {
89
+ throw new Error('Production removal requires EBK_ALLOW_PRODUCTION_REMOVE=true in the protected production environment.');
90
+ }
91
+ }
92
+ function resolveSstLifecycleStages(options, environment = process.env) {
93
+ if (options.stageMode === 'foundation') {
94
+ const stage = (0, stages_js_1.requireFoundationStage)(options.stage);
95
+ if (options.foundationStage?.trim() &&
96
+ (0, stages_js_1.requireFoundationStage)(options.foundationStage) !== stage) {
97
+ throw new Error(`Foundation lifecycle stage ${stage} cannot target Foundation stage ${options.foundationStage.trim()}.`);
98
+ }
99
+ return {
100
+ consumerStage: stage,
101
+ foundationStage: stage,
102
+ mapped: false,
103
+ };
104
+ }
105
+ if (options.stageMode !== 'consumer') {
106
+ throw new Error('SST lifecycle stageMode must be consumer or foundation.');
107
+ }
108
+ return (0, stages_js_1.resolveFoundationStages)({
109
+ consumerStage: options.stage,
110
+ foundationStage: options.foundationStage ?? environment.EBK_FOUNDATION_STAGE,
111
+ });
112
+ }
113
+ function buildSstCommandInvocation(command, options, context, environment = process.env) {
114
+ const kind = projectKind(context);
115
+ const expectedStageMode = kind === 'foundation' ? 'foundation' : 'consumer';
116
+ if (options.stageMode !== expectedStageMode) {
117
+ throw new Error(`Nx project ${context.projectName} is tagged as ${kind} and requires stageMode ${expectedStageMode}; executor options cannot change project kind.`);
118
+ }
119
+ const configuredRoot = context.projectName
120
+ ? context.projectsConfigurations?.projects[context.projectName]?.root
121
+ : undefined;
122
+ const configuredCwd = options.cwd ?? configuredRoot ?? context.root;
123
+ const cwd = (0, node_path_1.isAbsolute)(configuredCwd)
124
+ ? configuredCwd
125
+ : (0, node_path_1.join)(context.root, configuredCwd);
126
+ const stages = resolveSstLifecycleStages(options, environment);
127
+ if (options.stageMode === 'consumer' &&
128
+ command === 'deploy' &&
129
+ stages.mapped) {
130
+ throw new Error(`Full deploy is not permitted for mapped consumer stage ${stages.consumerStage}. Use dev against the ${stages.foundationStage} Foundation until preview routing is supported.`);
131
+ }
132
+ assertSstLifecyclePolicy(command, stages.consumerStage, environment);
133
+ if (PROTECTED_STAGES.has(stages.consumerStage) &&
134
+ (command === 'deploy' || command === 'refresh')) {
135
+ (0, index_js_2.assertWorkMarkerReport)((0, index_js_2.scanWorkMarkers)(context.root), {
136
+ protectedPromotion: true,
137
+ });
138
+ }
139
+ const policyDecision = stages.consumerStage === 'production'
140
+ ? (0, index_js_1.assertRepositoryPolicyRequest)(context.root, {
141
+ action: command,
142
+ projects: [
143
+ {
144
+ kind,
145
+ name: context.projectName ?? '',
146
+ },
147
+ ],
148
+ stage: stages.consumerStage,
149
+ })
150
+ : undefined;
151
+ const args = [command, '--stage', stages.consumerStage];
152
+ if (options.profile) {
153
+ args.push('--profile', options.profile);
154
+ }
155
+ if (options.target) {
156
+ args.push('--target', options.target);
157
+ }
158
+ if (command === 'dev') {
159
+ const mode = resolveSstDevMode(environment, options.args);
160
+ if (mode)
161
+ args.push(`--mode=${mode}`);
162
+ }
163
+ if (options.args) {
164
+ assertSafeSstForwardedArguments(options.args);
165
+ args.push(...options.args);
166
+ }
167
+ return {
168
+ args: [
169
+ (0, node_path_1.join)(context.root, 'node_modules', 'sst', 'bin', 'sst.mjs'),
170
+ ...args,
171
+ ],
172
+ cwd,
173
+ environment: {
174
+ EBK_CONSUMER_STAGE: stages.consumerStage,
175
+ EBK_FOUNDATION_STAGE: stages.foundationStage,
176
+ ...(policyDecision?.effectiveProductionProfile
177
+ ? {
178
+ EBK_PRODUCTION_FOUNDATION_PROFILE: policyDecision.effectiveProductionProfile,
179
+ }
180
+ : {}),
181
+ },
182
+ executable: process.execPath,
183
+ };
184
+ }
185
+ async function runSstCommand(command, options, context) {
186
+ let invocation;
187
+ try {
188
+ invocation = buildSstCommandInvocation(command, options, context);
189
+ }
190
+ catch (error) {
191
+ devkit_1.logger.error(error instanceof Error ? error.message : String(error));
192
+ return { success: false };
193
+ }
194
+ devkit_1.logger.info(`Running workspace SST: ${command} --stage ${invocation.environment.EBK_CONSUMER_STAGE} foundationStage=${invocation.environment.EBK_FOUNDATION_STAGE} (${invocation.cwd})`);
195
+ return new Promise((resolve) => {
196
+ const child = (0, node_child_process_1.spawn)(invocation.executable, invocation.args, {
197
+ cwd: invocation.cwd,
198
+ env: createSstChildEnvironment(process.env, invocation.environment),
199
+ shell: false,
200
+ stdio: 'inherit',
201
+ });
202
+ let settled = false;
203
+ const settle = (success) => {
204
+ if (settled)
205
+ return;
206
+ settled = true;
207
+ resolve({ success });
208
+ };
209
+ child.on('error', (error) => {
210
+ devkit_1.logger.error(`Failed to start workspace SST: ${error.message}`);
211
+ settle(false);
212
+ });
213
+ child.on('close', (code, signal) => {
214
+ if (code !== 0) {
215
+ devkit_1.logger.error(signal
216
+ ? `SST ${command} terminated with signal ${signal}.`
217
+ : `SST ${command} exited with status ${code ?? 'unknown'}.`);
218
+ if (command === 'deploy' || command === 'remove') {
219
+ devkit_1.logger.error(`If the stack is locked, run pnpm nx run ${context.projectName ?? '<project>'}:unlock --stage=${options.stage}.`);
220
+ }
221
+ }
222
+ settle(code === 0);
223
+ });
224
+ });
225
+ }
226
+ //# sourceMappingURL=run-sst-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-sst-command.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/sst-lifecycle/run-sst-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "version": 2,
4
+ "title": "Empire Builder Kit SST lifecycle executor",
5
+ "description": "Run a supported SST lifecycle action through the workspace-pinned binary.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "cwd": {
10
+ "type": "string",
11
+ "description": "Working directory containing sst.config.ts. Defaults to the Nx project root."
12
+ },
13
+ "stage": {
14
+ "type": "string",
15
+ "pattern": "^[a-z0-9][a-z0-9-]*$",
16
+ "description": "SST stage name.",
17
+ "default": "development"
18
+ },
19
+ "stageMode": {
20
+ "type": "string",
21
+ "enum": ["consumer", "foundation"],
22
+ "description": "Whether --stage names a Product Slice consumer stage or a canonical Foundation stage."
23
+ },
24
+ "foundationStage": {
25
+ "type": "string",
26
+ "pattern": "^[a-z0-9][a-z0-9-]*$",
27
+ "description": "Optional explicit Foundation stage. Consumer personal/preview stages may use only development."
28
+ },
29
+ "profile": {
30
+ "type": "string",
31
+ "description": "Optional AWS profile passed to SST."
32
+ },
33
+ "target": {
34
+ "type": "string",
35
+ "description": "Optional SST target selector."
36
+ },
37
+ "args": {
38
+ "type": "array",
39
+ "description": "Additional arguments passed to SST. Cannot override --stage, --profile, --target, or --config; use the executor options instead.",
40
+ "items": { "type": "string" },
41
+ "default": []
42
+ }
43
+ },
44
+ "required": ["stage", "stageMode"]
45
+ }
@@ -0,0 +1,4 @@
1
+ import type { PromiseExecutor } from '@nx/devkit';
2
+ import { type SstLifecycleOptions } from '../sst-lifecycle/run-sst-command.js';
3
+ declare const executor: PromiseExecutor<SstLifecycleOptions>;
4
+ export default executor;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const run_sst_command_js_1 = require("../sst-lifecycle/run-sst-command.js");
4
+ const executor = (options, context) => (0, run_sst_command_js_1.runSstCommand)('unlock', options, context);
5
+ exports.default = executor;
6
+ //# sourceMappingURL=unlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unlock.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/unlock/unlock.ts"],"names":[],"mappings":";;AACA,4EAG6C;AAE7C,MAAM,QAAQ,GAAyC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAC1E,IAAA,kCAAa,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE5C,kBAAe,QAAQ,CAAC"}
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "version": 2,
4
+ "title": "Empire Builder Kit work markers",
5
+ "description": "Report source work markers and enforce syntax, generated-file ownership, and optional protected-promotion blockers.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "protected": {
10
+ "type": "boolean",
11
+ "description": "Fail when unresolved EBK-SECURITY or EBK-BLOCKER markers are present. Protected deploy and refresh set this automatically."
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,6 @@
1
+ import { type PromiseExecutor } from '@nx/devkit';
2
+ interface WorkMarkersOptions {
3
+ protected?: boolean;
4
+ }
5
+ declare const executor: PromiseExecutor<WorkMarkersOptions>;
6
+ export default executor;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const index_js_1 = require("../../work-markers/index.js");
5
+ const executor = async (options, context) => {
6
+ try {
7
+ const report = (0, index_js_1.scanWorkMarkers)(context.root);
8
+ devkit_1.logger.info((0, index_js_1.formatWorkMarkerReport)(report));
9
+ (0, index_js_1.assertWorkMarkerReport)(report, {
10
+ protectedPromotion: options.protected === true,
11
+ });
12
+ return { success: true };
13
+ }
14
+ catch (error) {
15
+ devkit_1.logger.error(error instanceof Error ? error.message : String(error));
16
+ return { success: false };
17
+ }
18
+ };
19
+ exports.default = executor;
20
+ //# sourceMappingURL=work-markers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-markers.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/work-markers/work-markers.ts"],"names":[],"mappings":";;AAAA,uCAA0D;AAC1D,0DAIqC;AAMrC,MAAM,QAAQ,GAAwC,KAAK,EACzD,OAAO,EACP,OAAO,EACP,EAAE;IACF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,0BAAe,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,eAAM,CAAC,IAAI,CAAC,IAAA,iCAAsB,EAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,IAAA,iCAAsB,EAAC,MAAM,EAAE;YAC7B,kBAAkB,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI;SAC/C,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
@@ -0,0 +1,76 @@
1
+ import type { ExecuteStatementCommand, RDSDataClient } from '@aws-sdk/client-rds-data';
2
+ export interface AuroraLogicalDbInputs {
3
+ clusterArn: string;
4
+ masterSecretArn: string;
5
+ database: string;
6
+ readwriteRole: string;
7
+ readonlyRole: string;
8
+ removalPolicy?: 'retain' | 'destroy';
9
+ rotationToken?: string;
10
+ }
11
+ export interface AuroraLogicalDbState extends AuroraLogicalDbInputs {
12
+ readwritePassword: string;
13
+ readonlyPassword: string;
14
+ id: string;
15
+ }
16
+ export interface DataApiExecutor {
17
+ execute(database: string, sql: string): Promise<void>;
18
+ exists(database: string, existsSql: string): Promise<boolean>;
19
+ }
20
+ type ExecuteStatementCommandConstructor = new (input: ConstructorParameters<typeof ExecuteStatementCommand>[0]) => ExecuteStatementCommand;
21
+ export declare class RdsDataApiExecutor implements DataApiExecutor {
22
+ private readonly client;
23
+ private readonly resourceArn;
24
+ private readonly secretArn;
25
+ private readonly ExecuteStatementCommand;
26
+ constructor(client: RDSDataClient, resourceArn: string, secretArn: string, ExecuteStatementCommand: ExecuteStatementCommandConstructor);
27
+ execute(database: string, sql: string): Promise<void>;
28
+ exists(database: string, existsSql: string): Promise<boolean>;
29
+ }
30
+ export declare function createDatabaseSql(database: string): string;
31
+ export declare function databaseExistsSql(database: string): string;
32
+ export declare function roleExistsSql(role: string): string;
33
+ export declare function createRoleSql(role: string, password: string): string;
34
+ export declare function alterRolePasswordSql(role: string, password: string): string;
35
+ export declare function grantScopedAccessSql(database: string, readwriteRole: string, readonlyRole: string): string[];
36
+ export type PasswordGenerator = () => string;
37
+ export interface PulumiCreateResult {
38
+ id: string;
39
+ outs?: Record<string, unknown>;
40
+ }
41
+ export interface PulumiUpdateResult {
42
+ outs?: Record<string, unknown>;
43
+ }
44
+ export interface AuroraLogicalDbProviderOptions {
45
+ executorFactory?: (inputs: AuroraLogicalDbInputs) => DataApiExecutor;
46
+ passwordGenerator?: PasswordGenerator;
47
+ }
48
+ export declare class AuroraLogicalDbProvider {
49
+ private readonly executorFactory?;
50
+ private readonly passwordGenerator;
51
+ constructor(options?: AuroraLogicalDbProviderOptions);
52
+ private buildExecutor;
53
+ private generateSecret;
54
+ create(inputs: AuroraLogicalDbInputs): Promise<PulumiCreateResult>;
55
+ private createInternal;
56
+ update(_id: string, olds: AuroraLogicalDbState, news: AuroraLogicalDbInputs): Promise<PulumiUpdateResult>;
57
+ private updateInternal;
58
+ delete(_id: string, props: AuroraLogicalDbState): Promise<void>;
59
+ private deleteInternal;
60
+ }
61
+ export interface AuroraLogicalDbResource {
62
+ readwritePassword: unknown;
63
+ readonlyPassword: unknown;
64
+ [key: string]: unknown;
65
+ }
66
+ export interface AuroraLogicalDbResourceOptions {
67
+ additionalSecretOutputs?: string[];
68
+ [key: string]: unknown;
69
+ }
70
+ export interface CreateAuroraLogicalDbOptions {
71
+ name: string;
72
+ args: AuroraLogicalDbInputs | Record<string, unknown>;
73
+ opts?: AuroraLogicalDbResourceOptions;
74
+ }
75
+ export declare function createAuroraLogicalDbResource(options: CreateAuroraLogicalDbOptions): AuroraLogicalDbResource;
76
+ export {};