@reyemtech/nimbus 0.1.0 → 1.0.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 (260) hide show
  1. package/README.md +71 -311
  2. package/dist/cjs/aws/dns.d.ts.map +1 -1
  3. package/dist/cjs/aws/dns.js +3 -1
  4. package/dist/cjs/aws/dns.js.map +1 -1
  5. package/dist/cjs/aws/index.d.ts +1 -0
  6. package/dist/cjs/aws/index.d.ts.map +1 -1
  7. package/dist/cjs/aws/index.js +3 -1
  8. package/dist/cjs/aws/index.js.map +1 -1
  9. package/dist/cjs/aws/network.d.ts.map +1 -1
  10. package/dist/cjs/aws/network.js +3 -1
  11. package/dist/cjs/aws/network.js.map +1 -1
  12. package/dist/cjs/aws/state.d.ts +32 -0
  13. package/dist/cjs/aws/state.d.ts.map +1 -0
  14. package/dist/cjs/aws/state.js +209 -0
  15. package/dist/cjs/aws/state.js.map +1 -0
  16. package/dist/cjs/azure/cluster.d.ts.map +1 -1
  17. package/dist/cjs/azure/cluster.js +15 -5
  18. package/dist/cjs/azure/cluster.js.map +1 -1
  19. package/dist/cjs/azure/dns.d.ts.map +1 -1
  20. package/dist/cjs/azure/dns.js +3 -1
  21. package/dist/cjs/azure/dns.js.map +1 -1
  22. package/dist/cjs/azure/index.d.ts +1 -0
  23. package/dist/cjs/azure/index.d.ts.map +1 -1
  24. package/dist/cjs/azure/index.js +3 -1
  25. package/dist/cjs/azure/index.js.map +1 -1
  26. package/dist/cjs/azure/network.d.ts.map +1 -1
  27. package/dist/cjs/azure/network.js +9 -3
  28. package/dist/cjs/azure/network.js.map +1 -1
  29. package/dist/cjs/azure/secrets.d.ts.map +1 -1
  30. package/dist/cjs/azure/secrets.js +6 -2
  31. package/dist/cjs/azure/secrets.js.map +1 -1
  32. package/dist/cjs/azure/state.d.ts +30 -0
  33. package/dist/cjs/azure/state.d.ts.map +1 -0
  34. package/dist/cjs/azure/state.js +115 -0
  35. package/dist/cjs/azure/state.js.map +1 -0
  36. package/dist/cjs/cache/interfaces.d.ts +12 -0
  37. package/dist/cjs/cache/interfaces.d.ts.map +1 -1
  38. package/dist/cjs/cli/templates.d.ts +67 -0
  39. package/dist/cjs/cli/templates.d.ts.map +1 -0
  40. package/dist/cjs/cli/templates.js +752 -0
  41. package/dist/cjs/cli/templates.js.map +1 -0
  42. package/dist/cjs/cli.d.ts +15 -0
  43. package/dist/cjs/cli.d.ts.map +1 -0
  44. package/dist/cjs/cli.js +209 -0
  45. package/dist/cjs/cli.js.map +1 -0
  46. package/dist/cjs/cluster/interfaces.d.ts +28 -0
  47. package/dist/cjs/cluster/interfaces.d.ts.map +1 -1
  48. package/dist/cjs/database/interfaces.d.ts +15 -0
  49. package/dist/cjs/database/interfaces.d.ts.map +1 -1
  50. package/dist/cjs/dns/interfaces.d.ts +11 -0
  51. package/dist/cjs/dns/interfaces.d.ts.map +1 -1
  52. package/dist/cjs/factories/cluster.d.ts +4 -3
  53. package/dist/cjs/factories/cluster.d.ts.map +1 -1
  54. package/dist/cjs/factories/cluster.js +46 -11
  55. package/dist/cjs/factories/cluster.js.map +1 -1
  56. package/dist/cjs/factories/dns.d.ts +3 -2
  57. package/dist/cjs/factories/dns.d.ts.map +1 -1
  58. package/dist/cjs/factories/dns.js +44 -9
  59. package/dist/cjs/factories/dns.js.map +1 -1
  60. package/dist/cjs/factories/index.d.ts +1 -0
  61. package/dist/cjs/factories/index.d.ts.map +1 -1
  62. package/dist/cjs/factories/index.js +3 -1
  63. package/dist/cjs/factories/index.js.map +1 -1
  64. package/dist/cjs/factories/network.d.ts +4 -3
  65. package/dist/cjs/factories/network.d.ts.map +1 -1
  66. package/dist/cjs/factories/network.js +46 -11
  67. package/dist/cjs/factories/network.js.map +1 -1
  68. package/dist/cjs/factories/secrets.d.ts +4 -3
  69. package/dist/cjs/factories/secrets.d.ts.map +1 -1
  70. package/dist/cjs/factories/secrets.js +45 -10
  71. package/dist/cjs/factories/secrets.js.map +1 -1
  72. package/dist/cjs/factories/state.d.ts +33 -0
  73. package/dist/cjs/factories/state.d.ts.map +1 -0
  74. package/dist/cjs/factories/state.js +96 -0
  75. package/dist/cjs/factories/state.js.map +1 -0
  76. package/dist/cjs/factories/types.d.ts +22 -0
  77. package/dist/cjs/factories/types.d.ts.map +1 -1
  78. package/dist/cjs/factories/types.js +18 -0
  79. package/dist/cjs/factories/types.js.map +1 -1
  80. package/dist/cjs/global-lb/glb.d.ts.map +1 -1
  81. package/dist/cjs/global-lb/glb.js +23 -9
  82. package/dist/cjs/global-lb/glb.js.map +1 -1
  83. package/dist/cjs/index.d.ts +2 -3
  84. package/dist/cjs/index.d.ts.map +1 -1
  85. package/dist/cjs/index.js +2 -13
  86. package/dist/cjs/index.js.map +1 -1
  87. package/dist/cjs/network/cidr.d.ts +34 -0
  88. package/dist/cjs/network/cidr.d.ts.map +1 -1
  89. package/dist/cjs/network/cidr.js +34 -0
  90. package/dist/cjs/network/cidr.js.map +1 -1
  91. package/dist/cjs/network/interfaces.d.ts +16 -0
  92. package/dist/cjs/network/interfaces.d.ts.map +1 -1
  93. package/dist/cjs/platform/interfaces.d.ts +1 -1
  94. package/dist/cjs/platform/interfaces.d.ts.map +1 -1
  95. package/dist/cjs/platform/stack.d.ts.map +1 -1
  96. package/dist/cjs/platform/stack.js +6 -1
  97. package/dist/cjs/platform/stack.js.map +1 -1
  98. package/dist/cjs/queue/interfaces.d.ts +8 -0
  99. package/dist/cjs/queue/interfaces.d.ts.map +1 -1
  100. package/dist/cjs/secrets/interfaces.d.ts +5 -0
  101. package/dist/cjs/secrets/interfaces.d.ts.map +1 -1
  102. package/dist/cjs/state/index.d.ts +7 -0
  103. package/dist/cjs/state/index.d.ts.map +1 -0
  104. package/dist/cjs/state/index.js +8 -0
  105. package/dist/cjs/state/index.js.map +1 -0
  106. package/dist/cjs/state/interfaces.d.ts +82 -0
  107. package/dist/cjs/state/interfaces.d.ts.map +1 -0
  108. package/dist/cjs/state/interfaces.js +11 -0
  109. package/dist/cjs/state/interfaces.js.map +1 -0
  110. package/dist/cjs/storage/interfaces.d.ts +17 -0
  111. package/dist/cjs/storage/interfaces.d.ts.map +1 -1
  112. package/dist/cjs/types/cloud-target.d.ts +12 -0
  113. package/dist/cjs/types/cloud-target.d.ts.map +1 -1
  114. package/dist/cjs/types/cloud-target.js +12 -0
  115. package/dist/cjs/types/cloud-target.js.map +1 -1
  116. package/dist/cjs/types/tags.d.ts +16 -0
  117. package/dist/cjs/types/tags.d.ts.map +1 -1
  118. package/dist/cjs/types/tags.js +16 -0
  119. package/dist/cjs/types/tags.js.map +1 -1
  120. package/dist/cjs/types/validation.d.ts.map +1 -1
  121. package/dist/cjs/types/validation.js +14 -11
  122. package/dist/cjs/types/validation.js.map +1 -1
  123. package/dist/cjs/utils/index.d.ts +7 -0
  124. package/dist/cjs/utils/index.d.ts.map +1 -0
  125. package/dist/cjs/utils/index.js +11 -0
  126. package/dist/cjs/utils/index.js.map +1 -0
  127. package/dist/cjs/utils/provider-loader.d.ts +14 -0
  128. package/dist/cjs/utils/provider-loader.d.ts.map +1 -0
  129. package/dist/cjs/utils/provider-loader.js +66 -0
  130. package/dist/cjs/utils/provider-loader.js.map +1 -0
  131. package/dist/esm/aws/dns.d.ts.map +1 -1
  132. package/dist/esm/aws/dns.js +3 -1
  133. package/dist/esm/aws/dns.js.map +1 -1
  134. package/dist/esm/aws/index.d.ts +1 -0
  135. package/dist/esm/aws/index.d.ts.map +1 -1
  136. package/dist/esm/aws/index.js +3 -1
  137. package/dist/esm/aws/index.js.map +1 -1
  138. package/dist/esm/aws/network.d.ts.map +1 -1
  139. package/dist/esm/aws/network.js +3 -1
  140. package/dist/esm/aws/network.js.map +1 -1
  141. package/dist/esm/aws/state.d.ts +32 -0
  142. package/dist/esm/aws/state.d.ts.map +1 -0
  143. package/dist/esm/aws/state.js +209 -0
  144. package/dist/esm/aws/state.js.map +1 -0
  145. package/dist/esm/azure/cluster.d.ts.map +1 -1
  146. package/dist/esm/azure/cluster.js +15 -5
  147. package/dist/esm/azure/cluster.js.map +1 -1
  148. package/dist/esm/azure/dns.d.ts.map +1 -1
  149. package/dist/esm/azure/dns.js +3 -1
  150. package/dist/esm/azure/dns.js.map +1 -1
  151. package/dist/esm/azure/index.d.ts +1 -0
  152. package/dist/esm/azure/index.d.ts.map +1 -1
  153. package/dist/esm/azure/index.js +3 -1
  154. package/dist/esm/azure/index.js.map +1 -1
  155. package/dist/esm/azure/network.d.ts.map +1 -1
  156. package/dist/esm/azure/network.js +9 -3
  157. package/dist/esm/azure/network.js.map +1 -1
  158. package/dist/esm/azure/secrets.d.ts.map +1 -1
  159. package/dist/esm/azure/secrets.js +6 -2
  160. package/dist/esm/azure/secrets.js.map +1 -1
  161. package/dist/esm/azure/state.d.ts +30 -0
  162. package/dist/esm/azure/state.d.ts.map +1 -0
  163. package/dist/esm/azure/state.js +115 -0
  164. package/dist/esm/azure/state.js.map +1 -0
  165. package/dist/esm/cache/interfaces.d.ts +12 -0
  166. package/dist/esm/cache/interfaces.d.ts.map +1 -1
  167. package/dist/esm/cli/templates.d.ts +67 -0
  168. package/dist/esm/cli/templates.d.ts.map +1 -0
  169. package/dist/esm/cli/templates.js +752 -0
  170. package/dist/esm/cli/templates.js.map +1 -0
  171. package/dist/esm/cli.d.ts +15 -0
  172. package/dist/esm/cli.d.ts.map +1 -0
  173. package/dist/esm/cli.js +176 -0
  174. package/dist/esm/cli.js.map +1 -0
  175. package/dist/esm/cluster/interfaces.d.ts +28 -0
  176. package/dist/esm/cluster/interfaces.d.ts.map +1 -1
  177. package/dist/esm/database/interfaces.d.ts +15 -0
  178. package/dist/esm/database/interfaces.d.ts.map +1 -1
  179. package/dist/esm/dns/interfaces.d.ts +11 -0
  180. package/dist/esm/dns/interfaces.d.ts.map +1 -1
  181. package/dist/esm/factories/cluster.d.ts +4 -3
  182. package/dist/esm/factories/cluster.d.ts.map +1 -1
  183. package/dist/esm/factories/cluster.js +13 -11
  184. package/dist/esm/factories/cluster.js.map +1 -1
  185. package/dist/esm/factories/dns.d.ts +3 -2
  186. package/dist/esm/factories/dns.d.ts.map +1 -1
  187. package/dist/esm/factories/dns.js +11 -9
  188. package/dist/esm/factories/dns.js.map +1 -1
  189. package/dist/esm/factories/index.d.ts +1 -0
  190. package/dist/esm/factories/index.d.ts.map +1 -1
  191. package/dist/esm/factories/index.js +3 -1
  192. package/dist/esm/factories/index.js.map +1 -1
  193. package/dist/esm/factories/network.d.ts +4 -3
  194. package/dist/esm/factories/network.d.ts.map +1 -1
  195. package/dist/esm/factories/network.js +13 -11
  196. package/dist/esm/factories/network.js.map +1 -1
  197. package/dist/esm/factories/secrets.d.ts +4 -3
  198. package/dist/esm/factories/secrets.d.ts.map +1 -1
  199. package/dist/esm/factories/secrets.js +12 -10
  200. package/dist/esm/factories/secrets.js.map +1 -1
  201. package/dist/esm/factories/state.d.ts +33 -0
  202. package/dist/esm/factories/state.d.ts.map +1 -0
  203. package/dist/esm/factories/state.js +63 -0
  204. package/dist/esm/factories/state.js.map +1 -0
  205. package/dist/esm/factories/types.d.ts +22 -0
  206. package/dist/esm/factories/types.d.ts.map +1 -1
  207. package/dist/esm/factories/types.js +18 -0
  208. package/dist/esm/factories/types.js.map +1 -1
  209. package/dist/esm/global-lb/glb.d.ts.map +1 -1
  210. package/dist/esm/global-lb/glb.js +23 -9
  211. package/dist/esm/global-lb/glb.js.map +1 -1
  212. package/dist/esm/index.d.ts +2 -3
  213. package/dist/esm/index.d.ts.map +1 -1
  214. package/dist/esm/index.js +2 -13
  215. package/dist/esm/index.js.map +1 -1
  216. package/dist/esm/network/cidr.d.ts +34 -0
  217. package/dist/esm/network/cidr.d.ts.map +1 -1
  218. package/dist/esm/network/cidr.js +34 -0
  219. package/dist/esm/network/cidr.js.map +1 -1
  220. package/dist/esm/network/interfaces.d.ts +16 -0
  221. package/dist/esm/network/interfaces.d.ts.map +1 -1
  222. package/dist/esm/platform/interfaces.d.ts +1 -1
  223. package/dist/esm/platform/interfaces.d.ts.map +1 -1
  224. package/dist/esm/platform/stack.d.ts.map +1 -1
  225. package/dist/esm/platform/stack.js +6 -1
  226. package/dist/esm/platform/stack.js.map +1 -1
  227. package/dist/esm/queue/interfaces.d.ts +8 -0
  228. package/dist/esm/queue/interfaces.d.ts.map +1 -1
  229. package/dist/esm/secrets/interfaces.d.ts +5 -0
  230. package/dist/esm/secrets/interfaces.d.ts.map +1 -1
  231. package/dist/esm/state/index.d.ts +7 -0
  232. package/dist/esm/state/index.d.ts.map +1 -0
  233. package/dist/esm/state/index.js +8 -0
  234. package/dist/esm/state/index.js.map +1 -0
  235. package/dist/esm/state/interfaces.d.ts +82 -0
  236. package/dist/esm/state/interfaces.d.ts.map +1 -0
  237. package/dist/esm/state/interfaces.js +11 -0
  238. package/dist/esm/state/interfaces.js.map +1 -0
  239. package/dist/esm/storage/interfaces.d.ts +17 -0
  240. package/dist/esm/storage/interfaces.d.ts.map +1 -1
  241. package/dist/esm/types/cloud-target.d.ts +12 -0
  242. package/dist/esm/types/cloud-target.d.ts.map +1 -1
  243. package/dist/esm/types/cloud-target.js +12 -0
  244. package/dist/esm/types/cloud-target.js.map +1 -1
  245. package/dist/esm/types/tags.d.ts +16 -0
  246. package/dist/esm/types/tags.d.ts.map +1 -1
  247. package/dist/esm/types/tags.js +16 -0
  248. package/dist/esm/types/tags.js.map +1 -1
  249. package/dist/esm/types/validation.d.ts.map +1 -1
  250. package/dist/esm/types/validation.js +14 -11
  251. package/dist/esm/types/validation.js.map +1 -1
  252. package/dist/esm/utils/index.d.ts +7 -0
  253. package/dist/esm/utils/index.d.ts.map +1 -0
  254. package/dist/esm/utils/index.js +11 -0
  255. package/dist/esm/utils/index.js.map +1 -0
  256. package/dist/esm/utils/provider-loader.d.ts +14 -0
  257. package/dist/esm/utils/provider-loader.d.ts.map +1 -0
  258. package/dist/esm/utils/provider-loader.js +33 -0
  259. package/dist/esm/utils/provider-loader.js.map +1 -0
  260. package/package.json +41 -3
