@factiii/stack 0.1.2

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 (400) hide show
  1. package/README.md +420 -0
  2. package/bin/factiii +229 -0
  3. package/dist/cli/check-config.d.ts +9 -0
  4. package/dist/cli/check-config.d.ts.map +1 -0
  5. package/dist/cli/check-config.js +19 -0
  6. package/dist/cli/check-config.js.map +1 -0
  7. package/dist/cli/deploy-secrets.d.ts +16 -0
  8. package/dist/cli/deploy-secrets.d.ts.map +1 -0
  9. package/dist/cli/deploy-secrets.js +227 -0
  10. package/dist/cli/deploy-secrets.js.map +1 -0
  11. package/dist/cli/deploy.d.ts +30 -0
  12. package/dist/cli/deploy.d.ts.map +1 -0
  13. package/dist/cli/deploy.js +306 -0
  14. package/dist/cli/deploy.js.map +1 -0
  15. package/dist/cli/deployer.d.ts +13 -0
  16. package/dist/cli/deployer.d.ts.map +1 -0
  17. package/dist/cli/deployer.js +21 -0
  18. package/dist/cli/deployer.js.map +1 -0
  19. package/dist/cli/dev-sync.d.ts +30 -0
  20. package/dist/cli/dev-sync.d.ts.map +1 -0
  21. package/dist/cli/dev-sync.js +500 -0
  22. package/dist/cli/dev-sync.js.map +1 -0
  23. package/dist/cli/execute-plugin-command.d.ts +25 -0
  24. package/dist/cli/execute-plugin-command.d.ts.map +1 -0
  25. package/dist/cli/execute-plugin-command.js +237 -0
  26. package/dist/cli/execute-plugin-command.js.map +1 -0
  27. package/dist/cli/fix.d.ts +22 -0
  28. package/dist/cli/fix.d.ts.map +1 -0
  29. package/dist/cli/fix.js +267 -0
  30. package/dist/cli/fix.js.map +1 -0
  31. package/dist/cli/index.d.ts +17 -0
  32. package/dist/cli/index.d.ts.map +1 -0
  33. package/dist/cli/index.js +31 -0
  34. package/dist/cli/index.js.map +1 -0
  35. package/dist/cli/init.d.ts +9 -0
  36. package/dist/cli/init.d.ts.map +1 -0
  37. package/dist/cli/init.js +190 -0
  38. package/dist/cli/init.js.map +1 -0
  39. package/dist/cli/plugin-commands.d.ts +22 -0
  40. package/dist/cli/plugin-commands.d.ts.map +1 -0
  41. package/dist/cli/plugin-commands.js +121 -0
  42. package/dist/cli/plugin-commands.js.map +1 -0
  43. package/dist/cli/scan.d.ts +66 -0
  44. package/dist/cli/scan.d.ts.map +1 -0
  45. package/dist/cli/scan.js +511 -0
  46. package/dist/cli/scan.js.map +1 -0
  47. package/dist/cli/secrets.d.ts +19 -0
  48. package/dist/cli/secrets.d.ts.map +1 -0
  49. package/dist/cli/secrets.js +318 -0
  50. package/dist/cli/secrets.js.map +1 -0
  51. package/dist/cli/undeploy.d.ts +9 -0
  52. package/dist/cli/undeploy.d.ts.map +1 -0
  53. package/dist/cli/undeploy.js +95 -0
  54. package/dist/cli/undeploy.js.map +1 -0
  55. package/dist/cli/upgrade.d.ts +9 -0
  56. package/dist/cli/upgrade.d.ts.map +1 -0
  57. package/dist/cli/upgrade.js +24 -0
  58. package/dist/cli/upgrade.js.map +1 -0
  59. package/dist/cli/validate.d.ts +9 -0
  60. package/dist/cli/validate.d.ts.map +1 -0
  61. package/dist/cli/validate.js +20 -0
  62. package/dist/cli/validate.js.map +1 -0
  63. package/dist/generators/generate-factiii-auto.d.ts +31 -0
  64. package/dist/generators/generate-factiii-auto.d.ts.map +1 -0
  65. package/dist/generators/generate-factiii-auto.js +251 -0
  66. package/dist/generators/generate-factiii-auto.js.map +1 -0
  67. package/dist/generators/generate-factiii-yml.d.ts +23 -0
  68. package/dist/generators/generate-factiii-yml.d.ts.map +1 -0
  69. package/dist/generators/generate-factiii-yml.js +228 -0
  70. package/dist/generators/generate-factiii-yml.js.map +1 -0
  71. package/dist/generators/index.d.ts +8 -0
  72. package/dist/generators/index.d.ts.map +1 -0
  73. package/dist/generators/index.js +14 -0
  74. package/dist/generators/index.js.map +1 -0
  75. package/dist/index.d.ts +39 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +90 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/plugins/addons/server-mode/index.d.ts +57 -0
  80. package/dist/plugins/addons/server-mode/index.d.ts.map +1 -0
  81. package/dist/plugins/addons/server-mode/index.js +136 -0
  82. package/dist/plugins/addons/server-mode/index.js.map +1 -0
  83. package/dist/plugins/addons/server-mode/scanfix/mac.d.ts +17 -0
  84. package/dist/plugins/addons/server-mode/scanfix/mac.d.ts.map +1 -0
  85. package/dist/plugins/addons/server-mode/scanfix/mac.js +461 -0
  86. package/dist/plugins/addons/server-mode/scanfix/mac.js.map +1 -0
  87. package/dist/plugins/addons/server-mode/scanfix/ubuntu.d.ts +12 -0
  88. package/dist/plugins/addons/server-mode/scanfix/ubuntu.d.ts.map +1 -0
  89. package/dist/plugins/addons/server-mode/scanfix/ubuntu.js +246 -0
  90. package/dist/plugins/addons/server-mode/scanfix/ubuntu.js.map +1 -0
  91. package/dist/plugins/addons/server-mode/scanfix/windows.d.ts +14 -0
  92. package/dist/plugins/addons/server-mode/scanfix/windows.d.ts.map +1 -0
  93. package/dist/plugins/addons/server-mode/scanfix/windows.js +113 -0
  94. package/dist/plugins/addons/server-mode/scanfix/windows.js.map +1 -0
  95. package/dist/plugins/approved.json +13 -0
  96. package/dist/plugins/frameworks/prisma-trpc/index.d.ts +65 -0
  97. package/dist/plugins/frameworks/prisma-trpc/index.d.ts.map +1 -0
  98. package/dist/plugins/frameworks/prisma-trpc/index.js +668 -0
  99. package/dist/plugins/frameworks/prisma-trpc/index.js.map +1 -0
  100. package/dist/plugins/index.d.ts +101 -0
  101. package/dist/plugins/index.d.ts.map +1 -0
  102. package/dist/plugins/index.js +411 -0
  103. package/dist/plugins/index.js.map +1 -0
  104. package/dist/plugins/interfaces/addon.d.ts +43 -0
  105. package/dist/plugins/interfaces/addon.d.ts.map +1 -0
  106. package/dist/plugins/interfaces/addon.js +53 -0
  107. package/dist/plugins/interfaces/addon.js.map +1 -0
  108. package/dist/plugins/interfaces/framework.d.ts +43 -0
  109. package/dist/plugins/interfaces/framework.d.ts.map +1 -0
  110. package/dist/plugins/interfaces/framework.js +53 -0
  111. package/dist/plugins/interfaces/framework.js.map +1 -0
  112. package/dist/plugins/interfaces/index.d.ts +10 -0
  113. package/dist/plugins/interfaces/index.d.ts.map +1 -0
  114. package/dist/plugins/interfaces/index.js +17 -0
  115. package/dist/plugins/interfaces/index.js.map +1 -0
  116. package/dist/plugins/interfaces/pipeline.d.ts +78 -0
  117. package/dist/plugins/interfaces/pipeline.d.ts.map +1 -0
  118. package/dist/plugins/interfaces/pipeline.js +82 -0
  119. package/dist/plugins/interfaces/pipeline.js.map +1 -0
  120. package/dist/plugins/interfaces/server.d.ts +65 -0
  121. package/dist/plugins/interfaces/server.d.ts.map +1 -0
  122. package/dist/plugins/interfaces/server.js +72 -0
  123. package/dist/plugins/interfaces/server.js.map +1 -0
  124. package/dist/plugins/pipelines/aws/configs/ec2.d.ts +9 -0
  125. package/dist/plugins/pipelines/aws/configs/ec2.d.ts.map +1 -0
  126. package/dist/plugins/pipelines/aws/configs/ec2.js +34 -0
  127. package/dist/plugins/pipelines/aws/configs/ec2.js.map +1 -0
  128. package/dist/plugins/pipelines/aws/configs/free-tier.d.ts +13 -0
  129. package/dist/plugins/pipelines/aws/configs/free-tier.d.ts.map +1 -0
  130. package/dist/plugins/pipelines/aws/configs/free-tier.js +86 -0
  131. package/dist/plugins/pipelines/aws/configs/free-tier.js.map +1 -0
  132. package/dist/plugins/pipelines/aws/configs/index.d.ts +14 -0
  133. package/dist/plugins/pipelines/aws/configs/index.d.ts.map +1 -0
  134. package/dist/plugins/pipelines/aws/configs/index.js +21 -0
  135. package/dist/plugins/pipelines/aws/configs/index.js.map +1 -0
  136. package/dist/plugins/pipelines/aws/configs/types.d.ts +36 -0
  137. package/dist/plugins/pipelines/aws/configs/types.d.ts.map +1 -0
  138. package/dist/plugins/pipelines/aws/configs/types.js +9 -0
  139. package/dist/plugins/pipelines/aws/configs/types.js.map +1 -0
  140. package/dist/plugins/pipelines/aws/dev.d.ts +10 -0
  141. package/dist/plugins/pipelines/aws/dev.d.ts.map +1 -0
  142. package/dist/plugins/pipelines/aws/dev.js +70 -0
  143. package/dist/plugins/pipelines/aws/dev.js.map +1 -0
  144. package/dist/plugins/pipelines/aws/index.d.ts +118 -0
  145. package/dist/plugins/pipelines/aws/index.d.ts.map +1 -0
  146. package/dist/plugins/pipelines/aws/index.js +346 -0
  147. package/dist/plugins/pipelines/aws/index.js.map +1 -0
  148. package/dist/plugins/pipelines/aws/prod.d.ts +19 -0
  149. package/dist/plugins/pipelines/aws/prod.d.ts.map +1 -0
  150. package/dist/plugins/pipelines/aws/prod.js +362 -0
  151. package/dist/plugins/pipelines/aws/prod.js.map +1 -0
  152. package/dist/plugins/pipelines/aws/scanfix/aws-cli.d.ts +7 -0
  153. package/dist/plugins/pipelines/aws/scanfix/aws-cli.d.ts.map +1 -0
  154. package/dist/plugins/pipelines/aws/scanfix/aws-cli.js +31 -0
  155. package/dist/plugins/pipelines/aws/scanfix/aws-cli.js.map +1 -0
  156. package/dist/plugins/pipelines/aws/scanfix/config.d.ts +7 -0
  157. package/dist/plugins/pipelines/aws/scanfix/config.d.ts.map +1 -0
  158. package/dist/plugins/pipelines/aws/scanfix/config.js +134 -0
  159. package/dist/plugins/pipelines/aws/scanfix/config.js.map +1 -0
  160. package/dist/plugins/pipelines/factiii/github-secrets-store.d.ts +65 -0
  161. package/dist/plugins/pipelines/factiii/github-secrets-store.d.ts.map +1 -0
  162. package/dist/plugins/pipelines/factiii/github-secrets-store.js +221 -0
  163. package/dist/plugins/pipelines/factiii/github-secrets-store.js.map +1 -0
  164. package/dist/plugins/pipelines/factiii/index.d.ts +195 -0
  165. package/dist/plugins/pipelines/factiii/index.d.ts.map +1 -0
  166. package/dist/plugins/pipelines/factiii/index.js +862 -0
  167. package/dist/plugins/pipelines/factiii/index.js.map +1 -0
  168. package/dist/plugins/pipelines/factiii/prod.d.ts +17 -0
  169. package/dist/plugins/pipelines/factiii/prod.d.ts.map +1 -0
  170. package/dist/plugins/pipelines/factiii/prod.js +282 -0
  171. package/dist/plugins/pipelines/factiii/prod.js.map +1 -0
  172. package/dist/plugins/pipelines/factiii/scanfix/config.d.ts +7 -0
  173. package/dist/plugins/pipelines/factiii/scanfix/config.d.ts.map +1 -0
  174. package/dist/plugins/pipelines/factiii/scanfix/config.js +80 -0
  175. package/dist/plugins/pipelines/factiii/scanfix/config.js.map +1 -0
  176. package/dist/plugins/pipelines/factiii/scanfix/github-cli.d.ts +7 -0
  177. package/dist/plugins/pipelines/factiii/scanfix/github-cli.d.ts.map +1 -0
  178. package/dist/plugins/pipelines/factiii/scanfix/github-cli.js +43 -0
  179. package/dist/plugins/pipelines/factiii/scanfix/github-cli.js.map +1 -0
  180. package/dist/plugins/pipelines/factiii/scanfix/secrets.d.ts +7 -0
  181. package/dist/plugins/pipelines/factiii/scanfix/secrets.d.ts.map +1 -0
  182. package/dist/plugins/pipelines/factiii/scanfix/secrets.js +237 -0
  183. package/dist/plugins/pipelines/factiii/scanfix/secrets.js.map +1 -0
  184. package/dist/plugins/pipelines/factiii/scanfix/workflows.d.ts +7 -0
  185. package/dist/plugins/pipelines/factiii/scanfix/workflows.d.ts.map +1 -0
  186. package/dist/plugins/pipelines/factiii/scanfix/workflows.js +169 -0
  187. package/dist/plugins/pipelines/factiii/scanfix/workflows.js.map +1 -0
  188. package/dist/plugins/pipelines/factiii/staging.d.ts +25 -0
  189. package/dist/plugins/pipelines/factiii/staging.d.ts.map +1 -0
  190. package/dist/plugins/pipelines/factiii/staging.js +223 -0
  191. package/dist/plugins/pipelines/factiii/staging.js.map +1 -0
  192. package/dist/plugins/pipelines/factiii/utils/detection.d.ts +36 -0
  193. package/dist/plugins/pipelines/factiii/utils/detection.d.ts.map +1 -0
  194. package/dist/plugins/pipelines/factiii/utils/detection.js +140 -0
  195. package/dist/plugins/pipelines/factiii/utils/detection.js.map +1 -0
  196. package/dist/plugins/pipelines/factiii/utils/workflows.d.ts +16 -0
  197. package/dist/plugins/pipelines/factiii/utils/workflows.d.ts.map +1 -0
  198. package/dist/plugins/pipelines/factiii/utils/workflows.js +129 -0
  199. package/dist/plugins/pipelines/factiii/utils/workflows.js.map +1 -0
  200. package/dist/plugins/pipelines/factiii/workflows/factiii-cicd-prod.yml +112 -0
  201. package/dist/plugins/pipelines/factiii/workflows/factiii-cicd-staging.yml +112 -0
  202. package/dist/plugins/pipelines/factiii/workflows/factiii-command.yml +130 -0
  203. package/dist/plugins/pipelines/factiii/workflows/factiii-deploy.yml +198 -0
  204. package/dist/plugins/pipelines/factiii/workflows/factiii-dev-sync.yml +179 -0
  205. package/dist/plugins/pipelines/factiii/workflows/factiii-fix.yml +176 -0
  206. package/dist/plugins/pipelines/factiii/workflows/factiii-scan.yml +176 -0
  207. package/dist/plugins/pipelines/factiii/workflows/factiii-undeploy.yml +95 -0
  208. package/dist/plugins/servers/amazon-linux/index.d.ts +93 -0
  209. package/dist/plugins/servers/amazon-linux/index.d.ts.map +1 -0
  210. package/dist/plugins/servers/amazon-linux/index.js +217 -0
  211. package/dist/plugins/servers/amazon-linux/index.js.map +1 -0
  212. package/dist/plugins/servers/mac/dev.d.ts +10 -0
  213. package/dist/plugins/servers/mac/dev.d.ts.map +1 -0
  214. package/dist/plugins/servers/mac/dev.js +71 -0
  215. package/dist/plugins/servers/mac/dev.js.map +1 -0
  216. package/dist/plugins/servers/mac/index.d.ts +101 -0
  217. package/dist/plugins/servers/mac/index.d.ts.map +1 -0
  218. package/dist/plugins/servers/mac/index.js +257 -0
  219. package/dist/plugins/servers/mac/index.js.map +1 -0
  220. package/dist/plugins/servers/mac/scanfix/config.d.ts +7 -0
  221. package/dist/plugins/servers/mac/scanfix/config.d.ts.map +1 -0
  222. package/dist/plugins/servers/mac/scanfix/config.js +168 -0
  223. package/dist/plugins/servers/mac/scanfix/config.js.map +1 -0
  224. package/dist/plugins/servers/mac/scanfix/containers.d.ts +7 -0
  225. package/dist/plugins/servers/mac/scanfix/containers.d.ts.map +1 -0
  226. package/dist/plugins/servers/mac/scanfix/containers.js +167 -0
  227. package/dist/plugins/servers/mac/scanfix/containers.js.map +1 -0
  228. package/dist/plugins/servers/mac/scanfix/system.d.ts +7 -0
  229. package/dist/plugins/servers/mac/scanfix/system.d.ts.map +1 -0
  230. package/dist/plugins/servers/mac/scanfix/system.js +144 -0
  231. package/dist/plugins/servers/mac/scanfix/system.js.map +1 -0
  232. package/dist/plugins/servers/mac/staging.d.ts +21 -0
  233. package/dist/plugins/servers/mac/staging.d.ts.map +1 -0
  234. package/dist/plugins/servers/mac/staging.js +708 -0
  235. package/dist/plugins/servers/mac/staging.js.map +1 -0
  236. package/dist/plugins/servers/ubuntu/index.d.ts +93 -0
  237. package/dist/plugins/servers/ubuntu/index.d.ts.map +1 -0
  238. package/dist/plugins/servers/ubuntu/index.js +224 -0
  239. package/dist/plugins/servers/ubuntu/index.js.map +1 -0
  240. package/dist/plugins/servers/windows/index.d.ts +90 -0
  241. package/dist/plugins/servers/windows/index.d.ts.map +1 -0
  242. package/dist/plugins/servers/windows/index.js +205 -0
  243. package/dist/plugins/servers/windows/index.js.map +1 -0
  244. package/dist/scanfix/commands/index.d.ts +27 -0
  245. package/dist/scanfix/commands/index.d.ts.map +1 -0
  246. package/dist/scanfix/commands/index.js +97 -0
  247. package/dist/scanfix/commands/index.js.map +1 -0
  248. package/dist/scanfix/commands/mac.d.ts +11 -0
  249. package/dist/scanfix/commands/mac.d.ts.map +1 -0
  250. package/dist/scanfix/commands/mac.js +31 -0
  251. package/dist/scanfix/commands/mac.js.map +1 -0
  252. package/dist/scanfix/commands/ubuntu.d.ts +11 -0
  253. package/dist/scanfix/commands/ubuntu.d.ts.map +1 -0
  254. package/dist/scanfix/commands/ubuntu.js +30 -0
  255. package/dist/scanfix/commands/ubuntu.js.map +1 -0
  256. package/dist/scanfix/fixes/certbot.d.ts +25 -0
  257. package/dist/scanfix/fixes/certbot.d.ts.map +1 -0
  258. package/dist/scanfix/fixes/certbot.js +136 -0
  259. package/dist/scanfix/fixes/certbot.js.map +1 -0
  260. package/dist/scanfix/fixes/docker.d.ts +29 -0
  261. package/dist/scanfix/fixes/docker.d.ts.map +1 -0
  262. package/dist/scanfix/fixes/docker.js +149 -0
  263. package/dist/scanfix/fixes/docker.js.map +1 -0
  264. package/dist/scanfix/fixes/git.d.ts +20 -0
  265. package/dist/scanfix/fixes/git.d.ts.map +1 -0
  266. package/dist/scanfix/fixes/git.js +71 -0
  267. package/dist/scanfix/fixes/git.js.map +1 -0
  268. package/dist/scanfix/fixes/index.d.ts +11 -0
  269. package/dist/scanfix/fixes/index.d.ts.map +1 -0
  270. package/dist/scanfix/fixes/index.js +27 -0
  271. package/dist/scanfix/fixes/index.js.map +1 -0
  272. package/dist/scanfix/fixes/node.d.ts +20 -0
  273. package/dist/scanfix/fixes/node.d.ts.map +1 -0
  274. package/dist/scanfix/fixes/node.js +71 -0
  275. package/dist/scanfix/fixes/node.js.map +1 -0
  276. package/dist/scanfix/fixes/pnpm.d.ts +20 -0
  277. package/dist/scanfix/fixes/pnpm.d.ts.map +1 -0
  278. package/dist/scanfix/fixes/pnpm.js +122 -0
  279. package/dist/scanfix/fixes/pnpm.js.map +1 -0
  280. package/dist/scanfix/index.d.ts +23 -0
  281. package/dist/scanfix/index.d.ts.map +1 -0
  282. package/dist/scanfix/index.js +44 -0
  283. package/dist/scanfix/index.js.map +1 -0
  284. package/dist/scanfix/platform.d.ts +20 -0
  285. package/dist/scanfix/platform.d.ts.map +1 -0
  286. package/dist/scanfix/platform.js +48 -0
  287. package/dist/scanfix/platform.js.map +1 -0
  288. package/dist/scanfix/ssl-cert-helper.d.ts +27 -0
  289. package/dist/scanfix/ssl-cert-helper.d.ts.map +1 -0
  290. package/dist/scanfix/ssl-cert-helper.js +117 -0
  291. package/dist/scanfix/ssl-cert-helper.js.map +1 -0
  292. package/dist/scanfix/types.d.ts +27 -0
  293. package/dist/scanfix/types.d.ts.map +1 -0
  294. package/dist/scanfix/types.js +8 -0
  295. package/dist/scanfix/types.js.map +1 -0
  296. package/dist/scripts/check-existing-secrets.d.ts +6 -0
  297. package/dist/scripts/check-existing-secrets.d.ts.map +1 -0
  298. package/dist/scripts/check-existing-secrets.js +86 -0
  299. package/dist/scripts/check-existing-secrets.js.map +1 -0
  300. package/dist/scripts/generate-all.d.ts +40 -0
  301. package/dist/scripts/generate-all.d.ts.map +1 -0
  302. package/dist/scripts/generate-all.js +373 -0
  303. package/dist/scripts/generate-all.js.map +1 -0
  304. package/dist/scripts/get-repo-name.d.ts +6 -0
  305. package/dist/scripts/get-repo-name.d.ts.map +1 -0
  306. package/dist/scripts/get-repo-name.js +54 -0
  307. package/dist/scripts/get-repo-name.js.map +1 -0
  308. package/dist/scripts/index.d.ts +7 -0
  309. package/dist/scripts/index.d.ts.map +1 -0
  310. package/dist/scripts/index.js +14 -0
  311. package/dist/scripts/index.js.map +1 -0
  312. package/dist/scripts/validate-env-files.d.ts +6 -0
  313. package/dist/scripts/validate-env-files.d.ts.map +1 -0
  314. package/dist/scripts/validate-env-files.js +126 -0
  315. package/dist/scripts/validate-env-files.js.map +1 -0
  316. package/dist/scripts/validate-example-values.d.ts +8 -0
  317. package/dist/scripts/validate-example-values.d.ts.map +1 -0
  318. package/dist/scripts/validate-example-values.js +88 -0
  319. package/dist/scripts/validate-example-values.js.map +1 -0
  320. package/dist/scripts/validate-factiii-yml.d.ts +6 -0
  321. package/dist/scripts/validate-factiii-yml.d.ts.map +1 -0
  322. package/dist/scripts/validate-factiii-yml.js +71 -0
  323. package/dist/scripts/validate-factiii-yml.js.map +1 -0
  324. package/dist/types/cli.d.ts +138 -0
  325. package/dist/types/cli.d.ts.map +1 -0
  326. package/dist/types/cli.js +8 -0
  327. package/dist/types/cli.js.map +1 -0
  328. package/dist/types/config.d.ts +113 -0
  329. package/dist/types/config.d.ts.map +1 -0
  330. package/dist/types/config.js +8 -0
  331. package/dist/types/config.js.map +1 -0
  332. package/dist/types/index.d.ts +9 -0
  333. package/dist/types/index.d.ts.map +1 -0
  334. package/dist/types/index.js +25 -0
  335. package/dist/types/index.js.map +1 -0
  336. package/dist/types/plugin.d.ts +352 -0
  337. package/dist/types/plugin.d.ts.map +1 -0
  338. package/dist/types/plugin.js +8 -0
  339. package/dist/types/plugin.js.map +1 -0
  340. package/dist/utils/ansible-vault-secrets.d.ts +95 -0
  341. package/dist/utils/ansible-vault-secrets.d.ts.map +1 -0
  342. package/dist/utils/ansible-vault-secrets.js +406 -0
  343. package/dist/utils/ansible-vault-secrets.js.map +1 -0
  344. package/dist/utils/config-helpers.d.ts +72 -0
  345. package/dist/utils/config-helpers.d.ts.map +1 -0
  346. package/dist/utils/config-helpers.js +171 -0
  347. package/dist/utils/config-helpers.js.map +1 -0
  348. package/dist/utils/config-schema.d.ts +17 -0
  349. package/dist/utils/config-schema.d.ts.map +1 -0
  350. package/dist/utils/config-schema.js +100 -0
  351. package/dist/utils/config-schema.js.map +1 -0
  352. package/dist/utils/config-validator.d.ts +29 -0
  353. package/dist/utils/config-validator.d.ts.map +1 -0
  354. package/dist/utils/config-validator.js +146 -0
  355. package/dist/utils/config-validator.js.map +1 -0
  356. package/dist/utils/deployment-report.d.ts +100 -0
  357. package/dist/utils/deployment-report.d.ts.map +1 -0
  358. package/dist/utils/deployment-report.js +225 -0
  359. package/dist/utils/deployment-report.js.map +1 -0
  360. package/dist/utils/dns-validator.d.ts +19 -0
  361. package/dist/utils/dns-validator.d.ts.map +1 -0
  362. package/dist/utils/dns-validator.js +94 -0
  363. package/dist/utils/dns-validator.js.map +1 -0
  364. package/dist/utils/env-validator.d.ts +108 -0
  365. package/dist/utils/env-validator.d.ts.map +1 -0
  366. package/dist/utils/env-validator.js +342 -0
  367. package/dist/utils/env-validator.js.map +1 -0
  368. package/dist/utils/github-workflow-monitor.d.ts +49 -0
  369. package/dist/utils/github-workflow-monitor.d.ts.map +1 -0
  370. package/dist/utils/github-workflow-monitor.js +145 -0
  371. package/dist/utils/github-workflow-monitor.js.map +1 -0
  372. package/dist/utils/index.d.ts +18 -0
  373. package/dist/utils/index.d.ts.map +1 -0
  374. package/dist/utils/index.js +48 -0
  375. package/dist/utils/index.js.map +1 -0
  376. package/dist/utils/secret-prompts.d.ts +67 -0
  377. package/dist/utils/secret-prompts.d.ts.map +1 -0
  378. package/dist/utils/secret-prompts.js +369 -0
  379. package/dist/utils/secret-prompts.js.map +1 -0
  380. package/dist/utils/server-check.d.ts +43 -0
  381. package/dist/utils/server-check.d.ts.map +1 -0
  382. package/dist/utils/server-check.js +397 -0
  383. package/dist/utils/server-check.js.map +1 -0
  384. package/dist/utils/ssh-deploy.d.ts +70 -0
  385. package/dist/utils/ssh-deploy.d.ts.map +1 -0
  386. package/dist/utils/ssh-deploy.js +268 -0
  387. package/dist/utils/ssh-deploy.js.map +1 -0
  388. package/dist/utils/ssh-helper.d.ts +40 -0
  389. package/dist/utils/ssh-helper.d.ts.map +1 -0
  390. package/dist/utils/ssh-helper.js +221 -0
  391. package/dist/utils/ssh-helper.js.map +1 -0
  392. package/dist/utils/template-generator.d.ts +42 -0
  393. package/dist/utils/template-generator.d.ts.map +1 -0
  394. package/dist/utils/template-generator.js +223 -0
  395. package/dist/utils/template-generator.js.map +1 -0
  396. package/dist/utils/version-check.d.ts +69 -0
  397. package/dist/utils/version-check.d.ts.map +1 -0
  398. package/dist/utils/version-check.js +211 -0
  399. package/dist/utils/version-check.js.map +1 -0
  400. package/package.json +82 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-secrets.d.ts","sourceRoot":"","sources":["../../src/cli/deploy-secrets.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAqHD;;GAEG;AACH,wBAAsB,aAAa,CAC/B,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,EACvC,OAAO,GAAE,oBAAyB,GACnC,OAAO,CAAC,mBAAmB,CAAC,CA2F9B;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.deploySecrets = deploySecrets;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const js_yaml_1 = __importDefault(require("js-yaml"));
