iec-cli 0.6.6

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 (443) hide show
  1. package/README.md +159 -0
  2. package/dist/commands/backup.d.ts +11 -0
  3. package/dist/commands/backup.d.ts.map +1 -0
  4. package/dist/commands/backup.js +112 -0
  5. package/dist/commands/backup.js.map +1 -0
  6. package/dist/commands/config.d.ts +28 -0
  7. package/dist/commands/config.d.ts.map +1 -0
  8. package/dist/commands/config.js +190 -0
  9. package/dist/commands/config.js.map +1 -0
  10. package/dist/commands/deploy.d.ts +16 -0
  11. package/dist/commands/deploy.d.ts.map +1 -0
  12. package/dist/commands/deploy.js +235 -0
  13. package/dist/commands/deploy.js.map +1 -0
  14. package/dist/commands/destroy.d.ts +12 -0
  15. package/dist/commands/destroy.d.ts.map +1 -0
  16. package/dist/commands/destroy.js +62 -0
  17. package/dist/commands/destroy.js.map +1 -0
  18. package/dist/commands/domains.d.ts +36 -0
  19. package/dist/commands/domains.d.ts.map +1 -0
  20. package/dist/commands/domains.js +323 -0
  21. package/dist/commands/domains.js.map +1 -0
  22. package/dist/commands/env.d.ts +7 -0
  23. package/dist/commands/env.d.ts.map +1 -0
  24. package/dist/commands/env.js +42 -0
  25. package/dist/commands/env.js.map +1 -0
  26. package/dist/commands/git.d.ts +32 -0
  27. package/dist/commands/git.d.ts.map +1 -0
  28. package/dist/commands/git.js +340 -0
  29. package/dist/commands/git.js.map +1 -0
  30. package/dist/commands/init-ai.d.ts +7 -0
  31. package/dist/commands/init-ai.d.ts.map +1 -0
  32. package/dist/commands/init-ai.js +257 -0
  33. package/dist/commands/init-ai.js.map +1 -0
  34. package/dist/commands/init.d.ts +8 -0
  35. package/dist/commands/init.d.ts.map +1 -0
  36. package/dist/commands/init.js +228 -0
  37. package/dist/commands/init.js.map +1 -0
  38. package/dist/commands/link.d.ts +10 -0
  39. package/dist/commands/link.d.ts.map +1 -0
  40. package/dist/commands/link.js +193 -0
  41. package/dist/commands/link.js.map +1 -0
  42. package/dist/commands/login.d.ts +16 -0
  43. package/dist/commands/login.d.ts.map +1 -0
  44. package/dist/commands/login.js +468 -0
  45. package/dist/commands/login.js.map +1 -0
  46. package/dist/commands/logs.d.ts +16 -0
  47. package/dist/commands/logs.d.ts.map +1 -0
  48. package/dist/commands/logs.js +362 -0
  49. package/dist/commands/logs.js.map +1 -0
  50. package/dist/commands/oauth.d.ts +33 -0
  51. package/dist/commands/oauth.d.ts.map +1 -0
  52. package/dist/commands/oauth.js +181 -0
  53. package/dist/commands/oauth.js.map +1 -0
  54. package/dist/commands/preflight.d.ts +8 -0
  55. package/dist/commands/preflight.d.ts.map +1 -0
  56. package/dist/commands/preflight.js +190 -0
  57. package/dist/commands/preflight.js.map +1 -0
  58. package/dist/commands/program.d.ts +7 -0
  59. package/dist/commands/program.d.ts.map +1 -0
  60. package/dist/commands/program.js +59 -0
  61. package/dist/commands/program.js.map +1 -0
  62. package/dist/commands/programs.d.ts +7 -0
  63. package/dist/commands/programs.d.ts.map +1 -0
  64. package/dist/commands/programs.js +42 -0
  65. package/dist/commands/programs.js.map +1 -0
  66. package/dist/commands/push.d.ts +12 -0
  67. package/dist/commands/push.d.ts.map +1 -0
  68. package/dist/commands/push.js +166 -0
  69. package/dist/commands/push.js.map +1 -0
  70. package/dist/commands/register-scaffold.test.d.ts +2 -0
  71. package/dist/commands/register-scaffold.test.d.ts.map +1 -0
  72. package/dist/commands/register-scaffold.test.js +291 -0
  73. package/dist/commands/register-scaffold.test.js.map +1 -0
  74. package/dist/commands/register.d.ts +7 -0
  75. package/dist/commands/register.d.ts.map +1 -0
  76. package/dist/commands/register.js +304 -0
  77. package/dist/commands/register.js.map +1 -0
  78. package/dist/commands/rollback.d.ts +11 -0
  79. package/dist/commands/rollback.d.ts.map +1 -0
  80. package/dist/commands/rollback.js +147 -0
  81. package/dist/commands/rollback.js.map +1 -0
  82. package/dist/commands/sample.d.ts +15 -0
  83. package/dist/commands/sample.d.ts.map +1 -0
  84. package/dist/commands/sample.js +312 -0
  85. package/dist/commands/sample.js.map +1 -0
  86. package/dist/commands/scopes.d.ts +29 -0
  87. package/dist/commands/scopes.d.ts.map +1 -0
  88. package/dist/commands/scopes.js +203 -0
  89. package/dist/commands/scopes.js.map +1 -0
  90. package/dist/commands/services.d.ts +13 -0
  91. package/dist/commands/services.d.ts.map +1 -0
  92. package/dist/commands/services.js +95 -0
  93. package/dist/commands/services.js.map +1 -0
  94. package/dist/commands/settings.d.ts +10 -0
  95. package/dist/commands/settings.d.ts.map +1 -0
  96. package/dist/commands/settings.js +41 -0
  97. package/dist/commands/settings.js.map +1 -0
  98. package/dist/commands/signup.d.ts +9 -0
  99. package/dist/commands/signup.d.ts.map +1 -0
  100. package/dist/commands/signup.js +192 -0
  101. package/dist/commands/signup.js.map +1 -0
  102. package/dist/commands/status.d.ts +9 -0
  103. package/dist/commands/status.d.ts.map +1 -0
  104. package/dist/commands/status.js +170 -0
  105. package/dist/commands/status.js.map +1 -0
  106. package/dist/commands/troubleshoot.d.ts +19 -0
  107. package/dist/commands/troubleshoot.d.ts.map +1 -0
  108. package/dist/commands/troubleshoot.js +465 -0
  109. package/dist/commands/troubleshoot.js.map +1 -0
  110. package/dist/commands/update.d.ts +6 -0
  111. package/dist/commands/update.d.ts.map +1 -0
  112. package/dist/commands/update.js +64 -0
  113. package/dist/commands/update.js.map +1 -0
  114. package/dist/commands/user.d.ts +17 -0
  115. package/dist/commands/user.d.ts.map +1 -0
  116. package/dist/commands/user.js +126 -0
  117. package/dist/commands/user.js.map +1 -0
  118. package/dist/commands/versions.d.ts +16 -0
  119. package/dist/commands/versions.d.ts.map +1 -0
  120. package/dist/commands/versions.js +116 -0
  121. package/dist/commands/versions.js.map +1 -0
  122. package/dist/index.d.ts +3 -0
  123. package/dist/index.d.ts.map +1 -0
  124. package/dist/index.js +556 -0
  125. package/dist/index.js.map +1 -0
  126. package/dist/lib/__tests__/scaffold-integration.test.d.ts +2 -0
  127. package/dist/lib/__tests__/scaffold-integration.test.d.ts.map +1 -0
  128. package/dist/lib/__tests__/scaffold-integration.test.js +321 -0
  129. package/dist/lib/__tests__/scaffold-integration.test.js.map +1 -0
  130. package/dist/lib/ai/client.d.ts +39 -0
  131. package/dist/lib/ai/client.d.ts.map +1 -0
  132. package/dist/lib/ai/client.js +236 -0
  133. package/dist/lib/ai/client.js.map +1 -0
  134. package/dist/lib/ai/generator.d.ts +17 -0
  135. package/dist/lib/ai/generator.d.ts.map +1 -0
  136. package/dist/lib/ai/generator.js +338 -0
  137. package/dist/lib/ai/generator.js.map +1 -0
  138. package/dist/lib/ai/prompts.d.ts +47 -0
  139. package/dist/lib/ai/prompts.d.ts.map +1 -0
  140. package/dist/lib/ai/prompts.js +247 -0
  141. package/dist/lib/ai/prompts.js.map +1 -0
  142. package/dist/lib/ai/scanner.d.ts +50 -0
  143. package/dist/lib/ai/scanner.d.ts.map +1 -0
  144. package/dist/lib/ai/scanner.js +237 -0
  145. package/dist/lib/ai/scanner.js.map +1 -0
  146. package/dist/lib/api.d.ts +18 -0
  147. package/dist/lib/api.d.ts.map +1 -0
  148. package/dist/lib/api.js +67 -0
  149. package/dist/lib/api.js.map +1 -0
  150. package/dist/lib/auto-register.d.ts +12 -0
  151. package/dist/lib/auto-register.d.ts.map +1 -0
  152. package/dist/lib/auto-register.js +42 -0
  153. package/dist/lib/auto-register.js.map +1 -0
  154. package/dist/lib/bio.d.ts +90 -0
  155. package/dist/lib/bio.d.ts.map +1 -0
  156. package/dist/lib/bio.js +247 -0
  157. package/dist/lib/bio.js.map +1 -0
  158. package/dist/lib/builder.d.ts +65 -0
  159. package/dist/lib/builder.d.ts.map +1 -0
  160. package/dist/lib/builder.js +192 -0
  161. package/dist/lib/builder.js.map +1 -0
  162. package/dist/lib/catalog.d.ts +3 -0
  163. package/dist/lib/catalog.d.ts.map +1 -0
  164. package/dist/lib/catalog.js +17 -0
  165. package/dist/lib/catalog.js.map +1 -0
  166. package/dist/lib/config.d.ts +20 -0
  167. package/dist/lib/config.d.ts.map +1 -0
  168. package/dist/lib/config.js +124 -0
  169. package/dist/lib/config.js.map +1 -0
  170. package/dist/lib/forgejo.d.ts +188 -0
  171. package/dist/lib/forgejo.d.ts.map +1 -0
  172. package/dist/lib/forgejo.js +305 -0
  173. package/dist/lib/forgejo.js.map +1 -0
  174. package/dist/lib/output.d.ts +12 -0
  175. package/dist/lib/output.d.ts.map +1 -0
  176. package/dist/lib/output.js +39 -0
  177. package/dist/lib/output.js.map +1 -0
  178. package/dist/lib/scaffold.d.ts +30 -0
  179. package/dist/lib/scaffold.d.ts.map +1 -0
  180. package/dist/lib/scaffold.js +180 -0
  181. package/dist/lib/scaffold.js.map +1 -0
  182. package/dist/lib/scope-requests.d.ts +17 -0
  183. package/dist/lib/scope-requests.d.ts.map +1 -0
  184. package/dist/lib/scope-requests.js +78 -0
  185. package/dist/lib/scope-requests.js.map +1 -0
  186. package/dist/lib/scope-requests.test.d.ts +2 -0
  187. package/dist/lib/scope-requests.test.d.ts.map +1 -0
  188. package/dist/lib/scope-requests.test.js +239 -0
  189. package/dist/lib/scope-requests.test.js.map +1 -0
  190. package/dist/lib/troubleshoot/analyzer.d.ts +14 -0
  191. package/dist/lib/troubleshoot/analyzer.d.ts.map +1 -0
  192. package/dist/lib/troubleshoot/analyzer.js +541 -0
  193. package/dist/lib/troubleshoot/analyzer.js.map +1 -0
  194. package/dist/lib/troubleshoot/auto-fix.d.ts +29 -0
  195. package/dist/lib/troubleshoot/auto-fix.d.ts.map +1 -0
  196. package/dist/lib/troubleshoot/auto-fix.js +373 -0
  197. package/dist/lib/troubleshoot/auto-fix.js.map +1 -0
  198. package/dist/lib/troubleshoot/index.d.ts +5 -0
  199. package/dist/lib/troubleshoot/index.d.ts.map +1 -0
  200. package/dist/lib/troubleshoot/index.js +6 -0
  201. package/dist/lib/troubleshoot/index.js.map +1 -0
  202. package/dist/lib/troubleshoot/log-fetcher.d.ts +43 -0
  203. package/dist/lib/troubleshoot/log-fetcher.d.ts.map +1 -0
  204. package/dist/lib/troubleshoot/log-fetcher.js +431 -0
  205. package/dist/lib/troubleshoot/log-fetcher.js.map +1 -0
  206. package/dist/lib/troubleshoot/redactor.d.ts +35 -0
  207. package/dist/lib/troubleshoot/redactor.d.ts.map +1 -0
  208. package/dist/lib/troubleshoot/redactor.js +208 -0
  209. package/dist/lib/troubleshoot/redactor.js.map +1 -0
  210. package/dist/lib/validators/catalog-schemas.d.ts +59 -0
  211. package/dist/lib/validators/catalog-schemas.d.ts.map +1 -0
  212. package/dist/lib/validators/catalog-schemas.js +32 -0
  213. package/dist/lib/validators/catalog-schemas.js.map +1 -0
  214. package/dist/lib/validators/catalog-validator.d.ts +3 -0
  215. package/dist/lib/validators/catalog-validator.d.ts.map +1 -0
  216. package/dist/lib/validators/catalog-validator.js +247 -0
  217. package/dist/lib/validators/catalog-validator.js.map +1 -0
  218. package/dist/lib/validators/catalog-validator.test.d.ts +2 -0
  219. package/dist/lib/validators/catalog-validator.test.d.ts.map +1 -0
  220. package/dist/lib/validators/catalog-validator.test.js +420 -0
  221. package/dist/lib/validators/catalog-validator.test.js.map +1 -0
  222. package/dist/lib/validators/dockerfile-validator.d.ts +5 -0
  223. package/dist/lib/validators/dockerfile-validator.d.ts.map +1 -0
  224. package/dist/lib/validators/dockerfile-validator.js +295 -0
  225. package/dist/lib/validators/dockerfile-validator.js.map +1 -0
  226. package/dist/lib/validators/dockerfile-validator.test.d.ts +2 -0
  227. package/dist/lib/validators/dockerfile-validator.test.d.ts.map +1 -0
  228. package/dist/lib/validators/dockerfile-validator.test.js +161 -0
  229. package/dist/lib/validators/dockerfile-validator.test.js.map +1 -0
  230. package/dist/lib/validators/env-validator.d.ts +3 -0
  231. package/dist/lib/validators/env-validator.d.ts.map +1 -0
  232. package/dist/lib/validators/env-validator.js +268 -0
  233. package/dist/lib/validators/env-validator.js.map +1 -0
  234. package/dist/lib/validators/git-validator.d.ts +3 -0
  235. package/dist/lib/validators/git-validator.d.ts.map +1 -0
  236. package/dist/lib/validators/git-validator.js +236 -0
  237. package/dist/lib/validators/git-validator.js.map +1 -0
  238. package/dist/lib/validators/health-detector.d.ts +4 -0
  239. package/dist/lib/validators/health-detector.d.ts.map +1 -0
  240. package/dist/lib/validators/health-detector.js +172 -0
  241. package/dist/lib/validators/health-detector.js.map +1 -0
  242. package/dist/lib/validators/health-detector.test.d.ts +2 -0
  243. package/dist/lib/validators/health-detector.test.d.ts.map +1 -0
  244. package/dist/lib/validators/health-detector.test.js +118 -0
  245. package/dist/lib/validators/health-detector.test.js.map +1 -0
  246. package/dist/lib/validators/index.d.ts +8 -0
  247. package/dist/lib/validators/index.d.ts.map +1 -0
  248. package/dist/lib/validators/index.js +8 -0
  249. package/dist/lib/validators/index.js.map +1 -0
  250. package/dist/lib/validators/route-validator.d.ts +3 -0
  251. package/dist/lib/validators/route-validator.d.ts.map +1 -0
  252. package/dist/lib/validators/route-validator.js +238 -0
  253. package/dist/lib/validators/route-validator.js.map +1 -0
  254. package/dist/lib/validators/scope-validator.d.ts +3 -0
  255. package/dist/lib/validators/scope-validator.d.ts.map +1 -0
  256. package/dist/lib/validators/scope-validator.js +141 -0
  257. package/dist/lib/validators/scope-validator.js.map +1 -0
  258. package/dist/lib/watch.d.ts +35 -0
  259. package/dist/lib/watch.d.ts.map +1 -0
  260. package/dist/lib/watch.js +171 -0
  261. package/dist/lib/watch.js.map +1 -0
  262. package/dist/templates/api/.env.example +15 -0
  263. package/dist/templates/api/Dockerfile +45 -0
  264. package/dist/templates/api/README.md +85 -0
  265. package/dist/templates/api/catalog-info.yaml +22 -0
  266. package/dist/templates/api/gitignore +31 -0
  267. package/dist/templates/api/helm/{{name}}/Chart.yaml +9 -0
  268. package/dist/templates/api/helm/{{name}}/templates/deployment.yaml +72 -0
  269. package/dist/templates/api/helm/{{name}}/templates/ingress.yaml +43 -0
  270. package/dist/templates/api/helm/{{name}}/templates/service.yaml +17 -0
  271. package/dist/templates/api/helm/{{name}}/values.yaml +64 -0
  272. package/dist/templates/api/package.json +33 -0
  273. package/dist/templates/api/src/index.ts +61 -0
  274. package/dist/templates/api/src/routes/example.ts +165 -0
  275. package/dist/templates/api/tsconfig.json +18 -0
  276. package/dist/templates/crosspod/README.md +87 -0
  277. package/dist/templates/crosspod/service-a/Dockerfile +27 -0
  278. package/dist/templates/crosspod/service-a/catalog-info.yaml +54 -0
  279. package/dist/templates/crosspod/service-a/gitignore +5 -0
  280. package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/Chart.yaml +6 -0
  281. package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/templates/deployment.yaml +72 -0
  282. package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/templates/ingress.yaml +43 -0
  283. package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/templates/service.yaml +17 -0
  284. package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/values.yaml +44 -0
  285. package/dist/templates/crosspod/service-a/package.json +29 -0
  286. package/dist/templates/crosspod/service-a/src/index.ts +89 -0
  287. package/dist/templates/crosspod/service-a/tsconfig.json +14 -0
  288. package/dist/templates/crosspod/service-b/Dockerfile +27 -0
  289. package/dist/templates/crosspod/service-b/catalog-info.yaml +27 -0
  290. package/dist/templates/crosspod/service-b/gitignore +5 -0
  291. package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/Chart.yaml +6 -0
  292. package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/templates/deployment.yaml +72 -0
  293. package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/templates/ingress.yaml +43 -0
  294. package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/templates/service.yaml +17 -0
  295. package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/values.yaml +47 -0
  296. package/dist/templates/crosspod/service-b/package.json +26 -0
  297. package/dist/templates/crosspod/service-b/src/index.ts +143 -0
  298. package/dist/templates/crosspod/service-b/tsconfig.json +14 -0
  299. package/dist/templates/mga/{{name}}-api/.env.example +5 -0
  300. package/dist/templates/mga/{{name}}-api/Dockerfile +45 -0
  301. package/dist/templates/mga/{{name}}-api/catalog-info.yaml +44 -0
  302. package/dist/templates/mga/{{name}}-api/gitignore +31 -0
  303. package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/Chart.yaml +9 -0
  304. package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/templates/deployment.yaml +72 -0
  305. package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/templates/ingress.yaml +43 -0
  306. package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/templates/service.yaml +17 -0
  307. package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/values.yaml +65 -0
  308. package/dist/templates/mga/{{name}}-api/package.json +37 -0
  309. package/dist/templates/mga/{{name}}-api/src/index.ts +82 -0
  310. package/dist/templates/mga/{{name}}-api/src/lib/mongo.ts +19 -0
  311. package/dist/templates/mga/{{name}}-api/src/middleware/auth.ts +133 -0
  312. package/dist/templates/mga/{{name}}-api/src/models/agent.ts +45 -0
  313. package/dist/templates/mga/{{name}}-api/src/models/application.ts +58 -0
  314. package/dist/templates/mga/{{name}}-api/src/models/invite.ts +39 -0
  315. package/dist/templates/mga/{{name}}-api/src/models/policy.ts +59 -0
  316. package/dist/templates/mga/{{name}}-api/src/models/product.ts +51 -0
  317. package/dist/templates/mga/{{name}}-api/src/models/quote.ts +68 -0
  318. package/dist/templates/mga/{{name}}-api/src/routes/agents.ts +98 -0
  319. package/dist/templates/mga/{{name}}-api/src/routes/applications.ts +170 -0
  320. package/dist/templates/mga/{{name}}-api/src/routes/invites.ts +146 -0
  321. package/dist/templates/mga/{{name}}-api/src/routes/policies.ts +70 -0
  322. package/dist/templates/mga/{{name}}-api/src/routes/products.ts +154 -0
  323. package/dist/templates/mga/{{name}}-api/src/routes/quotes.ts +263 -0
  324. package/dist/templates/mga/{{name}}-api/src/routes/reports.ts +199 -0
  325. package/dist/templates/mga/{{name}}-api/tsconfig.json +18 -0
  326. package/dist/templates/mga/{{name}}-web/.dockerignore +6 -0
  327. package/dist/templates/mga/{{name}}-web/.env.example +6 -0
  328. package/dist/templates/mga/{{name}}-web/Dockerfile +51 -0
  329. package/dist/templates/mga/{{name}}-web/catalog-info.yaml +24 -0
  330. package/dist/templates/mga/{{name}}-web/dockerignore +6 -0
  331. package/dist/templates/mga/{{name}}-web/gitignore +36 -0
  332. package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/Chart.yaml +9 -0
  333. package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/_helpers.tpl +49 -0
  334. package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/configmap.yaml +10 -0
  335. package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/deployment.yaml +56 -0
  336. package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/ingress.yaml +41 -0
  337. package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/service.yaml +15 -0
  338. package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/values.yaml +70 -0
  339. package/dist/templates/mga/{{name}}-web/next.config.js +8 -0
  340. package/dist/templates/mga/{{name}}-web/package.json +30 -0
  341. package/dist/templates/mga/{{name}}-web/public/.gitkeep +0 -0
  342. package/dist/templates/mga/{{name}}-web/public/gitkeep +0 -0
  343. package/dist/templates/mga/{{name}}-web/src/app/api/auth/callback/route.ts +77 -0
  344. package/dist/templates/mga/{{name}}-web/src/app/api/auth/login/route.ts +16 -0
  345. package/dist/templates/mga/{{name}}-web/src/app/api/auth/logout/route.ts +7 -0
  346. package/dist/templates/mga/{{name}}-web/src/app/api/auth/session/route.ts +42 -0
  347. package/dist/templates/mga/{{name}}-web/src/app/api/health/route.ts +10 -0
  348. package/dist/templates/mga/{{name}}-web/src/app/api/proxy/applications/route.ts +47 -0
  349. package/dist/templates/mga/{{name}}-web/src/app/applications/layout.tsx +17 -0
  350. package/dist/templates/mga/{{name}}-web/src/app/applications/new/page.tsx +374 -0
  351. package/dist/templates/mga/{{name}}-web/src/app/applications/page.tsx +109 -0
  352. package/dist/templates/mga/{{name}}-web/src/app/dashboard/admin/page.tsx +179 -0
  353. package/dist/templates/mga/{{name}}-web/src/app/dashboard/agent/page.tsx +125 -0
  354. package/dist/templates/mga/{{name}}-web/src/app/dashboard/insured/page.tsx +145 -0
  355. package/dist/templates/mga/{{name}}-web/src/app/dashboard/layout.tsx +17 -0
  356. package/dist/templates/mga/{{name}}-web/src/app/dashboard/page.tsx +27 -0
  357. package/dist/templates/mga/{{name}}-web/src/app/dashboard/shell.tsx +89 -0
  358. package/dist/templates/mga/{{name}}-web/src/app/globals.css +477 -0
  359. package/dist/templates/mga/{{name}}-web/src/app/layout.tsx +19 -0
  360. package/dist/templates/mga/{{name}}-web/src/app/page.tsx +74 -0
  361. package/dist/templates/mga/{{name}}-web/src/app/reports/layout.tsx +21 -0
  362. package/dist/templates/mga/{{name}}-web/src/app/reports/page.tsx +231 -0
  363. package/dist/templates/mga/{{name}}-web/src/lib/api.ts +79 -0
  364. package/dist/templates/mga/{{name}}-web/src/lib/auth.ts +285 -0
  365. package/dist/templates/mga/{{name}}-web/src/middleware.ts +71 -0
  366. package/dist/templates/mga/{{name}}-web/tsconfig.json +26 -0
  367. package/dist/templates/nextjs/.env.example +11 -0
  368. package/dist/templates/nextjs/Dockerfile +51 -0
  369. package/dist/templates/nextjs/README.md +87 -0
  370. package/dist/templates/nextjs/catalog-info.yaml +16 -0
  371. package/dist/templates/nextjs/gitignore +36 -0
  372. package/dist/templates/nextjs/helm/{{name}}/Chart.yaml +9 -0
  373. package/dist/templates/nextjs/helm/{{name}}/templates/deployment.yaml +72 -0
  374. package/dist/templates/nextjs/helm/{{name}}/templates/ingress.yaml +43 -0
  375. package/dist/templates/nextjs/helm/{{name}}/templates/service.yaml +17 -0
  376. package/dist/templates/nextjs/helm/{{name}}/values.yaml +60 -0
  377. package/dist/templates/nextjs/next.config.js +23 -0
  378. package/dist/templates/nextjs/package.json +29 -0
  379. package/dist/templates/nextjs/public/.gitkeep +0 -0
  380. package/dist/templates/nextjs/public/gitkeep +0 -0
  381. package/dist/templates/nextjs/src/app/api/example/route.ts +63 -0
  382. package/dist/templates/nextjs/src/app/api/health/route.ts +10 -0
  383. package/dist/templates/nextjs/src/app/layout.tsx +18 -0
  384. package/dist/templates/nextjs/src/app/page.tsx +49 -0
  385. package/dist/templates/nextjs/tsconfig.json +26 -0
  386. package/dist/templates/nextjs-oauth/.dockerignore +6 -0
  387. package/dist/templates/nextjs-oauth/.env.example +12 -0
  388. package/dist/templates/nextjs-oauth/Dockerfile +51 -0
  389. package/dist/templates/nextjs-oauth/README.md +115 -0
  390. package/dist/templates/nextjs-oauth/catalog-info.yaml +17 -0
  391. package/dist/templates/nextjs-oauth/dockerignore +6 -0
  392. package/dist/templates/nextjs-oauth/gitignore +36 -0
  393. package/dist/templates/nextjs-oauth/helm/Chart.yaml +6 -0
  394. package/dist/templates/nextjs-oauth/helm/templates/_helpers.tpl +49 -0
  395. package/dist/templates/nextjs-oauth/helm/templates/configmap.yaml +10 -0
  396. package/dist/templates/nextjs-oauth/helm/templates/deployment.yaml +56 -0
  397. package/dist/templates/nextjs-oauth/helm/templates/ingress.yaml +41 -0
  398. package/dist/templates/nextjs-oauth/helm/templates/service.yaml +15 -0
  399. package/dist/templates/nextjs-oauth/helm/values.yaml +69 -0
  400. package/dist/templates/nextjs-oauth/helm/{{name}}/Chart.yaml +9 -0
  401. package/dist/templates/nextjs-oauth/helm/{{name}}/templates/deployment.yaml +68 -0
  402. package/dist/templates/nextjs-oauth/helm/{{name}}/templates/service.yaml +17 -0
  403. package/dist/templates/nextjs-oauth/helm/{{name}}/values.yaml +51 -0
  404. package/dist/templates/nextjs-oauth/next.config.js +23 -0
  405. package/dist/templates/nextjs-oauth/package.json +30 -0
  406. package/dist/templates/nextjs-oauth/public/.gitkeep +0 -0
  407. package/dist/templates/nextjs-oauth/public/gitkeep +0 -0
  408. package/dist/templates/nextjs-oauth/src/app/api/auth/callback/route.ts +77 -0
  409. package/dist/templates/nextjs-oauth/src/app/api/auth/login/route.ts +16 -0
  410. package/dist/templates/nextjs-oauth/src/app/api/auth/logout/route.ts +7 -0
  411. package/dist/templates/nextjs-oauth/src/app/api/auth/session/route.ts +42 -0
  412. package/dist/templates/nextjs-oauth/src/app/api/example/route.ts +63 -0
  413. package/dist/templates/nextjs-oauth/src/app/api/health/route.ts +10 -0
  414. package/dist/templates/nextjs-oauth/src/app/dashboard/page.tsx +92 -0
  415. package/dist/templates/nextjs-oauth/src/app/layout.tsx +18 -0
  416. package/dist/templates/nextjs-oauth/src/app/page.tsx +110 -0
  417. package/dist/templates/nextjs-oauth/src/lib/auth.ts +285 -0
  418. package/dist/templates/nextjs-oauth/src/middleware.ts +71 -0
  419. package/dist/templates/nextjs-oauth/tsconfig.json +26 -0
  420. package/dist/templates/static/catalog-info.yaml +14 -0
  421. package/dist/templates/static/index.html +16 -0
  422. package/dist/templates/static/styles.css +39 -0
  423. package/dist/templates/worker/.env.example +13 -0
  424. package/dist/templates/worker/Dockerfile +26 -0
  425. package/dist/templates/worker/README.md +106 -0
  426. package/dist/templates/worker/catalog-info.yaml +19 -0
  427. package/dist/templates/worker/gitignore +5 -0
  428. package/dist/templates/worker/helm/{{name}}/Chart.yaml +9 -0
  429. package/dist/templates/worker/helm/{{name}}/templates/deployment.yaml +68 -0
  430. package/dist/templates/worker/helm/{{name}}/templates/ingress.yaml +43 -0
  431. package/dist/templates/worker/helm/{{name}}/values.yaml +64 -0
  432. package/dist/templates/worker/package.json +26 -0
  433. package/dist/templates/worker/src/index.ts +185 -0
  434. package/dist/templates/worker/tsconfig.json +14 -0
  435. package/dist/types/index.d.ts +596 -0
  436. package/dist/types/index.d.ts.map +1 -0
  437. package/dist/types/index.js +41 -0
  438. package/dist/types/index.js.map +1 -0
  439. package/dist/types/platform.d.ts +191 -0
  440. package/dist/types/platform.d.ts.map +1 -0
  441. package/dist/types/platform.js +17 -0
  442. package/dist/types/platform.js.map +1 -0
  443. package/package.json +62 -0
