@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,92 @@
1
+ /**
2
+ * CIDR utilities for multi-cloud network planning.
3
+ *
4
+ * Provides overlap detection, auto-offset for non-conflicting CIDRs,
5
+ * and validation for multi-cloud VPC peering/mesh scenarios.
6
+ *
7
+ * @module network/cidr
8
+ */
9
+ /** Parsed CIDR representation. */
10
+ interface ParsedCidr {
11
+ readonly network: number;
12
+ readonly prefix: number;
13
+ readonly size: number;
14
+ readonly start: number;
15
+ readonly end: number;
16
+ }
17
+ /**
18
+ * Parse a CIDR string into its numeric components.
19
+ *
20
+ * @param cidr - CIDR notation string (e.g., "10.0.0.0/16")
21
+ * @returns Parsed CIDR with start/end addresses
22
+ * @throws {CidrError} If the CIDR string is malformed
23
+ */
24
+ export declare function parseCidr(cidr: string): ParsedCidr;
25
+ /**
26
+ * Format a numeric IP address back to dotted notation.
27
+ *
28
+ * @param ip - 32-bit unsigned integer IP address
29
+ * @returns Dotted decimal string
30
+ */
31
+ export declare function formatIp(ip: number): string;
32
+ /**
33
+ * Check if two CIDR ranges overlap.
34
+ *
35
+ * @param a - First CIDR string
36
+ * @param b - Second CIDR string
37
+ * @returns True if ranges overlap
38
+ */
39
+ export declare function cidrsOverlap(a: string, b: string): boolean;
40
+ /**
41
+ * Detect overlaps in a set of CIDRs.
42
+ *
43
+ * @param cidrs - Array of CIDR strings to check
44
+ * @returns Array of overlapping pairs, empty if no conflicts
45
+ */
46
+ export declare function detectOverlaps(cidrs: ReadonlyArray<string>): ReadonlyArray<[string, string]>;
47
+ /**
48
+ * Validate that a set of CIDRs do not overlap.
49
+ *
50
+ * @param cidrs - Array of CIDR strings
51
+ * @throws {CidrError} If any CIDRs overlap
52
+ */
53
+ export declare function validateNoOverlaps(cidrs: ReadonlyArray<string>): void;
54
+ /**
55
+ * Auto-generate non-overlapping CIDRs for multiple clouds.
56
+ *
57
+ * Uses 10.{offset}.0.0/16 pattern with configurable base and step.
58
+ *
59
+ * @param count - Number of CIDRs to generate
60
+ * @param options - Base octet and step between CIDRs
61
+ * @returns Array of non-overlapping CIDR strings
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * autoOffsetCidrs(3); // ["10.0.0.0/16", "10.1.0.0/16", "10.2.0.0/16"]
66
+ * autoOffsetCidrs(2, { base: 10, step: 10 }); // ["10.10.0.0/16", "10.20.0.0/16"]
67
+ * ```
68
+ */
69
+ export declare function autoOffsetCidrs(count: number, options?: {
70
+ base?: number;
71
+ step?: number;
72
+ prefix?: number;
73
+ }): ReadonlyArray<string>;
74
+ /**
75
+ * Build a CIDR map for named clouds from explicit values or auto-offset.
76
+ *
77
+ * If explicit CIDRs are provided for all clouds, validates no overlaps.
78
+ * For missing clouds, auto-generates non-overlapping CIDRs.
79
+ *
80
+ * @param clouds - Array of cloud names
81
+ * @param explicit - Explicit CIDR assignments (partial or full)
82
+ * @returns Complete CIDR map keyed by cloud name
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * buildCidrMap(["aws", "azure"], { aws: "10.0.0.0/16" });
87
+ * // { aws: "10.0.0.0/16", azure: "10.1.0.0/16" }
88
+ * ```
89
+ */
90
+ export declare function buildCidrMap(clouds: ReadonlyArray<string>, explicit?: Readonly<Record<string, string>>): Readonly<Record<string, string>>;
91
+ export {};
92
+ //# sourceMappingURL=cidr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cidr.d.ts","sourceRoot":"","sources":["../../../src/network/cidr.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,kCAAkC;AAClC,UAAU,UAAU;IAClB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CA6BlD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAI1D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAc5F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAUrE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,aAAa,CAAC,MAAM,CAAC,CAkBvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC1C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA6ClC"}
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ /**
3
+ * CIDR utilities for multi-cloud network planning.
4
+ *
5
+ * Provides overlap detection, auto-offset for non-conflicting CIDRs,
6
+ * and validation for multi-cloud VPC peering/mesh scenarios.
7
+ *
8
+ * @module network/cidr
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.parseCidr = parseCidr;
12
+ exports.formatIp = formatIp;
13
+ exports.cidrsOverlap = cidrsOverlap;
14
+ exports.detectOverlaps = detectOverlaps;
15
+ exports.validateNoOverlaps = validateNoOverlaps;
16
+ exports.autoOffsetCidrs = autoOffsetCidrs;
17
+ exports.buildCidrMap = buildCidrMap;
18
+ const types_1 = require("../types");
19
+ /**
20
+ * Parse a CIDR string into its numeric components.
21
+ *
22
+ * @param cidr - CIDR notation string (e.g., "10.0.0.0/16")
23
+ * @returns Parsed CIDR with start/end addresses
24
+ * @throws {CidrError} If the CIDR string is malformed
25
+ */
26
+ function parseCidr(cidr) {
27
+ const match = /^(\d+)\.(\d+)\.(\d+)\.(\d+)\/(\d+)$/.exec(cidr);
28
+ if (!match) {
29
+ throw new types_1.CidrError(`Invalid CIDR notation: "${cidr}"`, "CIDR_INVALID", [cidr]);
30
+ }
31
+ const octets = [
32
+ parseInt(match[1] ?? "0", 10),
33
+ parseInt(match[2] ?? "0", 10),
34
+ parseInt(match[3] ?? "0", 10),
35
+ parseInt(match[4] ?? "0", 10),
36
+ ];
37
+ const prefix = parseInt(match[5] ?? "0", 10);
38
+ if (octets.some((o) => o < 0 || o > 255) || prefix < 0 || prefix > 32) {
39
+ throw new types_1.CidrError(`Invalid CIDR values: "${cidr}"`, "CIDR_INVALID", [cidr]);
40
+ }
41
+ const network = ((octets[0] ?? 0) << 24) |
42
+ ((octets[1] ?? 0) << 16) |
43
+ ((octets[2] ?? 0) << 8) |
44
+ (octets[3] ?? 0);
45
+ const size = 1 << (32 - prefix);
46
+ const mask = ~(size - 1);
47
+ const start = (network & mask) >>> 0;
48
+ const end = (start + size - 1) >>> 0;
49
+ return { network: start, prefix, size, start, end };
50
+ }
51
+ /**
52
+ * Format a numeric IP address back to dotted notation.
53
+ *
54
+ * @param ip - 32-bit unsigned integer IP address
55
+ * @returns Dotted decimal string
56
+ */
57
+ function formatIp(ip) {
58
+ return `${(ip >>> 24) & 0xff}.${(ip >>> 16) & 0xff}.${(ip >>> 8) & 0xff}.${ip & 0xff}`;
59
+ }
60
+ /**
61
+ * Check if two CIDR ranges overlap.
62
+ *
63
+ * @param a - First CIDR string
64
+ * @param b - Second CIDR string
65
+ * @returns True if ranges overlap
66
+ */
67
+ function cidrsOverlap(a, b) {
68
+ const pa = parseCidr(a);
69
+ const pb = parseCidr(b);
70
+ return pa.start <= pb.end && pb.start <= pa.end;
71
+ }
72
+ /**
73
+ * Detect overlaps in a set of CIDRs.
74
+ *
75
+ * @param cidrs - Array of CIDR strings to check
76
+ * @returns Array of overlapping pairs, empty if no conflicts
77
+ */
78
+ function detectOverlaps(cidrs) {
79
+ const overlaps = [];
80
+ for (let i = 0; i < cidrs.length; i++) {
81
+ for (let j = i + 1; j < cidrs.length; j++) {
82
+ const a = cidrs[i];
83
+ const b = cidrs[j];
84
+ if (a && b && cidrsOverlap(a, b)) {
85
+ overlaps.push([a, b]);
86
+ }
87
+ }
88
+ }
89
+ return overlaps;
90
+ }
91
+ /**
92
+ * Validate that a set of CIDRs do not overlap.
93
+ *
94
+ * @param cidrs - Array of CIDR strings
95
+ * @throws {CidrError} If any CIDRs overlap
96
+ */
97
+ function validateNoOverlaps(cidrs) {
98
+ const overlaps = detectOverlaps(cidrs);
99
+ if (overlaps.length > 0) {
100
+ const pairs = overlaps.map(([a, b]) => `${a} <-> ${b}`).join(", ");
101
+ throw new types_1.CidrError(`CIDR overlap detected: ${pairs}. Multi-cloud VPC peering requires non-overlapping ranges.`, "CIDR_OVERLAP", cidrs);
102
+ }
103
+ }
104
+ /**
105
+ * Auto-generate non-overlapping CIDRs for multiple clouds.
106
+ *
107
+ * Uses 10.{offset}.0.0/16 pattern with configurable base and step.
108
+ *
109
+ * @param count - Number of CIDRs to generate
110
+ * @param options - Base octet and step between CIDRs
111
+ * @returns Array of non-overlapping CIDR strings
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * autoOffsetCidrs(3); // ["10.0.0.0/16", "10.1.0.0/16", "10.2.0.0/16"]
116
+ * autoOffsetCidrs(2, { base: 10, step: 10 }); // ["10.10.0.0/16", "10.20.0.0/16"]
117
+ * ```
118
+ */
119
+ function autoOffsetCidrs(count, options) {
120
+ const base = options?.base ?? 0;
121
+ const step = options?.step ?? 1;
122
+ const prefix = options?.prefix ?? 16;
123
+ const cidrs = [];
124
+ for (let i = 0; i < count; i++) {
125
+ const secondOctet = base + i * step;
126
+ if (secondOctet > 255) {
127
+ throw new types_1.CidrError(`Cannot generate ${count} non-overlapping /16 CIDRs: second octet exceeds 255 at index ${i}`, "CIDR_INVALID");
128
+ }
129
+ cidrs.push(`10.${secondOctet}.0.0/${prefix}`);
130
+ }
131
+ return cidrs;
132
+ }
133
+ /**
134
+ * Build a CIDR map for named clouds from explicit values or auto-offset.
135
+ *
136
+ * If explicit CIDRs are provided for all clouds, validates no overlaps.
137
+ * For missing clouds, auto-generates non-overlapping CIDRs.
138
+ *
139
+ * @param clouds - Array of cloud names
140
+ * @param explicit - Explicit CIDR assignments (partial or full)
141
+ * @returns Complete CIDR map keyed by cloud name
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * buildCidrMap(["aws", "azure"], { aws: "10.0.0.0/16" });
146
+ * // { aws: "10.0.0.0/16", azure: "10.1.0.0/16" }
147
+ * ```
148
+ */
149
+ function buildCidrMap(clouds, explicit) {
150
+ const result = {};
151
+ const usedCidrs = [];
152
+ // First, assign explicit CIDRs
153
+ for (const cloud of clouds) {
154
+ const cidr = explicit?.[cloud];
155
+ if (cidr) {
156
+ result[cloud] = cidr;
157
+ usedCidrs.push(cidr);
158
+ }
159
+ }
160
+ // Validate explicit CIDRs don't overlap
161
+ if (usedCidrs.length > 1) {
162
+ validateNoOverlaps(usedCidrs);
163
+ }
164
+ // Auto-assign remaining clouds with non-overlapping CIDRs
165
+ const remaining = clouds.filter((c) => !result[c]);
166
+ if (remaining.length > 0) {
167
+ // Find a base that doesn't overlap with existing CIDRs
168
+ let base = 0;
169
+ for (const existing of usedCidrs) {
170
+ const parsed = parseCidr(existing);
171
+ const secondOctet = (parsed.start >>> 16) & 0xff;
172
+ if (secondOctet >= base) {
173
+ base = secondOctet + 1;
174
+ }
175
+ }
176
+ const autoCidrs = autoOffsetCidrs(remaining.length, { base });
177
+ for (let i = 0; i < remaining.length; i++) {
178
+ const cloud = remaining[i];
179
+ const cidr = autoCidrs[i];
180
+ if (cloud && cidr) {
181
+ result[cloud] = cidr;
182
+ }
183
+ }
184
+ // Final validation
185
+ validateNoOverlaps(Object.values(result));
186
+ }
187
+ return result;
188
+ }
189
+ //# sourceMappingURL=cidr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cidr.js","sourceRoot":"","sources":["../../../src/network/cidr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Network module — VPC/VNet provisioning abstraction.
3
+ *
4
+ * @module network
5
+ */
6
+ export type { NatStrategy, ISubnetConfig, INetworkConfig, INetwork } from "./interfaces";
7
+ export { parseCidr, formatIp, cidrsOverlap, detectOverlaps, validateNoOverlaps, autoOffsetCidrs, buildCidrMap, } from "./cidr";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/network/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEzF,OAAO,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,YAAY,GACb,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * Network module — VPC/VNet provisioning abstraction.
4
+ *
5
+ * @module network
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.buildCidrMap = exports.autoOffsetCidrs = exports.validateNoOverlaps = exports.detectOverlaps = exports.cidrsOverlap = exports.formatIp = exports.parseCidr = void 0;
9
+ var cidr_1 = require("./cidr");
10
+ Object.defineProperty(exports, "parseCidr", { enumerable: true, get: function () { return cidr_1.parseCidr; } });
11
+ Object.defineProperty(exports, "formatIp", { enumerable: true, get: function () { return cidr_1.formatIp; } });
12
+ Object.defineProperty(exports, "cidrsOverlap", { enumerable: true, get: function () { return cidr_1.cidrsOverlap; } });
13
+ Object.defineProperty(exports, "detectOverlaps", { enumerable: true, get: function () { return cidr_1.detectOverlaps; } });
14
+ Object.defineProperty(exports, "validateNoOverlaps", { enumerable: true, get: function () { return cidr_1.validateNoOverlaps; } });
15
+ Object.defineProperty(exports, "autoOffsetCidrs", { enumerable: true, get: function () { return cidr_1.autoOffsetCidrs; } });
16
+ Object.defineProperty(exports, "buildCidrMap", { enumerable: true, get: function () { return cidr_1.buildCidrMap; } });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/network/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH,+BAQgB;AAPd,iGAAA,SAAS,OAAA;AACT,gGAAA,QAAQ,OAAA;AACR,oGAAA,YAAY,OAAA;AACZ,sGAAA,cAAc,OAAA;AACd,0GAAA,kBAAkB,OAAA;AAClB,uGAAA,eAAe,OAAA;AACf,oGAAA,YAAY,OAAA"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Network interfaces for @reyemtech/nimbus.
3
+ *
4
+ * Abstracts VPC (AWS), VNet (Azure), and VPC (GCP) provisioning.
5
+ * Includes NAT strategy options (managed, fck-nat, none) and
6
+ * CIDR overlap detection for multi-cloud deployments.
7
+ *
8
+ * @module network/interfaces
9
+ */
10
+ import type * as pulumi from "@pulumi/pulumi";
11
+ import type { CloudArg, ResolvedCloudTarget } from "../types";
12
+ /** NAT gateway strategy. */
13
+ export type NatStrategy = "managed" | "fck-nat" | "none";
14
+ /** Subnet configuration. */
15
+ export interface ISubnetConfig {
16
+ readonly cidr: string;
17
+ readonly availabilityZone?: string;
18
+ readonly public?: boolean;
19
+ }
20
+ /**
21
+ * Network configuration input.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const config: INetworkConfig = {
26
+ * cloud: "aws",
27
+ * cidr: "10.0.0.0/16",
28
+ * natStrategy: "fck-nat", // ~$97/mo savings vs managed NAT
29
+ * };
30
+ * ```
31
+ */
32
+ export interface INetworkConfig {
33
+ readonly cloud: CloudArg;
34
+ /** CIDR block for the VPC/VNet. Optional for hosted K8s without custom networking (e.g. Rackspace Spot). */
35
+ readonly cidr?: string;
36
+ readonly publicSubnets?: ReadonlyArray<ISubnetConfig>;
37
+ readonly privateSubnets?: ReadonlyArray<ISubnetConfig>;
38
+ readonly natStrategy?: NatStrategy;
39
+ readonly enableDnsHostnames?: boolean;
40
+ readonly enableDnsSupport?: boolean;
41
+ readonly tags?: Readonly<Record<string, string>>;
42
+ }
43
+ /**
44
+ * Network output — the created VPC/VNet resource.
45
+ *
46
+ * Use `nativeResource` for cloud-specific network operations.
47
+ */
48
+ export interface INetwork {
49
+ readonly name: string;
50
+ readonly cloud: ResolvedCloudTarget;
51
+ /** VPC ID (AWS), VNet ID (Azure), or Network self-link (GCP). */
52
+ readonly vpcId: pulumi.Output<string>;
53
+ readonly cidr?: string;
54
+ readonly publicSubnetIds: pulumi.Output<ReadonlyArray<string>>;
55
+ readonly privateSubnetIds: pulumi.Output<ReadonlyArray<string>>;
56
+ readonly natGatewayId?: pulumi.Output<string>;
57
+ /** Escape hatch: cloud-native network resource. */
58
+ readonly nativeResource: pulumi.Resource;
59
+ }
60
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/network/interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE9D,4BAA4B;AAC5B,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,SAAS,GACT,MAAM,CAAC;AAEX,4BAA4B;AAC5B,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,4GAA4G;IAC5G,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE9C,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC1C"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ /**
3
+ * Network interfaces for @reyemtech/nimbus.
4
+ *
5
+ * Abstracts VPC (AWS), VNet (Azure), and VPC (GCP) provisioning.
6
+ * Includes NAT strategy options (managed, fck-nat, none) and
7
+ * CIDR overlap detection for multi-cloud deployments.
8
+ *
9
+ * @module network/interfaces
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/network/interfaces.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Platform module — cloud-agnostic platform stack abstraction.
3
+ *
4
+ * @module platform
5
+ */
6
+ export type { DnsProvider, IPlatformComponentConfig, IExternalDnsConfig, IVaultConfig, IPlatformStackConfig, IPlatformStack, } from "./interfaces";
7
+ export { createPlatformStack } from "./stack";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,WAAW,EACX,wBAAwB,EACxB,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * Platform module — cloud-agnostic platform stack abstraction.
4
+ *
5
+ * @module platform
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.createPlatformStack = void 0;
9
+ var stack_1 = require("./stack");
10
+ Object.defineProperty(exports, "createPlatformStack", { enumerable: true, get: function () { return stack_1.createPlatformStack; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platform/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAWH,iCAA8C;AAArC,4GAAA,mBAAmB,OAAA"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Platform stack interfaces for @reyemtech/nimbus.
3
+ *
4
+ * Cloud-agnostic platform components deployed via Helm to any ICluster.
5
+ * These are the components used across all 3 client environments:
6
+ * Traefik, ArgoCD, cert-manager, External DNS, Vault, External Secrets.
7
+ *
8
+ * @module platform/interfaces
9
+ */
10
+ import type * as pulumi from "@pulumi/pulumi";
11
+ import type * as k8s from "@pulumi/kubernetes";
12
+ import type { ICluster } from "../cluster";
13
+ /** DNS provider for External DNS integration. */
14
+ export type DnsProvider = "route53" | "azure-dns" | "cloud-dns" | "cloudflare";
15
+ /** Individual platform component configuration. */
16
+ export interface IPlatformComponentConfig {
17
+ /** Enable or disable this component. Default: true for core components. */
18
+ readonly enabled?: boolean;
19
+ /** Helm chart version override. */
20
+ readonly version?: string;
21
+ /** Additional Helm values to merge with defaults. */
22
+ readonly values?: Record<string, unknown>;
23
+ }
24
+ /** External DNS component configuration with provider-specific auth. */
25
+ export interface IExternalDnsConfig extends IPlatformComponentConfig {
26
+ readonly dnsProvider: DnsProvider;
27
+ /** Provider-specific credentials (e.g., AWS IAM keys, Azure identity). */
28
+ readonly dnsCredentials?: Record<string, pulumi.Input<string>>;
29
+ /** DNS zone filter (e.g., ["reyem.tech"]). */
30
+ readonly domainFilters?: ReadonlyArray<string>;
31
+ }
32
+ /** Vault component configuration. */
33
+ export interface IVaultConfig extends IPlatformComponentConfig {
34
+ /** Enable HA mode. Default: false (single node). */
35
+ readonly ha?: boolean;
36
+ /** Storage size for Vault data. Default: "5Gi". */
37
+ readonly storageSize?: string;
38
+ /** Domain for Vault ingress (e.g., "vault.reyem.tech"). */
39
+ readonly ingressHost?: string;
40
+ }
41
+ /**
42
+ * Platform stack configuration input.
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const config: IPlatformStackConfig = {
47
+ * cluster,
48
+ * domain: "reyem.tech",
49
+ * externalDns: {
50
+ * dnsProvider: "route53",
51
+ * domainFilters: ["reyem.tech"],
52
+ * },
53
+ * vault: { enabled: true, ingressHost: "vault.reyem.tech" },
54
+ * };
55
+ * ```
56
+ */
57
+ export interface IPlatformStackConfig {
58
+ readonly cluster: ICluster | ReadonlyArray<ICluster>;
59
+ readonly domain: string;
60
+ /** Core components (enabled by default). */
61
+ readonly traefik?: IPlatformComponentConfig;
62
+ readonly certManager?: IPlatformComponentConfig;
63
+ readonly externalDns?: IExternalDnsConfig;
64
+ /** Optional components. */
65
+ readonly argocd?: IPlatformComponentConfig;
66
+ readonly vault?: IVaultConfig;
67
+ readonly externalSecrets?: IPlatformComponentConfig;
68
+ readonly oauth2Proxy?: IPlatformComponentConfig & {
69
+ readonly provider: "google" | "github" | "azure";
70
+ readonly clientId: pulumi.Input<string>;
71
+ readonly clientSecret: pulumi.Input<string>;
72
+ };
73
+ readonly tags?: Readonly<Record<string, string>>;
74
+ }
75
+ /**
76
+ * Platform stack output — the deployed platform components.
77
+ *
78
+ * Each component is accessible as a Helm release for further customization.
79
+ */
80
+ export interface IPlatformStack {
81
+ readonly name: string;
82
+ readonly cluster: ICluster;
83
+ readonly components: Readonly<Record<string, k8s.helm.v3.Release>>;
84
+ readonly traefikEndpoint: pulumi.Output<string>;
85
+ }
86
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/platform/interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,iDAAiD;AACjD,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,WAAW,GACX,WAAW,GACX,YAAY,CAAC;AAEjB,mDAAmD;AACnD,MAAM,WAAW,wBAAwB;IACvC,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,mCAAmC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,wEAAwE;AACxE,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB;IAClE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,8CAA8C;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAChD;AAED,qCAAqC;AACrC,MAAM,WAAW,YAAa,SAAQ,wBAAwB;IAC5D,oDAAoD;IACpD,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,wBAAwB,CAAC;IAChD,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAE1C,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,wBAAwB,CAAC;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,wBAAwB,GAAG;QAChD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;QACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAC7C,CAAC;IAEF,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CACjD"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ /**
3
+ * Platform stack interfaces for @reyemtech/nimbus.
4
+ *
5
+ * Cloud-agnostic platform components deployed via Helm to any ICluster.
6
+ * These are the components used across all 3 client environments:
7
+ * Traefik, ArgoCD, cert-manager, External DNS, Vault, External Secrets.
8
+ *
9
+ * @module platform/interfaces
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/platform/interfaces.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Platform stack implementation — deploys Helm-based platform components
3
+ * to any ICluster.
4
+ *
5
+ * Components: Traefik, cert-manager, External DNS, ArgoCD, Vault,
6
+ * External Secrets Operator.
7
+ *
8
+ * @module platform/stack
9
+ */
10
+ import type { IPlatformStack, IPlatformStackConfig } from "./interfaces";
11
+ /**
12
+ * Deploy a platform stack to one or more clusters.
13
+ *
14
+ * Installs cloud-agnostic Helm releases for ingress, TLS, DNS, GitOps,
15
+ * secrets management, and more. Each component can be individually
16
+ * enabled/disabled and configured.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const platform = createPlatformStack("prod", {
21
+ * cluster,
22
+ * domain: "reyem.tech",
23
+ * externalDns: {
24
+ * dnsProvider: "route53",
25
+ * domainFilters: ["reyem.tech"],
26
+ * },
27
+ * vault: { enabled: true, ingressHost: "vault.reyem.tech" },
28
+ * });
29
+ * ```
30
+ */
31
+ export declare function createPlatformStack(name: string, config: IPlatformStackConfig): IPlatformStack | IPlatformStack[];
32
+ //# sourceMappingURL=stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../src/platform/stack.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAGV,cAAc,EACd,oBAAoB,EAErB,MAAM,cAAc,CAAC;AAYtB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,oBAAoB,GAC3B,cAAc,GAAG,cAAc,EAAE,CAUnC"}