@@ -17,14 +17,15 @@ export type ICreateDnsConfig = IDnsConfig & {
17
17
  * @param name - Resource name prefix
18
18
  * @param config - DNS configuration with cloud target and optional providerOptions
19
19
  * @returns Single IDns for a single cloud target, array for multi-cloud
20
+ * @throws {UnsupportedFeatureError} If the cloud provider is not supported or Azure options are missing
20
21
  *
21
22
  * @example
22
23
  * ```typescript
23
- * const dns = createDns("prod", {
24
+ * const dns = await createDns("prod", {
24
25
  * cloud: "aws",
25
26
  * zoneName: "example.com",
26
27
  * });
27
28
  * ```
28
29
  */
29
- export declare function createDns(name: string, config: ICreateDnsConfig): IDns | IDns[];
30
+ export declare function createDns(name: string, config: ICreateDnsConfig): Promise<IDns | IDns[]>;
30
31
  //# sourceMappingURL=dns.d.ts.map
@@ -1 +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"}
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;AAG/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;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAY9F"}
@@ -6,11 +6,42 @@
6
6
  *
7
7
  * @module factories/dns
8
8
  */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
9
42
  Object.defineProperty(exports, "__esModule", { value: true });
10
43
  exports.createDns = createDns;
11
44
  const types_1 = require("../types");
12
- const aws_1 = require("../aws");
13
- const azure_1 = require("../azure");
14
45
  const types_2 = require("./types");
15
46
  /**
16
47
  * Create a DNS zone for one or more cloud providers.
@@ -18,34 +49,38 @@ const types_2 = require("./types");
18
49
  * @param name - Resource name prefix
19
50
  * @param config - DNS configuration with cloud target and optional providerOptions
20
51
  * @returns Single IDns for a single cloud target, array for multi-cloud
52
+ * @throws {UnsupportedFeatureError} If the cloud provider is not supported or Azure options are missing
21
53
  *
22
54
  * @example
23
55
  * ```typescript
24
- * const dns = createDns("prod", {
56
+ * const dns = await createDns("prod", {
25
57
  * cloud: "aws",
26
58
  * zoneName: "example.com",
27
59
  * });
28
60
  * ```
29
61
  */
30
- function createDns(name, config) {
62
+ async function createDns(name, config) {
31
63
  if (!(0, types_2.isMultiCloud)(config.cloud)) {
32
64
  const target = (0, types_1.resolveCloudTarget)(config.cloud);
33
65
  return dispatchDns(name, config, target, config.providerOptions);
34
66
  }
35
67
  const targets = (0, types_1.resolveCloudTarget)(config.cloud);
36
- return targets.map((target) => dispatchDns(`${name}-${target.provider}`, config, target, config.providerOptions));
68
+ return Promise.all(targets.map((target) => dispatchDns(`${name}-${target.provider}`, config, target, config.providerOptions)));
37
69
  }
38
- function dispatchDns(name, config, target, opts) {
70
+ async function dispatchDns(name, config, target, opts) {
39
71
  const targetConfig = { ...config, cloud: { provider: target.provider, region: target.region } };
40
72
  switch (target.provider) {
41
- case "aws":
42
- return (0, aws_1.createRoute53Dns)(name, targetConfig);
73
+ case "aws": {
74
+ const { createRoute53Dns } = await Promise.resolve().then(() => __importStar(require("../aws/index.js")));
75
+ return createRoute53Dns(name, targetConfig);
76
+ }
43
77
  case "azure": {
44
78
  const azureOpts = opts?.azure;
45
79
  if (!azureOpts) {
46
80
  throw new types_1.UnsupportedFeatureError("Azure requires providerOptions.azure.resourceGroupName", "azure");
47
81
  }
48
- return (0, azure_1.createAzureDns)(name, targetConfig, {
82
+ const { createAzureDns } = await Promise.resolve().then(() => __importStar(require("../azure/index.js")));
83
+ return createAzureDns(name, targetConfig, {
49
84
  resourceGroupName: azureOpts.resourceGroupName,
50
85
  });
51
86
  }
@@ -1 +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"}
1
+ {"version":3,"file":"dns.js","sourceRoot":"","sources":["../../../src/factories/dns.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BH,8BAYC;AAtCD,oCAAuE;AAGvE,mCAAuC;AAOvC;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,MAAwB;IACpE,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,CAChB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACrB,WAAW,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAClF,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,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,CAAC,CAAC,CAAC;YACX,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,iBAAiB,GAAC,CAAC;YAC7D,OAAO,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;QACD,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,MAAM,EAAE,cAAc,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;YAC7D,OAAO,cAAc,CAAC,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"}
@@ -12,4 +12,5 @@ export { createNetwork, type ICreateNetworkConfig } from "./network";
12
12
  export { createCluster, type ICreateClusterConfig } from "./cluster";
13
13
  export { createDns, type ICreateDnsConfig } from "./dns";
14
14
  export { createSecrets, type ICreateSecretsConfig } from "./secrets";
15
+ export { createStateBackend, type ICreateStateBackendConfig } from "./state";
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
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;AACrE,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,SAAS,CAAC"}
@@ -8,7 +8,7 @@
8
8
  * @module factories
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.createSecrets = exports.createDns = exports.createCluster = exports.createNetwork = exports.isMultiCloud = exports.extractProvider = void 0;
11
+ exports.createStateBackend = exports.createSecrets = exports.createDns = exports.createCluster = exports.createNetwork = exports.isMultiCloud = exports.extractProvider = void 0;
12
12
  var types_1 = require("./types");
13
13
  Object.defineProperty(exports, "extractProvider", { enumerable: true, get: function () { return types_1.extractProvider; } });
14
14
  Object.defineProperty(exports, "isMultiCloud", { enumerable: true, get: function () { return types_1.isMultiCloud; } });
@@ -20,4 +20,6 @@ var dns_1 = require("./dns");
20
20
  Object.defineProperty(exports, "createDns", { enumerable: true, get: function () { return dns_1.createDns; } });
21
21
  var secrets_1 = require("./secrets");
22
22
  Object.defineProperty(exports, "createSecrets", { enumerable: true, get: function () { return secrets_1.createSecrets; } });
23
+ var state_1 = require("./state");
24
+ Object.defineProperty(exports, "createStateBackend", { enumerable: true, get: function () { return state_1.createStateBackend; } });
23
25
  //# sourceMappingURL=index.js.map
@@ -1 +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"}
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;AACtB,iCAA6E;AAApE,2GAAA,kBAAkB,OAAA"}
@@ -18,23 +18,24 @@ export type ICreateNetworkConfig = INetworkConfig & {
18
18
  * @param name - Resource name prefix
19
19
  * @param config - Network configuration with cloud target and optional providerOptions
20
20
  * @returns Single INetwork for a single cloud target, array for multi-cloud
21
+ * @throws {UnsupportedFeatureError} If the cloud provider is not supported or Azure options are missing
21
22
  *
22
23
  * @example
23
24
  * ```typescript
24
25
  * // Single cloud
25
- * const network = createNetwork("prod", {
26
+ * const network = await createNetwork("prod", {
26
27
  * cloud: "aws",
27
28
  * cidr: "10.0.0.0/16",
28
29
  * natStrategy: "fck-nat",
29
30
  * });
30
31
  *
31
32
  * // Multi-cloud
32
- * const networks = createNetwork("prod", {
33
+ * const networks = await createNetwork("prod", {
33
34
  * cloud: ["aws", "azure"],
34
35
  * cidr: "10.0.0.0/16",
35
36
  * providerOptions: { azure: { resourceGroupName: "my-rg" } },
36
37
  * });
37
38
  * ```
38
39
  */
39
- export declare function createNetwork(name: string, config: ICreateNetworkConfig): INetwork | INetwork[];
40
+ export declare function createNetwork(name: string, config: ICreateNetworkConfig): Promise<INetwork | INetwork[]>;
40
41
  //# sourceMappingURL=network.d.ts.map
@@ -1 +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"}
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;AAI3D,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;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,CAoBhC"}
@@ -7,12 +7,43 @@
7
7
  *
8
8
  * @module factories/network
9
9
  */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
10
43
  Object.defineProperty(exports, "__esModule", { value: true });
11
44
  exports.createNetwork = createNetwork;
12
45
  const network_1 = require("../network");
13
46
  const types_1 = require("../types");
14
- const aws_1 = require("../aws");
15
- const azure_1 = require("../azure");
16
47
  const types_2 = require("./types");
17
48
  /**
18
49
  * Create a network (VPC/VNet) for one or more cloud providers.
@@ -20,47 +51,51 @@ const types_2 = require("./types");
20
51
  * @param name - Resource name prefix
21
52
  * @param config - Network configuration with cloud target and optional providerOptions
22
53
  * @returns Single INetwork for a single cloud target, array for multi-cloud
54
+ * @throws {UnsupportedFeatureError} If the cloud provider is not supported or Azure options are missing
23
55
  *
24
56
  * @example
25
57
  * ```typescript
26
58
  * // Single cloud
27
- * const network = createNetwork("prod", {
59
+ * const network = await createNetwork("prod", {
28
60
  * cloud: "aws",
29
61
  * cidr: "10.0.0.0/16",
30
62
  * natStrategy: "fck-nat",
31
63
  * });
32
64
  *
33
65
  * // Multi-cloud
34
- * const networks = createNetwork("prod", {
66
+ * const networks = await createNetwork("prod", {
35
67
  * cloud: ["aws", "azure"],
36
68
  * cidr: "10.0.0.0/16",
37
69
  * providerOptions: { azure: { resourceGroupName: "my-rg" } },
38
70
  * });
39
71
  * ```
40
72
  */
41
- function createNetwork(name, config) {
73
+ async function createNetwork(name, config) {
42
74
  if (!(0, types_2.isMultiCloud)(config.cloud)) {
43
75
  const target = (0, types_1.resolveCloudTarget)(config.cloud);
44
76
  return dispatchNetwork(name, config, target, config.providerOptions);
45
77
  }
46
78
  const targets = (0, types_1.resolveCloudTarget)(config.cloud);
47
79
  const cidrs = resolveMultiCloudCidrs(config.cidr, targets.length);
48
- return targets.map((target, i) => {
80
+ return Promise.all(targets.map((target, i) => {
49
81
  const perTargetConfig = { ...config, cloud: config.cloud, cidr: cidrs[i] };
50
82
  return dispatchNetwork(`${name}-${target.provider}`, perTargetConfig, target, config.providerOptions);
51
- });
83
+ }));
52
84
  }
53
- function dispatchNetwork(name, config, target, opts) {
85
+ async function dispatchNetwork(name, config, target, opts) {
54
86
  const targetConfig = { ...config, cloud: { provider: target.provider, region: target.region } };
55
87
  switch (target.provider) {
56
- case "aws":
57
- return (0, aws_1.createAwsNetwork)(name, targetConfig, opts?.aws);
88
+ case "aws": {
89
+ const { createAwsNetwork } = await Promise.resolve().then(() => __importStar(require("../aws/index.js")));
90
+ return createAwsNetwork(name, targetConfig, opts?.aws);
91
+ }
58
92
  case "azure": {
59
93
  const azureOpts = opts?.azure;
60
94
  if (!azureOpts) {
61
95
  throw new types_1.UnsupportedFeatureError("Azure requires providerOptions.azure.resourceGroupName", "azure");
62
96
  }
63
- return (0, azure_1.createAzureNetwork)(name, targetConfig, {
97
+ const { createAzureNetwork } = await Promise.resolve().then(() => __importStar(require("../azure/index.js")));
98
+ return createAzureNetwork(name, targetConfig, {
64
99
  resourceGroupName: azureOpts.resourceGroupName,
65
100
  subnetCount: azureOpts.subnetCount,
66
101
  });
@@ -1 +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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../src/factories/network.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCH,sCAuBC;AA3DD,wCAAwD;AACxD,oCAAuE;AAGvE,mCAAuC;AAOvC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACI,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,MAA4B;IAE5B,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,CAChB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxB,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,CACH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,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,CAAC,CAAC,CAAC;YACX,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,iBAAiB,GAAC,CAAC;YAC7D,OAAO,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;QACD,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,MAAM,EAAE,kBAAkB,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;YACjE,OAAO,kBAAkB,CAAC,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"}
@@ -17,15 +17,16 @@ export type ICreateSecretsConfig = ISecretsConfig & {
17
17
  * @param name - Resource name prefix
18
18
  * @param config - Secrets configuration with cloud target and optional providerOptions
19
19
  * @returns Single ISecrets for a single cloud target, array for multi-cloud
20
+ * @throws {UnsupportedFeatureError} If the cloud provider is not supported or Azure options are missing
20
21
  *
21
22
  * @example
22
23
  * ```typescript
23
- * const secrets = createSecrets("prod", {
24
+ * const secrets = await createSecrets("prod", {
24
25
  * cloud: "aws",
25
26
  * backend: "aws-secrets-manager",
26
27
  * });
27
28
  *
28
- * const secrets = createSecrets("prod", {
29
+ * const secrets = await createSecrets("prod", {
29
30
  * cloud: "azure",
30
31
  * backend: "azure-key-vault",
31
32
  * providerOptions: {
@@ -34,5 +35,5 @@ export type ICreateSecretsConfig = ISecretsConfig & {
34
35
  * });
35
36
  * ```
36
37
  */
37
- export declare function createSecrets(name: string, config: ICreateSecretsConfig): ISecrets | ISecrets[];
38
+ export declare function createSecrets(name: string, config: ICreateSecretsConfig): Promise<ISecrets | ISecrets[]>;
38
39
  //# sourceMappingURL=secrets.d.ts.map
@@ -1 +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"}
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;AAG3D,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,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,CAYhC"}
@@ -6,11 +6,42 @@
6
6
  *
7
7
  * @module factories/secrets
8
8
  */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
9
42
  Object.defineProperty(exports, "__esModule", { value: true });
10
43
  exports.createSecrets = createSecrets;
11
44
  const types_1 = require("../types");
12
- const aws_1 = require("../aws");
13
- const azure_1 = require("../azure");
14
45
  const types_2 = require("./types");
15
46
  /**
16
47
  * Create a secrets store for one or more cloud providers.
@@ -18,15 +49,16 @@ const types_2 = require("./types");
18
49
  * @param name - Resource name prefix
19
50
  * @param config - Secrets configuration with cloud target and optional providerOptions
20
51
  * @returns Single ISecrets for a single cloud target, array for multi-cloud
52
+ * @throws {UnsupportedFeatureError} If the cloud provider is not supported or Azure options are missing
21
53
  *
22
54
  * @example
23
55
  * ```typescript
24
- * const secrets = createSecrets("prod", {
56
+ * const secrets = await createSecrets("prod", {
25
57
  * cloud: "aws",
26
58
  * backend: "aws-secrets-manager",
27
59
  * });
28
60
  *
29
- * const secrets = createSecrets("prod", {
61
+ * const secrets = await createSecrets("prod", {
30
62
  * cloud: "azure",
31
63
  * backend: "azure-key-vault",
32
64
  * providerOptions: {
@@ -35,25 +67,28 @@ const types_2 = require("./types");
35
67
  * });
36
68
  * ```
37
69
  */
38
- function createSecrets(name, config) {
70
+ async function createSecrets(name, config) {
39
71
  if (!(0, types_2.isMultiCloud)(config.cloud)) {
40
72
  const target = (0, types_1.resolveCloudTarget)(config.cloud);
41
73
  return dispatchSecrets(name, config, target, config.providerOptions);
42
74
  }
43
75
  const targets = (0, types_1.resolveCloudTarget)(config.cloud);
44
- return targets.map((target) => dispatchSecrets(`${name}-${target.provider}`, config, target, config.providerOptions));
76
+ return Promise.all(targets.map((target) => dispatchSecrets(`${name}-${target.provider}`, config, target, config.providerOptions)));
45
77
  }
46
- function dispatchSecrets(name, config, target, opts) {
78
+ async function dispatchSecrets(name, config, target, opts) {
47
79
  const targetConfig = { ...config, cloud: { provider: target.provider, region: target.region } };
48
80
  switch (target.provider) {
49
- case "aws":
50
- return (0, aws_1.createAwsSecrets)(name, targetConfig);
81
+ case "aws": {
82
+ const { createAwsSecrets } = await Promise.resolve().then(() => __importStar(require("../aws/index.js")));
83
+ return createAwsSecrets(name, targetConfig);
84
+ }
51
85
  case "azure": {
52
86
  const azureOpts = opts?.azure;
53
87
  if (!azureOpts?.tenantId) {
54
88
  throw new types_1.UnsupportedFeatureError("Azure requires providerOptions.azure with resourceGroupName and tenantId", "azure");
55
89
  }
56
- return (0, azure_1.createAzureSecrets)(name, targetConfig, {
90
+ const { createAzureSecrets } = await Promise.resolve().then(() => __importStar(require("../azure/index.js")));
91
+ return createAzureSecrets(name, targetConfig, {
57
92
  resourceGroupName: azureOpts.resourceGroupName,
58
93
  tenantId: azureOpts.tenantId,
59
94
  objectId: azureOpts.objectId,
@@ -1 +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"}
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../../src/factories/secrets.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCH,sCAeC;AAjDD,oCAAuE;AAGvE,mCAAuC;AAOvC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACI,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,MAA4B;IAE5B,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,CAChB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACrB,eAAe,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CACtF,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,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,CAAC,CAAC,CAAC;YACX,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,iBAAiB,GAAC,CAAC;YAC7D,OAAO,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;QACD,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,MAAM,EAAE,kBAAkB,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;YACjE,OAAO,kBAAkB,CAAC,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,33 @@
1
+ /**
2
+ * State backend factory — creates S3/Azure Blob state storage via a single cloud-agnostic function.
3
+ *
4
+ * Dispatches to AWS or Azure based on the `cloud` parameter.
5
+ *
6
+ * @module factories/state
7
+ */
8
+ import type { IStateBackend, IStateBackendConfig } from "../state";
9
+ import type { IProviderOptions } from "./types";
10
+ /** Config for the createStateBackend factory. */
11
+ export type ICreateStateBackendConfig = IStateBackendConfig & {
12
+ readonly providerOptions?: IProviderOptions;
13
+ };
14
+ /**
15
+ * Create a state backend (S3/Azure Blob) for one or more cloud providers.
16
+ *
17
+ * @param name - Resource name prefix
18
+ * @param config - State backend configuration with cloud target and optional providerOptions
19
+ * @returns Single IStateBackend for a single cloud target, array for multi-cloud
20
+ * @throws {UnsupportedFeatureError} If the cloud provider is not supported or Azure options are missing
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const state = await createStateBackend("prod", {
25
+ * cloud: "aws",
26
+ * versioning: true,
27
+ * encryption: true,
28
+ * locking: { enabled: true },
29
+ * });
30
+ * ```
31
+ */
32
+ export declare function createStateBackend(name: string, config: ICreateStateBackendConfig): Promise<IStateBackend | IStateBackend[]>;
33
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/factories/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,iDAAiD;AACjD,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GAAG;IAC5D,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC;CAC7C,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,aAAa,GAAG,aAAa,EAAE,CAAC,CAY1C"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ /**
3
+ * State backend factory — creates S3/Azure Blob state storage via a single cloud-agnostic function.
4
+ *
5
+ * Dispatches to AWS or Azure based on the `cloud` parameter.
6
+ *
7
+ * @module factories/state
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.createStateBackend = createStateBackend;
44
+ const types_1 = require("../types");
45
+ const types_2 = require("./types");
46
+ /**
47
+ * Create a state backend (S3/Azure Blob) for one or more cloud providers.
48
+ *
49
+ * @param name - Resource name prefix
50
+ * @param config - State backend configuration with cloud target and optional providerOptions
51
+ * @returns Single IStateBackend for a single cloud target, array for multi-cloud
52
+ * @throws {UnsupportedFeatureError} If the cloud provider is not supported or Azure options are missing
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * const state = await createStateBackend("prod", {
57
+ * cloud: "aws",
58
+ * versioning: true,
59
+ * encryption: true,
60
+ * locking: { enabled: true },
61
+ * });
62
+ * ```
63
+ */
64
+ async function createStateBackend(name, config) {
65
+ if (!(0, types_2.isMultiCloud)(config.cloud)) {
66
+ const target = (0, types_1.resolveCloudTarget)(config.cloud);
67
+ return dispatchStateBackend(name, config, target, config.providerOptions);
68
+ }
69
+ const targets = (0, types_1.resolveCloudTarget)(config.cloud);
70
+ return Promise.all(targets.map((target) => dispatchStateBackend(`${name}-${target.provider}`, config, target, config.providerOptions)));
71
+ }
72
+ async function dispatchStateBackend(name, config, target, opts) {
73
+ const targetConfig = { ...config, cloud: { provider: target.provider, region: target.region } };
74
+ switch (target.provider) {
75
+ case "aws": {
76
+ const { createAwsStateBackend } = await Promise.resolve().then(() => __importStar(require("../aws/index.js")));
77
+ return createAwsStateBackend(name, targetConfig, {
78
+ kmsKeyArn: opts?.aws?.stateKmsKeyArn,
79
+ forceDestroy: opts?.aws?.stateForceDestroy,
80
+ });
81
+ }
82
+ case "azure": {
83
+ const azureOpts = opts?.azure;
84
+ if (!azureOpts) {
85
+ throw new types_1.UnsupportedFeatureError("Azure requires providerOptions.azure.resourceGroupName", "azure");
86
+ }
87
+ const { createAzureStateBackend } = await Promise.resolve().then(() => __importStar(require("../azure/index.js")));
88
+ return createAzureStateBackend(name, targetConfig, {
89
+ resourceGroupName: azureOpts.resourceGroupName,
90
+ });
91
+ }
92
+ default:
93
+ throw new types_1.UnsupportedFeatureError("state-backend", target.provider);
94
+ }
95
+ }
96
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/factories/state.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BH,gDAeC;AA3CD,oCAAuE;AAGvE,mCAAuC;AAOvC;;;;;;;;;;;;;;;;;GAiBG;AACI,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,MAAiC;IAEjC,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,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACrB,oBAAoB,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAC3F,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,IAAY,EACZ,MAA2B,EAC3B,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,CAAC,CAAC,CAAC;YACX,MAAM,EAAE,qBAAqB,EAAE,GAAG,wDAAa,iBAAiB,GAAC,CAAC;YAClE,OAAO,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE;gBAC/C,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc;gBACpC,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,iBAAiB;aAC3C,CAAC,CAAC;QACL,CAAC;QACD,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,MAAM,EAAE,uBAAuB,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;YACtE,OAAO,uBAAuB,CAAC,IAAI,EAAE,YAAY,EAAE;gBACjD,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;aAC/C,CAAC,CAAC;QACL,CAAC;QACD;YACE,MAAM,IAAI,+BAAuB,CAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;AACH,CAAC"}
@@ -20,6 +20,10 @@ export interface IAwsProviderOptions {
20
20
  readonly addons?: ReadonlyArray<string>;
21
21
  /** Endpoint access: "public", "private", or "both". Default: "both". */
22
22
  readonly endpointAccess?: "public" | "private" | "both";
23
+ /** KMS key ARN for state backend encryption. Uses AES256 if not provided. */
24
+ readonly stateKmsKeyArn?: string;
25
+ /** Allow Pulumi to destroy the state bucket (for dev/test). Default: false. */
26
+ readonly stateForceDestroy?: boolean;
23
27
  }
24
28
  /** Azure-specific options passed through factory functions. */
25
29
  export interface IAzureProviderOptions {
@@ -66,10 +70,28 @@ export interface IProviderOptions {
66
70
  /**
67
71
  * Extract the provider string from a CloudArg for single-target dispatch.
68
72
  * For arrays, returns the first element's provider.
73
+ *
74
+ * @param cloud - A cloud provider string or CloudTarget object
75
+ * @returns The cloud provider identifier
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * extractProvider("aws"); // "aws"
80
+ * extractProvider({ provider: "azure", region: "eastus" }); // "azure"
81
+ * ```
69
82
  */
70
83
  export declare function extractProvider(cloud: CloudProvider | CloudTarget): CloudProvider;
71
84
  /**
72
85
  * Check if a CloudArg is a multi-cloud array.
86
+ *
87
+ * @param cloud - The cloud argument to check
88
+ * @returns True if the argument is an array of cloud targets
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * isMultiCloud("aws"); // false
93
+ * isMultiCloud(["aws", "azure"]); // true
94
+ * ```
73
95
  */
74
96
  export declare function isMultiCloud(cloud: CloudArg): cloud is ReadonlyArray<CloudProvider | CloudTarget>;
75
97
  //# sourceMappingURL=types.d.ts.map