@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,362 @@
1
+ "use strict";
2
+ /**
3
+ * Production environment operations for AWS plugin
4
+ * Handles production deployment, server preparation, and production-specific helpers
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.ensureServerReady = ensureServerReady;
44
+ exports.deployProd = deployProd;
45
+ const fs = __importStar(require("fs"));
46
+ const path = __importStar(require("path"));
47
+ const js_yaml_1 = __importDefault(require("js-yaml"));
48
+ const ssh_helper_js_1 = require("../../../utils/ssh-helper.js");
49
+ const config_helpers_js_1 = require("../../../utils/config-helpers.js");
50
+ const index_js_1 = require("../../../scripts/index.js");
51
+ /**
52
+ * Execute a command on a remote server via SSH
53
+ */
54
+ async function sshExecCommand(envConfig, command) {
55
+ return await (0, ssh_helper_js_1.sshExec)(envConfig, command);
56
+ }
57
+ /**
58
+ * Ensure Node.js is installed on the server
59
+ */
60
+ async function ensureNodeInstalled(envConfig) {
61
+ try {
62
+ await sshExecCommand(envConfig, 'which node');
63
+ }
64
+ catch {
65
+ console.log(' Installing Node.js...');
66
+ await sshExecCommand(envConfig, 'curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt-get install -y nodejs');
67
+ }
68
+ }
69
+ /**
70
+ * Ensure git is installed on the server
71
+ */
72
+ async function ensureGitInstalled(envConfig) {
73
+ try {
74
+ await sshExecCommand(envConfig, 'which git');
75
+ }
76
+ catch {
77
+ console.log(' Installing git...');
78
+ await sshExecCommand(envConfig, 'sudo apt-get update && sudo apt-get install -y git');
79
+ }
80
+ }
81
+ /**
82
+ * Ensure repository is cloned
83
+ */
84
+ async function ensureRepoCloned(envConfig, repoUrl, repoDir, repoName) {
85
+ const checkExists = await sshExecCommand(envConfig, `test -d ${repoDir}/.git && echo "exists" || echo "missing"`);
86
+ if (checkExists.includes('missing')) {
87
+ console.log(' Cloning repository...');
88
+ // Extract GitHub repo from URL if provided, otherwise use GITHUB_REPO env var
89
+ let gitUrl = repoUrl;
90
+ if (repoUrl && !repoUrl.startsWith('git@') && !repoUrl.startsWith('https://')) {
91
+ // Format: owner/repo
92
+ gitUrl = `git@github.com:${repoUrl}.git`;
93
+ }
94
+ await sshExecCommand(envConfig, `mkdir -p ~/.factiii && cd ~/.factiii && git clone ${gitUrl} ${repoName}`);
95
+ }
96
+ }
97
+ /**
98
+ * Pull latest changes and checkout specific commit
99
+ */
100
+ async function pullAndCheckout(envConfig, repoDir, branch, commitHash) {
101
+ console.log(` Checking out ${branch}${commitHash ? ' @ ' + commitHash.substring(0, 7) : ''}...`);
102
+ const commands = [
103
+ `cd ${repoDir}`,
104
+ 'git fetch --all',
105
+ `git checkout ${branch}`,
106
+ `git pull origin ${branch}`,
107
+ ];
108
+ // If commit hash provided, checkout that specific commit
109
+ if (commitHash) {
110
+ commands.push(`git checkout ${commitHash}`);
111
+ }
112
+ await sshExecCommand(envConfig, commands.join(' && '));
113
+ }
114
+ /**
115
+ * Write environment variables to .env file on server
116
+ * Handles both local (on-server) and remote (SSH) execution
117
+ */
118
+ async function writeEnvFile(envConfig, repoDir, environment, envVarsString) {
119
+ if (!envVarsString) {
120
+ // If no env vars provided, skip writing (allow manual .env files)
121
+ return;
122
+ }
123
+ const envFileName = `.env.${environment === 'production' ? 'prod' : environment}`;
124
+ const isOnServer = process.env.GITHUB_ACTIONS === 'true';
125
+ // Parse env vars string (newline-separated KEY=VALUE format)
126
+ const envVars = envVarsString
127
+ .split('\n')
128
+ .map((line) => line.trim())
129
+ .filter((line) => line && !line.startsWith('#'))
130
+ .filter((line) => line.includes('='));
131
+ if (envVars.length === 0) {
132
+ console.log(` ⚠️ No environment variables found in ${environment} secrets`);
133
+ return;
134
+ }
135
+ // Build env file content
136
+ const envFileContent = envVars.join('\n') + '\n';
137
+ if (isOnServer) {
138
+ // We're on the server - write directly
139
+ const expandedRepoDir = repoDir.replace('~', process.env.HOME ?? '/home/ubuntu');
140
+ const envFilePath = path.join(expandedRepoDir, envFileName);
141
+ console.log(` 📝 Writing ${envFileName} (${envVars.length} variables)...`);
142
+ fs.writeFileSync(envFilePath, envFileContent, 'utf8');
143
+ }
144
+ else {
145
+ // We're remote - SSH to write
146
+ console.log(` 📝 Writing ${envFileName} on remote server (${envVars.length} variables)...`);
147
+ await sshExecCommand(envConfig, `cat > ${repoDir}/${envFileName} << 'ENVEOF'
148
+ ${envFileContent}ENVEOF`);
149
+ }
150
+ }
151
+ // ============================================================
152
+ // CRITICAL: SSL Certificate Management
153
+ // ============================================================
154
+ // Why this exists: Automatically obtain/renew Let's Encrypt SSL certificates
155
+ // What breaks if changed: HTTPS will fail, browsers show security warnings
156
+ // Dependencies: Docker must be installed, ssl_email must be configured
157
+ // Uses Docker certbot for portability (no host certbot installation needed)
158
+ // ============================================================
159
+ /**
160
+ * Run certbot to obtain/renew SSL certificates using Docker
161
+ * Called after nginx.conf is generated but before containers start
162
+ * Collects all domains from all environments in factiii.yml and obtains certificates
163
+ * Uses standalone mode with Docker certbot (nginx must be stopped first)
164
+ */
165
+ async function runCertbot(envConfig, config) {
166
+ const environments = (0, config_helpers_js_1.extractEnvironments)(config);
167
+ // Collect all domains that need certificates
168
+ const domains = [];
169
+ for (const env of Object.values(environments)) {
170
+ if (env.domain && !env.domain.startsWith('EXAMPLE-')) {
171
+ domains.push(env.domain);
172
+ }
173
+ }
174
+ if (domains.length === 0) {
175
+ console.log(' No domains configured, skipping SSL certificates');
176
+ return;
177
+ }
178
+ const sslEmail = config.ssl_email;
179
+ if (!sslEmail || sslEmail.startsWith('EXAMPLE-')) {
180
+ console.log(' ⚠️ ssl_email not configured in factiii.yml, skipping SSL');
181
+ console.log(' Add ssl_email to factiii.yml to enable automatic SSL certificates');
182
+ return;
183
+ }
184
+ // For each domain, obtain certificate using Docker certbot
185
+ for (const domain of domains) {
186
+ console.log(` Obtaining SSL certificate for: ${domain}`);
187
+ // Build Docker certbot command (standalone mode - port 80 must be free)
188
+ const certbotCmd = [
189
+ 'docker run --rm',
190
+ '-v /etc/letsencrypt:/etc/letsencrypt',
191
+ '-v /var/lib/letsencrypt:/var/lib/letsencrypt',
192
+ '-p 80:80',
193
+ 'certbot/certbot certonly',
194
+ '--standalone',
195
+ '-d ' + domain,
196
+ '--email ' + sslEmail,
197
+ '--agree-tos',
198
+ '--non-interactive',
199
+ ].join(' ');
200
+ try {
201
+ await sshExecCommand(envConfig, certbotCmd);
202
+ console.log(` ✅ SSL certificate obtained for ${domain}`);
203
+ }
204
+ catch (error) {
205
+ console.log(` ⚠️ Certbot failed for ${domain}, continuing without SSL`);
206
+ }
207
+ }
208
+ }
209
+ /**
210
+ * Setup automatic certificate renewal via cron using Docker certbot
211
+ * Only runs once - checks if renewal is already configured
212
+ */
213
+ async function setupCertbotRenewal(envConfig) {
214
+ console.log(' Setting up automatic certificate renewal...');
215
+ // Docker certbot renewal command (webroot mode since nginx will be running)
216
+ const renewCmd = 'docker run --rm -v /etc/letsencrypt:/etc/letsencrypt -v /var/lib/letsencrypt:/var/lib/letsencrypt -v /var/www/certbot:/var/www/certbot certbot/certbot renew --quiet && docker exec factiii_nginx nginx -s reload';
217
+ // Check if certbot renewal is already configured
218
+ const cronCheck = await sshExecCommand(envConfig, 'crontab -l 2>/dev/null | grep "certbot/certbot renew" || echo "NOT_FOUND"');
219
+ if (cronCheck.includes('NOT_FOUND')) {
220
+ // Add renewal cron job (runs twice daily)
221
+ await sshExecCommand(envConfig, `(crontab -l 2>/dev/null; echo "0 0,12 * * * ${renewCmd}") | crontab -`);
222
+ console.log(' ✅ Configured automatic certificate renewal (twice daily)');
223
+ }
224
+ else {
225
+ console.log(' ✅ Certificate renewal already configured');
226
+ }
227
+ }
228
+ /**
229
+ * Update docker-compose.yml to replace build context with ECR image for prod services
230
+ * This is called after generate-all.js runs (which generates generic compose with build context)
231
+ */
232
+ async function updateComposeForECR(envConfig, config) {
233
+ const repoName = config.name ?? 'app';
234
+ const region = config.aws?.region ?? 'us-east-1';
235
+ const serviceName = `${repoName}-prod`;
236
+ // Get ECR registry - use config value or construct from AWS account ID on server
237
+ let ecrRegistry;
238
+ if (config.ecr_registry) {
239
+ ecrRegistry = config.ecr_registry;
240
+ }
241
+ else {
242
+ // Get AWS account ID from the server
243
+ try {
244
+ const accountId = await sshExecCommand(envConfig, `aws sts get-caller-identity --query Account --output text --region ${region}`);
245
+ ecrRegistry = `${accountId.trim()}.dkr.ecr.${region}.amazonaws.com`;
246
+ }
247
+ catch (error) {
248
+ throw new Error(`Failed to get AWS account ID from server: ${error instanceof Error ? error.message : String(error)}`);
249
+ }
250
+ }
251
+ const ecrRepository = config.ecr_repository ?? repoName;
252
+ const imageTag = `${ecrRegistry}/${ecrRepository}:latest`;
253
+ // Read docker-compose.yml from server
254
+ const composeContent = await sshExecCommand(envConfig, 'cat ~/.factiii/docker-compose.yml');
255
+ // Parse and update
256
+ const compose = js_yaml_1.default.load(composeContent);
257
+ if (compose.services && compose.services[serviceName]) {
258
+ // Remove build section and set image to ECR
259
+ delete compose.services[serviceName].build;
260
+ compose.services[serviceName].image = imageTag;
261
+ }
262
+ // Write back to server
263
+ const updatedContent = js_yaml_1.default.dump(compose, { lineWidth: -1 });
264
+ await sshExecCommand(envConfig, `cat > ~/.factiii/docker-compose.yml << 'EOF'\n${updatedContent}\nEOF`);
265
+ }
266
+ /**
267
+ * Ensure server is ready for deployment
268
+ * Installs Node.js, git, clones repo, checks out commit
269
+ * Note: Production doesn't install dependencies (pulls pre-built images)
270
+ */
271
+ async function ensureServerReady(config, environment, options = {}) {
272
+ // AWS only handles prod-type environments (prod, prod2, production, etc.)
273
+ if (!environment.startsWith('prod') && environment !== 'production') {
274
+ return { success: true, message: 'AWS only handles production environments' };
275
+ }
276
+ // Get environment config (supports both v1.x and v2.0.0+ formats)
277
+ const environments = (0, config_helpers_js_1.extractEnvironments)(config);
278
+ const envConfig = environments[environment] ?? environments['prod'] ?? environments['production'];
279
+ if (!envConfig?.domain) {
280
+ throw new Error(`${environment} domain not configured`);
281
+ }
282
+ const { commitHash, branch = 'main', repoUrl } = options;
283
+ const repoName = config.name ?? 'app';
284
+ const repoDir = `~/.factiii/${repoName}`;
285
+ try {
286
+ // 1. Ensure Node.js is installed
287
+ console.log(' Checking Node.js...');
288
+ await ensureNodeInstalled(envConfig);
289
+ // 2. Ensure git is installed
290
+ console.log(' Checking git...');
291
+ await ensureGitInstalled(envConfig);
292
+ // 3. Ensure repo is cloned and up to date
293
+ console.log(' Syncing repository...');
294
+ await ensureRepoCloned(envConfig, repoUrl, repoDir, repoName);
295
+ await pullAndCheckout(envConfig, repoDir, branch, commitHash);
296
+ // 4. Write environment variables from GitHub secrets if provided
297
+ const envVarsString = process.env.PROD_ENVS;
298
+ if (envVarsString) {
299
+ console.log(' Writing environment variables...');
300
+ await writeEnvFile(envConfig, repoDir, 'prod', envVarsString);
301
+ }
302
+ else {
303
+ console.log(' ⚠️ PROD_ENVS not provided, skipping env file write (using existing .env.prod if present)');
304
+ }
305
+ // Note: Production doesn't install dependencies - it pulls pre-built images from ECR
306
+ return { success: true, message: 'Server ready' };
307
+ }
308
+ catch (error) {
309
+ const errorMessage = error instanceof Error ? error.message : String(error);
310
+ throw new Error(`Failed to prepare server: ${errorMessage}`);
311
+ }
312
+ }
313
+ /**
314
+ * Deploy to production server (pull from ECR)
315
+ *
316
+ * @param config - Factiii config (supports both v1.x and v2.0.0+)
317
+ * @param environment - Environment name (defaults to 'prod' for backward compatibility)
318
+ */
319
+ async function deployProd(config, environment = 'prod') {
320
+ // Get environment config (supports both v1.x and v2.0.0+ formats)
321
+ const environments = (0, config_helpers_js_1.extractEnvironments)(config);
322
+ const envConfig = environments[environment] ?? environments['prod'] ?? environments['production'];
323
+ if (!envConfig?.domain) {
324
+ return { success: false, error: `${environment} domain not configured` };
325
+ }
326
+ console.log(` 🚀 Deploying to production (${envConfig.domain})...`);
327
+ try {
328
+ const repoName = config.name ?? 'app';
329
+ const region = config.aws?.region ?? 'us-east-1';
330
+ // Step 1: Regenerate unified docker-compose.yml (generic, uses build context)
331
+ console.log(' 🔄 Regenerating unified docker-compose.yml...');
332
+ const repos = (0, index_js_1.scanRepos)();
333
+ const configs = (0, index_js_1.loadConfigs)(repos);
334
+ (0, index_js_1.generateDockerCompose)(configs);
335
+ (0, index_js_1.generateNginx)(configs);
336
+ // Step 2: Update docker-compose.yml to use ECR image for prod services
337
+ console.log(' 🔄 Updating docker-compose.yml with ECR image references...');
338
+ await updateComposeForECR(envConfig, config);
339
+ // Step 3: Login to ECR and pull latest image
340
+ console.log(' 🔐 Logging in to ECR and pulling image...');
341
+ await sshExecCommand(envConfig, `
342
+ aws ecr get-login-password --region ${region} | docker login --username AWS --password-stdin $(aws sts get-caller-identity --query Account --output text).dkr.ecr.${region}.amazonaws.com && \
343
+ cd ~/.factiii && \
344
+ docker compose pull ${repoName}-prod
345
+ `);
346
+ // Step 4: Manage SSL certificates
347
+ console.log(' 🔐 Managing SSL certificates...');
348
+ await runCertbot(envConfig, config);
349
+ await setupCertbotRenewal(envConfig);
350
+ // Step 5: Start containers using unified docker-compose.yml
351
+ console.log(' 🚀 Starting containers with unified docker-compose.yml...');
352
+ await sshExecCommand(envConfig, `cd ~/.factiii && docker compose up -d ${repoName}-prod`);
353
+ return { success: true, message: 'Production deployment complete' };
354
+ }
355
+ catch (error) {
356
+ return {
357
+ success: false,
358
+ error: error instanceof Error ? error.message : String(error),
359
+ };
360
+ }
361
+ }
362
+ //# sourceMappingURL=prod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prod.js","sourceRoot":"","sources":["../../../../src/plugins/pipelines/aws/prod.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * AWS CLI fixes for AWS plugin
3
+ * Handles AWS CLI installation for dev environment
4
+ */
5
+ import type { Fix } from '../../../../types/index.js';
6
+ export declare const awsCliFixes: Fix[];
7
+ //# sourceMappingURL=aws-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-cli.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/aws/scanfix/aws-cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAiB,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAErE,eAAO,MAAM,WAAW,EAAE,GAAG,EAoB5B,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * AWS CLI fixes for AWS plugin
4
+ * Handles AWS CLI installation for dev environment
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.awsCliFixes = void 0;
8
+ const child_process_1 = require("child_process");
9
+ exports.awsCliFixes = [
10
+ {
11
+ id: 'aws-cli-not-installed-dev',
12
+ stage: 'dev',
13
+ severity: 'warning',
14
+ description: 'AWS CLI not installed (needed for ECR)',
15
+ scan: async (config, _rootDir) => {
16
+ // Only check if AWS is configured
17
+ if (!config?.aws?.access_key_id)
18
+ return false;
19
+ try {
20
+ (0, child_process_1.execSync)('which aws', { stdio: 'pipe' });
21
+ return false;
22
+ }
23
+ catch {
24
+ return true;
25
+ }
26
+ },
27
+ fix: null,
28
+ manualFix: 'Install AWS CLI: brew install awscli',
29
+ },
30
+ ];
31
+ //# sourceMappingURL=aws-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-cli.js","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/aws/scanfix/aws-cli.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iDAAyC;AAG5B,QAAA,WAAW,GAAU;IAChC;QACE,EAAE,EAAE,2BAA2B;QAC/B,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,wCAAwC;QACrD,IAAI,EAAE,KAAK,EAAE,MAAqB,EAAE,QAAgB,EAAoB,EAAE;YACxE,kCAAkC;YAClC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,aAAa;gBAAE,OAAO,KAAK,CAAC;YAE9C,IAAI,CAAC;gBACH,IAAA,wBAAQ,EAAC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACzC,OAAO,KAAK,CAAC;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,GAAG,EAAE,IAAI;QACT,SAAS,EAAE,sCAAsC;KAClD;CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Configuration-related fixes for AWS plugin
3
+ * Handles configuration checks and validation
4
+ */
5
+ import type { Fix } from '../../../../types/index.js';
6
+ export declare const configFixes: Fix[];
7
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/aws/scanfix/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAiB,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAErE,eAAO,MAAM,WAAW,EAAE,GAAG,EA6F5B,CAAC"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ /**
3
+ * Configuration-related fixes for AWS plugin
4
+ * Handles configuration checks and validation
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.configFixes = void 0;
41
+ const child_process_1 = require("child_process");
42
+ exports.configFixes = [
43
+ // PROD STAGE FIXES
44
+ {
45
+ id: 'prod-domain-missing',
46
+ stage: 'prod',
47
+ severity: 'critical',
48
+ description: 'Production domain not configured in factiii.yml',
49
+ scan: async (config, _rootDir) => {
50
+ const { extractEnvironments } = await Promise.resolve().then(() => __importStar(require('../../../../utils/config-helpers.js')));
51
+ const environments = extractEnvironments(config);
52
+ // Only check if prod environment is defined in config
53
+ const hasProdEnv = environments.prod || environments.production;
54
+ if (!hasProdEnv)
55
+ return false; // Skip check if prod not configured
56
+ return !environments.prod?.domain && !environments.production?.domain;
57
+ },
58
+ fix: null,
59
+ manualFix: 'Add prod.domain to factiii.yml',
60
+ },
61
+ {
62
+ id: 'prod-aws-config-missing',
63
+ stage: 'prod',
64
+ severity: 'critical',
65
+ description: 'AWS configuration missing in factiii.yml',
66
+ scan: async (config, _rootDir) => {
67
+ const { extractEnvironments } = await Promise.resolve().then(() => __importStar(require('../../../../utils/config-helpers.js')));
68
+ const environments = extractEnvironments(config);
69
+ // Only check if prod environment is defined in config
70
+ const hasProdEnv = environments.prod || environments.production;
71
+ if (!hasProdEnv)
72
+ return false; // Skip check if prod not configured
73
+ const prodEnv = environments.prod ?? environments.production;
74
+ return !prodEnv?.access_key_id || !prodEnv?.region;
75
+ },
76
+ fix: null,
77
+ manualFix: 'Add access_key_id and region to prod environment in factiii.yml',
78
+ },
79
+ {
80
+ id: 'prod-unreachable',
81
+ stage: 'prod',
82
+ severity: 'critical',
83
+ description: 'Cannot reach production server',
84
+ scan: async (config, _rootDir) => {
85
+ const { extractEnvironments } = await Promise.resolve().then(() => __importStar(require('../../../../utils/config-helpers.js')));
86
+ const environments = extractEnvironments(config);
87
+ // Only check if prod environment is defined in config
88
+ const hasProdEnv = environments.prod || environments.production;
89
+ if (!hasProdEnv)
90
+ return false; // Skip check if prod not configured
91
+ const domain = environments.prod?.domain ?? environments.production?.domain;
92
+ if (!domain)
93
+ return false;
94
+ try {
95
+ (0, child_process_1.execSync)(`ping -c 1 -W 3 ${domain}`, { stdio: 'pipe' });
96
+ return false;
97
+ }
98
+ catch {
99
+ return true;
100
+ }
101
+ },
102
+ fix: null,
103
+ manualFix: 'Check network connectivity to production server',
104
+ },
105
+ {
106
+ id: 'prod-repo-not-cloned',
107
+ stage: 'prod',
108
+ severity: 'warning',
109
+ description: 'Repository not cloned on production server',
110
+ scan: async (config, _rootDir) => {
111
+ const { extractEnvironments } = await Promise.resolve().then(() => __importStar(require('../../../../utils/config-helpers.js')));
112
+ const environments = extractEnvironments(config);
113
+ const envConfig = environments.prod ?? environments.production;
114
+ if (!envConfig)
115
+ return false;
116
+ if (!envConfig?.domain)
117
+ return false;
118
+ const repoName = config.name ?? 'app';
119
+ // Executed locally - SSH handled by CLI wrapper
120
+ const fs = await Promise.resolve().then(() => __importStar(require('fs')));
121
+ const path = await Promise.resolve().then(() => __importStar(require('path')));
122
+ try {
123
+ const repoPath = path.join(process.env.HOME ?? '/home/ubuntu', '.factiii', repoName, '.git');
124
+ return !fs.existsSync(repoPath);
125
+ }
126
+ catch {
127
+ return true;
128
+ }
129
+ },
130
+ fix: null, // Will be handled by ensureServerReady()
131
+ manualFix: 'Repository will be cloned automatically on first deployment',
132
+ },
133
+ ];
134
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/aws/scanfix/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * GitHub Secrets Store
3
+ *
4
+ * Utility for managing GitHub repository secrets via the GitHub API.
5
+ * Used by the pipeline plugin and secrets CLI command.
6
+ */
7
+ interface RepoInfo {
8
+ owner: string;
9
+ repo: string;
10
+ }
11
+ interface SetSecretResult {
12
+ success: boolean;
13
+ error?: string;
14
+ }
15
+ interface CheckSecretsResult {
16
+ existing?: string[];
17
+ status?: Record<string, boolean>;
18
+ missing?: string[];
19
+ error?: string;
20
+ }
21
+ interface PublicKeyResponse {
22
+ key: string;
23
+ key_id: string;
24
+ }
25
+ interface GitHubSecretsStoreConfig {
26
+ token?: string;
27
+ owner?: string;
28
+ repo?: string;
29
+ }
30
+ export declare class GitHubSecretsStore {
31
+ private token?;
32
+ private owner?;
33
+ private repo?;
34
+ constructor(config?: GitHubSecretsStoreConfig);
35
+ /**
36
+ * Get repository info from git remote
37
+ */
38
+ static getRepoInfo(): RepoInfo | null;
39
+ /**
40
+ * Make GitHub API request
41
+ */
42
+ private request;
43
+ /**
44
+ * Get repository public key for encrypting secrets
45
+ */
46
+ getPublicKey(): Promise<PublicKeyResponse>;
47
+ /**
48
+ * Encrypt a secret value using the repository's public key
49
+ */
50
+ encryptSecret(value: string, _publicKey: string): string;
51
+ /**
52
+ * Set a secret in the repository
53
+ */
54
+ setSecret(name: string, value: string): Promise<SetSecretResult>;
55
+ /**
56
+ * Check which secrets exist
57
+ */
58
+ checkSecrets(secretNames: string[]): Promise<CheckSecretsResult>;
59
+ /**
60
+ * Delete a secret
61
+ */
62
+ deleteSecret(name: string): Promise<SetSecretResult>;
63
+ }
64
+ export {};
65
+ //# sourceMappingURL=github-secrets-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-secrets-store.d.ts","sourceRoot":"","sources":["../../../../src/plugins/pipelines/factiii/github-secrets-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,UAAU,wBAAwB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,IAAI,CAAC,CAAS;gBAEV,MAAM,GAAE,wBAA6B;IAejD;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,QAAQ,GAAG,IAAI;IAuBrC;;OAEG;YACW,OAAO;IAwDrB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAKhD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAQxD;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAwBtE;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6BtE;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAY3D"}