@reyemtech/nimbus 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +399 -0
  3. package/dist/cjs/aws/cluster.d.ts +32 -0
  4. package/dist/cjs/aws/cluster.d.ts.map +1 -0
  5. package/dist/cjs/aws/cluster.js +214 -0
  6. package/dist/cjs/aws/cluster.js.map +1 -0
  7. package/dist/cjs/aws/dns.d.ts +22 -0
  8. package/dist/cjs/aws/dns.d.ts.map +1 -0
  9. package/dist/cjs/aws/dns.js +95 -0
  10. package/dist/cjs/aws/dns.js.map +1 -0
  11. package/dist/cjs/aws/index.d.ts +10 -0
  12. package/dist/cjs/aws/index.d.ts.map +1 -0
  13. package/dist/cjs/aws/index.js +17 -0
  14. package/dist/cjs/aws/index.js.map +1 -0
  15. package/dist/cjs/aws/network.d.ts +27 -0
  16. package/dist/cjs/aws/network.d.ts.map +1 -0
  17. package/dist/cjs/aws/network.js +262 -0
  18. package/dist/cjs/aws/network.js.map +1 -0
  19. package/dist/cjs/aws/secrets.d.ts +26 -0
  20. package/dist/cjs/aws/secrets.d.ts.map +1 -0
  21. package/dist/cjs/aws/secrets.js +127 -0
  22. package/dist/cjs/aws/secrets.js.map +1 -0
  23. package/dist/cjs/azure/cluster.d.ts +44 -0
  24. package/dist/cjs/azure/cluster.d.ts.map +1 -0
  25. package/dist/cjs/azure/cluster.js +143 -0
  26. package/dist/cjs/azure/cluster.js.map +1 -0
  27. package/dist/cjs/azure/dns.d.ts +28 -0
  28. package/dist/cjs/azure/dns.d.ts.map +1 -0
  29. package/dist/cjs/azure/dns.js +169 -0
  30. package/dist/cjs/azure/dns.js.map +1 -0
  31. package/dist/cjs/azure/index.d.ts +10 -0
  32. package/dist/cjs/azure/index.d.ts.map +1 -0
  33. package/dist/cjs/azure/index.js +17 -0
  34. package/dist/cjs/azure/index.js.map +1 -0
  35. package/dist/cjs/azure/network.d.ts +28 -0
  36. package/dist/cjs/azure/network.d.ts.map +1 -0
  37. package/dist/cjs/azure/network.js +176 -0
  38. package/dist/cjs/azure/network.js.map +1 -0
  39. package/dist/cjs/azure/secrets.d.ts +37 -0
  40. package/dist/cjs/azure/secrets.d.ts.map +1 -0
  41. package/dist/cjs/azure/secrets.js +150 -0
  42. package/dist/cjs/azure/secrets.js.map +1 -0
  43. package/dist/cjs/cache/index.d.ts +7 -0
  44. package/dist/cjs/cache/index.d.ts.map +1 -0
  45. package/dist/cjs/cache/index.js +8 -0
  46. package/dist/cjs/cache/index.js.map +1 -0
  47. package/dist/cjs/cache/interfaces.d.ts +60 -0
  48. package/dist/cjs/cache/interfaces.d.ts.map +1 -0
  49. package/dist/cjs/cache/interfaces.js +11 -0
  50. package/dist/cjs/cache/interfaces.js.map +1 -0
  51. package/dist/cjs/cluster/index.d.ts +7 -0
  52. package/dist/cjs/cluster/index.d.ts.map +1 -0
  53. package/dist/cjs/cluster/index.js +8 -0
  54. package/dist/cjs/cluster/index.js.map +1 -0
  55. package/dist/cjs/cluster/interfaces.d.ts +120 -0
  56. package/dist/cjs/cluster/interfaces.d.ts.map +1 -0
  57. package/dist/cjs/cluster/interfaces.js +12 -0
  58. package/dist/cjs/cluster/interfaces.js.map +1 -0
  59. package/dist/cjs/database/index.d.ts +7 -0
  60. package/dist/cjs/database/index.d.ts.map +1 -0
  61. package/dist/cjs/database/index.js +8 -0
  62. package/dist/cjs/database/index.js.map +1 -0
  63. package/dist/cjs/database/interfaces.d.ts +93 -0
  64. package/dist/cjs/database/interfaces.d.ts.map +1 -0
  65. package/dist/cjs/database/interfaces.js +12 -0
  66. package/dist/cjs/database/interfaces.js.map +1 -0
  67. package/dist/cjs/dns/index.d.ts +7 -0
  68. package/dist/cjs/dns/index.d.ts.map +1 -0
  69. package/dist/cjs/dns/index.js +8 -0
  70. package/dist/cjs/dns/index.js.map +1 -0
  71. package/dist/cjs/dns/interfaces.d.ts +55 -0
  72. package/dist/cjs/dns/interfaces.d.ts.map +1 -0
  73. package/dist/cjs/dns/interfaces.js +11 -0
  74. package/dist/cjs/dns/interfaces.js.map +1 -0
  75. package/dist/cjs/factories/cluster.d.ts +45 -0
  76. package/dist/cjs/factories/cluster.d.ts.map +1 -0
  77. package/dist/cjs/factories/cluster.js +90 -0
  78. package/dist/cjs/factories/cluster.js.map +1 -0
  79. package/dist/cjs/factories/dns.d.ts +30 -0
  80. package/dist/cjs/factories/dns.d.ts.map +1 -0
  81. package/dist/cjs/factories/dns.js +56 -0
  82. package/dist/cjs/factories/dns.js.map +1 -0
  83. package/dist/cjs/factories/index.d.ts +15 -0
  84. package/dist/cjs/factories/index.d.ts.map +1 -0
  85. package/dist/cjs/factories/index.js +23 -0
  86. package/dist/cjs/factories/index.js.map +1 -0
  87. package/dist/cjs/factories/network.d.ts +40 -0
  88. package/dist/cjs/factories/network.d.ts.map +1 -0
  89. package/dist/cjs/factories/network.js +85 -0
  90. package/dist/cjs/factories/network.js.map +1 -0
  91. package/dist/cjs/factories/secrets.d.ts +38 -0
  92. package/dist/cjs/factories/secrets.d.ts.map +1 -0
  93. package/dist/cjs/factories/secrets.js +67 -0
  94. package/dist/cjs/factories/secrets.js.map +1 -0
  95. package/dist/cjs/factories/types.d.ts +75 -0
  96. package/dist/cjs/factories/types.d.ts.map +1 -0
  97. package/dist/cjs/factories/types.js +28 -0
  98. package/dist/cjs/factories/types.js.map +1 -0
  99. package/dist/cjs/global-lb/glb.d.ts +29 -0
  100. package/dist/cjs/global-lb/glb.d.ts.map +1 -0
  101. package/dist/cjs/global-lb/glb.js +220 -0
  102. package/dist/cjs/global-lb/glb.js.map +1 -0
  103. package/dist/cjs/global-lb/index.d.ts +8 -0
  104. package/dist/cjs/global-lb/index.d.ts.map +1 -0
  105. package/dist/cjs/global-lb/index.js +11 -0
  106. package/dist/cjs/global-lb/index.js.map +1 -0
  107. package/dist/cjs/global-lb/interfaces.d.ts +62 -0
  108. package/dist/cjs/global-lb/interfaces.d.ts.map +1 -0
  109. package/dist/cjs/global-lb/interfaces.js +11 -0
  110. package/dist/cjs/global-lb/interfaces.js.map +1 -0
  111. package/dist/cjs/index.d.ts +28 -0
  112. package/dist/cjs/index.d.ts.map +1 -0
  113. package/dist/cjs/index.js +72 -0
  114. package/dist/cjs/index.js.map +1 -0
  115. package/dist/cjs/network/cidr.d.ts +92 -0
  116. package/dist/cjs/network/cidr.d.ts.map +1 -0
  117. package/dist/cjs/network/cidr.js +189 -0
  118. package/dist/cjs/network/cidr.js.map +1 -0
  119. package/dist/cjs/network/index.d.ts +8 -0
  120. package/dist/cjs/network/index.d.ts.map +1 -0
  121. package/dist/cjs/network/index.js +17 -0
  122. package/dist/cjs/network/index.js.map +1 -0
  123. package/dist/cjs/network/interfaces.d.ts +60 -0
  124. package/dist/cjs/network/interfaces.d.ts.map +1 -0
  125. package/dist/cjs/network/interfaces.js +12 -0
  126. package/dist/cjs/network/interfaces.js.map +1 -0
  127. package/dist/cjs/platform/index.d.ts +8 -0
  128. package/dist/cjs/platform/index.d.ts.map +1 -0
  129. package/dist/cjs/platform/index.js +11 -0
  130. package/dist/cjs/platform/index.js.map +1 -0
  131. package/dist/cjs/platform/interfaces.d.ts +86 -0
  132. package/dist/cjs/platform/interfaces.d.ts.map +1 -0
  133. package/dist/cjs/platform/interfaces.js +12 -0
  134. package/dist/cjs/platform/interfaces.js.map +1 -0
  135. package/dist/cjs/platform/stack.d.ts +32 -0
  136. package/dist/cjs/platform/stack.d.ts.map +1 -0
  137. package/dist/cjs/platform/stack.js +258 -0
  138. package/dist/cjs/platform/stack.js.map +1 -0
  139. package/dist/cjs/queue/index.d.ts +7 -0
  140. package/dist/cjs/queue/index.d.ts.map +1 -0
  141. package/dist/cjs/queue/index.js +8 -0
  142. package/dist/cjs/queue/index.js.map +1 -0
  143. package/dist/cjs/queue/interfaces.d.ts +46 -0
  144. package/dist/cjs/queue/interfaces.d.ts.map +1 -0
  145. package/dist/cjs/queue/interfaces.js +11 -0
  146. package/dist/cjs/queue/interfaces.js.map +1 -0
  147. package/dist/cjs/secrets/index.d.ts +7 -0
  148. package/dist/cjs/secrets/index.d.ts.map +1 -0
  149. package/dist/cjs/secrets/index.js +8 -0
  150. package/dist/cjs/secrets/index.js.map +1 -0
  151. package/dist/cjs/secrets/interfaces.d.ts +73 -0
  152. package/dist/cjs/secrets/interfaces.d.ts.map +1 -0
  153. package/dist/cjs/secrets/interfaces.js +11 -0
  154. package/dist/cjs/secrets/interfaces.js.map +1 -0
  155. package/dist/cjs/storage/index.d.ts +7 -0
  156. package/dist/cjs/storage/index.d.ts.map +1 -0
  157. package/dist/cjs/storage/index.js +8 -0
  158. package/dist/cjs/storage/index.js.map +1 -0
  159. package/dist/cjs/storage/interfaces.d.ts +63 -0
  160. package/dist/cjs/storage/interfaces.d.ts.map +1 -0
  161. package/dist/cjs/storage/interfaces.js +11 -0
  162. package/dist/cjs/storage/interfaces.js.map +1 -0
  163. package/dist/cjs/types/cloud-target.d.ts +89 -0
  164. package/dist/cjs/types/cloud-target.d.ts.map +1 -0
  165. package/dist/cjs/types/cloud-target.js +73 -0
  166. package/dist/cjs/types/cloud-target.js.map +1 -0
  167. package/dist/cjs/types/errors.d.ts +96 -0
  168. package/dist/cjs/types/errors.d.ts.map +1 -0
  169. package/dist/cjs/types/errors.js +127 -0
  170. package/dist/cjs/types/errors.js.map +1 -0
  171. package/dist/cjs/types/index.d.ts +10 -0
  172. package/dist/cjs/types/index.d.ts.map +1 -0
  173. package/dist/cjs/types/index.js +33 -0
  174. package/dist/cjs/types/index.js.map +1 -0
  175. package/dist/cjs/types/tags.d.ts +53 -0
  176. package/dist/cjs/types/tags.d.ts.map +1 -0
  177. package/dist/cjs/types/tags.js +110 -0
  178. package/dist/cjs/types/tags.js.map +1 -0
  179. package/dist/cjs/types/validation.d.ts +63 -0
  180. package/dist/cjs/types/validation.d.ts.map +1 -0
  181. package/dist/cjs/types/validation.js +158 -0
  182. package/dist/cjs/types/validation.js.map +1 -0
  183. package/dist/esm/aws/cluster.d.ts +32 -0
  184. package/dist/esm/aws/cluster.d.ts.map +1 -0
  185. package/dist/esm/aws/cluster.js +214 -0
  186. package/dist/esm/aws/cluster.js.map +1 -0
  187. package/dist/esm/aws/dns.d.ts +22 -0
  188. package/dist/esm/aws/dns.d.ts.map +1 -0
  189. package/dist/esm/aws/dns.js +95 -0
  190. package/dist/esm/aws/dns.js.map +1 -0
  191. package/dist/esm/aws/index.d.ts +10 -0
  192. package/dist/esm/aws/index.d.ts.map +1 -0
  193. package/dist/esm/aws/index.js +17 -0
  194. package/dist/esm/aws/index.js.map +1 -0
  195. package/dist/esm/aws/network.d.ts +27 -0
  196. package/dist/esm/aws/network.d.ts.map +1 -0
  197. package/dist/esm/aws/network.js +262 -0
  198. package/dist/esm/aws/network.js.map +1 -0
  199. package/dist/esm/aws/secrets.d.ts +26 -0
  200. package/dist/esm/aws/secrets.d.ts.map +1 -0
  201. package/dist/esm/aws/secrets.js +127 -0
  202. package/dist/esm/aws/secrets.js.map +1 -0
  203. package/dist/esm/azure/cluster.d.ts +44 -0
  204. package/dist/esm/azure/cluster.d.ts.map +1 -0
  205. package/dist/esm/azure/cluster.js +143 -0
  206. package/dist/esm/azure/cluster.js.map +1 -0
  207. package/dist/esm/azure/dns.d.ts +28 -0
  208. package/dist/esm/azure/dns.d.ts.map +1 -0
  209. package/dist/esm/azure/dns.js +169 -0
  210. package/dist/esm/azure/dns.js.map +1 -0
  211. package/dist/esm/azure/index.d.ts +10 -0
  212. package/dist/esm/azure/index.d.ts.map +1 -0
  213. package/dist/esm/azure/index.js +17 -0
  214. package/dist/esm/azure/index.js.map +1 -0
  215. package/dist/esm/azure/network.d.ts +28 -0
  216. package/dist/esm/azure/network.d.ts.map +1 -0
  217. package/dist/esm/azure/network.js +176 -0
  218. package/dist/esm/azure/network.js.map +1 -0
  219. package/dist/esm/azure/secrets.d.ts +37 -0
  220. package/dist/esm/azure/secrets.d.ts.map +1 -0
  221. package/dist/esm/azure/secrets.js +150 -0
  222. package/dist/esm/azure/secrets.js.map +1 -0
  223. package/dist/esm/cache/index.d.ts +7 -0
  224. package/dist/esm/cache/index.d.ts.map +1 -0
  225. package/dist/esm/cache/index.js +8 -0
  226. package/dist/esm/cache/index.js.map +1 -0
  227. package/dist/esm/cache/interfaces.d.ts +60 -0
  228. package/dist/esm/cache/interfaces.d.ts.map +1 -0
  229. package/dist/esm/cache/interfaces.js +11 -0
  230. package/dist/esm/cache/interfaces.js.map +1 -0
  231. package/dist/esm/cluster/index.d.ts +7 -0
  232. package/dist/esm/cluster/index.d.ts.map +1 -0
  233. package/dist/esm/cluster/index.js +8 -0
  234. package/dist/esm/cluster/index.js.map +1 -0
  235. package/dist/esm/cluster/interfaces.d.ts +120 -0
  236. package/dist/esm/cluster/interfaces.d.ts.map +1 -0
  237. package/dist/esm/cluster/interfaces.js +12 -0
  238. package/dist/esm/cluster/interfaces.js.map +1 -0
  239. package/dist/esm/database/index.d.ts +7 -0
  240. package/dist/esm/database/index.d.ts.map +1 -0
  241. package/dist/esm/database/index.js +8 -0
  242. package/dist/esm/database/index.js.map +1 -0
  243. package/dist/esm/database/interfaces.d.ts +93 -0
  244. package/dist/esm/database/interfaces.d.ts.map +1 -0
  245. package/dist/esm/database/interfaces.js +12 -0
  246. package/dist/esm/database/interfaces.js.map +1 -0
  247. package/dist/esm/dns/index.d.ts +7 -0
  248. package/dist/esm/dns/index.d.ts.map +1 -0
  249. package/dist/esm/dns/index.js +8 -0
  250. package/dist/esm/dns/index.js.map +1 -0
  251. package/dist/esm/dns/interfaces.d.ts +55 -0
  252. package/dist/esm/dns/interfaces.d.ts.map +1 -0
  253. package/dist/esm/dns/interfaces.js +11 -0
  254. package/dist/esm/dns/interfaces.js.map +1 -0
  255. package/dist/esm/factories/cluster.d.ts +45 -0
  256. package/dist/esm/factories/cluster.d.ts.map +1 -0
  257. package/dist/esm/factories/cluster.js +90 -0
  258. package/dist/esm/factories/cluster.js.map +1 -0
  259. package/dist/esm/factories/dns.d.ts +30 -0
  260. package/dist/esm/factories/dns.d.ts.map +1 -0
  261. package/dist/esm/factories/dns.js +56 -0
  262. package/dist/esm/factories/dns.js.map +1 -0
  263. package/dist/esm/factories/index.d.ts +15 -0
  264. package/dist/esm/factories/index.d.ts.map +1 -0
  265. package/dist/esm/factories/index.js +23 -0
  266. package/dist/esm/factories/index.js.map +1 -0
  267. package/dist/esm/factories/network.d.ts +40 -0
  268. package/dist/esm/factories/network.d.ts.map +1 -0
  269. package/dist/esm/factories/network.js +85 -0
  270. package/dist/esm/factories/network.js.map +1 -0
  271. package/dist/esm/factories/secrets.d.ts +38 -0
  272. package/dist/esm/factories/secrets.d.ts.map +1 -0
  273. package/dist/esm/factories/secrets.js +67 -0
  274. package/dist/esm/factories/secrets.js.map +1 -0
  275. package/dist/esm/factories/types.d.ts +75 -0
  276. package/dist/esm/factories/types.d.ts.map +1 -0
  277. package/dist/esm/factories/types.js +28 -0
  278. package/dist/esm/factories/types.js.map +1 -0
  279. package/dist/esm/global-lb/glb.d.ts +29 -0
  280. package/dist/esm/global-lb/glb.d.ts.map +1 -0
  281. package/dist/esm/global-lb/glb.js +220 -0
  282. package/dist/esm/global-lb/glb.js.map +1 -0
  283. package/dist/esm/global-lb/index.d.ts +8 -0
  284. package/dist/esm/global-lb/index.d.ts.map +1 -0
  285. package/dist/esm/global-lb/index.js +11 -0
  286. package/dist/esm/global-lb/index.js.map +1 -0
  287. package/dist/esm/global-lb/interfaces.d.ts +62 -0
  288. package/dist/esm/global-lb/interfaces.d.ts.map +1 -0
  289. package/dist/esm/global-lb/interfaces.js +11 -0
  290. package/dist/esm/global-lb/interfaces.js.map +1 -0
  291. package/dist/esm/index.d.ts +28 -0
  292. package/dist/esm/index.d.ts.map +1 -0
  293. package/dist/esm/index.js +72 -0
  294. package/dist/esm/index.js.map +1 -0
  295. package/dist/esm/network/cidr.d.ts +92 -0
  296. package/dist/esm/network/cidr.d.ts.map +1 -0
  297. package/dist/esm/network/cidr.js +189 -0
  298. package/dist/esm/network/cidr.js.map +1 -0
  299. package/dist/esm/network/index.d.ts +8 -0
  300. package/dist/esm/network/index.d.ts.map +1 -0
  301. package/dist/esm/network/index.js +17 -0
  302. package/dist/esm/network/index.js.map +1 -0
  303. package/dist/esm/network/interfaces.d.ts +60 -0
  304. package/dist/esm/network/interfaces.d.ts.map +1 -0
  305. package/dist/esm/network/interfaces.js +12 -0
  306. package/dist/esm/network/interfaces.js.map +1 -0
  307. package/dist/esm/platform/index.d.ts +8 -0
  308. package/dist/esm/platform/index.d.ts.map +1 -0
  309. package/dist/esm/platform/index.js +11 -0
  310. package/dist/esm/platform/index.js.map +1 -0
  311. package/dist/esm/platform/interfaces.d.ts +86 -0
  312. package/dist/esm/platform/interfaces.d.ts.map +1 -0
  313. package/dist/esm/platform/interfaces.js +12 -0
  314. package/dist/esm/platform/interfaces.js.map +1 -0
  315. package/dist/esm/platform/stack.d.ts +32 -0
  316. package/dist/esm/platform/stack.d.ts.map +1 -0
  317. package/dist/esm/platform/stack.js +258 -0
  318. package/dist/esm/platform/stack.js.map +1 -0
  319. package/dist/esm/queue/index.d.ts +7 -0
  320. package/dist/esm/queue/index.d.ts.map +1 -0
  321. package/dist/esm/queue/index.js +8 -0
  322. package/dist/esm/queue/index.js.map +1 -0
  323. package/dist/esm/queue/interfaces.d.ts +46 -0
  324. package/dist/esm/queue/interfaces.d.ts.map +1 -0
  325. package/dist/esm/queue/interfaces.js +11 -0
  326. package/dist/esm/queue/interfaces.js.map +1 -0
  327. package/dist/esm/secrets/index.d.ts +7 -0
  328. package/dist/esm/secrets/index.d.ts.map +1 -0
  329. package/dist/esm/secrets/index.js +8 -0
  330. package/dist/esm/secrets/index.js.map +1 -0
  331. package/dist/esm/secrets/interfaces.d.ts +73 -0
  332. package/dist/esm/secrets/interfaces.d.ts.map +1 -0
  333. package/dist/esm/secrets/interfaces.js +11 -0
  334. package/dist/esm/secrets/interfaces.js.map +1 -0
  335. package/dist/esm/storage/index.d.ts +7 -0
  336. package/dist/esm/storage/index.d.ts.map +1 -0
  337. package/dist/esm/storage/index.js +8 -0
  338. package/dist/esm/storage/index.js.map +1 -0
  339. package/dist/esm/storage/interfaces.d.ts +63 -0
  340. package/dist/esm/storage/interfaces.d.ts.map +1 -0
  341. package/dist/esm/storage/interfaces.js +11 -0
  342. package/dist/esm/storage/interfaces.js.map +1 -0
  343. package/dist/esm/types/cloud-target.d.ts +89 -0
  344. package/dist/esm/types/cloud-target.d.ts.map +1 -0
  345. package/dist/esm/types/cloud-target.js +73 -0
  346. package/dist/esm/types/cloud-target.js.map +1 -0
  347. package/dist/esm/types/errors.d.ts +96 -0
  348. package/dist/esm/types/errors.d.ts.map +1 -0
  349. package/dist/esm/types/errors.js +127 -0
  350. package/dist/esm/types/errors.js.map +1 -0
  351. package/dist/esm/types/index.d.ts +10 -0
  352. package/dist/esm/types/index.d.ts.map +1 -0
  353. package/dist/esm/types/index.js +33 -0
  354. package/dist/esm/types/index.js.map +1 -0
  355. package/dist/esm/types/tags.d.ts +53 -0
  356. package/dist/esm/types/tags.d.ts.map +1 -0
  357. package/dist/esm/types/tags.js +110 -0
  358. package/dist/esm/types/tags.js.map +1 -0
  359. package/dist/esm/types/validation.d.ts +63 -0
  360. package/dist/esm/types/validation.d.ts.map +1 -0
  361. package/dist/esm/types/validation.js +158 -0
  362. package/dist/esm/types/validation.js.map +1 -0
  363. package/package.json +88 -0
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ /**
3
+ * Cluster factory — creates EKS/AKS via a single cloud-agnostic function.
4
+ *
5
+ * Dispatches to AWS or Azure based on the `cloud` parameter.
6
+ * For multi-cloud arrays, matches networks by provider and returns an array.
7
+ *
8
+ * @module factories/cluster
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.createCluster = createCluster;
12
+ const types_1 = require("../types");
13
+ const aws_1 = require("../aws");
14
+ const azure_1 = require("../azure");
15
+ const types_2 = require("./types");
16
+ /**
17
+ * Create a Kubernetes cluster (EKS/AKS) for one or more cloud providers.
18
+ *
19
+ * @param name - Resource name prefix
20
+ * @param config - Cluster configuration with cloud target and optional providerOptions
21
+ * @param networks - Network(s) to deploy into. For multi-cloud, pass an array matched by provider.
22
+ * @returns Single ICluster for a single cloud target, array for multi-cloud
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * // Single cloud
27
+ * const cluster = createCluster("prod", {
28
+ * cloud: "aws",
29
+ * nodePools: [{ name: "system", instanceType: "t4g.small", minNodes: 2, maxNodes: 3 }],
30
+ * providerOptions: { aws: { autoMode: true } },
31
+ * }, network);
32
+ *
33
+ * // Multi-cloud
34
+ * const clusters = createCluster("prod", {
35
+ * cloud: ["aws", "azure"],
36
+ * nodePools: [...],
37
+ * providerOptions: {
38
+ * aws: { autoMode: true },
39
+ * azure: { resourceGroupName: "my-rg" },
40
+ * },
41
+ * }, networks);
42
+ * ```
43
+ */
44
+ function createCluster(name, config, networks) {
45
+ if (!(0, types_2.isMultiCloud)(config.cloud)) {
46
+ const target = (0, types_1.resolveCloudTarget)(config.cloud);
47
+ const network = Array.isArray(networks) ? findNetworkForProvider(networks, target) : networks;
48
+ return dispatchCluster(name, config, target, network, config.providerOptions);
49
+ }
50
+ const targets = (0, types_1.resolveCloudTarget)(config.cloud);
51
+ const networkArray = Array.isArray(networks) ? networks : [networks];
52
+ return targets.map((target) => {
53
+ const network = findNetworkForProvider(networkArray, target);
54
+ return dispatchCluster(`${name}-${target.provider}`, config, target, network, config.providerOptions);
55
+ });
56
+ }
57
+ function dispatchCluster(name, config, target, network, opts) {
58
+ const targetConfig = { ...config, cloud: { provider: target.provider, region: target.region } };
59
+ switch (target.provider) {
60
+ case "aws":
61
+ return (0, aws_1.createEksCluster)(name, targetConfig, network, opts?.aws);
62
+ case "azure": {
63
+ const azureOpts = opts?.azure;
64
+ if (!azureOpts) {
65
+ throw new types_1.UnsupportedFeatureError("Azure requires providerOptions.azure.resourceGroupName", "azure");
66
+ }
67
+ return (0, azure_1.createAksCluster)(name, targetConfig, network, {
68
+ resourceGroupName: azureOpts.resourceGroupName,
69
+ azureCni: azureOpts.azureCni,
70
+ virtualNodes: azureOpts.virtualNodes,
71
+ aadTenantId: azureOpts.aadTenantId,
72
+ dnsPrefix: azureOpts.dnsPrefix,
73
+ });
74
+ }
75
+ default:
76
+ throw new types_1.UnsupportedFeatureError("cluster", target.provider);
77
+ }
78
+ }
79
+ /**
80
+ * Find a network matching the target provider from an array of networks.
81
+ */
82
+ function findNetworkForProvider(networks, target) {
83
+ const match = networks.find((n) => n.cloud.provider === target.provider);
84
+ if (!match) {
85
+ throw new types_1.UnsupportedFeatureError(`No network found for provider "${target.provider}". ` +
86
+ `Available: ${networks.map((n) => n.cloud.provider).join(", ")}`, target.provider);
87
+ }
88
+ return match;
89
+ }
90
+ //# sourceMappingURL=cluster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../../src/factories/cluster.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * DNS factory — creates Route 53/Azure DNS via a single cloud-agnostic function.
3
+ *
4
+ * Dispatches to AWS or Azure based on the `cloud` parameter.
5
+ *
6
+ * @module factories/dns
7
+ */
8
+ import type { IDns, IDnsConfig } from "../dns";
9
+ import type { IProviderOptions } from "./types";
10
+ /** Config for the createDns factory. */
11
+ export type ICreateDnsConfig = IDnsConfig & {
12
+ readonly providerOptions?: IProviderOptions;
13
+ };
14
+ /**
15
+ * Create a DNS zone for one or more cloud providers.
16
+ *
17
+ * @param name - Resource name prefix
18
+ * @param config - DNS configuration with cloud target and optional providerOptions
19
+ * @returns Single IDns for a single cloud target, array for multi-cloud
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const dns = createDns("prod", {
24
+ * cloud: "aws",
25
+ * zoneName: "example.com",
26
+ * });
27
+ * ```
28
+ */
29
+ export declare function createDns(name: string, config: ICreateDnsConfig): IDns | IDns[];
30
+ //# sourceMappingURL=dns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns.d.ts","sourceRoot":"","sources":["../../../src/factories/dns.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAK/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,wCAAwC;AACxC,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC;CAC7C,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,EAAE,CAU/E"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ /**
3
+ * DNS factory — creates Route 53/Azure DNS via a single cloud-agnostic function.
4
+ *
5
+ * Dispatches to AWS or Azure based on the `cloud` parameter.
6
+ *
7
+ * @module factories/dns
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.createDns = createDns;
11
+ const types_1 = require("../types");
12
+ const aws_1 = require("../aws");
13
+ const azure_1 = require("../azure");
14
+ const types_2 = require("./types");
15
+ /**
16
+ * Create a DNS zone for one or more cloud providers.
17
+ *
18
+ * @param name - Resource name prefix
19
+ * @param config - DNS configuration with cloud target and optional providerOptions
20
+ * @returns Single IDns for a single cloud target, array for multi-cloud
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const dns = createDns("prod", {
25
+ * cloud: "aws",
26
+ * zoneName: "example.com",
27
+ * });
28
+ * ```
29
+ */
30
+ function createDns(name, config) {
31
+ if (!(0, types_2.isMultiCloud)(config.cloud)) {
32
+ const target = (0, types_1.resolveCloudTarget)(config.cloud);
33
+ return dispatchDns(name, config, target, config.providerOptions);
34
+ }
35
+ const targets = (0, types_1.resolveCloudTarget)(config.cloud);
36
+ return targets.map((target) => dispatchDns(`${name}-${target.provider}`, config, target, config.providerOptions));
37
+ }
38
+ function dispatchDns(name, config, target, opts) {
39
+ const targetConfig = { ...config, cloud: { provider: target.provider, region: target.region } };
40
+ switch (target.provider) {
41
+ case "aws":
42
+ return (0, aws_1.createRoute53Dns)(name, targetConfig);
43
+ case "azure": {
44
+ const azureOpts = opts?.azure;
45
+ if (!azureOpts) {
46
+ throw new types_1.UnsupportedFeatureError("Azure requires providerOptions.azure.resourceGroupName", "azure");
47
+ }
48
+ return (0, azure_1.createAzureDns)(name, targetConfig, {
49
+ resourceGroupName: azureOpts.resourceGroupName,
50
+ });
51
+ }
52
+ default:
53
+ throw new types_1.UnsupportedFeatureError("dns", target.provider);
54
+ }
55
+ }
56
+ //# sourceMappingURL=dns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns.js","sourceRoot":"","sources":["../../../src/factories/dns.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA8BH,8BAUC;AArCD,oCAAuE;AAEvE,gCAA0C;AAC1C,oCAA0C;AAE1C,mCAAuC;AAOvC;;;;;;;;;;;;;;GAcG;AACH,SAAgB,SAAS,CAAC,IAAY,EAAE,MAAwB;IAC9D,IAAI,CAAC,IAAA,oBAAY,EAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5B,WAAW,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAClF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,IAAY,EACZ,MAAkB,EAClB,MAA2B,EAC3B,IAAuB;IAEvB,MAAM,YAAY,GAAG,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;IAEhG,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,KAAK;YACR,OAAO,IAAA,sBAAgB,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,SAAS,GAAG,IAAI,EAAE,KAAK,CAAC;YAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,+BAAuB,CAC/B,wDAAwD,EACxD,OAAO,CACR,CAAC;YACJ,CAAC;YACD,OAAO,IAAA,sBAAc,EAAC,IAAI,EAAE,YAAY,EAAE;gBACxC,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;aAC/C,CAAC,CAAC;QACL,CAAC;QACD;YACE,MAAM,IAAI,+BAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Factory functions — the primary cloud-agnostic API.
3
+ *
4
+ * Use these instead of cloud-specific functions (createAwsNetwork, createEksCluster, etc.)
5
+ * for truly cloud-agnostic infrastructure code.
6
+ *
7
+ * @module factories
8
+ */
9
+ export type { IProviderOptions, IAwsProviderOptions, IAzureProviderOptions } from "./types";
10
+ export { extractProvider, isMultiCloud } from "./types";
11
+ export { createNetwork, type ICreateNetworkConfig } from "./network";
12
+ export { createCluster, type ICreateClusterConfig } from "./cluster";
13
+ export { createDns, type ICreateDnsConfig } from "./dns";
14
+ export { createSecrets, type ICreateSecretsConfig } from "./secrets";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * Factory functions — the primary cloud-agnostic API.
4
+ *
5
+ * Use these instead of cloud-specific functions (createAwsNetwork, createEksCluster, etc.)
6
+ * for truly cloud-agnostic infrastructure code.
7
+ *
8
+ * @module factories
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.createSecrets = exports.createDns = exports.createCluster = exports.createNetwork = exports.isMultiCloud = exports.extractProvider = void 0;
12
+ var types_1 = require("./types");
13
+ Object.defineProperty(exports, "extractProvider", { enumerable: true, get: function () { return types_1.extractProvider; } });
14
+ Object.defineProperty(exports, "isMultiCloud", { enumerable: true, get: function () { return types_1.isMultiCloud; } });
15
+ var network_1 = require("./network");
16
+ Object.defineProperty(exports, "createNetwork", { enumerable: true, get: function () { return network_1.createNetwork; } });
17
+ var cluster_1 = require("./cluster");
18
+ Object.defineProperty(exports, "createCluster", { enumerable: true, get: function () { return cluster_1.createCluster; } });
19
+ var dns_1 = require("./dns");
20
+ Object.defineProperty(exports, "createDns", { enumerable: true, get: function () { return dns_1.createDns; } });
21
+ var secrets_1 = require("./secrets");
22
+ Object.defineProperty(exports, "createSecrets", { enumerable: true, get: function () { return secrets_1.createSecrets; } });
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAGH,iCAAwD;AAA/C,wGAAA,eAAe,OAAA;AAAE,qGAAA,YAAY,OAAA;AAEtC,qCAAqE;AAA5D,wGAAA,aAAa,OAAA;AACtB,qCAAqE;AAA5D,wGAAA,aAAa,OAAA;AACtB,6BAAyD;AAAhD,gGAAA,SAAS,OAAA;AAClB,qCAAqE;AAA5D,wGAAA,aAAa,OAAA"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Network factory — creates VPC/VNet via a single cloud-agnostic function.
3
+ *
4
+ * Dispatches to AWS or Azure based on the `cloud` parameter.
5
+ * For multi-cloud arrays, auto-offsets CIDRs and returns an array.
6
+ *
7
+ * @module factories/network
8
+ */
9
+ import type { INetwork, INetworkConfig } from "../network";
10
+ import type { IProviderOptions } from "./types";
11
+ /** Config for the createNetwork factory. */
12
+ export type ICreateNetworkConfig = INetworkConfig & {
13
+ readonly providerOptions?: IProviderOptions;
14
+ };
15
+ /**
16
+ * Create a network (VPC/VNet) for one or more cloud providers.
17
+ *
18
+ * @param name - Resource name prefix
19
+ * @param config - Network configuration with cloud target and optional providerOptions
20
+ * @returns Single INetwork for a single cloud target, array for multi-cloud
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * // Single cloud
25
+ * const network = createNetwork("prod", {
26
+ * cloud: "aws",
27
+ * cidr: "10.0.0.0/16",
28
+ * natStrategy: "fck-nat",
29
+ * });
30
+ *
31
+ * // Multi-cloud
32
+ * const networks = createNetwork("prod", {
33
+ * cloud: ["aws", "azure"],
34
+ * cidr: "10.0.0.0/16",
35
+ * providerOptions: { azure: { resourceGroupName: "my-rg" } },
36
+ * });
37
+ * ```
38
+ */
39
+ export declare function createNetwork(name: string, config: ICreateNetworkConfig): INetwork | INetwork[];
40
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../src/factories/network.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,4CAA4C;AAC5C,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC;CAC7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAkB/F"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ /**
3
+ * Network factory — creates VPC/VNet via a single cloud-agnostic function.
4
+ *
5
+ * Dispatches to AWS or Azure based on the `cloud` parameter.
6
+ * For multi-cloud arrays, auto-offsets CIDRs and returns an array.
7
+ *
8
+ * @module factories/network
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.createNetwork = createNetwork;
12
+ const network_1 = require("../network");
13
+ const types_1 = require("../types");
14
+ const aws_1 = require("../aws");
15
+ const azure_1 = require("../azure");
16
+ const types_2 = require("./types");
17
+ /**
18
+ * Create a network (VPC/VNet) for one or more cloud providers.
19
+ *
20
+ * @param name - Resource name prefix
21
+ * @param config - Network configuration with cloud target and optional providerOptions
22
+ * @returns Single INetwork for a single cloud target, array for multi-cloud
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * // Single cloud
27
+ * const network = createNetwork("prod", {
28
+ * cloud: "aws",
29
+ * cidr: "10.0.0.0/16",
30
+ * natStrategy: "fck-nat",
31
+ * });
32
+ *
33
+ * // Multi-cloud
34
+ * const networks = createNetwork("prod", {
35
+ * cloud: ["aws", "azure"],
36
+ * cidr: "10.0.0.0/16",
37
+ * providerOptions: { azure: { resourceGroupName: "my-rg" } },
38
+ * });
39
+ * ```
40
+ */
41
+ function createNetwork(name, config) {
42
+ if (!(0, types_2.isMultiCloud)(config.cloud)) {
43
+ const target = (0, types_1.resolveCloudTarget)(config.cloud);
44
+ return dispatchNetwork(name, config, target, config.providerOptions);
45
+ }
46
+ const targets = (0, types_1.resolveCloudTarget)(config.cloud);
47
+ const cidrs = resolveMultiCloudCidrs(config.cidr, targets.length);
48
+ return targets.map((target, i) => {
49
+ const perTargetConfig = { ...config, cloud: config.cloud, cidr: cidrs[i] };
50
+ return dispatchNetwork(`${name}-${target.provider}`, perTargetConfig, target, config.providerOptions);
51
+ });
52
+ }
53
+ function dispatchNetwork(name, config, target, opts) {
54
+ const targetConfig = { ...config, cloud: { provider: target.provider, region: target.region } };
55
+ switch (target.provider) {
56
+ case "aws":
57
+ return (0, aws_1.createAwsNetwork)(name, targetConfig, opts?.aws);
58
+ case "azure": {
59
+ const azureOpts = opts?.azure;
60
+ if (!azureOpts) {
61
+ throw new types_1.UnsupportedFeatureError("Azure requires providerOptions.azure.resourceGroupName", "azure");
62
+ }
63
+ return (0, azure_1.createAzureNetwork)(name, targetConfig, {
64
+ resourceGroupName: azureOpts.resourceGroupName,
65
+ subnetCount: azureOpts.subnetCount,
66
+ });
67
+ }
68
+ default:
69
+ throw new types_1.UnsupportedFeatureError("network", target.provider);
70
+ }
71
+ }
72
+ /**
73
+ * Resolve CIDRs for multi-cloud deployment.
74
+ * If a single CIDR is provided, auto-offset for each target.
75
+ * If no CIDR, use defaults.
76
+ */
77
+ function resolveMultiCloudCidrs(cidr, count) {
78
+ if (!cidr) {
79
+ return (0, network_1.autoOffsetCidrs)(count);
80
+ }
81
+ const parsed = (0, network_1.parseCidr)(cidr);
82
+ const secondOctet = (parsed.start >>> 16) & 0xff;
83
+ return (0, network_1.autoOffsetCidrs)(count, { base: secondOctet });
84
+ }
85
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../src/factories/network.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAwCH,sCAkBC;AAvDD,wCAAwD;AACxD,oCAAuE;AAEvE,gCAA0C;AAC1C,oCAA8C;AAE9C,mCAAuC;AAOvC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,MAA4B;IACtE,IAAI,CAAC,IAAA,oBAAY,EAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAElE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,eAAe,GAAG,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO,eAAe,CACpB,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAC5B,eAAe,EACf,MAAM,EACN,MAAM,CAAC,eAAe,CACvB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CACtB,IAAY,EACZ,MAAsB,EACtB,MAA2B,EAC3B,IAAuB;IAEvB,MAAM,YAAY,GAAG,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;IAEhG,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,KAAK;YACR,OAAO,IAAA,sBAAgB,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACzD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,SAAS,GAAG,IAAI,EAAE,KAAK,CAAC;YAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,+BAAuB,CAC/B,wDAAwD,EACxD,OAAO,CACR,CAAC;YACJ,CAAC;YACD,OAAO,IAAA,0BAAkB,EAAC,IAAI,EAAE,YAAY,EAAE;gBAC5C,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;gBAC9C,WAAW,EAAE,SAAS,CAAC,WAAW;aACnC,CAAC,CAAC;QACL,CAAC;QACD;YACE,MAAM,IAAI,+BAAuB,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,IAAwB,EAAE,KAAa;IACrE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAA,yBAAe,EAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACjD,OAAO,IAAA,yBAAe,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Secrets factory — creates Secrets Manager/Key Vault via a single cloud-agnostic function.
3
+ *
4
+ * Dispatches to AWS or Azure based on the `cloud` parameter.
5
+ *
6
+ * @module factories/secrets
7
+ */
8
+ import type { ISecrets, ISecretsConfig } from "../secrets";
9
+ import type { IProviderOptions } from "./types";
10
+ /** Config for the createSecrets factory. */
11
+ export type ICreateSecretsConfig = ISecretsConfig & {
12
+ readonly providerOptions?: IProviderOptions;
13
+ };
14
+ /**
15
+ * Create a secrets store for one or more cloud providers.
16
+ *
17
+ * @param name - Resource name prefix
18
+ * @param config - Secrets configuration with cloud target and optional providerOptions
19
+ * @returns Single ISecrets for a single cloud target, array for multi-cloud
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const secrets = createSecrets("prod", {
24
+ * cloud: "aws",
25
+ * backend: "aws-secrets-manager",
26
+ * });
27
+ *
28
+ * const secrets = createSecrets("prod", {
29
+ * cloud: "azure",
30
+ * backend: "azure-key-vault",
31
+ * providerOptions: {
32
+ * azure: { resourceGroupName: "my-rg", tenantId: "..." },
33
+ * },
34
+ * });
35
+ * ```
36
+ */
37
+ export declare function createSecrets(name: string, config: ICreateSecretsConfig): ISecrets | ISecrets[];
38
+ //# sourceMappingURL=secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../../src/factories/secrets.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,4CAA4C;AAC5C,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC;CAC7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAU/F"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ /**
3
+ * Secrets factory — creates Secrets Manager/Key Vault via a single cloud-agnostic function.
4
+ *
5
+ * Dispatches to AWS or Azure based on the `cloud` parameter.
6
+ *
7
+ * @module factories/secrets
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.createSecrets = createSecrets;
11
+ const types_1 = require("../types");
12
+ const aws_1 = require("../aws");
13
+ const azure_1 = require("../azure");
14
+ const types_2 = require("./types");
15
+ /**
16
+ * Create a secrets store for one or more cloud providers.
17
+ *
18
+ * @param name - Resource name prefix
19
+ * @param config - Secrets configuration with cloud target and optional providerOptions
20
+ * @returns Single ISecrets for a single cloud target, array for multi-cloud
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const secrets = createSecrets("prod", {
25
+ * cloud: "aws",
26
+ * backend: "aws-secrets-manager",
27
+ * });
28
+ *
29
+ * const secrets = createSecrets("prod", {
30
+ * cloud: "azure",
31
+ * backend: "azure-key-vault",
32
+ * providerOptions: {
33
+ * azure: { resourceGroupName: "my-rg", tenantId: "..." },
34
+ * },
35
+ * });
36
+ * ```
37
+ */
38
+ function createSecrets(name, config) {
39
+ if (!(0, types_2.isMultiCloud)(config.cloud)) {
40
+ const target = (0, types_1.resolveCloudTarget)(config.cloud);
41
+ return dispatchSecrets(name, config, target, config.providerOptions);
42
+ }
43
+ const targets = (0, types_1.resolveCloudTarget)(config.cloud);
44
+ return targets.map((target) => dispatchSecrets(`${name}-${target.provider}`, config, target, config.providerOptions));
45
+ }
46
+ function dispatchSecrets(name, config, target, opts) {
47
+ const targetConfig = { ...config, cloud: { provider: target.provider, region: target.region } };
48
+ switch (target.provider) {
49
+ case "aws":
50
+ return (0, aws_1.createAwsSecrets)(name, targetConfig);
51
+ case "azure": {
52
+ const azureOpts = opts?.azure;
53
+ if (!azureOpts?.tenantId) {
54
+ throw new types_1.UnsupportedFeatureError("Azure requires providerOptions.azure with resourceGroupName and tenantId", "azure");
55
+ }
56
+ return (0, azure_1.createAzureSecrets)(name, targetConfig, {
57
+ resourceGroupName: azureOpts.resourceGroupName,
58
+ tenantId: azureOpts.tenantId,
59
+ objectId: azureOpts.objectId,
60
+ sku: azureOpts.sku,
61
+ });
62
+ }
63
+ default:
64
+ throw new types_1.UnsupportedFeatureError("secrets", target.provider);
65
+ }
66
+ }
67
+ //# sourceMappingURL=secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../../src/factories/secrets.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAsCH,sCAUC;AA7CD,oCAAuE;AAEvE,gCAA0C;AAC1C,oCAA8C;AAE9C,mCAAuC;AAOvC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,MAA4B;IACtE,IAAI,CAAC,IAAA,oBAAY,EAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5B,eAAe,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CACtF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,IAAY,EACZ,MAAsB,EACtB,MAA2B,EAC3B,IAAuB;IAEvB,MAAM,YAAY,GAAG,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;IAEhG,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,KAAK;YACR,OAAO,IAAA,sBAAgB,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,SAAS,GAAG,IAAI,EAAE,KAAK,CAAC;YAC9B,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;gBACzB,MAAM,IAAI,+BAAuB,CAC/B,0EAA0E,EAC1E,OAAO,CACR,CAAC;YACJ,CAAC;YACD,OAAO,IAAA,0BAAkB,EAAC,IAAI,EAAE,YAAY,EAAE;gBAC5C,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;gBAC9C,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,GAAG,EAAE,SAAS,CAAC,GAAG;aACnB,CAAC,CAAC;QACL,CAAC;QACD;YACE,MAAM,IAAI,+BAAuB,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Factory types for cloud-agnostic resource creation.
3
+ *
4
+ * Defines provider-specific options that can be passed through
5
+ * the unified factory functions via the `providerOptions` field.
6
+ *
7
+ * @module factories/types
8
+ */
9
+ import type * as pulumi from "@pulumi/pulumi";
10
+ import type { CloudArg, CloudProvider, CloudTarget } from "../types";
11
+ /** AWS-specific options passed through factory functions. */
12
+ export interface IAwsProviderOptions {
13
+ /** fck-nat instance type. Default: "t4g.nano". */
14
+ readonly fckNatInstanceType?: string;
15
+ /** Number of AZs to use. Default: 2. */
16
+ readonly availabilityZoneCount?: number;
17
+ /** Enable EKS Auto Mode. Default: false. */
18
+ readonly autoMode?: boolean;
19
+ /** EKS add-ons to install. Default: vpc-cni, coredns, kube-proxy. */
20
+ readonly addons?: ReadonlyArray<string>;
21
+ /** Endpoint access: "public", "private", or "both". Default: "both". */
22
+ readonly endpointAccess?: "public" | "private" | "both";
23
+ }
24
+ /** Azure-specific options passed through factory functions. */
25
+ export interface IAzureProviderOptions {
26
+ /** Resource group name. Required for Azure. */
27
+ readonly resourceGroupName: pulumi.Input<string>;
28
+ /** Number of subnet pairs. Default: 2. */
29
+ readonly subnetCount?: number;
30
+ /** Enable Azure CNI networking. Default: true. */
31
+ readonly azureCni?: boolean;
32
+ /** Enable virtual node (ACI). Default: false. */
33
+ readonly virtualNodes?: boolean;
34
+ /** Azure AD tenant ID for RBAC integration. */
35
+ readonly aadTenantId?: string;
36
+ /** DNS prefix for the cluster FQDN. Default: cluster name. */
37
+ readonly dnsPrefix?: string;
38
+ /** Azure AD tenant ID for Key Vault. Required for secrets. */
39
+ readonly tenantId?: pulumi.Input<string>;
40
+ /** Object ID for Key Vault access. */
41
+ readonly objectId?: pulumi.Input<string>;
42
+ /** Key Vault SKU. Default: "standard". */
43
+ readonly sku?: "standard" | "premium";
44
+ }
45
+ /**
46
+ * Provider-specific options keyed by cloud provider.
47
+ *
48
+ * Used in factory functions to pass cloud-specific configuration
49
+ * without changing the unified API surface.
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * createNetwork("prod", {
54
+ * cloud: "azure",
55
+ * cidr: "10.1.0.0/16",
56
+ * providerOptions: {
57
+ * azure: { resourceGroupName: "my-rg" },
58
+ * },
59
+ * });
60
+ * ```
61
+ */
62
+ export interface IProviderOptions {
63
+ readonly aws?: IAwsProviderOptions;
64
+ readonly azure?: IAzureProviderOptions;
65
+ }
66
+ /**
67
+ * Extract the provider string from a CloudArg for single-target dispatch.
68
+ * For arrays, returns the first element's provider.
69
+ */
70
+ export declare function extractProvider(cloud: CloudProvider | CloudTarget): CloudProvider;
71
+ /**
72
+ * Check if a CloudArg is a multi-cloud array.
73
+ */
74
+ export declare function isMultiCloud(cloud: CloudArg): cloud is ReadonlyArray<CloudProvider | CloudTarget>;
75
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factories/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAErE,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,kDAAkD;IAClD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,wCAAwC;IACxC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,wEAAwE;IACxE,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;CACzD;AAED,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,0CAA0C;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,0CAA0C;IAC1C,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,WAAW,GAAG,aAAa,CAGjF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,aAAa,CAAC,aAAa,GAAG,WAAW,CAAC,CAEjG"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * Factory types for cloud-agnostic resource creation.
4
+ *
5
+ * Defines provider-specific options that can be passed through
6
+ * the unified factory functions via the `providerOptions` field.
7
+ *
8
+ * @module factories/types
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.extractProvider = extractProvider;
12
+ exports.isMultiCloud = isMultiCloud;
13
+ /**
14
+ * Extract the provider string from a CloudArg for single-target dispatch.
15
+ * For arrays, returns the first element's provider.
16
+ */
17
+ function extractProvider(cloud) {
18
+ if (typeof cloud === "string")
19
+ return cloud;
20
+ return cloud.provider;
21
+ }
22
+ /**
23
+ * Check if a CloudArg is a multi-cloud array.
24
+ */
25
+ function isMultiCloud(cloud) {
26
+ return Array.isArray(cloud);
27
+ }
28
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factories/types.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAmEH,0CAGC;AAKD,oCAEC;AAdD;;;GAGG;AACH,SAAgB,eAAe,CAAC,KAAkC;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,KAAK,CAAC,QAAQ,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAe;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Global Load Balancer implementation.
3
+ *
4
+ * Routes traffic across multiple clusters using DNS-based health checks.
5
+ * Currently supports Route53 as the DNS provider. Azure Traffic Manager
6
+ * and Cloudflare can be added as future providers.
7
+ *
8
+ * @module global-lb/glb
9
+ */
10
+ import type { IGlobalLoadBalancer, IGlobalLoadBalancerConfig } from "./interfaces";
11
+ /**
12
+ * Create a Global Load Balancer across multiple clusters.
13
+ *
14
+ * Uses DNS-based routing with health checks to distribute traffic.
15
+ * Supports active-active, active-passive, and geo-routing strategies.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const glb = createGlobalLoadBalancer("prod", {
20
+ * strategy: "active-active",
21
+ * clusters: [awsCluster, azureCluster],
22
+ * domain: "app.example.com",
23
+ * healthCheck: { path: "/health", port: 443, protocol: "HTTPS" },
24
+ * dnsProvider: "route53",
25
+ * });
26
+ * ```
27
+ */
28
+ export declare function createGlobalLoadBalancer(name: string, config: IGlobalLoadBalancerConfig): IGlobalLoadBalancer;
29
+ //# sourceMappingURL=glb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glb.d.ts","sourceRoot":"","sources":["../../../src/global-lb/glb.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAE1B,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,yBAAyB,GAChC,mBAAmB,CASrB"}