@ankhorage/infra 4.1.12 → 5.0.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 (521) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +21 -32
  3. package/dist/cli/bin.d.ts +1 -8
  4. package/dist/cli/bin.d.ts.map +1 -1
  5. package/dist/cli/bin.js +2 -34
  6. package/dist/cli/bin.js.map +1 -1
  7. package/dist/cli/commands/destroy.d.ts +11 -0
  8. package/dist/cli/commands/destroy.d.ts.map +1 -0
  9. package/dist/cli/commands/destroy.js +51 -0
  10. package/dist/cli/commands/destroy.js.map +1 -0
  11. package/dist/cli/commands/down.d.ts +11 -0
  12. package/dist/cli/commands/down.d.ts.map +1 -0
  13. package/dist/cli/commands/down.js +27 -0
  14. package/dist/cli/commands/down.js.map +1 -0
  15. package/dist/cli/commands/generate.d.ts +11 -0
  16. package/dist/cli/commands/generate.d.ts.map +1 -0
  17. package/dist/cli/commands/generate.js +29 -0
  18. package/dist/cli/commands/generate.js.map +1 -0
  19. package/dist/cli/commands/outputs.d.ts +11 -0
  20. package/dist/cli/commands/outputs.d.ts.map +1 -0
  21. package/dist/cli/commands/outputs.js +25 -0
  22. package/dist/cli/commands/outputs.js.map +1 -0
  23. package/dist/cli/commands/plan.d.ts +11 -0
  24. package/dist/cli/commands/plan.d.ts.map +1 -0
  25. package/dist/cli/commands/plan.js +19 -0
  26. package/dist/cli/commands/plan.js.map +1 -0
  27. package/dist/cli/commands/status.d.ts +11 -0
  28. package/dist/cli/commands/status.d.ts.map +1 -0
  29. package/dist/cli/commands/status.js +19 -0
  30. package/dist/cli/commands/status.js.map +1 -0
  31. package/dist/cli/commands/up.d.ts +11 -0
  32. package/dist/cli/commands/up.d.ts.map +1 -0
  33. package/dist/cli/commands/up.js +28 -0
  34. package/dist/cli/commands/up.js.map +1 -0
  35. package/dist/cli/commands/validate.d.ts +11 -0
  36. package/dist/cli/commands/validate.d.ts.map +1 -0
  37. package/dist/cli/commands/validate.js +19 -0
  38. package/dist/cli/commands/validate.js.map +1 -0
  39. package/dist/cli/constants.d.ts +66 -0
  40. package/dist/cli/constants.d.ts.map +1 -0
  41. package/dist/cli/constants.js +19 -0
  42. package/dist/cli/constants.js.map +1 -0
  43. package/dist/cli/createDefaultInfraCommandContext.d.ts +4 -0
  44. package/dist/cli/createDefaultInfraCommandContext.d.ts.map +1 -0
  45. package/dist/{commandContext.js → cli/createDefaultInfraCommandContext.js} +4 -3
  46. package/dist/cli/createDefaultInfraCommandContext.js.map +1 -0
  47. package/dist/cli/createInfraRuntimeProvider.d.ts +5 -0
  48. package/dist/cli/createInfraRuntimeProvider.d.ts.map +1 -0
  49. package/dist/cli/createInfraRuntimeProvider.js +22 -0
  50. package/dist/cli/createInfraRuntimeProvider.js.map +1 -0
  51. package/dist/cli/createProviderCommandDescriptors.d.ts +4 -0
  52. package/dist/cli/createProviderCommandDescriptors.d.ts.map +1 -0
  53. package/dist/cli/createProviderCommandDescriptors.js +6 -0
  54. package/dist/cli/createProviderCommandDescriptors.js.map +1 -0
  55. package/dist/cli/findInfraCommand.d.ts +4 -0
  56. package/dist/cli/findInfraCommand.d.ts.map +1 -0
  57. package/dist/cli/findInfraCommand.js +6 -0
  58. package/dist/cli/findInfraCommand.js.map +1 -0
  59. package/dist/cli/index.d.ts +3 -8
  60. package/dist/cli/index.d.ts.map +1 -1
  61. package/dist/cli/index.js +2 -24
  62. package/dist/cli/index.js.map +1 -1
  63. package/dist/cli/renderInfraRootHelp.d.ts +3 -0
  64. package/dist/cli/renderInfraRootHelp.d.ts.map +1 -0
  65. package/dist/cli/renderInfraRootHelp.js +21 -0
  66. package/dist/cli/renderInfraRootHelp.js.map +1 -0
  67. package/dist/cli/renderUnknownInfraCommand.d.ts +3 -0
  68. package/dist/cli/renderUnknownInfraCommand.d.ts.map +1 -0
  69. package/dist/cli/renderUnknownInfraCommand.js +5 -0
  70. package/dist/cli/renderUnknownInfraCommand.js.map +1 -0
  71. package/dist/cli/runInfraCliAsync.d.ts +10 -0
  72. package/dist/cli/runInfraCliAsync.d.ts.map +1 -0
  73. package/dist/cli/runInfraCliAsync.js +34 -0
  74. package/dist/cli/runInfraCliAsync.js.map +1 -0
  75. package/dist/cli/runInfraCommandAsync.d.ts +4 -0
  76. package/dist/cli/runInfraCommandAsync.d.ts.map +1 -0
  77. package/dist/cli/runInfraCommandAsync.js +100 -0
  78. package/dist/cli/runInfraCommandAsync.js.map +1 -0
  79. package/dist/cli/utils/prepareInfraCommandOperationAsync.d.ts +4 -0
  80. package/dist/cli/utils/prepareInfraCommandOperationAsync.d.ts.map +1 -0
  81. package/dist/cli/utils/prepareInfraCommandOperationAsync.js +45 -0
  82. package/dist/cli/utils/prepareInfraCommandOperationAsync.js.map +1 -0
  83. package/dist/cli/utils/requireInfraSuccess.d.ts +7 -0
  84. package/dist/cli/utils/requireInfraSuccess.d.ts.map +1 -0
  85. package/dist/cli/utils/requireInfraSuccess.js +17 -0
  86. package/dist/cli/utils/requireInfraSuccess.js.map +1 -0
  87. package/dist/cli/utils/resolveInfraPersistence.d.ts +4 -0
  88. package/dist/cli/utils/resolveInfraPersistence.d.ts.map +1 -0
  89. package/dist/cli/utils/resolveInfraPersistence.js +17 -0
  90. package/dist/cli/utils/resolveInfraPersistence.js.map +1 -0
  91. package/dist/cli/utils/writeInfraEnvironmentOutputs.d.ts +5 -0
  92. package/dist/cli/utils/writeInfraEnvironmentOutputs.d.ts.map +1 -0
  93. package/dist/cli/utils/writeInfraEnvironmentOutputs.js +16 -0
  94. package/dist/cli/utils/writeInfraEnvironmentOutputs.js.map +1 -0
  95. package/dist/cli/utils/writeInfraStructured.d.ts +4 -0
  96. package/dist/cli/utils/writeInfraStructured.d.ts.map +1 -0
  97. package/dist/cli/utils/writeInfraStructured.js +8 -0
  98. package/dist/cli/utils/writeInfraStructured.js.map +1 -0
  99. package/dist/constants.d.ts +10 -0
  100. package/dist/constants.d.ts.map +1 -0
  101. package/dist/{packageMetadata.js → constants.js} +6 -3
  102. package/dist/constants.js.map +1 -0
  103. package/dist/features/environment-lifecycle/adapters/outbound/createEnvironmentInfraCredentialPort.d.ts +4 -0
  104. package/dist/features/environment-lifecycle/adapters/outbound/createEnvironmentInfraCredentialPort.d.ts.map +1 -0
  105. package/dist/features/environment-lifecycle/adapters/outbound/createEnvironmentInfraCredentialPort.js +35 -0
  106. package/dist/features/environment-lifecycle/adapters/outbound/createEnvironmentInfraCredentialPort.js.map +1 -0
  107. package/dist/features/environment-lifecycle/adapters/outbound/createEnvironmentInfraSecretPort.d.ts +4 -0
  108. package/dist/features/environment-lifecycle/adapters/outbound/createEnvironmentInfraSecretPort.d.ts.map +1 -0
  109. package/dist/features/environment-lifecycle/adapters/outbound/createEnvironmentInfraSecretPort.js +23 -0
  110. package/dist/features/environment-lifecycle/adapters/outbound/createEnvironmentInfraSecretPort.js.map +1 -0
  111. package/dist/features/environment-lifecycle/adapters/outbound/createNodeInfraAdapterPackageResolver.d.ts +4 -0
  112. package/dist/features/environment-lifecycle/adapters/outbound/createNodeInfraAdapterPackageResolver.d.ts.map +1 -0
  113. package/dist/features/environment-lifecycle/adapters/outbound/createNodeInfraAdapterPackageResolver.js +9 -0
  114. package/dist/features/environment-lifecycle/adapters/outbound/createNodeInfraAdapterPackageResolver.js.map +1 -0
  115. package/dist/features/environment-lifecycle/adapters/outbound/readStoredInfraStateAsync.d.ts +5 -0
  116. package/dist/features/environment-lifecycle/adapters/outbound/readStoredInfraStateAsync.d.ts.map +1 -0
  117. package/dist/features/environment-lifecycle/adapters/outbound/readStoredInfraStateAsync.js +28 -0
  118. package/dist/features/environment-lifecycle/adapters/outbound/readStoredInfraStateAsync.js.map +1 -0
  119. package/dist/features/environment-lifecycle/adapters/outbound/removeStoredInfraStateAsync.d.ts +4 -0
  120. package/dist/features/environment-lifecycle/adapters/outbound/removeStoredInfraStateAsync.d.ts.map +1 -0
  121. package/dist/features/environment-lifecycle/adapters/outbound/removeStoredInfraStateAsync.js +7 -0
  122. package/dist/features/environment-lifecycle/adapters/outbound/removeStoredInfraStateAsync.js.map +1 -0
  123. package/dist/features/environment-lifecycle/adapters/outbound/resolveInfraProjectAsync.d.ts +7 -0
  124. package/dist/features/environment-lifecycle/adapters/outbound/resolveInfraProjectAsync.d.ts.map +1 -0
  125. package/dist/{project.js → features/environment-lifecycle/adapters/outbound/resolveInfraProjectAsync.js} +10 -34
  126. package/dist/features/environment-lifecycle/adapters/outbound/resolveInfraProjectAsync.js.map +1 -0
  127. package/dist/features/environment-lifecycle/adapters/outbound/writeInfraGeneratedArtifactsAsync.d.ts +5 -0
  128. package/dist/features/environment-lifecycle/adapters/outbound/writeInfraGeneratedArtifactsAsync.d.ts.map +1 -0
  129. package/dist/features/environment-lifecycle/adapters/outbound/writeInfraGeneratedArtifactsAsync.js +28 -0
  130. package/dist/features/environment-lifecycle/adapters/outbound/writeInfraGeneratedArtifactsAsync.js.map +1 -0
  131. package/dist/features/environment-lifecycle/adapters/outbound/writeStoredInfraStateAsync.d.ts +4 -0
  132. package/dist/features/environment-lifecycle/adapters/outbound/writeStoredInfraStateAsync.d.ts.map +1 -0
  133. package/dist/features/environment-lifecycle/adapters/outbound/writeStoredInfraStateAsync.js +16 -0
  134. package/dist/features/environment-lifecycle/adapters/outbound/writeStoredInfraStateAsync.js.map +1 -0
  135. package/dist/features/environment-lifecycle/application/ports/outbound/infraAdapterPackage.d.ts +9 -0
  136. package/dist/features/environment-lifecycle/application/ports/outbound/infraAdapterPackage.d.ts.map +1 -0
  137. package/dist/features/environment-lifecycle/application/ports/outbound/infraAdapterPackage.js +2 -0
  138. package/dist/features/environment-lifecycle/application/ports/outbound/infraAdapterPackage.js.map +1 -0
  139. package/dist/features/environment-lifecycle/application/use-cases/collectInfraWorkloadsAsync.d.ts +4 -0
  140. package/dist/features/environment-lifecycle/application/use-cases/collectInfraWorkloadsAsync.d.ts.map +1 -0
  141. package/dist/features/environment-lifecycle/application/use-cases/collectInfraWorkloadsAsync.js +15 -0
  142. package/dist/features/environment-lifecycle/application/use-cases/collectInfraWorkloadsAsync.js.map +1 -0
  143. package/dist/features/environment-lifecycle/application/use-cases/destroyInfraEnvironmentAsync.d.ts +4 -0
  144. package/dist/features/environment-lifecycle/application/use-cases/destroyInfraEnvironmentAsync.d.ts.map +1 -0
  145. package/dist/features/environment-lifecycle/application/use-cases/destroyInfraEnvironmentAsync.js +84 -0
  146. package/dist/features/environment-lifecycle/application/use-cases/destroyInfraEnvironmentAsync.js.map +1 -0
  147. package/dist/features/environment-lifecycle/application/use-cases/downInfraEnvironmentAsync.d.ts +4 -0
  148. package/dist/features/environment-lifecycle/application/use-cases/downInfraEnvironmentAsync.d.ts.map +1 -0
  149. package/dist/features/environment-lifecycle/application/use-cases/downInfraEnvironmentAsync.js +55 -0
  150. package/dist/features/environment-lifecycle/application/use-cases/downInfraEnvironmentAsync.js.map +1 -0
  151. package/dist/features/environment-lifecycle/application/use-cases/generateInfraEnvironmentAsync.d.ts +4 -0
  152. package/dist/features/environment-lifecycle/application/use-cases/generateInfraEnvironmentAsync.d.ts.map +1 -0
  153. package/dist/features/environment-lifecycle/application/use-cases/generateInfraEnvironmentAsync.js +38 -0
  154. package/dist/features/environment-lifecycle/application/use-cases/generateInfraEnvironmentAsync.js.map +1 -0
  155. package/dist/features/environment-lifecycle/application/use-cases/getInfraEnvironmentOutputs.d.ts +4 -0
  156. package/dist/features/environment-lifecycle/application/use-cases/getInfraEnvironmentOutputs.d.ts.map +1 -0
  157. package/dist/features/environment-lifecycle/application/use-cases/getInfraEnvironmentOutputs.js +34 -0
  158. package/dist/features/environment-lifecycle/application/use-cases/getInfraEnvironmentOutputs.js.map +1 -0
  159. package/dist/features/environment-lifecycle/application/use-cases/planInfraEnvironmentAsync.d.ts +4 -0
  160. package/dist/features/environment-lifecycle/application/use-cases/planInfraEnvironmentAsync.d.ts.map +1 -0
  161. package/dist/features/environment-lifecycle/application/use-cases/planInfraEnvironmentAsync.js +57 -0
  162. package/dist/features/environment-lifecycle/application/use-cases/planInfraEnvironmentAsync.js.map +1 -0
  163. package/dist/features/environment-lifecycle/application/use-cases/prepareInfraOperationAsync.d.ts +5 -0
  164. package/dist/features/environment-lifecycle/application/use-cases/prepareInfraOperationAsync.d.ts.map +1 -0
  165. package/dist/features/environment-lifecycle/application/use-cases/prepareInfraOperationAsync.js +109 -0
  166. package/dist/features/environment-lifecycle/application/use-cases/prepareInfraOperationAsync.js.map +1 -0
  167. package/dist/features/environment-lifecycle/application/use-cases/resolveInfraAdaptersAsync.d.ts +6 -0
  168. package/dist/features/environment-lifecycle/application/use-cases/resolveInfraAdaptersAsync.d.ts.map +1 -0
  169. package/dist/features/environment-lifecycle/application/use-cases/resolveInfraAdaptersAsync.js +181 -0
  170. package/dist/features/environment-lifecycle/application/use-cases/resolveInfraAdaptersAsync.js.map +1 -0
  171. package/dist/features/environment-lifecycle/application/use-cases/statusInfraEnvironmentAsync.d.ts +4 -0
  172. package/dist/features/environment-lifecycle/application/use-cases/statusInfraEnvironmentAsync.d.ts.map +1 -0
  173. package/dist/features/environment-lifecycle/application/use-cases/statusInfraEnvironmentAsync.js +68 -0
  174. package/dist/features/environment-lifecycle/application/use-cases/statusInfraEnvironmentAsync.js.map +1 -0
  175. package/dist/features/environment-lifecycle/application/use-cases/upInfraEnvironmentAsync.d.ts +4 -0
  176. package/dist/features/environment-lifecycle/application/use-cases/upInfraEnvironmentAsync.d.ts.map +1 -0
  177. package/dist/features/environment-lifecycle/application/use-cases/upInfraEnvironmentAsync.js +98 -0
  178. package/dist/features/environment-lifecycle/application/use-cases/upInfraEnvironmentAsync.js.map +1 -0
  179. package/dist/features/environment-lifecycle/application/use-cases/validateInfraAdaptersAsync.d.ts +5 -0
  180. package/dist/features/environment-lifecycle/application/use-cases/validateInfraAdaptersAsync.d.ts.map +1 -0
  181. package/dist/features/environment-lifecycle/application/use-cases/validateInfraAdaptersAsync.js +17 -0
  182. package/dist/features/environment-lifecycle/application/use-cases/validateInfraAdaptersAsync.js.map +1 -0
  183. package/dist/features/environment-lifecycle/application/use-cases/validateInfraEnvironmentAsync.d.ts +4 -0
  184. package/dist/features/environment-lifecycle/application/use-cases/validateInfraEnvironmentAsync.d.ts.map +1 -0
  185. package/dist/features/environment-lifecycle/application/use-cases/validateInfraEnvironmentAsync.js +13 -0
  186. package/dist/features/environment-lifecycle/application/use-cases/validateInfraEnvironmentAsync.js.map +1 -0
  187. package/dist/features/environment-lifecycle/composition/createInfraCommandServices.d.ts +4 -0
  188. package/dist/features/environment-lifecycle/composition/createInfraCommandServices.d.ts.map +1 -0
  189. package/dist/features/environment-lifecycle/composition/createInfraCommandServices.js +43 -0
  190. package/dist/features/environment-lifecycle/composition/createInfraCommandServices.js.map +1 -0
  191. package/dist/features/environment-lifecycle/domain/orderInfraPlanActions.d.ts +4 -0
  192. package/dist/features/environment-lifecycle/domain/orderInfraPlanActions.d.ts.map +1 -0
  193. package/dist/features/environment-lifecycle/domain/orderInfraPlanActions.js +54 -0
  194. package/dist/features/environment-lifecycle/domain/orderInfraPlanActions.js.map +1 -0
  195. package/dist/features/environment-lifecycle/domain/resolveInfraEnvironment.d.ts +5 -0
  196. package/dist/features/environment-lifecycle/domain/resolveInfraEnvironment.d.ts.map +1 -0
  197. package/dist/features/environment-lifecycle/domain/resolveInfraEnvironment.js +39 -0
  198. package/dist/features/environment-lifecycle/domain/resolveInfraEnvironment.js.map +1 -0
  199. package/dist/features/environment-lifecycle/utils/appendInfraFailure.d.ts +7 -0
  200. package/dist/features/environment-lifecycle/utils/appendInfraFailure.d.ts.map +1 -0
  201. package/dist/features/environment-lifecycle/utils/appendInfraFailure.js +5 -0
  202. package/dist/features/environment-lifecycle/utils/appendInfraFailure.js.map +1 -0
  203. package/dist/features/environment-lifecycle/utils/createInfraExecutionContext.d.ts +5 -0
  204. package/dist/features/environment-lifecycle/utils/createInfraExecutionContext.d.ts.map +1 -0
  205. package/dist/features/environment-lifecycle/utils/createInfraExecutionContext.js +13 -0
  206. package/dist/features/environment-lifecycle/utils/createInfraExecutionContext.js.map +1 -0
  207. package/dist/features/environment-lifecycle/utils/createInfraFailure.d.ts +4 -0
  208. package/dist/features/environment-lifecycle/utils/createInfraFailure.d.ts.map +1 -0
  209. package/dist/features/environment-lifecycle/utils/createInfraFailure.js +5 -0
  210. package/dist/features/environment-lifecycle/utils/createInfraFailure.js.map +1 -0
  211. package/dist/features/environment-lifecycle/utils/createInfraLedger.d.ts +12 -0
  212. package/dist/features/environment-lifecycle/utils/createInfraLedger.d.ts.map +1 -0
  213. package/dist/features/environment-lifecycle/utils/createInfraLedger.js +14 -0
  214. package/dist/features/environment-lifecycle/utils/createInfraLedger.js.map +1 -0
  215. package/dist/features/environment-lifecycle/utils/infraIdentityKey.d.ts +4 -0
  216. package/dist/features/environment-lifecycle/utils/infraIdentityKey.d.ts.map +1 -0
  217. package/dist/features/environment-lifecycle/utils/infraIdentityKey.js +5 -0
  218. package/dist/features/environment-lifecycle/utils/infraIdentityKey.js.map +1 -0
  219. package/dist/features/environment-lifecycle/utils/isInfraStoredState.d.ts +4 -0
  220. package/dist/features/environment-lifecycle/utils/isInfraStoredState.d.ts.map +1 -0
  221. package/dist/features/environment-lifecycle/utils/isInfraStoredState.js +103 -0
  222. package/dist/features/environment-lifecycle/utils/isInfraStoredState.js.map +1 -0
  223. package/dist/features/environment-lifecycle/utils/mergeInfraOutputs.d.ts +4 -0
  224. package/dist/features/environment-lifecycle/utils/mergeInfraOutputs.d.ts.map +1 -0
  225. package/dist/features/environment-lifecycle/utils/mergeInfraOutputs.js +10 -0
  226. package/dist/features/environment-lifecycle/utils/mergeInfraOutputs.js.map +1 -0
  227. package/dist/features/environment-lifecycle/utils/mergeInfraResources.d.ts +4 -0
  228. package/dist/features/environment-lifecycle/utils/mergeInfraResources.d.ts.map +1 -0
  229. package/dist/features/environment-lifecycle/utils/mergeInfraResources.js +10 -0
  230. package/dist/features/environment-lifecycle/utils/mergeInfraResources.js.map +1 -0
  231. package/dist/features/environment-lifecycle/utils/normalizeInfraEnvironmentKey.d.ts +3 -0
  232. package/dist/features/environment-lifecycle/utils/normalizeInfraEnvironmentKey.d.ts.map +1 -0
  233. package/dist/features/environment-lifecycle/utils/normalizeInfraEnvironmentKey.js +8 -0
  234. package/dist/features/environment-lifecycle/utils/normalizeInfraEnvironmentKey.js.map +1 -0
  235. package/dist/features/environment-lifecycle/utils/resolveInfraStatePath.d.ts +4 -0
  236. package/dist/features/environment-lifecycle/utils/resolveInfraStatePath.d.ts.map +1 -0
  237. package/dist/features/environment-lifecycle/utils/resolveInfraStatePath.js +11 -0
  238. package/dist/features/environment-lifecycle/utils/resolveInfraStatePath.js.map +1 -0
  239. package/dist/features/environment-lifecycle/utils/resolveProjectFile.d.ts +3 -0
  240. package/dist/features/environment-lifecycle/utils/resolveProjectFile.d.ts.map +1 -0
  241. package/dist/features/environment-lifecycle/utils/resolveProjectFile.js +19 -0
  242. package/dist/features/environment-lifecycle/utils/resolveProjectFile.js.map +1 -0
  243. package/dist/features/environment-lifecycle/utils/retainUnchangedAdapterOutputs.d.ts +4 -0
  244. package/dist/features/environment-lifecycle/utils/retainUnchangedAdapterOutputs.d.ts.map +1 -0
  245. package/dist/features/environment-lifecycle/utils/retainUnchangedAdapterOutputs.js +6 -0
  246. package/dist/features/environment-lifecycle/utils/retainUnchangedAdapterOutputs.js.map +1 -0
  247. package/dist/features/environment-lifecycle/utils/retainUnchangedAdapterResources.d.ts +4 -0
  248. package/dist/features/environment-lifecycle/utils/retainUnchangedAdapterResources.d.ts.map +1 -0
  249. package/dist/features/environment-lifecycle/utils/retainUnchangedAdapterResources.js +6 -0
  250. package/dist/features/environment-lifecycle/utils/retainUnchangedAdapterResources.js.map +1 -0
  251. package/dist/index.d.ts +16 -6
  252. package/dist/index.d.ts.map +1 -1
  253. package/dist/index.js +14 -15
  254. package/dist/index.js.map +1 -1
  255. package/dist/metadata/index.d.ts +1 -1
  256. package/dist/metadata/index.d.ts.map +1 -1
  257. package/dist/metadata/index.js +1 -1
  258. package/dist/metadata/index.js.map +1 -1
  259. package/dist/project/index.d.ts +7 -5
  260. package/dist/project/index.d.ts.map +1 -1
  261. package/dist/project/index.js +6 -5
  262. package/dist/project/index.js.map +1 -1
  263. package/dist/readme-usage.js +17 -26
  264. package/dist/readme-usage.js.map +1 -1
  265. package/dist/testSupport.d.ts +1 -1
  266. package/dist/testSupport.d.ts.map +1 -1
  267. package/dist/testSupport.js +11 -1
  268. package/dist/testSupport.js.map +1 -1
  269. package/dist/types/infraCli.d.ts +91 -0
  270. package/dist/types/infraCli.d.ts.map +1 -0
  271. package/dist/types/infraCli.js +2 -0
  272. package/dist/types/infraCli.js.map +1 -0
  273. package/dist/types/infraOrchestration.d.ts +84 -0
  274. package/dist/types/infraOrchestration.d.ts.map +1 -0
  275. package/dist/types/infraOrchestration.js +2 -0
  276. package/dist/types/infraOrchestration.js.map +1 -0
  277. package/dist/{project.d.ts → types/infraProject.d.ts} +6 -6
  278. package/dist/types/infraProject.d.ts.map +1 -0
  279. package/dist/types/infraProject.js +2 -0
  280. package/dist/types/infraProject.js.map +1 -0
  281. package/package.json +20 -10
  282. package/src/adapterPackages.integration.test.ts +79 -0
  283. package/src/cli/bin.ts +2 -61
  284. package/src/cli/cli.test.ts +35 -126
  285. package/src/cli/commands/destroy.ts +57 -0
  286. package/src/cli/commands/down.ts +28 -0
  287. package/src/cli/commands/generate.ts +34 -0
  288. package/src/cli/commands/outputs.ts +25 -0
  289. package/src/cli/commands/plan.ts +20 -0
  290. package/src/cli/commands/status.ts +20 -0
  291. package/src/cli/commands/up.ts +29 -0
  292. package/src/cli/commands/validate.ts +20 -0
  293. package/src/cli/constants.ts +19 -0
  294. package/src/cli/createDefaultInfraCommandContext.ts +17 -0
  295. package/src/cli/createInfraRuntimeProvider.ts +35 -0
  296. package/src/cli/createProviderCommandDescriptors.ts +8 -0
  297. package/src/cli/findInfraCommand.ts +7 -0
  298. package/src/cli/index.test.ts +12 -20
  299. package/src/cli/index.ts +7 -49
  300. package/src/cli/renderInfraRootHelp.ts +23 -0
  301. package/src/cli/renderUnknownInfraCommand.ts +4 -0
  302. package/src/cli/runInfraCliAsync.ts +51 -0
  303. package/src/cli/runInfraCommandAsync.ts +114 -0
  304. package/src/cli/utils/prepareInfraCommandOperationAsync.ts +64 -0
  305. package/src/cli/utils/requireInfraSuccess.ts +24 -0
  306. package/src/cli/utils/resolveInfraPersistence.ts +22 -0
  307. package/src/cli/utils/writeInfraEnvironmentOutputs.ts +24 -0
  308. package/src/cli/utils/writeInfraStructured.ts +11 -0
  309. package/src/commands.test.ts +198 -196
  310. package/src/{packageMetadata.ts → constants.ts} +5 -2
  311. package/src/environmentLifecycle.test.ts +193 -0
  312. package/src/features/environment-lifecycle/adapters/outbound/createEnvironmentInfraCredentialPort.ts +52 -0
  313. package/src/features/environment-lifecycle/adapters/outbound/createEnvironmentInfraSecretPort.ts +32 -0
  314. package/src/features/environment-lifecycle/adapters/outbound/createNodeInfraAdapterPackageResolver.ts +10 -0
  315. package/src/features/environment-lifecycle/adapters/outbound/readStoredInfraStateAsync.ts +34 -0
  316. package/src/features/environment-lifecycle/adapters/outbound/removeStoredInfraStateAsync.ts +12 -0
  317. package/src/{project.ts → features/environment-lifecycle/adapters/outbound/resolveInfraProjectAsync.ts} +10 -45
  318. package/src/features/environment-lifecycle/adapters/outbound/writeInfraGeneratedArtifactsAsync.ts +34 -0
  319. package/src/features/environment-lifecycle/adapters/outbound/writeStoredInfraStateAsync.ts +21 -0
  320. package/src/features/environment-lifecycle/application/ports/outbound/infraAdapterPackage.ts +10 -0
  321. package/src/features/environment-lifecycle/application/use-cases/collectInfraWorkloadsAsync.ts +25 -0
  322. package/src/features/environment-lifecycle/application/use-cases/destroyInfraEnvironmentAsync.ts +119 -0
  323. package/src/features/environment-lifecycle/application/use-cases/downInfraEnvironmentAsync.ts +65 -0
  324. package/src/features/environment-lifecycle/application/use-cases/generateInfraEnvironmentAsync.ts +51 -0
  325. package/src/features/environment-lifecycle/application/use-cases/getInfraEnvironmentOutputs.ts +41 -0
  326. package/src/features/environment-lifecycle/application/use-cases/planInfraEnvironmentAsync.ts +67 -0
  327. package/src/features/environment-lifecycle/application/use-cases/prepareInfraOperationAsync.ts +137 -0
  328. package/src/features/environment-lifecycle/application/use-cases/resolveInfraAdaptersAsync.ts +257 -0
  329. package/src/features/environment-lifecycle/application/use-cases/statusInfraEnvironmentAsync.ts +80 -0
  330. package/src/features/environment-lifecycle/application/use-cases/upInfraEnvironmentAsync.ts +126 -0
  331. package/src/features/environment-lifecycle/application/use-cases/validateInfraAdaptersAsync.ts +25 -0
  332. package/src/features/environment-lifecycle/application/use-cases/validateInfraEnvironmentAsync.ts +21 -0
  333. package/src/features/environment-lifecycle/composition/createInfraCommandServices.ts +47 -0
  334. package/src/features/environment-lifecycle/domain/orderInfraPlanActions.ts +64 -0
  335. package/src/features/environment-lifecycle/domain/resolveInfraEnvironment.ts +62 -0
  336. package/src/features/environment-lifecycle/utils/appendInfraFailure.ts +9 -0
  337. package/src/features/environment-lifecycle/utils/createInfraExecutionContext.ts +24 -0
  338. package/src/features/environment-lifecycle/utils/createInfraFailure.ts +6 -0
  339. package/src/features/environment-lifecycle/utils/createInfraLedger.ts +30 -0
  340. package/src/features/environment-lifecycle/utils/infraIdentityKey.ts +6 -0
  341. package/src/features/environment-lifecycle/utils/isInfraStoredState.ts +141 -0
  342. package/src/features/environment-lifecycle/utils/mergeInfraOutputs.ts +14 -0
  343. package/src/features/environment-lifecycle/utils/mergeInfraResources.ts +14 -0
  344. package/src/features/environment-lifecycle/utils/normalizeInfraEnvironmentKey.ts +7 -0
  345. package/src/features/environment-lifecycle/utils/resolveInfraStatePath.ts +12 -0
  346. package/src/features/environment-lifecycle/utils/resolveProjectFile.ts +22 -0
  347. package/src/features/environment-lifecycle/utils/retainUnchangedAdapterOutputs.ts +15 -0
  348. package/src/features/environment-lifecycle/utils/retainUnchangedAdapterResources.ts +15 -0
  349. package/src/index.test.ts +22 -315
  350. package/src/index.ts +41 -53
  351. package/src/infraComposition.integration.test.ts +128 -0
  352. package/src/infraOperations.test.ts +386 -0
  353. package/src/infraUp.test.ts +260 -0
  354. package/src/metadata/index.ts +1 -1
  355. package/src/package.test.ts +4 -2
  356. package/src/project/index.test.ts +8 -188
  357. package/src/project/index.ts +7 -22
  358. package/src/project.test.ts +39 -189
  359. package/src/projectContractsParser.test.ts +2 -2
  360. package/src/projectInfrastructure.test.ts +121 -167
  361. package/src/readme-usage.ts +17 -26
  362. package/src/testSupport.ts +12 -2
  363. package/src/types/infraCli.ts +115 -0
  364. package/src/types/infraOrchestration.ts +126 -0
  365. package/src/types/infraProject.ts +15 -0
  366. package/dist/adapters/minikube/auth/index.d.ts +0 -8
  367. package/dist/adapters/minikube/auth/index.d.ts.map +0 -1
  368. package/dist/adapters/minikube/auth/index.js +0 -29
  369. package/dist/adapters/minikube/auth/index.js.map +0 -1
  370. package/dist/adapters/minikube/auth/oauthRuntime.d.ts +0 -4
  371. package/dist/adapters/minikube/auth/oauthRuntime.d.ts.map +0 -1
  372. package/dist/adapters/minikube/auth/oauthRuntime.js +0 -138
  373. package/dist/adapters/minikube/auth/oauthRuntime.js.map +0 -1
  374. package/dist/adapters/minikube/auth/supabase/index.d.ts +0 -7
  375. package/dist/adapters/minikube/auth/supabase/index.d.ts.map +0 -1
  376. package/dist/adapters/minikube/auth/supabase/index.js +0 -232
  377. package/dist/adapters/minikube/auth/supabase/index.js.map +0 -1
  378. package/dist/adapters/minikube/auth/supabase/profile.d.ts +0 -20
  379. package/dist/adapters/minikube/auth/supabase/profile.d.ts.map +0 -1
  380. package/dist/adapters/minikube/auth/supabase/profile.js +0 -452
  381. package/dist/adapters/minikube/auth/supabase/profile.js.map +0 -1
  382. package/dist/adapters/minikube/auth/targetAwareOAuthRuntime.d.ts +0 -7
  383. package/dist/adapters/minikube/auth/targetAwareOAuthRuntime.d.ts.map +0 -1
  384. package/dist/adapters/minikube/auth/targetAwareOAuthRuntime.js +0 -104
  385. package/dist/adapters/minikube/auth/targetAwareOAuthRuntime.js.map +0 -1
  386. package/dist/adapters/minikube/authz/cerbos/index.d.ts +0 -13
  387. package/dist/adapters/minikube/authz/cerbos/index.d.ts.map +0 -1
  388. package/dist/adapters/minikube/authz/cerbos/index.js +0 -382
  389. package/dist/adapters/minikube/authz/cerbos/index.js.map +0 -1
  390. package/dist/adapters/minikube/authz/index.d.ts +0 -9
  391. package/dist/adapters/minikube/authz/index.d.ts.map +0 -1
  392. package/dist/adapters/minikube/authz/index.js +0 -23
  393. package/dist/adapters/minikube/authz/index.js.map +0 -1
  394. package/dist/adapters/minikube/base/index.d.ts +0 -14
  395. package/dist/adapters/minikube/base/index.d.ts.map +0 -1
  396. package/dist/adapters/minikube/base/index.js +0 -3433
  397. package/dist/adapters/minikube/base/index.js.map +0 -1
  398. package/dist/adapters/minikube/base/supabaseMigrations.d.ts +0 -2
  399. package/dist/adapters/minikube/base/supabaseMigrations.d.ts.map +0 -1
  400. package/dist/adapters/minikube/base/supabaseMigrations.js +0 -6
  401. package/dist/adapters/minikube/base/supabaseMigrations.js.map +0 -1
  402. package/dist/adapters/minikube/contracts.d.ts +0 -34
  403. package/dist/adapters/minikube/contracts.d.ts.map +0 -1
  404. package/dist/adapters/minikube/contracts.js +0 -10
  405. package/dist/adapters/minikube/contracts.js.map +0 -1
  406. package/dist/adapters/minikube/index.d.ts +0 -3
  407. package/dist/adapters/minikube/index.d.ts.map +0 -1
  408. package/dist/adapters/minikube/index.js +0 -136
  409. package/dist/adapters/minikube/index.js.map +0 -1
  410. package/dist/adapters/minikube/secrets/index.d.ts +0 -7
  411. package/dist/adapters/minikube/secrets/index.d.ts.map +0 -1
  412. package/dist/adapters/minikube/secrets/index.js +0 -13
  413. package/dist/adapters/minikube/secrets/index.js.map +0 -1
  414. package/dist/adapters/minikube/secrets/supabase-vault/index.d.ts +0 -8
  415. package/dist/adapters/minikube/secrets/supabase-vault/index.d.ts.map +0 -1
  416. package/dist/adapters/minikube/secrets/supabase-vault/index.js +0 -118
  417. package/dist/adapters/minikube/secrets/supabase-vault/index.js.map +0 -1
  418. package/dist/adapters/minikube/storage/index.d.ts +0 -7
  419. package/dist/adapters/minikube/storage/index.d.ts.map +0 -1
  420. package/dist/adapters/minikube/storage/index.js +0 -77
  421. package/dist/adapters/minikube/storage/index.js.map +0 -1
  422. package/dist/adapters/minikube/storage/supabase/index.d.ts +0 -7
  423. package/dist/adapters/minikube/storage/supabase/index.d.ts.map +0 -1
  424. package/dist/adapters/minikube/storage/supabase/index.js +0 -82
  425. package/dist/adapters/minikube/storage/supabase/index.js.map +0 -1
  426. package/dist/authRedirects.d.ts +0 -19
  427. package/dist/authRedirects.d.ts.map +0 -1
  428. package/dist/authRedirects.js +0 -80
  429. package/dist/authRedirects.js.map +0 -1
  430. package/dist/authTargetRedirects.d.ts +0 -12
  431. package/dist/authTargetRedirects.d.ts.map +0 -1
  432. package/dist/authTargetRedirects.js +0 -32
  433. package/dist/authTargetRedirects.js.map +0 -1
  434. package/dist/commandContext.d.ts +0 -12
  435. package/dist/commandContext.d.ts.map +0 -1
  436. package/dist/commandContext.js.map +0 -1
  437. package/dist/commands.d.ts +0 -95
  438. package/dist/commands.d.ts.map +0 -1
  439. package/dist/commands.js +0 -256
  440. package/dist/commands.js.map +0 -1
  441. package/dist/infraValidation.d.ts +0 -4
  442. package/dist/infraValidation.d.ts.map +0 -1
  443. package/dist/infraValidation.js +0 -63
  444. package/dist/infraValidation.js.map +0 -1
  445. package/dist/packageMetadata.d.ts +0 -10
  446. package/dist/packageMetadata.d.ts.map +0 -1
  447. package/dist/packageMetadata.js.map +0 -1
  448. package/dist/project.d.ts.map +0 -1
  449. package/dist/project.js.map +0 -1
  450. package/dist/projectDatabase.d.ts +0 -5
  451. package/dist/projectDatabase.d.ts.map +0 -1
  452. package/dist/projectDatabase.js +0 -22
  453. package/dist/projectDatabase.js.map +0 -1
  454. package/dist/projectEnvironment.d.ts +0 -6
  455. package/dist/projectEnvironment.d.ts.map +0 -1
  456. package/dist/projectEnvironment.js +0 -45
  457. package/dist/projectEnvironment.js.map +0 -1
  458. package/dist/projectInfrastructure.d.ts +0 -38
  459. package/dist/projectInfrastructure.d.ts.map +0 -1
  460. package/dist/projectInfrastructure.js +0 -145
  461. package/dist/projectInfrastructure.js.map +0 -1
  462. package/dist/runtime.d.ts +0 -54
  463. package/dist/runtime.d.ts.map +0 -1
  464. package/dist/runtime.js +0 -151
  465. package/dist/runtime.js.map +0 -1
  466. package/dist/secretStore.d.ts +0 -19
  467. package/dist/secretStore.d.ts.map +0 -1
  468. package/dist/secretStore.js +0 -22
  469. package/dist/secretStore.js.map +0 -1
  470. package/dist/types.d.ts +0 -70
  471. package/dist/types.d.ts.map +0 -1
  472. package/dist/types.js +0 -2
  473. package/dist/types.js.map +0 -1
  474. package/src/adapters/minikube/README.md +0 -115
  475. package/src/adapters/minikube/appRuntimeServing.test.ts +0 -28
  476. package/src/adapters/minikube/auth/index.ts +0 -40
  477. package/src/adapters/minikube/auth/oauthRuntime.ts +0 -163
  478. package/src/adapters/minikube/auth/supabase/index.test.ts +0 -227
  479. package/src/adapters/minikube/auth/supabase/index.ts +0 -293
  480. package/src/adapters/minikube/auth/supabase/oauthRuntime.test.ts +0 -154
  481. package/src/adapters/minikube/auth/supabase/profile.integration.test.ts +0 -1028
  482. package/src/adapters/minikube/auth/supabase/profile.ts +0 -526
  483. package/src/adapters/minikube/auth/supabase/providerAssignments.test.ts +0 -36
  484. package/src/adapters/minikube/auth/targetAwareOAuthRuntime.test.ts +0 -83
  485. package/src/adapters/minikube/auth/targetAwareOAuthRuntime.ts +0 -136
  486. package/src/adapters/minikube/authz/cerbos/index.ts +0 -486
  487. package/src/adapters/minikube/authz/index.ts +0 -32
  488. package/src/adapters/minikube/base/appImageBuild.test.ts +0 -352
  489. package/src/adapters/minikube/base/index.test.ts +0 -693
  490. package/src/adapters/minikube/base/index.ts +0 -3763
  491. package/src/adapters/minikube/base/portForwardRuntime.test.ts +0 -624
  492. package/src/adapters/minikube/base/supabaseMigrations.test.ts +0 -168
  493. package/src/adapters/minikube/base/supabaseMigrations.ts +0 -5
  494. package/src/adapters/minikube/base/twoAppIsolation.integration.test.ts +0 -898
  495. package/src/adapters/minikube/base/upgradeReconciliation.test.ts +0 -135
  496. package/src/adapters/minikube/contracts.ts +0 -46
  497. package/src/adapters/minikube/index.ts +0 -172
  498. package/src/adapters/minikube/secrets/index.test.ts +0 -147
  499. package/src/adapters/minikube/secrets/index.ts +0 -19
  500. package/src/adapters/minikube/secrets/supabase-vault/index.ts +0 -139
  501. package/src/adapters/minikube/storage/index.ts +0 -91
  502. package/src/adapters/minikube/storage/supabase/index.ts +0 -108
  503. package/src/apiInfrastructure.test.ts +0 -69
  504. package/src/authRedirects.test.ts +0 -63
  505. package/src/authRedirects.ts +0 -113
  506. package/src/authTargetRedirects.test.ts +0 -62
  507. package/src/authTargetRedirects.ts +0 -46
  508. package/src/commandContext.ts +0 -27
  509. package/src/commands.ts +0 -404
  510. package/src/generatedApiLedgerCleanup.test.ts +0 -72
  511. package/src/infraApiValidation.test.ts +0 -42
  512. package/src/infraValidation.ts +0 -99
  513. package/src/minikubeImageLifecycle.test.ts +0 -35
  514. package/src/projectDatabase.ts +0 -27
  515. package/src/projectEnvironment.ts +0 -51
  516. package/src/projectInfrastructure.ts +0 -221
  517. package/src/runtime.test.ts +0 -124
  518. package/src/runtime.ts +0 -234
  519. package/src/secretStore.test.ts +0 -76
  520. package/src/secretStore.ts +0 -44
  521. package/src/types.ts +0 -82