43
+ const ansible_vault_secrets_js_1 = require("../utils/ansible-vault-secrets.js");
44
+ const ssh_deploy_js_1 = require("../utils/ssh-deploy.js");
45
+ const config_helpers_js_1 = require("../utils/config-helpers.js");
46
+ /**
47
+ * Load configuration from factiii.yml
48
+ */
49
+ function loadConfig(rootDir) {
50
+ const configPath = path.join(rootDir, 'factiii.yml');
51
+ if (!fs.existsSync(configPath)) {
52
+ throw new Error('factiii.yml not found. Run: npx factiii init');
53
+ }
54
+ try {
55
+ return js_yaml_1.default.load(fs.readFileSync(configPath, 'utf8')) ?? {};
56
+ }
57
+ catch (e) {
58
+ throw new Error(`Error parsing factiii.yml: ${e instanceof Error ? e.message : String(e)}`);
59
+ }
60
+ }
61
+ /**
62
+ * Get stage type from environment name
63
+ */
64
+ function getStageType(envName) {
65
+ if (envName.startsWith('staging'))
66
+ return 'staging';
67
+ if (envName.startsWith('prod'))
68
+ return 'prod';
69
+ return null;
70
+ }
71
+ /**
72
+ * Deploy secrets to a single environment
73
+ */
74
+ async function deployToEnvironment(stage, envConfig, config, store, options) {
75
+ console.log(`\nDeploying secrets to ${stage}...`);
76
+ // Get SSH key
77
+ const sshKey = await store.getSSHKey(stage);
78
+ if (!sshKey) {
79
+ return {
80
+ success: false,
81
+ error: `No SSH key found for ${stage}. Run: npx factiii secrets set ${stage.toUpperCase()}_SSH`
82
+ };
83
+ }
84
+ // Get environment secrets
85
+ const envSecrets = await store.getEnvironmentSecrets(stage);
86
+ if (Object.keys(envSecrets).length === 0) {
87
+ console.log(` [!] No environment secrets found for ${stage}`);
88
+ console.log(` Add secrets with: npx factiii secrets set-env <NAME> --${stage}`);
89
+ return {
90
+ success: true,
91
+ message: `No secrets to deploy for ${stage}`,
92
+ };
93
+ }
94
+ console.log(` Found ${Object.keys(envSecrets).length} environment variables`);
95
+ for (const key of Object.keys(envSecrets)) {
96
+ console.log(` - ${key}`);
97
+ }
98
+ if (options.dryRun) {
99
+ console.log(` [DRY RUN] Would deploy to ${envConfig.domain}`);
100
+ return {
101
+ success: true,
102
+ message: `Dry run complete for ${stage}`,
103
+ };
104
+ }
105
+ // Create SSH deploy instance
106
+ const sshDeploy = new ssh_deploy_js_1.SSHDeploy({
107
+ host: envConfig.domain,
108
+ user: envConfig.ssh_user ?? 'ubuntu',
109
+ privateKey: sshKey,
110
+ repoName: config.name,
111
+ });
112
+ // Test connection
113
+ console.log(` Connecting to ${envConfig.domain}...`);
114
+ const connected = await sshDeploy.testConnection();
115
+ if (!connected) {
116
+ return {
117
+ success: false,
118
+ error: `Failed to connect to ${envConfig.domain}. Check SSH key and server availability.`,
119
+ };
120
+ }
121
+ console.log(` Connected`);
122
+ // Write env file
123
+ console.log(` Writing .env.${stage}...`);
124
+ const result = await sshDeploy.writeEnvFile(stage, envSecrets);
125
+ if (!result.success) {
126
+ return result;
127
+ }
128
+ console.log(` ${result.message}`);
129
+ // Restart container if requested
130
+ if (options.restart) {
131
+ const containerName = `${config.name}-${stage}`;
132
+ console.log(` Restarting container ${containerName}...`);
133
+ const restartResult = await sshDeploy.restartContainer(containerName);
134
+ if (restartResult.success) {
135
+ console.log(` Container restarted`);
136
+ }
137
+ else {
138
+ console.log(` [!] Container restart failed: ${restartResult.error}`);
139
+ // Don't fail the whole operation for restart errors
140
+ }
141
+ }
142
+ return {
143
+ success: true,
144
+ message: `Deployed ${Object.keys(envSecrets).length} secrets to ${stage}`,
145
+ };
146
+ }
147
+ /**
148
+ * Deploy secrets to staging and/or production servers
149
+ */
150
+ async function deploySecrets(environment, options = {}) {
151
+ const rootDir = options.rootDir ?? process.cwd();
152
+ console.log('FACTIII DEPLOY SECRETS');
153
+ // Load configuration
154
+ let config;
155
+ try {
156
+ config = loadConfig(rootDir);
157
+ }
158
+ catch (e) {
159
+ console.log(`\n[ERROR] ${e instanceof Error ? e.message : String(e)}`);
160
+ return { success: false, error: String(e) };
161
+ }
162
+ // Check Ansible Vault configuration
163
+ if (!config.ansible?.vault_path) {
164
+ const error = 'ansible.vault_path not configured in factiii.yml';
165
+ console.log(`\n[ERROR] ${error}`);
166
+ console.log('Add to factiii.yml:');
167
+ console.log(' ansible:');
168
+ console.log(' vault_path: group_vars/all/vault.yml');
169
+ console.log(' vault_password_file: ~/.vault_pass');
170
+ return { success: false, error };
171
+ }
172
+ // Create vault store
173
+ const store = new ansible_vault_secrets_js_1.AnsibleVaultSecrets({
174
+ vault_path: config.ansible.vault_path,
175
+ vault_password_file: config.ansible.vault_password_file,
176
+ rootDir,
177
+ });
178
+ // Get environments
179
+ const environments = (0, config_helpers_js_1.extractEnvironments)(config);
180
+ const results = [];
181
+ // Determine which stages to deploy
182
+ const stagesToDeploy = environment === 'all' ? ['staging', 'prod'] : [environment];
183
+ for (const stage of stagesToDeploy) {
184
+ // Find environment config for this stage
185
+ const envName = Object.keys(environments).find(name => getStageType(name) === stage);
186
+ if (!envName) {
187
+ console.log(`\n[!] No ${stage} environment configured in factiii.yml`);
188
+ continue;
189
+ }
190
+ const envConfig = environments[envName];
191
+ if (!envConfig?.domain) {
192
+ console.log(`\n[!] ${stage} environment missing domain configuration`);
193
+ continue;
194
+ }
195
+ const result = await deployToEnvironment(stage, envConfig, config, store, options);
196
+ results.push({ env: stage, result });
197
+ if (!result.success) {
198
+ console.log(`\n[ERROR] Failed to deploy to ${stage}: ${result.error}`);
199
+ }
200
+ }
201
+ // Summary
202
+ console.log('\nDEPLOYMENT SUMMARY');
203
+ const successful = results.filter(r => r.result.success);
204
+ const failed = results.filter(r => !r.result.success);
205
+ for (const { env, result } of results) {
206
+ const status = result.success ? '[OK]' : '[FAILED]';
207
+ console.log(` ${status} ${env}: ${result.message || result.error}`);
208
+ }
209
+ if (failed.length > 0) {
210
+ return {
211
+ success: false,
212
+ error: `${failed.length} deployment(s) failed`,
213
+ };
214
+ }
215
+ if (successful.length === 0) {
216
+ return {
217
+ success: true,
218
+ message: 'No environments to deploy',
219
+ };
220
+ }
221
+ return {
222
+ success: true,
223
+ message: `Successfully deployed to ${successful.map(s => s.env).join(', ')}`,
224
+ };
225
+ }
226
+ exports.default = deploySecrets;
227
+ //# sourceMappingURL=deploy-secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-secrets.js","sourceRoot":"","sources":["../../src/cli/deploy-secrets.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0IA,sCA8FC;AAxOD,uCAAyB;AACzB,2CAA6B;AAC7B,sDAA2B;AAC3B,gFAAwE;AACxE,0DAAmD;AAEnD,kEAAiE;AAcjE;;GAEG;AACH,SAAS,UAAU,CAAC,OAAe;IAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC;QACD,OAAQ,iBAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAmB,IAAK,EAAoB,CAAC;IACtG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,OAAe;IACjC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAC9B,KAAyB,EACzB,SAA4B,EAC5B,MAAqB,EACrB,KAA0B,EAC1B,OAA6B;IAE7B,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,KAAK,CAAC,CAAC;IAElD,cAAc;IACd,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,wBAAwB,KAAK,kCAAkC,KAAK,CAAC,WAAW,EAAE,MAAM;SAClG,CAAC;IACN,CAAC;IAED,0BAA0B;IAC1B,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,gEAAgE,KAAK,EAAE,CAAC,CAAC;QACrF,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,4BAA4B,KAAK,EAAE;SAC/C,CAAC;IACN,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,wBAAwB,CAAC,CAAC;IAC/E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,+BAA+B,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,wBAAwB,KAAK,EAAE;SAC3C,CAAC;IACN,CAAC;IAED,6BAA6B;IAC7B,MAAM,SAAS,GAAG,IAAI,yBAAS,CAAC;QAC5B,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,IAAI,EAAE,SAAS,CAAC,QAAQ,IAAI,QAAQ;QACpC,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,MAAM,CAAC,IAAI;KACxB,CAAC,CAAC;IAEH,kBAAkB;IAClB,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;IACnD,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,wBAAwB,SAAS,CAAC,MAAM,0CAA0C;SAC5F,CAAC;IACN,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAE3B,iBAAiB;IACjB,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,KAAK,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnC,iCAAiC;IACjC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,aAAa,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,0BAA0B,aAAa,KAAK,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACtE,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,mCAAmC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;YACtE,oDAAoD;QACxD,CAAC;IACL,CAAC;IAED,OAAO;QACH,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,YAAY,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,eAAe,KAAK,EAAE;KAC5E,CAAC;AACN,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CAC/B,WAAuC,EACvC,UAAgC,EAAE;IAElC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEjD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEtC,qBAAqB;IACrB,IAAI,MAAqB,CAAC;IAC1B,IAAI,CAAC;QACD,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,kDAAkD,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,qBAAqB;IACrB,MAAM,KAAK,GAAG,IAAI,8CAAmB,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;QACrC,mBAAmB,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB;QACvD,OAAO;KACV,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,YAAY,GAAG,IAAA,uCAAmB,EAAC,MAAM,CAAC,CAAC;IACjD,MAAM,OAAO,GAAmD,EAAE,CAAC;IAEnE,mCAAmC;IACnC,MAAM,cAAc,GAChB,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEhE,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACjC,yCAAyC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;QACrF,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,wCAAwC,CAAC,CAAC;YACvE,SAAS;QACb,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,2CAA2C,CAAC,CAAC;YACvE,SAAS;QACb,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC;IAED,UAAU;IACV,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAEpC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEtD,KAAK,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,uBAAuB;SACjD,CAAC;IACN,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,2BAA2B;SACvC,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,4BAA4B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KAC/E,CAAC;AACN,CAAC;AAED,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Deploy Command
3
+ *
4
+ * Deploys to specified environment by delegating to the pipeline plugin.
5
+ * The pipeline plugin decides how to reach the stage (local vs workflow trigger).
6
+ *
7
+ * ============================================================
8
+ * STAGE EXECUTION PATTERN
9
+ * ============================================================
10
+ * See scan.ts for full documentation of how stages work.
11
+ *
12
+ * Key points:
13
+ * - This file asks pipeline plugin canReach(stage) for each stage
14
+ * - Pipeline decides if stage runs locally or via workflow
15
+ * - When running on server, pipeline workflow specifies --staging/--prod
16
+ * ============================================================
17
+ */
18
+ import type { DeployOptions, DeployResult } from '../types/index.js';
19
+ /**
20
+ * Deploy to a specified environment
21
+ *
22
+ * This command delegates to the pipeline plugin, which decides how to reach
23
+ * the target stage based on canReach():
24
+ * - 'local': Execute deployment directly
25
+ * - 'workflow': Trigger a workflow (e.g., GitHub Actions)
26
+ * - Not reachable: Return error with reason
27
+ */
28
+ export declare function deploy(environment: string, options?: DeployOptions): Promise<DeployResult>;
29
+ export default deploy;
30
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/cli/deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,OAAO,KAAK,EAAiB,aAAa,EAAE,YAAY,EAAS,MAAM,mBAAmB,CAAC;AAkG3F;;;;;;;;GAQG;AACH,wBAAsB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAmLpG;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,306 @@
1
+ "use strict";
2
+ /**
3
+ * Deploy Command
4
+ *
5
+ * Deploys to specified environment by delegating to the pipeline plugin.
6
+ * The pipeline plugin decides how to reach the stage (local vs workflow trigger).
7
+ *
8
+ * ============================================================
9
+ * STAGE EXECUTION PATTERN
10
+ * ============================================================
11
+ * See scan.ts for full documentation of how stages work.
12
+ *
13
+ * Key points:
14
+ * - This file asks pipeline plugin canReach(stage) for each stage
15
+ * - Pipeline decides if stage runs locally or via workflow
16
+ * - When running on server, pipeline workflow specifies --staging/--prod
17
+ * ============================================================
18
+ */
19
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ var desc = Object.getOwnPropertyDescriptor(m, k);
22
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
23
+ desc = { enumerable: true, get: function() { return m[k]; } };
24
+ }
25
+ Object.defineProperty(o, k2, desc);
26
+ }) : (function(o, m, k, k2) {
27
+ if (k2 === undefined) k2 = k;
28
+ o[k2] = m[k];
29
+ }));
30
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
31
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
32
+ }) : function(o, v) {
33
+ o["default"] = v;
34
+ });
35
+ var __importStar = (this && this.__importStar) || (function () {
36
+ var ownKeys = function(o) {
37
+ ownKeys = Object.getOwnPropertyNames || function (o) {
38
+ var ar = [];
39
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
40
+ return ar;
41
+ };
42
+ return ownKeys(o);
43
+ };
44
+ return function (mod) {
45
+ if (mod && mod.__esModule) return mod;
46
+ var result = {};
47
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
48
+ __setModuleDefault(result, mod);
49
+ return result;
50
+ };
51
+ })();
52
+ var __importDefault = (this && this.__importDefault) || function (mod) {
53
+ return (mod && mod.__esModule) ? mod : { "default": mod };
54
+ };
55
+ Object.defineProperty(exports, "__esModule", { value: true });
56
+ exports.deploy = deploy;
57
+ const fs = __importStar(require("fs"));
58
+ const path = __importStar(require("path"));
59
+ const js_yaml_1 = __importDefault(require("js-yaml"));
60
+ const scan_js_1 = require("./scan.js");
61
+ const deploy_secrets_js_1 = require("./deploy-secrets.js");
62
+ const index_js_1 = require("../plugins/index.js");
63
+ const config_helpers_js_1 = require("../utils/config-helpers.js");
64
+ /**
65
+ * Load config from factiii.yml
66
+ */
67
+ function loadConfig(rootDir) {
68
+ const configPath = path.join(rootDir, 'factiii.yml');
69
+ if (!fs.existsSync(configPath)) {
70
+ return {};
71
+ }
72
+ try {
73
+ return js_yaml_1.default.load(fs.readFileSync(configPath, 'utf8')) ?? {};
74
+ }
75
+ catch (e) {
76
+ const errorMessage = e instanceof Error ? e.message : String(e);
77
+ console.error(`[!] Error parsing factiii.yml: ${errorMessage}`);
78
+ return {};
79
+ }
80
+ }
81
+ /**
82
+ * Run a basic HTTP health check against the deployed domain
83
+ */
84
+ async function runHealthCheck(domain) {
85
+ console.log('\nRunning health check...');
86
+ const url = 'https://' + domain;
87
+ try {
88
+ const https = await Promise.resolve().then(() => __importStar(require('https')));
89
+ await new Promise((resolve) => {
90
+ const req = https.get(url, { timeout: 10000 }, (res) => {
91
+ if (res.statusCode && res.statusCode < 500) {
92
+ console.log(' [OK] ' + url + ' responded with status ' + res.statusCode);
93
+ }
94
+ else {
95
+ console.log(' [!] ' + url + ' returned status ' + res.statusCode);
96
+ }
97
+ res.resume(); // consume response data
98
+ resolve();
99
+ });
100
+ req.on('error', (e) => {
101
+ console.log(' [!] Could not reach ' + url + ': ' + e.message);
102
+ console.log(' Note: DNS or SSL may still be propagating');
103
+ resolve();
104
+ });
105
+ req.on('timeout', () => {
106
+ req.destroy();
107
+ console.log(' [!] Health check timed out for ' + url);
108
+ console.log(' Note: DNS or SSL may still be propagating');
109
+ resolve();
110
+ });
111
+ });
112
+ }
113
+ catch {
114
+ console.log(' [!] Health check skipped');
115
+ }
116
+ }
117
+ /**
118
+ * Print rollback/recovery instructions after a deployment failure
119
+ */
120
+ function printRollbackInstructions(stage, environment, config) {
121
+ const environments = (0, config_helpers_js_1.extractEnvironments)(config);
122
+ const envConfig = environments[environment];
123
+ const domain = envConfig?.domain ?? '<server>';
124
+ const user = envConfig?.ssh_user ?? 'root';
125
+ console.log('\nRECOVERY OPTIONS:\n');
126
+ console.log(' 1. View logs on server:');
127
+ console.log(' ssh -i ~/.ssh/' + stage + '_deploy_key ' + user + '@' + domain + ' "docker logs --tail 50 \\$(docker ps -lq)"');
128
+ console.log('\n 2. Rollback to previous commit:');
129
+ console.log(' git log --oneline -5 # find working commit');
130
+ console.log(' npx factiii deploy --' + stage + ' --commit <hash>');
131
+ console.log('\n 3. Manual server access:');
132
+ console.log(' ssh -i ~/.ssh/' + stage + '_deploy_key ' + user + '@' + domain);
133
+ console.log('\n 4. Full reset:');
134
+ console.log(' npx factiii undeploy --' + stage);
135
+ console.log(' npx factiii deploy --' + stage + '\n');
136
+ }
137
+ /**
138
+ * Deploy to a specified environment
139
+ *
140
+ * This command delegates to the pipeline plugin, which decides how to reach
141
+ * the target stage based on canReach():
142
+ * - 'local': Execute deployment directly
143
+ * - 'workflow': Trigger a workflow (e.g., GitHub Actions)
144
+ * - Not reachable: Return error with reason
145
+ */
146
+ async function deploy(environment, options = {}) {
147
+ const rootDir = options.rootDir ?? process.cwd();
148
+ const config = loadConfig(rootDir);
149
+ console.log('FACTIII DEPLOY\n');
150
+ // ============================================================
151
+ // CRITICAL: Environment Validation
152
+ // ============================================================
153
+ // Why this exists: Supports multiple environments per stage
154
+ // What breaks if changed: Invalid environments could be deployed
155
+ // Dependencies: extractEnvironments, getStageFromEnvironment
156
+ // ============================================================
157
+ // Map environment name to stage (staging2 -> staging, prod2 -> prod, etc.)
158
+ // Do this FIRST because 'dev' and 'secrets' don't require environment configs
159
+ let stage;
160
+ try {
161
+ stage = (0, config_helpers_js_1.getStageFromEnvironment)(environment);
162
+ }
163
+ catch (e) {
164
+ const errorMessage = e instanceof Error ? e.message : String(e);
165
+ console.log(`[ERROR] ${errorMessage}`);
166
+ return { success: false, error: errorMessage };
167
+ }
168
+ // Special stages (dev, secrets) don't require environment configuration
169
+ // They run locally and don't need server configs
170
+ if (stage !== 'dev' && stage !== 'secrets') {
171
+ // Validate environment exists in config (only for staging/prod)
172
+ const environments = (0, config_helpers_js_1.extractEnvironments)(config);
173
+ if (!environments[environment]) {
174
+ const available = Object.keys(environments).join(', ');
175
+ console.log(`[ERROR] Environment '${environment}' not found in config.`);
176
+ console.log(` Available environments: ${available || 'none'}`);
177
+ return {
178
+ success: false,
179
+ error: `Environment '${environment}' not found. Available: ${available}`,
180
+ };
181
+ }
182
+ }
183
+ console.log(`Environment: ${environment} (${stage} stage)\n`);
184
+ // Deploy secrets if --secrets flag is passed
185
+ if (options.deploySecrets && (stage === 'staging' || stage === 'prod')) {
186
+ console.log('Stage 0: Deploying secrets...\n');
187
+ const secretsResult = await (0, deploy_secrets_js_1.deploySecrets)(stage, { rootDir });
188
+ if (!secretsResult.success) {
189
+ console.log('[ERROR] Secrets deployment failed: ' + (secretsResult.error ?? 'Unknown error'));
190
+ return { success: false, error: 'Secrets deployment failed: ' + (secretsResult.error ?? 'Unknown error') };
191
+ }
192
+ console.log('[OK] Secrets deployed\n');
193
+ }
194
+ console.log('Stage 1: Running pre-deploy checks...\n');
195
+ // First run scan to check for blocking issues
196
+ // Only scan the target stage - don't let prod issues block a staging deploy
197
+ // Clear stage flags from options so they don't override the stages array
198
+ // (e.g., --secrets sets options.secrets=true which scan interprets as "scan secrets stage only")
199
+ const scanOptions = { ...options, silent: true, stages: [stage] };
200
+ delete scanOptions.dev;
201
+ delete scanOptions.secrets;
202
+ delete scanOptions.staging;
203
+ delete scanOptions.prod;
204
+ delete scanOptions.deploySecrets;
205
+ const problems = await (0, scan_js_1.scan)(scanOptions);
206
+ // Only block on CRITICAL issues - warnings/info will be auto-fixed during deployment
207
+ const criticalProblems = Object.values(problems)
208
+ .flat()
209
+ .filter(fix => fix && fix.severity === 'critical');
210
+ if (criticalProblems.length > 0) {
211
+ console.log('[ERROR] Critical issues found that must be fixed before deployment:\n');
212
+ // Group by stage for clearer output
213
+ const problemsByStage = {
214
+ dev: [],
215
+ secrets: [],
216
+ staging: [],
217
+ prod: [],
218
+ };
219
+ for (const problem of criticalProblems) {
220
+ const stage = problem?.stage;
221
+ if (stage && stage in problemsByStage) {
222
+ const stageArray = problemsByStage[stage];
223
+ if (stageArray) {
224
+ stageArray.push(problem);
225
+ }
226
+ }
227
+ }
228
+ // Display each stage's critical problems
229
+ for (const [stageName, stageProblems] of Object.entries(problemsByStage)) {
230
+ if (stageProblems.length === 0)
231
+ continue;
232
+ console.log(`${stageName.toUpperCase()}:`);
233
+ for (const problem of stageProblems) {
234
+ console.log(` [ERROR] ${problem.description}`);
235
+ if (problem.manualFix) {
236
+ console.log(` Hint: ${problem.manualFix}`);
237
+ }
238
+ }
239
+ console.log('');
240
+ }
241
+ console.log('Please fix the issues above and try again.\n');
242
+ return { success: false, error: 'Critical pre-deploy checks failed' };
243
+ }
244
+ else {
245
+ console.log('[OK] All pre-deploy checks passed!\n');
246
+ }
247
+ // Dry run: show deployment plan without executing
248
+ if (options.dryRun) {
249
+ console.log('[DRY RUN] Deployment plan:\n');
250
+ console.log(' Environment: ' + environment);
251
+ console.log(' Stage: ' + stage);
252
+ if (stage !== 'dev' && stage !== 'secrets') {
253
+ const environments = (0, config_helpers_js_1.extractEnvironments)(config);
254
+ const envConfig = environments[environment];
255
+ if (envConfig) {
256
+ console.log(' Domain: ' + (envConfig.domain ?? 'N/A'));
257
+ console.log(' Server: ' + (envConfig.server ?? 'N/A'));
258
+ console.log(' SSH User: ' + (envConfig.ssh_user ?? 'root'));
259
+ }
260
+ }
261
+ console.log('\n[DRY RUN] All pre-deploy checks passed. Run without --dry-run to execute:\n');
262
+ console.log(' npx factiii deploy --' + stage + '\n');
263
+ return { success: true, message: 'Dry run completed' };
264
+ }
265
+ console.log(`DEPLOYING ${environment.toUpperCase()}\n`);
266
+ // Load plugins and find pipeline plugin
267
+ const plugins = await (0, index_js_1.loadRelevantPlugins)(rootDir, config);
268
+ const PipelineClass = plugins.find((p) => p.category === 'pipeline');
269
+ if (!PipelineClass) {
270
+ return { success: false, error: 'No pipeline plugin found' };
271
+ }
272
+ try {
273
+ // Delegate to pipeline plugin - IT decides how to reach the stage
274
+ const pipeline = new PipelineClass(config);
275
+ // Note: Pass the stage (staging, prod) not the environment name (staging2, prod2)
276
+ // The pipeline plugin handles routing based on stage
277
+ const result = await pipeline.deployStage(stage, { ...options, rootDir, environment });
278
+ if (result.success) {
279
+ console.log(`\n[OK] Deployment to ${environment} complete!`);
280
+ if (result.message) {
281
+ console.log(` ${result.message}`);
282
+ }
283
+ // Post-deploy health check for staging/prod
284
+ if (stage === 'staging' || stage === 'prod') {
285
+ const environments = (0, config_helpers_js_1.extractEnvironments)(config);
286
+ const envConfig = environments[environment];
287
+ if (envConfig?.domain) {
288
+ await runHealthCheck(envConfig.domain);
289
+ }
290
+ }
291
+ }
292
+ else {
293
+ console.log(`\n[ERROR] Deployment failed: ${result.error}`);
294
+ printRollbackInstructions(stage, environment, config);
295
+ }
296
+ return result;
297
+ }
298
+ catch (e) {
299
+ const errorMessage = e instanceof Error ? e.message : String(e);
300
+ console.log(`\n[ERROR] Deployment error: ${errorMessage}`);
301
+ printRollbackInstructions(stage, environment, config);
302
+ return { success: false, error: errorMessage };
303
+ }
304
+ }
305
+ exports.default = deploy;
306
+ //# sourceMappingURL=deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/cli/deploy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Deployer Module
3
+ *
4
+ * Handles the actual deployment logic
5
+ */
6
+ import type { FactiiiConfig, DeployOptions, DeployResult } from '../types/index.js';
7
+ export declare class Deployer {
8
+ private _config;
9
+ constructor(config: FactiiiConfig);
10
+ deployToEnvironment(environment: string, options?: DeployOptions): Promise<DeployResult>;
11
+ }
12
+ export default Deployer;
13
+ //# sourceMappingURL=deployer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../src/cli/deployer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpF,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAAgB;gBAEnB,MAAM,EAAE,aAAa;IAI3B,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC;CAGzB;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * Deployer Module
4
+ *
5
+ * Handles the actual deployment logic
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.Deployer = void 0;
9
+ const deploy_js_1 = require("./deploy.js");
10
+ class Deployer {
11
+ _config;
12
+ constructor(config) {
13
+ this._config = config;
14
+ }
15
+ async deployToEnvironment(environment, options = {}) {
16
+ return (0, deploy_js_1.deploy)(environment, options);
17
+ }
18
+ }
19
+ exports.Deployer = Deployer;
20
+ exports.default = Deployer;
21
+ //# sourceMappingURL=deployer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployer.js","sourceRoot":"","sources":["../../src/cli/deployer.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2CAAqC;AAGrC,MAAa,QAAQ;IACX,OAAO,CAAgB;IAE/B,YAAY,MAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,WAAmB,EACnB,UAAyB,EAAE;QAE3B,OAAO,IAAA,kBAAM,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;CACF;AAbD,4BAaC;AAED,kBAAe,QAAQ,CAAC"}