@@ -0,0 +1,420 @@
1
+ import { describe, it, expect, afterEach } from 'vitest';
2
+ import { mkdir, writeFile, rm } from 'node:fs/promises';
3
+ import { join } from 'node:path';
4
+ import { tmpdir } from 'node:os';
5
+ import { randomUUID } from 'node:crypto';
6
+ import { validateCatalog } from './catalog-validator.js';
7
+ // Helper: create a temp directory with catalog-info.yaml content
8
+ async function setupFixture(yamlContent) {
9
+ const dir = join(tmpdir(), `iec-test-${randomUUID()}`);
10
+ await mkdir(dir, { recursive: true });
11
+ await writeFile(join(dir, 'catalog-info.yaml'), yamlContent, 'utf-8');
12
+ return dir;
13
+ }
14
+ // Minimal valid catalog YAML that passes the existing schema
15
+ const BASE_CATALOG = `
16
+ apiVersion: backstage.io/v1alpha1
17
+ kind: Component
18
+ metadata:
19
+ name: test-service
20
+ description: A test service
21
+ spec:
22
+ type: service
23
+ lifecycle: production
24
+ owner: team-test
25
+ `;
26
+ // Helper: merge base catalog with additional spec fields
27
+ function catalogWithSpec(specFields) {
28
+ return `
29
+ apiVersion: backstage.io/v1alpha1
30
+ kind: Component
31
+ metadata:
32
+ name: test-service
33
+ description: A test service
34
+ spec:
35
+ type: service
36
+ lifecycle: production
37
+ owner: team-test
38
+ ${specFields}
39
+ `;
40
+ }
41
+ // Helper: merge base catalog with annotations
42
+ function catalogWithAnnotations(annotations) {
43
+ return `
44
+ apiVersion: backstage.io/v1alpha1
45
+ kind: Component
46
+ metadata:
47
+ name: test-service
48
+ description: A test service
49
+ annotations:
50
+ ${annotations}
51
+ spec:
52
+ type: service
53
+ lifecycle: production
54
+ owner: team-test
55
+ `;
56
+ }
57
+ // Helper: merge base catalog with annotations and spec fields
58
+ function catalogWithAnnotationsAndSpec(annotations, specFields) {
59
+ return `
60
+ apiVersion: backstage.io/v1alpha1
61
+ kind: Component
62
+ metadata:
63
+ name: test-service
64
+ description: A test service
65
+ annotations:
66
+ ${annotations}
67
+ spec:
68
+ type: service
69
+ lifecycle: production
70
+ owner: team-test
71
+ ${specFields}
72
+ `;
73
+ }
74
+ function findCatalogCheck(checks) {
75
+ return checks.find(c => c.name === 'catalog-info.yaml valid');
76
+ }
77
+ describe('catalog-validator', () => {
78
+ const tempDirs = [];
79
+ afterEach(async () => {
80
+ await Promise.all(tempDirs.map(d => rm(d, { recursive: true, force: true })));
81
+ tempDirs.splice(0, tempDirs.length);
82
+ });
83
+ async function setup(yaml) {
84
+ const dir = await setupFixture(yaml);
85
+ tempDirs.push(dir);
86
+ return dir;
87
+ }
88
+ // ── Existing validation still works ──
89
+ describe('existing catalog validation', () => {
90
+ it('should pass a minimal valid catalog', async () => {
91
+ const dir = await setup(BASE_CATALOG);
92
+ const result = await validateCatalog(dir);
93
+ const check = findCatalogCheck(result.checks);
94
+ expect(check).toBeDefined();
95
+ expect(check.status).toBe('pass');
96
+ });
97
+ it('should fail when catalog-info.yaml does not exist', async () => {
98
+ const dir = join(tmpdir(), `iec-test-${randomUUID()}`);
99
+ await mkdir(dir, { recursive: true });
100
+ tempDirs.push(dir);
101
+ const result = await validateCatalog(dir);
102
+ const check = result.checks.find(c => c.name === 'catalog-info.yaml exists');
103
+ expect(check).toBeDefined();
104
+ expect(check.status).toBe('fail');
105
+ });
106
+ it('should pass a catalog with routes', async () => {
107
+ const yaml = catalogWithSpec(` routes:
108
+ - path: /api/test
109
+ methods: [GET, POST]
110
+ auth: required`);
111
+ const dir = await setup(yaml);
112
+ const result = await validateCatalog(dir);
113
+ const check = findCatalogCheck(result.checks);
114
+ expect(check.status).toBe('pass');
115
+ });
116
+ });
117
+ // ── databases ──
118
+ describe('databases field', () => {
119
+ it('should accept valid databases array with mongodb', async () => {
120
+ const yaml = catalogWithSpec(` databases:
121
+ - type: mongodb`);
122
+ const dir = await setup(yaml);
123
+ const result = await validateCatalog(dir);
124
+ const check = findCatalogCheck(result.checks);
125
+ expect(check.status).toBe('pass');
126
+ });
127
+ it('should accept valid databases array with redis', async () => {
128
+ const yaml = catalogWithSpec(` databases:
129
+ - type: redis
130
+ name: cache`);
131
+ const dir = await setup(yaml);
132
+ const result = await validateCatalog(dir);
133
+ const check = findCatalogCheck(result.checks);
134
+ expect(check.status).toBe('pass');
135
+ });
136
+ it('should accept valid databases array with neo4j', async () => {
137
+ const yaml = catalogWithSpec(` databases:
138
+ - type: neo4j
139
+ name: graph`);
140
+ const dir = await setup(yaml);
141
+ const result = await validateCatalog(dir);
142
+ const check = findCatalogCheck(result.checks);
143
+ expect(check.status).toBe('pass');
144
+ });
145
+ it('should accept multiple databases of the same type with different names', async () => {
146
+ const yaml = catalogWithSpec(` databases:
147
+ - type: mongodb
148
+ name: primary
149
+ - type: mongodb
150
+ name: analytics`);
151
+ const dir = await setup(yaml);
152
+ const result = await validateCatalog(dir);
153
+ const check = findCatalogCheck(result.checks);
154
+ expect(check.status).toBe('pass');
155
+ });
156
+ it('should reject invalid database type (postgres)', async () => {
157
+ const yaml = catalogWithSpec(` databases:
158
+ - type: postgres`);
159
+ const dir = await setup(yaml);
160
+ const result = await validateCatalog(dir);
161
+ const check = findCatalogCheck(result.checks);
162
+ expect(check.status).toBe('fail');
163
+ });
164
+ it('should reject database missing type field', async () => {
165
+ const yaml = catalogWithSpec(` databases:
166
+ - name: primary`);
167
+ const dir = await setup(yaml);
168
+ const result = await validateCatalog(dir);
169
+ const check = findCatalogCheck(result.checks);
170
+ expect(check.status).toBe('fail');
171
+ });
172
+ });
173
+ // ── internalDependencies ──
174
+ describe('internalDependencies field', () => {
175
+ it('should accept valid internalDependencies with service and port', async () => {
176
+ const yaml = catalogWithSpec(` internalDependencies:
177
+ - service: koko
178
+ port: 3001`);
179
+ const dir = await setup(yaml);
180
+ const result = await validateCatalog(dir);
181
+ const check = findCatalogCheck(result.checks);
182
+ expect(check.status).toBe('pass');
183
+ });
184
+ it('should reject internalDependencies missing port', async () => {
185
+ const yaml = catalogWithSpec(` internalDependencies:
186
+ - service: koko`);
187
+ const dir = await setup(yaml);
188
+ const result = await validateCatalog(dir);
189
+ const check = findCatalogCheck(result.checks);
190
+ expect(check.status).toBe('fail');
191
+ });
192
+ });
193
+ // ── externalDependencies ──
194
+ describe('externalDependencies field', () => {
195
+ it('should accept valid externalDependencies with service, scopes, and reason', async () => {
196
+ const yaml = catalogWithSpec(` externalDependencies:
197
+ - service: raterspot
198
+ scopes:
199
+ - rate:read
200
+ - rate:write
201
+ reason: Need to fetch insurance rates`);
202
+ const dir = await setup(yaml);
203
+ const result = await validateCatalog(dir);
204
+ const check = findCatalogCheck(result.checks);
205
+ expect(check.status).toBe('pass');
206
+ });
207
+ it('should reject externalDependencies missing scopes', async () => {
208
+ const yaml = catalogWithSpec(` externalDependencies:
209
+ - service: raterspot
210
+ reason: Need to fetch rates`);
211
+ const dir = await setup(yaml);
212
+ const result = await validateCatalog(dir);
213
+ const check = findCatalogCheck(result.checks);
214
+ expect(check.status).toBe('fail');
215
+ });
216
+ it('should reject externalDependencies missing reason', async () => {
217
+ const yaml = catalogWithSpec(` externalDependencies:
218
+ - service: raterspot
219
+ scopes:
220
+ - rate:read`);
221
+ const dir = await setup(yaml);
222
+ const result = await validateCatalog(dir);
223
+ const check = findCatalogCheck(result.checks);
224
+ expect(check.status).toBe('fail');
225
+ });
226
+ });
227
+ // ── plugin ──
228
+ describe('plugin field', () => {
229
+ it('should accept valid plugin manifest', async () => {
230
+ const yaml = catalogWithSpec(` plugin:
231
+ type: full-module
232
+ category: rating
233
+ pricing: subscription
234
+ gasUsage:
235
+ getRate: 5
236
+ submitRate: 10`);
237
+ const dir = await setup(yaml);
238
+ const result = await validateCatalog(dir);
239
+ const check = findCatalogCheck(result.checks);
240
+ expect(check.status).toBe('pass');
241
+ });
242
+ it('should accept plugin with api-connector type', async () => {
243
+ const yaml = catalogWithSpec(` plugin:
244
+ type: api-connector
245
+ category: data
246
+ pricing: per-use
247
+ gasUsage:
248
+ fetch: 2`);
249
+ const dir = await setup(yaml);
250
+ const result = await validateCatalog(dir);
251
+ const check = findCatalogCheck(result.checks);
252
+ expect(check.status).toBe('pass');
253
+ });
254
+ it('should accept plugin with data-feed type', async () => {
255
+ const yaml = catalogWithSpec(` plugin:
256
+ type: data-feed
257
+ category: analytics
258
+ pricing: free
259
+ gasUsage:
260
+ poll: 1`);
261
+ const dir = await setup(yaml);
262
+ const result = await validateCatalog(dir);
263
+ const check = findCatalogCheck(result.checks);
264
+ expect(check.status).toBe('pass');
265
+ });
266
+ it('should accept plugin with workflow-atom type', async () => {
267
+ const yaml = catalogWithSpec(` plugin:
268
+ type: workflow-atom
269
+ category: automation
270
+ pricing: tiered
271
+ gasUsage:
272
+ execute: 3`);
273
+ const dir = await setup(yaml);
274
+ const result = await validateCatalog(dir);
275
+ const check = findCatalogCheck(result.checks);
276
+ expect(check.status).toBe('pass');
277
+ });
278
+ it('should reject plugin with wrong type value', async () => {
279
+ const yaml = catalogWithSpec(` plugin:
280
+ type: invalid-type
281
+ category: rating
282
+ pricing: free
283
+ gasUsage:
284
+ op: 1`);
285
+ const dir = await setup(yaml);
286
+ const result = await validateCatalog(dir);
287
+ const check = findCatalogCheck(result.checks);
288
+ expect(check.status).toBe('fail');
289
+ });
290
+ it('should reject plugin with wrong pricing value', async () => {
291
+ const yaml = catalogWithSpec(` plugin:
292
+ type: full-module
293
+ category: rating
294
+ pricing: enterprise
295
+ gasUsage:
296
+ op: 1`);
297
+ const dir = await setup(yaml);
298
+ const result = await validateCatalog(dir);
299
+ const check = findCatalogCheck(result.checks);
300
+ expect(check.status).toBe('fail');
301
+ });
302
+ });
303
+ // ── auth ──
304
+ describe('auth field', () => {
305
+ it('should accept auth mode sso', async () => {
306
+ const yaml = catalogWithSpec(` auth:
307
+ mode: sso`);
308
+ const dir = await setup(yaml);
309
+ const result = await validateCatalog(dir);
310
+ const check = findCatalogCheck(result.checks);
311
+ expect(check.status).toBe('pass');
312
+ });
313
+ it('should accept auth mode service-only', async () => {
314
+ const yaml = catalogWithSpec(` auth:
315
+ mode: service-only`);
316
+ const dir = await setup(yaml);
317
+ const result = await validateCatalog(dir);
318
+ const check = findCatalogCheck(result.checks);
319
+ expect(check.status).toBe('pass');
320
+ });
321
+ it('should accept auth mode none', async () => {
322
+ const yaml = catalogWithSpec(` auth:
323
+ mode: none`);
324
+ const dir = await setup(yaml);
325
+ const result = await validateCatalog(dir);
326
+ const check = findCatalogCheck(result.checks);
327
+ expect(check.status).toBe('pass');
328
+ });
329
+ it('should treat missing auth as valid (defaults to sso at deploy time)', async () => {
330
+ const dir = await setup(BASE_CATALOG);
331
+ const result = await validateCatalog(dir);
332
+ const check = findCatalogCheck(result.checks);
333
+ expect(check.status).toBe('pass');
334
+ });
335
+ });
336
+ // ── pod-tier annotation ──
337
+ describe('pod-tier annotation', () => {
338
+ it('should accept valid pod-tier nano', async () => {
339
+ const yaml = catalogWithAnnotations(` insureco.io/pod-tier: nano`);
340
+ const dir = await setup(yaml);
341
+ const result = await validateCatalog(dir);
342
+ const check = findCatalogCheck(result.checks);
343
+ expect(check.status).toBe('pass');
344
+ });
345
+ it('should accept valid pod-tier small', async () => {
346
+ const yaml = catalogWithAnnotations(` insureco.io/pod-tier: small`);
347
+ const dir = await setup(yaml);
348
+ const result = await validateCatalog(dir);
349
+ const check = findCatalogCheck(result.checks);
350
+ expect(check.status).toBe('pass');
351
+ });
352
+ it('should accept valid pod-tier medium', async () => {
353
+ const yaml = catalogWithAnnotations(` insureco.io/pod-tier: medium`);
354
+ const dir = await setup(yaml);
355
+ const result = await validateCatalog(dir);
356
+ const check = findCatalogCheck(result.checks);
357
+ expect(check.status).toBe('pass');
358
+ });
359
+ it('should accept valid pod-tier large', async () => {
360
+ const yaml = catalogWithAnnotations(` insureco.io/pod-tier: large`);
361
+ const dir = await setup(yaml);
362
+ const result = await validateCatalog(dir);
363
+ const check = findCatalogCheck(result.checks);
364
+ expect(check.status).toBe('pass');
365
+ });
366
+ it('should accept valid pod-tier xlarge', async () => {
367
+ const yaml = catalogWithAnnotations(` insureco.io/pod-tier: xlarge`);
368
+ const dir = await setup(yaml);
369
+ const result = await validateCatalog(dir);
370
+ const check = findCatalogCheck(result.checks);
371
+ expect(check.status).toBe('pass');
372
+ });
373
+ it('should reject invalid pod-tier annotation value', async () => {
374
+ const yaml = catalogWithAnnotations(` insureco.io/pod-tier: jumbo`);
375
+ const dir = await setup(yaml);
376
+ const result = await validateCatalog(dir);
377
+ const check = findCatalogCheck(result.checks);
378
+ expect(check.status).toBe('fail');
379
+ });
380
+ it('should accept missing pod-tier (defaults to small at deploy time)', async () => {
381
+ const dir = await setup(BASE_CATALOG);
382
+ const result = await validateCatalog(dir);
383
+ const check = findCatalogCheck(result.checks);
384
+ expect(check.status).toBe('pass');
385
+ });
386
+ });
387
+ // ── combined fields ──
388
+ describe('combined new fields', () => {
389
+ it('should accept a catalog with all new fields together', async () => {
390
+ const yaml = catalogWithAnnotationsAndSpec(` insureco.io/pod-tier: medium
391
+ insureco.io/framework: express`, ` databases:
392
+ - type: mongodb
393
+ name: primary
394
+ - type: redis
395
+ name: cache
396
+ internalDependencies:
397
+ - service: koko
398
+ port: 3001
399
+ externalDependencies:
400
+ - service: raterspot
401
+ scopes:
402
+ - rate:read
403
+ reason: Fetch rates for quoting
404
+ plugin:
405
+ type: full-module
406
+ category: rating
407
+ pricing: subscription
408
+ gasUsage:
409
+ getRate: 5
410
+ submitRate: 10
411
+ auth:
412
+ mode: sso`);
413
+ const dir = await setup(yaml);
414
+ const result = await validateCatalog(dir);
415
+ const check = findCatalogCheck(result.checks);
416
+ expect(check.status).toBe('pass');
417
+ });
418
+ });
419
+ });
420
+ //# sourceMappingURL=catalog-validator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-validator.test.js","sourceRoot":"","sources":["../../../src/lib/validators/catalog-validator.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { PreflightResult, FrameworkInfo } from '../../types/index.js';
2
+ export declare function validateDockerfile(cwd?: string): Promise<PreflightResult>;
3
+ export declare function detectFramework(cwd: string): Promise<FrameworkInfo | null>;
4
+ export declare function getFrameworkFromCatalog(cwd: string): Promise<string | null>;
5
+ //# sourceMappingURL=dockerfile-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dockerfile-validator.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/dockerfile-validator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAkB,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAyE1F,wBAAsB,kBAAkB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAsE9F;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA2DhF;AA6FD,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQjF"}