@@ -1,80 +0,0 @@
1
- export function resolveAuthRedirectConfiguration(input) {
2
- const gatewayOrigin = normalizeWebOrigin(input.gatewayOrigin, 'gatewayOrigin');
3
- const siteUrl = normalizeWebOrigin(input.siteOrigin, 'siteOrigin');
4
- const callbackRoute = normalizeCallbackRoute(input.callbackRoute);
5
- const webOrigins = unique([
6
- siteUrl,
7
- ...(input.webOrigins ?? []).map((origin) => normalizeWebOrigin(origin, 'webOrigins')),
8
- ]);
9
- const nativeRedirectUris = unique((input.nativeRedirectUris ?? []).map((uri) => normalizeNativeRedirectUri(uri)));
10
- const redirectAllowList = unique([
11
- ...webOrigins,
12
- ...webOrigins.map((origin) => `${origin}${callbackRoute}`),
13
- ...(input.environment === 'local' ? getLocalAuthRedirectPatterns(callbackRoute) : []),
14
- ...nativeRedirectUris,
15
- ]);
16
- return {
17
- providerCallbackUrl: `${gatewayOrigin}/auth/v1/callback`,
18
- siteUrl,
19
- redirectAllowList,
20
- serializedRedirectAllowList: redirectAllowList.join(','),
21
- };
22
- }
23
- export function getLocalAuthRedirectPatterns(callbackRoute) {
24
- const normalizedRoute = normalizeCallbackRoute(callbackRoute);
25
- return [`http://127.0.0.1:*${normalizedRoute}`, `http://localhost:*${normalizedRoute}`];
26
- }
27
- export function normalizeAuthCallbackRoute(callbackRoute) {
28
- return normalizeCallbackRoute(callbackRoute);
29
- }
30
- function normalizeCallbackRoute(callbackRoute) {
31
- const trimmed = callbackRoute.trim();
32
- if (!trimmed) {
33
- throw new Error('Auth callback route must not be empty.');
34
- }
35
- const withLeadingSlash = trimmed.startsWith('/') ? trimmed : `/${trimmed}`;
36
- const normalized = withLeadingSlash.replace(/\/{2,}/gu, '/');
37
- if (normalized.includes('?') || normalized.includes('#')) {
38
- throw new Error('Auth callback route must not include a query string or fragment.');
39
- }
40
- return normalized;
41
- }
42
- function normalizeWebOrigin(value, field) {
43
- const parsed = parseUrl(value, field);
44
- if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
45
- throw new Error(`${field} must use http or https.`);
46
- }
47
- if (parsed.username || parsed.password || parsed.search || parsed.hash) {
48
- throw new Error(`${field} must be a canonical origin without credentials, query, or fragment.`);
49
- }
50
- if (parsed.pathname !== '/' && parsed.pathname !== '') {
51
- throw new Error(`${field} must not include a path.`);
52
- }
53
- return parsed.origin;
54
- }
55
- function normalizeNativeRedirectUri(value) {
56
- const parsed = parseUrl(value, 'nativeRedirectUris');
57
- if (parsed.protocol === 'http:' || parsed.protocol === 'https:') {
58
- throw new Error('nativeRedirectUris must use a non-HTTP application scheme.');
59
- }
60
- if (parsed.username || parsed.password || parsed.search || parsed.hash) {
61
- throw new Error('nativeRedirectUris must not include credentials, query strings, or fragments.');
62
- }
63
- return parsed.toString();
64
- }
65
- function parseUrl(value, field) {
66
- const trimmed = value.trim();
67
- if (!trimmed) {
68
- throw new Error(`${field} must not contain empty values.`);
69
- }
70
- try {
71
- return new URL(trimmed);
72
- }
73
- catch {
74
- throw new Error(`${field} contains an invalid URL.`);
75
- }
76
- }
77
- function unique(values) {
78
- return [...new Set(values)];
79
- }
80
- //# sourceMappingURL=authRedirects.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authRedirects.js","sourceRoot":"","sources":["../src/authRedirects.ts"],"names":[],"mappings":"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","sourcesContent":["export type AuthRedirectEnvironment = 'local' | 'preview' | 'production';\n\nexport interface ResolveAuthRedirectConfigurationInput {\n environment: AuthRedirectEnvironment;\n gatewayOrigin: string;\n siteOrigin: string;\n callbackRoute: string;\n webOrigins?: readonly string[];\n nativeRedirectUris?: readonly string[];\n}\n\nexport interface AuthRedirectConfiguration {\n providerCallbackUrl: string;\n siteUrl: string;\n redirectAllowList: readonly string[];\n serializedRedirectAllowList: string;\n}\n\nexport function resolveAuthRedirectConfiguration(\n input: ResolveAuthRedirectConfigurationInput,\n): AuthRedirectConfiguration {\n const gatewayOrigin = normalizeWebOrigin(input.gatewayOrigin, 'gatewayOrigin');\n const siteUrl = normalizeWebOrigin(input.siteOrigin, 'siteOrigin');\n const callbackRoute = normalizeCallbackRoute(input.callbackRoute);\n const webOrigins = unique([\n siteUrl,\n ...(input.webOrigins ?? []).map((origin) => normalizeWebOrigin(origin, 'webOrigins')),\n ]);\n const nativeRedirectUris = unique(\n (input.nativeRedirectUris ?? []).map((uri) => normalizeNativeRedirectUri(uri)),\n );\n\n const redirectAllowList = unique([\n ...webOrigins,\n ...webOrigins.map((origin) => `${origin}${callbackRoute}`),\n ...(input.environment === 'local' ? getLocalAuthRedirectPatterns(callbackRoute) : []),\n ...nativeRedirectUris,\n ]);\n\n return {\n providerCallbackUrl: `${gatewayOrigin}/auth/v1/callback`,\n siteUrl,\n redirectAllowList,\n serializedRedirectAllowList: redirectAllowList.join(','),\n };\n}\n\nexport function getLocalAuthRedirectPatterns(callbackRoute: string): readonly string[] {\n const normalizedRoute = normalizeCallbackRoute(callbackRoute);\n return [`http://127.0.0.1:*${normalizedRoute}`, `http://localhost:*${normalizedRoute}`];\n}\n\nexport function normalizeAuthCallbackRoute(callbackRoute: string): string {\n return normalizeCallbackRoute(callbackRoute);\n}\n\nfunction normalizeCallbackRoute(callbackRoute: string): string {\n const trimmed = callbackRoute.trim();\n if (!trimmed) {\n throw new Error('Auth callback route must not be empty.');\n }\n\n const withLeadingSlash = trimmed.startsWith('/') ? trimmed : `/${trimmed}`;\n const normalized = withLeadingSlash.replace(/\\/{2,}/gu, '/');\n if (normalized.includes('?') || normalized.includes('#')) {\n throw new Error('Auth callback route must not include a query string or fragment.');\n }\n return normalized;\n}\n\nfunction normalizeWebOrigin(value: string, field: string): string {\n const parsed = parseUrl(value, field);\n if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {\n throw new Error(`${field} must use http or https.`);\n }\n if (parsed.username || parsed.password || parsed.search || parsed.hash) {\n throw new Error(`${field} must be a canonical origin without credentials, query, or fragment.`);\n }\n if (parsed.pathname !== '/' && parsed.pathname !== '') {\n throw new Error(`${field} must not include a path.`);\n }\n return parsed.origin;\n}\n\nfunction normalizeNativeRedirectUri(value: string): string {\n const parsed = parseUrl(value, 'nativeRedirectUris');\n if (parsed.protocol === 'http:' || parsed.protocol === 'https:') {\n throw new Error('nativeRedirectUris must use a non-HTTP application scheme.');\n }\n if (parsed.username || parsed.password || parsed.search || parsed.hash) {\n throw new Error(\n 'nativeRedirectUris must not include credentials, query strings, or fragments.',\n );\n }\n return parsed.toString();\n}\n\nfunction parseUrl(value: string, field: string): URL {\n const trimmed = value.trim();\n if (!trimmed) {\n throw new Error(`${field} must not contain empty values.`);\n }\n\n try {\n return new URL(trimmed);\n } catch {\n throw new Error(`${field} contains an invalid URL.`);\n }\n}\n\nfunction unique(values: readonly string[]): string[] {\n return [...new Set(values)];\n}\n"]}
@@ -1,12 +0,0 @@
1
- import type { AppDeployTargets } from '@ankhorage/contracts/deploy';
2
- interface AuthTargetRedirectModel {
3
- readonly nativeRedirectUris: readonly string[];
4
- readonly warnings: readonly string[];
5
- readonly webEnabled: boolean;
6
- }
7
- export declare function resolveAuthTargetRedirectModel(args: {
8
- readonly callbackRoute: string;
9
- readonly targets: AppDeployTargets | undefined;
10
- }): AuthTargetRedirectModel;
11
- export {};
12
- //# sourceMappingURL=authTargetRedirects.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authTargetRedirects.d.ts","sourceRoot":"","sources":["../src/authTargetRedirects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAChD,GAAG,uBAAuB,CAkC1B"}
@@ -1,32 +0,0 @@
1
- export function resolveAuthTargetRedirectModel(args) {
2
- if (args.targets === undefined) {
3
- return {
4
- nativeRedirectUris: [],
5
- warnings: [
6
- 'OAuth deploy.targets is missing; Infra keeps Web-local redirects only until canonical targets are persisted.',
7
- ],
8
- webEnabled: true,
9
- };
10
- }
11
- const callbackPath = args.callbackRoute.replace(/^\/+/u, '');
12
- const nativeRedirectUris = [];
13
- const warnings = [];
14
- for (const [targetId, target] of [
15
- ['android', args.targets.android],
16
- ['ios', args.targets.ios],
17
- ]) {
18
- if (target?.enabled !== true)
19
- continue;
20
- if (target.scheme === undefined) {
21
- warnings.push(`OAuth ${targetId} target is enabled but deploy.targets.${targetId}.scheme is missing; native callback omitted.`);
22
- continue;
23
- }
24
- nativeRedirectUris.push(`${target.scheme}://${callbackPath}`);
25
- }
26
- return {
27
- nativeRedirectUris: [...new Set(nativeRedirectUris)],
28
- warnings,
29
- webEnabled: args.targets.web?.enabled === true,
30
- };
31
- }
32
- //# sourceMappingURL=authTargetRedirects.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authTargetRedirects.js","sourceRoot":"","sources":["../src/authTargetRedirects.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,8BAA8B,CAAC,IAG9C;IACC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO;YACL,kBAAkB,EAAE,EAAE;YACtB,QAAQ,EAAE;gBACR,8GAA8G;aAC/G;YACD,UAAU,EAAE,IAAI;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,kBAAkB,GAAa,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI;QAC/B,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;KACjB,EAAE,CAAC;QACX,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI;YAAE,SAAS;QACvC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CACX,SAAS,QAAQ,yCAAyC,QAAQ,8CAA8C,CACjH,CAAC;YACF,SAAS;QACX,CAAC;QACD,kBAAkB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,MAAM,YAAY,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO;QACL,kBAAkB,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACpD,QAAQ;QACR,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI;KAC/C,CAAC;AACJ,CAAC","sourcesContent":["import type { AppDeployTargets } from '@ankhorage/contracts/deploy';\n\ninterface AuthTargetRedirectModel {\n readonly nativeRedirectUris: readonly string[];\n readonly warnings: readonly string[];\n readonly webEnabled: boolean;\n}\n\nexport function resolveAuthTargetRedirectModel(args: {\n readonly callbackRoute: string;\n readonly targets: AppDeployTargets | undefined;\n}): AuthTargetRedirectModel {\n if (args.targets === undefined) {\n return {\n nativeRedirectUris: [],\n warnings: [\n 'OAuth deploy.targets is missing; Infra keeps Web-local redirects only until canonical targets are persisted.',\n ],\n webEnabled: true,\n };\n }\n\n const callbackPath = args.callbackRoute.replace(/^\\/+/u, '');\n const nativeRedirectUris: string[] = [];\n const warnings: string[] = [];\n\n for (const [targetId, target] of [\n ['android', args.targets.android],\n ['ios', args.targets.ios],\n ] as const) {\n if (target?.enabled !== true) continue;\n if (target.scheme === undefined) {\n warnings.push(\n `OAuth ${targetId} target is enabled but deploy.targets.${targetId}.scheme is missing; native callback omitted.`,\n );\n continue;\n }\n nativeRedirectUris.push(`${target.scheme}://${callbackPath}`);\n }\n\n return {\n nativeRedirectUris: [...new Set(nativeRedirectUris)],\n warnings,\n webEnabled: args.targets.web?.enabled === true,\n };\n}\n"]}
@@ -1,12 +0,0 @@
1
- export interface InfraCommandContext {
2
- readonly cwd: string;
3
- readonly env: Readonly<Record<string, string | undefined>>;
4
- readonly version: string;
5
- writeStdout(text: string): void;
6
- writeStderr(text: string): void;
7
- }
8
- export interface InfraCommandRunResult {
9
- readonly exitCode: number;
10
- }
11
- export declare function createDefaultCommandContext(): InfraCommandContext;
12
- //# sourceMappingURL=commandContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commandContext.d.ts","sourceRoot":"","sources":["../src/commandContext.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,2BAA2B,IAAI,mBAAmB,CAYjE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"commandContext.js","sourceRoot":"","sources":["../src/commandContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAc7D,MAAM,UAAU,2BAA2B;IACzC,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,qBAAqB;QAC9B,WAAW,CAAC,IAAY;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,WAAW,CAAC,IAAY;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { INFRA_PACKAGE_VERSION } from './packageMetadata.js';\n\nexport interface InfraCommandContext {\n readonly cwd: string;\n readonly env: Readonly<Record<string, string | undefined>>;\n readonly version: string;\n writeStdout(text: string): void;\n writeStderr(text: string): void;\n}\n\nexport interface InfraCommandRunResult {\n readonly exitCode: number;\n}\n\nexport function createDefaultCommandContext(): InfraCommandContext {\n return {\n cwd: process.cwd(),\n env: process.env,\n version: INFRA_PACKAGE_VERSION,\n writeStdout(text: string) {\n process.stdout.write(text);\n },\n writeStderr(text: string) {\n process.stderr.write(text);\n },\n };\n}\n"]}
@@ -1,95 +0,0 @@
1
- import type { AnkhCapabilityId, AnkhCommandDescriptor } from '@ankhorage/contracts/cli';
2
- import type { InfraCommandContext, InfraCommandRunResult } from './commandContext.js';
3
- import { validateInfraSupport } from './infraValidation.js';
4
- import type { ResolvedInfraProject } from './project.js';
5
- import type { InfraSyncResult } from './projectInfrastructure.js';
6
- import type { InfraLifecycleScript } from './runtime.js';
7
- type InfraCommandName = 'down' | 'generate' | 'status' | 'up' | 'validate';
8
- interface InfraCommandRunRequest {
9
- readonly context: InfraCommandContext;
10
- readonly projectId?: string;
11
- }
12
- type InfraCommandImplementation = (request: InfraCommandRunRequest, services: InfraCommandServices) => Promise<InfraCommandRunResult>;
13
- export interface InfraCommandDefinition {
14
- readonly capability: AnkhCapabilityId;
15
- readonly path: readonly [InfraCommandName];
16
- readonly standaloneName: InfraCommandName;
17
- readonly summary: string;
18
- readonly run: InfraCommandImplementation;
19
- }
20
- export interface InfraCommandInvocation {
21
- readonly argv: readonly string[];
22
- readonly command: InfraCommandDefinition;
23
- readonly context: InfraCommandContext;
24
- }
25
- export interface InfraCommandServices {
26
- readonly resolveProject: (options: {
27
- readonly cwd: string;
28
- readonly projectId?: string;
29
- }) => Promise<ResolvedInfraProject>;
30
- readonly resolveProjectInfrastructureTarget: (args: {
31
- readonly manifest: ResolvedInfraProject['manifest'];
32
- readonly projectPath: string;
33
- }) => Promise<string | null>;
34
- readonly runProjectInfraScript: (args: {
35
- readonly context: InfraCommandContext;
36
- readonly projectId: string;
37
- readonly projectPath: string;
38
- readonly script: InfraLifecycleScript;
39
- readonly target: string;
40
- }) => Promise<void>;
41
- readonly syncProjectInfrastructure: (args: {
42
- readonly manifest: ResolvedInfraProject['manifest'];
43
- readonly projectId: string;
44
- readonly projectPath: string;
45
- }) => Promise<InfraSyncResult>;
46
- readonly validateInfraSupport: typeof validateInfraSupport;
47
- }
48
- export interface RunInfraCommandOptions {
49
- readonly runCommandImpl?: RunInfraCommandImpl;
50
- readonly services?: Partial<InfraCommandServices>;
51
- }
52
- export type RunInfraCommandImpl = (request: InfraCommandInvocation, options?: RunInfraCommandOptions) => Promise<InfraCommandRunResult>;
53
- export declare const INFRA_COMMANDS: readonly [{
54
- readonly standaloneName: "validate";
55
- readonly path: readonly ["validate"];
56
- readonly capability: "infra.validate";
57
- readonly summary: "Validate infra support for a project manifest.";
58
- readonly run: typeof runValidateCommand;
59
- }, {
60
- readonly standaloneName: "generate";
61
- readonly path: readonly ["generate"];
62
- readonly capability: "infra.generate";
63
- readonly summary: "Generate infra artifacts and update the infra ledger for a project.";
64
- readonly run: typeof runGenerateCommand;
65
- }, {
66
- readonly standaloneName: "status";
67
- readonly path: readonly ["status"];
68
- readonly capability: "infra.status";
69
- readonly summary: "Run the generated runtime status script for a project.";
70
- readonly run: typeof runStatusCommand;
71
- }, {
72
- readonly standaloneName: "up";
73
- readonly path: readonly ["up"];
74
- readonly capability: "infra.up";
75
- readonly summary: "Generate infra artifacts, then run the generated up script.";
76
- readonly run: typeof runUpCommand;
77
- }, {
78
- readonly standaloneName: "down";
79
- readonly path: readonly ["down"];
80
- readonly capability: "infra.down";
81
- readonly summary: "Run the generated down script for a project.";
82
- readonly run: typeof runDownCommand;
83
- }];
84
- export declare function runInfraCommand(request: InfraCommandInvocation, options?: RunInfraCommandOptions): Promise<InfraCommandRunResult>;
85
- export declare function createProviderCommandDescriptors(): readonly AnkhCommandDescriptor[];
86
- export declare function findInfraCommandByStandaloneName(value: string): InfraCommandDefinition | null;
87
- export declare function renderRootHelp(version: string): string;
88
- export declare function renderUnknownCommand(value: string): string;
89
- declare function runValidateCommand(request: InfraCommandRunRequest, services: InfraCommandServices): Promise<InfraCommandRunResult>;
90
- declare function runGenerateCommand(request: InfraCommandRunRequest, services: InfraCommandServices): Promise<InfraCommandRunResult>;
91
- declare function runStatusCommand(request: InfraCommandRunRequest, services: InfraCommandServices): Promise<InfraCommandRunResult>;
92
- declare function runUpCommand(request: InfraCommandRunRequest, services: InfraCommandServices): Promise<InfraCommandRunResult>;
93
- declare function runDownCommand(request: InfraCommandRunRequest, services: InfraCommandServices): Promise<InfraCommandRunResult>;
94
- export {};
95
- //# sourceMappingURL=commands.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
package/dist/commands.js DELETED
@@ -1,256 +0,0 @@
1
- import { validateInfraSupport } from './infraValidation.js';
2
- import { INFRA_CAPABILITIES, INFRA_COMMAND_CATEGORY } from './packageMetadata.js';
3
- import { resolveInfraProject } from './project.js';
4
- import { resolveProjectInfrastructureTarget, syncProjectInfrastructure, } from './projectInfrastructure.js';
5
- import { runProjectInfraScript } from './runtime.js';
6
- const COMMAND_CAPABILITIES = {
7
- validate: INFRA_CAPABILITIES[0],
8
- generate: INFRA_CAPABILITIES[1],
9
- status: INFRA_CAPABILITIES[2],
10
- up: INFRA_CAPABILITIES[3],
11
- down: INFRA_CAPABILITIES[4],
12
- };
13
- export const INFRA_COMMANDS = [
14
- {
15
- standaloneName: 'validate',
16
- path: ['validate'],
17
- capability: COMMAND_CAPABILITIES.validate,
18
- summary: 'Validate infra support for a project manifest.',
19
- run: runValidateCommand,
20
- },
21
- {
22
- standaloneName: 'generate',
23
- path: ['generate'],
24
- capability: COMMAND_CAPABILITIES.generate,
25
- summary: 'Generate infra artifacts and update the infra ledger for a project.',
26
- run: runGenerateCommand,
27
- },
28
- {
29
- standaloneName: 'status',
30
- path: ['status'],
31
- capability: COMMAND_CAPABILITIES.status,
32
- summary: 'Run the generated runtime status script for a project.',
33
- run: runStatusCommand,
34
- },
35
- {
36
- standaloneName: 'up',
37
- path: ['up'],
38
- capability: COMMAND_CAPABILITIES.up,
39
- summary: 'Generate infra artifacts, then run the generated up script.',
40
- run: runUpCommand,
41
- },
42
- {
43
- standaloneName: 'down',
44
- path: ['down'],
45
- capability: COMMAND_CAPABILITIES.down,
46
- summary: 'Run the generated down script for a project.',
47
- run: runDownCommand,
48
- },
49
- ];
50
- export async function runInfraCommand(request, options = {}) {
51
- const services = createInfraCommandServices(options.services);
52
- try {
53
- const parsedArgs = parseCommandArguments(request.command, request.argv);
54
- if (parsedArgs.kind === 'help') {
55
- request.context.writeStdout(renderCommandHelp(request.command));
56
- return { exitCode: 0 };
57
- }
58
- return await request.command.run({
59
- context: request.context,
60
- projectId: parsedArgs.projectId,
61
- }, services);
62
- }
63
- catch (error) {
64
- request.context.writeStderr(renderCommandFailure(request.command.standaloneName, error));
65
- return { exitCode: 1 };
66
- }
67
- }
68
- export function createProviderCommandDescriptors() {
69
- return INFRA_COMMANDS.map((command) => ({
70
- capability: command.capability,
71
- path: command.path,
72
- summary: command.summary,
73
- }));
74
- }
75
- export function findInfraCommandByStandaloneName(value) {
76
- return INFRA_COMMANDS.find((command) => command.standaloneName === value) ?? null;
77
- }
78
- export function renderRootHelp(version) {
79
- const commandLines = INFRA_COMMANDS.map((command) => ` ${command.standaloneName.padEnd(8, ' ')} ${command.summary}`).join('\n');
80
- return [
81
- `@ankhorage/infra v${version}`,
82
- '',
83
- 'Usage:',
84
- ` ankhorage-infra <command> [project]`,
85
- ` ankh ${INFRA_COMMAND_CATEGORY} <command> [project]`,
86
- '',
87
- 'Commands:',
88
- commandLines,
89
- '',
90
- 'Project resolution:',
91
- ' Pass [project], or omit it when cwd is inside apps/<project>.',
92
- '',
93
- ].join('\n');
94
- }
95
- export function renderUnknownCommand(value) {
96
- return [`Unknown infra command: ${value}`, '', 'Run ankhorage-infra --help', ''].join('\n');
97
- }
98
- function renderCommandHelp(command) {
99
- return [
100
- `${command.summary}`,
101
- '',
102
- 'Usage:',
103
- ` ankhorage-infra ${command.standaloneName} [project]`,
104
- ` ankh ${INFRA_COMMAND_CATEGORY} ${command.path.join(' ')} [project]`,
105
- '',
106
- 'Project resolution:',
107
- ' Pass [project], or omit it when cwd is inside apps/<project>.',
108
- '',
109
- ].join('\n');
110
- }
111
- function createInfraCommandServices(overrides = {}) {
112
- return {
113
- resolveProject: overrides.resolveProject ?? resolveInfraProject,
114
- resolveProjectInfrastructureTarget: overrides.resolveProjectInfrastructureTarget ?? resolveProjectInfrastructureTarget,
115
- runProjectInfraScript: overrides.runProjectInfraScript ?? runProjectInfraScript,
116
- syncProjectInfrastructure: overrides.syncProjectInfrastructure ?? syncProjectInfrastructure,
117
- validateInfraSupport: overrides.validateInfraSupport ?? validateInfraSupport,
118
- };
119
- }
120
- function parseCommandArguments(command, argv) {
121
- if (argv.length === 1 && isHelpToken(argv[0])) {
122
- return { kind: 'help' };
123
- }
124
- if (argv.length > 1) {
125
- throw new Error(`Infra ${command.standaloneName} accepts at most one project argument.`);
126
- }
127
- return {
128
- kind: 'run',
129
- projectId: argv[0],
130
- };
131
- }
132
- async function runValidateCommand(request, services) {
133
- const project = await services.resolveProject({
134
- cwd: request.context.cwd,
135
- projectId: request.projectId,
136
- });
137
- const warnings = [...services.validateInfraSupport(project.manifest.infra)];
138
- request.context.writeStdout(`projectId: ${project.projectId}\n`);
139
- request.context.writeStdout(`infraConfigSupport: ${warnings.length === 0 ? 'ok' : 'warnings'}\n`);
140
- writeWarnings(request.context, warnings);
141
- return { exitCode: 0 };
142
- }
143
- async function runGenerateCommand(request, services) {
144
- const project = await services.resolveProject({
145
- cwd: request.context.cwd,
146
- projectId: request.projectId,
147
- });
148
- request.context.writeStdout(`Regenerating infrastructure for project: ${project.projectId}...\n`);
149
- const result = await services.syncProjectInfrastructure({
150
- manifest: project.manifest,
151
- projectId: project.projectId,
152
- projectPath: project.projectPath,
153
- });
154
- if (result.skipped !== undefined) {
155
- request.context.writeStdout(`Skipped: ${result.skipped.reason}\n`);
156
- return { exitCode: 0 };
157
- }
158
- request.context.writeStdout(`Generated: ${result.generated}, removed stale: ${result.removed}\n`);
159
- writeWarnings(request.context, result.warnings);
160
- return { exitCode: 0 };
161
- }
162
- async function runStatusCommand(request, services) {
163
- const project = await services.resolveProject({
164
- cwd: request.context.cwd,
165
- projectId: request.projectId,
166
- });
167
- const target = await services.resolveProjectInfrastructureTarget({
168
- manifest: project.manifest,
169
- projectPath: project.projectPath,
170
- });
171
- if (target === null) {
172
- throw new Error(`Project '${project.projectId}' has no infrastructure target. Run infra generation first.`);
173
- }
174
- await services.runProjectInfraScript({
175
- context: request.context,
176
- projectId: project.projectId,
177
- projectPath: project.projectPath,
178
- script: 'status',
179
- target,
180
- });
181
- return { exitCode: 0 };
182
- }
183
- async function runUpCommand(request, services) {
184
- const project = await services.resolveProject({
185
- cwd: request.context.cwd,
186
- projectId: request.projectId,
187
- });
188
- request.context.writeStdout(`Preparing infrastructure for project: ${project.projectId}...\n`);
189
- const generateResult = await services.syncProjectInfrastructure({
190
- manifest: project.manifest,
191
- projectId: project.projectId,
192
- projectPath: project.projectPath,
193
- });
194
- if (generateResult.skipped !== undefined) {
195
- request.context.writeStdout(`Skipped: ${generateResult.skipped.reason}\n`);
196
- return { exitCode: 0 };
197
- }
198
- writeWarnings(request.context, generateResult.warnings);
199
- const target = await services.resolveProjectInfrastructureTarget({
200
- manifest: project.manifest,
201
- projectPath: project.projectPath,
202
- });
203
- if (project.manifest.infra.deployment === undefined || target === null) {
204
- throw new Error(`Project '${project.projectId}' has no infra.deployment target configured in ankh.config.json.`);
205
- }
206
- await services.runProjectInfraScript({
207
- context: request.context,
208
- projectId: project.projectId,
209
- projectPath: project.projectPath,
210
- script: 'up',
211
- target,
212
- });
213
- request.context.writeStdout('Infrastructure is up.\n');
214
- return { exitCode: 0 };
215
- }
216
- async function runDownCommand(request, services) {
217
- const project = await services.resolveProject({
218
- cwd: request.context.cwd,
219
- projectId: request.projectId,
220
- });
221
- const target = await services.resolveProjectInfrastructureTarget({
222
- manifest: project.manifest,
223
- projectPath: project.projectPath,
224
- });
225
- if (target === null) {
226
- throw new Error(`Project '${project.projectId}' has no infrastructure target. Run infra generation first.`);
227
- }
228
- await services.runProjectInfraScript({
229
- context: request.context,
230
- projectId: project.projectId,
231
- projectPath: project.projectPath,
232
- script: 'down',
233
- target,
234
- });
235
- request.context.writeStdout('Infrastructure is down.\n');
236
- return { exitCode: 0 };
237
- }
238
- function writeWarnings(context, warnings) {
239
- if (warnings.length === 0) {
240
- return;
241
- }
242
- context.writeStderr('Warnings:\n');
243
- for (const warning of warnings) {
244
- context.writeStderr(`- ${warning}\n`);
245
- }
246
- }
247
- function renderCommandFailure(commandName, error) {
248
- return `Infra ${commandName} failed: ${getErrorMessage(error)}\n`;
249
- }
250
- function getErrorMessage(error) {
251
- return error instanceof Error ? error.message : String(error);
252
- }
253
- function isHelpToken(value) {
254
- return value === '--help' || value === '-h' || value === 'help';
255
- }
256
- //# sourceMappingURL=commands.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AnkhCapabilityId, AnkhCommandDescriptor } from '@ankhorage/contracts/cli';\n\nimport type { InfraCommandContext, InfraCommandRunResult } from './commandContext.js';\nimport { validateInfraSupport } from './infraValidation.js';\nimport { INFRA_CAPABILITIES, INFRA_COMMAND_CATEGORY } from './packageMetadata.js';\nimport type { ResolvedInfraProject } from './project.js';\nimport { resolveInfraProject } from './project.js';\nimport type { InfraSyncResult } from './projectInfrastructure.js';\nimport {\n resolveProjectInfrastructureTarget,\n syncProjectInfrastructure,\n} from './projectInfrastructure.js';\nimport type { InfraLifecycleScript } from './runtime.js';\nimport { runProjectInfraScript } from './runtime.js';\n\ntype InfraCommandName = 'down' | 'generate' | 'status' | 'up' | 'validate';\n\ninterface InfraCommandRunRequest {\n readonly context: InfraCommandContext;\n readonly projectId?: string;\n}\n\ntype InfraCommandImplementation = (\n request: InfraCommandRunRequest,\n services: InfraCommandServices,\n) => Promise<InfraCommandRunResult>;\n\nexport interface InfraCommandDefinition {\n readonly capability: AnkhCapabilityId;\n readonly path: readonly [InfraCommandName];\n readonly standaloneName: InfraCommandName;\n readonly summary: string;\n readonly run: InfraCommandImplementation;\n}\n\nexport interface InfraCommandInvocation {\n readonly argv: readonly string[];\n readonly command: InfraCommandDefinition;\n readonly context: InfraCommandContext;\n}\n\nexport interface InfraCommandServices {\n readonly resolveProject: (options: {\n readonly cwd: string;\n readonly projectId?: string;\n }) => Promise<ResolvedInfraProject>;\n readonly resolveProjectInfrastructureTarget: (args: {\n readonly manifest: ResolvedInfraProject['manifest'];\n readonly projectPath: string;\n }) => Promise<string | null>;\n readonly runProjectInfraScript: (args: {\n readonly context: InfraCommandContext;\n readonly projectId: string;\n readonly projectPath: string;\n readonly script: InfraLifecycleScript;\n readonly target: string;\n }) => Promise<void>;\n readonly syncProjectInfrastructure: (args: {\n readonly manifest: ResolvedInfraProject['manifest'];\n readonly projectId: string;\n readonly projectPath: string;\n }) => Promise<InfraSyncResult>;\n readonly validateInfraSupport: typeof validateInfraSupport;\n}\n\nexport interface RunInfraCommandOptions {\n readonly runCommandImpl?: RunInfraCommandImpl;\n readonly services?: Partial<InfraCommandServices>;\n}\n\nexport type RunInfraCommandImpl = (\n request: InfraCommandInvocation,\n options?: RunInfraCommandOptions,\n) => Promise<InfraCommandRunResult>;\n\nconst COMMAND_CAPABILITIES = {\n validate: INFRA_CAPABILITIES[0],\n generate: INFRA_CAPABILITIES[1],\n status: INFRA_CAPABILITIES[2],\n up: INFRA_CAPABILITIES[3],\n down: INFRA_CAPABILITIES[4],\n} as const satisfies Record<InfraCommandName, AnkhCapabilityId>;\n\nexport const INFRA_COMMANDS = [\n {\n standaloneName: 'validate',\n path: ['validate'],\n capability: COMMAND_CAPABILITIES.validate,\n summary: 'Validate infra support for a project manifest.',\n run: runValidateCommand,\n },\n {\n standaloneName: 'generate',\n path: ['generate'],\n capability: COMMAND_CAPABILITIES.generate,\n summary: 'Generate infra artifacts and update the infra ledger for a project.',\n run: runGenerateCommand,\n },\n {\n standaloneName: 'status',\n path: ['status'],\n capability: COMMAND_CAPABILITIES.status,\n summary: 'Run the generated runtime status script for a project.',\n run: runStatusCommand,\n },\n {\n standaloneName: 'up',\n path: ['up'],\n capability: COMMAND_CAPABILITIES.up,\n summary: 'Generate infra artifacts, then run the generated up script.',\n run: runUpCommand,\n },\n {\n standaloneName: 'down',\n path: ['down'],\n capability: COMMAND_CAPABILITIES.down,\n summary: 'Run the generated down script for a project.',\n run: runDownCommand,\n },\n] as const satisfies readonly InfraCommandDefinition[];\n\nexport async function runInfraCommand(\n request: InfraCommandInvocation,\n options: RunInfraCommandOptions = {},\n): Promise<InfraCommandRunResult> {\n const services = createInfraCommandServices(options.services);\n\n try {\n const parsedArgs = parseCommandArguments(request.command, request.argv);\n if (parsedArgs.kind === 'help') {\n request.context.writeStdout(renderCommandHelp(request.command));\n return { exitCode: 0 };\n }\n\n return await request.command.run(\n {\n context: request.context,\n projectId: parsedArgs.projectId,\n },\n services,\n );\n } catch (error) {\n request.context.writeStderr(renderCommandFailure(request.command.standaloneName, error));\n return { exitCode: 1 };\n }\n}\n\nexport function createProviderCommandDescriptors(): readonly AnkhCommandDescriptor[] {\n return INFRA_COMMANDS.map((command) => ({\n capability: command.capability,\n path: command.path,\n summary: command.summary,\n }));\n}\n\nexport function findInfraCommandByStandaloneName(value: string): InfraCommandDefinition | null {\n return INFRA_COMMANDS.find((command) => command.standaloneName === value) ?? null;\n}\n\nexport function renderRootHelp(version: string): string {\n const commandLines = INFRA_COMMANDS.map(\n (command) => ` ${command.standaloneName.padEnd(8, ' ')} ${command.summary}`,\n ).join('\\n');\n\n return [\n `@ankhorage/infra v${version}`,\n '',\n 'Usage:',\n ` ankhorage-infra <command> [project]`,\n ` ankh ${INFRA_COMMAND_CATEGORY} <command> [project]`,\n '',\n 'Commands:',\n commandLines,\n '',\n 'Project resolution:',\n ' Pass [project], or omit it when cwd is inside apps/<project>.',\n '',\n ].join('\\n');\n}\n\nexport function renderUnknownCommand(value: string): string {\n return [`Unknown infra command: ${value}`, '', 'Run ankhorage-infra --help', ''].join('\\n');\n}\n\nfunction renderCommandHelp(command: InfraCommandDefinition): string {\n return [\n `${command.summary}`,\n '',\n 'Usage:',\n ` ankhorage-infra ${command.standaloneName} [project]`,\n ` ankh ${INFRA_COMMAND_CATEGORY} ${command.path.join(' ')} [project]`,\n '',\n 'Project resolution:',\n ' Pass [project], or omit it when cwd is inside apps/<project>.',\n '',\n ].join('\\n');\n}\n\nfunction createInfraCommandServices(\n overrides: Partial<InfraCommandServices> = {},\n): InfraCommandServices {\n return {\n resolveProject: overrides.resolveProject ?? resolveInfraProject,\n resolveProjectInfrastructureTarget:\n overrides.resolveProjectInfrastructureTarget ?? resolveProjectInfrastructureTarget,\n runProjectInfraScript: overrides.runProjectInfraScript ?? runProjectInfraScript,\n syncProjectInfrastructure: overrides.syncProjectInfrastructure ?? syncProjectInfrastructure,\n validateInfraSupport: overrides.validateInfraSupport ?? validateInfraSupport,\n };\n}\n\nfunction parseCommandArguments(\n command: InfraCommandDefinition,\n argv: readonly string[],\n): { readonly kind: 'help' } | { readonly kind: 'run'; readonly projectId?: string } {\n if (argv.length === 1 && isHelpToken(argv[0])) {\n return { kind: 'help' };\n }\n\n if (argv.length > 1) {\n throw new Error(`Infra ${command.standaloneName} accepts at most one project argument.`);\n }\n\n return {\n kind: 'run',\n projectId: argv[0],\n };\n}\n\nasync function runValidateCommand(\n request: InfraCommandRunRequest,\n services: InfraCommandServices,\n): Promise<InfraCommandRunResult> {\n const project = await services.resolveProject({\n cwd: request.context.cwd,\n projectId: request.projectId,\n });\n const warnings = [...services.validateInfraSupport(project.manifest.infra)];\n\n request.context.writeStdout(`projectId: ${project.projectId}\\n`);\n request.context.writeStdout(`infraConfigSupport: ${warnings.length === 0 ? 'ok' : 'warnings'}\\n`);\n writeWarnings(request.context, warnings);\n\n return { exitCode: 0 };\n}\n\nasync function runGenerateCommand(\n request: InfraCommandRunRequest,\n services: InfraCommandServices,\n): Promise<InfraCommandRunResult> {\n const project = await services.resolveProject({\n cwd: request.context.cwd,\n projectId: request.projectId,\n });\n\n request.context.writeStdout(`Regenerating infrastructure for project: ${project.projectId}...\\n`);\n\n const result = await services.syncProjectInfrastructure({\n manifest: project.manifest,\n projectId: project.projectId,\n projectPath: project.projectPath,\n });\n\n if (result.skipped !== undefined) {\n request.context.writeStdout(`Skipped: ${result.skipped.reason}\\n`);\n return { exitCode: 0 };\n }\n\n request.context.writeStdout(`Generated: ${result.generated}, removed stale: ${result.removed}\\n`);\n writeWarnings(request.context, result.warnings);\n\n return { exitCode: 0 };\n}\n\nasync function runStatusCommand(\n request: InfraCommandRunRequest,\n services: InfraCommandServices,\n): Promise<InfraCommandRunResult> {\n const project = await services.resolveProject({\n cwd: request.context.cwd,\n projectId: request.projectId,\n });\n const target = await services.resolveProjectInfrastructureTarget({\n manifest: project.manifest,\n projectPath: project.projectPath,\n });\n\n if (target === null) {\n throw new Error(\n `Project '${project.projectId}' has no infrastructure target. Run infra generation first.`,\n );\n }\n\n await services.runProjectInfraScript({\n context: request.context,\n projectId: project.projectId,\n projectPath: project.projectPath,\n script: 'status',\n target,\n });\n\n return { exitCode: 0 };\n}\n\nasync function runUpCommand(\n request: InfraCommandRunRequest,\n services: InfraCommandServices,\n): Promise<InfraCommandRunResult> {\n const project = await services.resolveProject({\n cwd: request.context.cwd,\n projectId: request.projectId,\n });\n\n request.context.writeStdout(`Preparing infrastructure for project: ${project.projectId}...\\n`);\n\n const generateResult = await services.syncProjectInfrastructure({\n manifest: project.manifest,\n projectId: project.projectId,\n projectPath: project.projectPath,\n });\n\n if (generateResult.skipped !== undefined) {\n request.context.writeStdout(`Skipped: ${generateResult.skipped.reason}\\n`);\n return { exitCode: 0 };\n }\n\n writeWarnings(request.context, generateResult.warnings);\n\n const target = await services.resolveProjectInfrastructureTarget({\n manifest: project.manifest,\n projectPath: project.projectPath,\n });\n\n if (project.manifest.infra.deployment === undefined || target === null) {\n throw new Error(\n `Project '${project.projectId}' has no infra.deployment target configured in ankh.config.json.`,\n );\n }\n\n await services.runProjectInfraScript({\n context: request.context,\n projectId: project.projectId,\n projectPath: project.projectPath,\n script: 'up',\n target,\n });\n request.context.writeStdout('Infrastructure is up.\\n');\n\n return { exitCode: 0 };\n}\n\nasync function runDownCommand(\n request: InfraCommandRunRequest,\n services: InfraCommandServices,\n): Promise<InfraCommandRunResult> {\n const project = await services.resolveProject({\n cwd: request.context.cwd,\n projectId: request.projectId,\n });\n const target = await services.resolveProjectInfrastructureTarget({\n manifest: project.manifest,\n projectPath: project.projectPath,\n });\n\n if (target === null) {\n throw new Error(\n `Project '${project.projectId}' has no infrastructure target. Run infra generation first.`,\n );\n }\n\n await services.runProjectInfraScript({\n context: request.context,\n projectId: project.projectId,\n projectPath: project.projectPath,\n script: 'down',\n target,\n });\n request.context.writeStdout('Infrastructure is down.\\n');\n\n return { exitCode: 0 };\n}\n\nfunction writeWarnings(context: InfraCommandContext, warnings: readonly string[]): void {\n if (warnings.length === 0) {\n return;\n }\n\n context.writeStderr('Warnings:\\n');\n for (const warning of warnings) {\n context.writeStderr(`- ${warning}\\n`);\n }\n}\n\nfunction renderCommandFailure(commandName: InfraCommandName, error: unknown): string {\n return `Infra ${commandName} failed: ${getErrorMessage(error)}\\n`;\n}\n\nfunction getErrorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nfunction isHelpToken(value: string | undefined): boolean {\n return value === '--help' || value === '-h' || value === 'help';\n}\n"]}
@@ -1,4 +0,0 @@
1
- import type { InfraManifestInput } from './types.js';
2
- export declare function validateInfraSupport(manifest: InfraManifestInput): readonly string[];
3
- export declare function validateInfraApiSupport(manifest: InfraManifestInput): readonly string[];
4
- //# sourceMappingURL=infraValidation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"infraValidation.d.ts","sourceRoot":"","sources":["../src/infraValidation.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,MAAM,EAAE,CA2DpF;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,MAAM,EAAE,CAOvF"}