@reyemtech/nimbus 0.1.0 → 1.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.
- package/README.md +71 -311
- package/dist/cjs/aws/dns.d.ts.map +1 -1
- package/dist/cjs/aws/dns.js +3 -1
- package/dist/cjs/aws/dns.js.map +1 -1
- package/dist/cjs/aws/index.d.ts +1 -0
- package/dist/cjs/aws/index.d.ts.map +1 -1
- package/dist/cjs/aws/index.js +3 -1
- package/dist/cjs/aws/index.js.map +1 -1
- package/dist/cjs/aws/network.d.ts.map +1 -1
- package/dist/cjs/aws/network.js +3 -1
- package/dist/cjs/aws/network.js.map +1 -1
- package/dist/cjs/aws/state.d.ts +32 -0
- package/dist/cjs/aws/state.d.ts.map +1 -0
- package/dist/cjs/aws/state.js +209 -0
- package/dist/cjs/aws/state.js.map +1 -0
- package/dist/cjs/azure/cluster.d.ts.map +1 -1
- package/dist/cjs/azure/cluster.js +15 -5
- package/dist/cjs/azure/cluster.js.map +1 -1
- package/dist/cjs/azure/dns.d.ts.map +1 -1
- package/dist/cjs/azure/dns.js +3 -1
- package/dist/cjs/azure/dns.js.map +1 -1
- package/dist/cjs/azure/index.d.ts +1 -0
- package/dist/cjs/azure/index.d.ts.map +1 -1
- package/dist/cjs/azure/index.js +3 -1
- package/dist/cjs/azure/index.js.map +1 -1
- package/dist/cjs/azure/network.d.ts.map +1 -1
- package/dist/cjs/azure/network.js +9 -3
- package/dist/cjs/azure/network.js.map +1 -1
- package/dist/cjs/azure/secrets.d.ts.map +1 -1
- package/dist/cjs/azure/secrets.js +6 -2
- package/dist/cjs/azure/secrets.js.map +1 -1
- package/dist/cjs/azure/state.d.ts +30 -0
- package/dist/cjs/azure/state.d.ts.map +1 -0
- package/dist/cjs/azure/state.js +115 -0
- package/dist/cjs/azure/state.js.map +1 -0
- package/dist/cjs/cache/interfaces.d.ts +12 -0
- package/dist/cjs/cache/interfaces.d.ts.map +1 -1
- package/dist/cjs/cli/templates.d.ts +83 -0
- package/dist/cjs/cli/templates.d.ts.map +1 -0
- package/dist/cjs/cli/templates.js +800 -0
- package/dist/cjs/cli/templates.js.map +1 -0
- package/dist/cjs/cli.d.ts +15 -0
- package/dist/cjs/cli.d.ts.map +1 -0
- package/dist/cjs/cli.js +204 -0
- package/dist/cjs/cli.js.map +1 -0
- package/dist/cjs/cluster/interfaces.d.ts +28 -0
- package/dist/cjs/cluster/interfaces.d.ts.map +1 -1
- package/dist/cjs/database/interfaces.d.ts +15 -0
- package/dist/cjs/database/interfaces.d.ts.map +1 -1
- package/dist/cjs/dns/interfaces.d.ts +11 -0
- package/dist/cjs/dns/interfaces.d.ts.map +1 -1
- package/dist/cjs/factories/cluster.d.ts +4 -3
- package/dist/cjs/factories/cluster.d.ts.map +1 -1
- package/dist/cjs/factories/cluster.js +46 -11
- package/dist/cjs/factories/cluster.js.map +1 -1
- package/dist/cjs/factories/dns.d.ts +3 -2
- package/dist/cjs/factories/dns.d.ts.map +1 -1
- package/dist/cjs/factories/dns.js +44 -9
- package/dist/cjs/factories/dns.js.map +1 -1
- package/dist/cjs/factories/index.d.ts +1 -0
- package/dist/cjs/factories/index.d.ts.map +1 -1
- package/dist/cjs/factories/index.js +3 -1
- package/dist/cjs/factories/index.js.map +1 -1
- package/dist/cjs/factories/network.d.ts +4 -3
- package/dist/cjs/factories/network.d.ts.map +1 -1
- package/dist/cjs/factories/network.js +46 -11
- package/dist/cjs/factories/network.js.map +1 -1
- package/dist/cjs/factories/secrets.d.ts +4 -3
- package/dist/cjs/factories/secrets.d.ts.map +1 -1
- package/dist/cjs/factories/secrets.js +45 -10
- package/dist/cjs/factories/secrets.js.map +1 -1
- package/dist/cjs/factories/state.d.ts +33 -0
- package/dist/cjs/factories/state.d.ts.map +1 -0
- package/dist/cjs/factories/state.js +96 -0
- package/dist/cjs/factories/state.js.map +1 -0
- package/dist/cjs/factories/types.d.ts +22 -0
- package/dist/cjs/factories/types.d.ts.map +1 -1
- package/dist/cjs/factories/types.js +18 -0
- package/dist/cjs/factories/types.js.map +1 -1
- package/dist/cjs/global-lb/glb.d.ts.map +1 -1
- package/dist/cjs/global-lb/glb.js +23 -9
- package/dist/cjs/global-lb/glb.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -13
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/network/cidr.d.ts +34 -0
- package/dist/cjs/network/cidr.d.ts.map +1 -1
- package/dist/cjs/network/cidr.js +34 -0
- package/dist/cjs/network/cidr.js.map +1 -1
- package/dist/cjs/network/interfaces.d.ts +16 -0
- package/dist/cjs/network/interfaces.d.ts.map +1 -1
- package/dist/cjs/platform/interfaces.d.ts +1 -1
- package/dist/cjs/platform/interfaces.d.ts.map +1 -1
- package/dist/cjs/platform/stack.d.ts.map +1 -1
- package/dist/cjs/platform/stack.js +6 -1
- package/dist/cjs/platform/stack.js.map +1 -1
- package/dist/cjs/queue/interfaces.d.ts +8 -0
- package/dist/cjs/queue/interfaces.d.ts.map +1 -1
- package/dist/cjs/secrets/interfaces.d.ts +5 -0
- package/dist/cjs/secrets/interfaces.d.ts.map +1 -1
- package/dist/cjs/state/index.d.ts +7 -0
- package/dist/cjs/state/index.d.ts.map +1 -0
- package/dist/cjs/state/index.js +8 -0
- package/dist/cjs/state/index.js.map +1 -0
- package/dist/cjs/state/interfaces.d.ts +82 -0
- package/dist/cjs/state/interfaces.d.ts.map +1 -0
- package/dist/cjs/state/interfaces.js +11 -0
- package/dist/cjs/state/interfaces.js.map +1 -0
- package/dist/cjs/storage/interfaces.d.ts +17 -0
- package/dist/cjs/storage/interfaces.d.ts.map +1 -1
- package/dist/cjs/types/cloud-target.d.ts +12 -0
- package/dist/cjs/types/cloud-target.d.ts.map +1 -1
- package/dist/cjs/types/cloud-target.js +12 -0
- package/dist/cjs/types/cloud-target.js.map +1 -1
- package/dist/cjs/types/tags.d.ts +16 -0
- package/dist/cjs/types/tags.d.ts.map +1 -1
- package/dist/cjs/types/tags.js +16 -0
- package/dist/cjs/types/tags.js.map +1 -1
- package/dist/cjs/types/validation.d.ts.map +1 -1
- package/dist/cjs/types/validation.js +14 -11
- package/dist/cjs/types/validation.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +7 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +11 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/provider-loader.d.ts +14 -0
- package/dist/cjs/utils/provider-loader.d.ts.map +1 -0
- package/dist/cjs/utils/provider-loader.js +66 -0
- package/dist/cjs/utils/provider-loader.js.map +1 -0
- package/dist/esm/aws/dns.d.ts.map +1 -1
- package/dist/esm/aws/dns.js +3 -1
- package/dist/esm/aws/dns.js.map +1 -1
- package/dist/esm/aws/index.d.ts +1 -0
- package/dist/esm/aws/index.d.ts.map +1 -1
- package/dist/esm/aws/index.js +3 -1
- package/dist/esm/aws/index.js.map +1 -1
- package/dist/esm/aws/network.d.ts.map +1 -1
- package/dist/esm/aws/network.js +3 -1
- package/dist/esm/aws/network.js.map +1 -1
- package/dist/esm/aws/state.d.ts +32 -0
- package/dist/esm/aws/state.d.ts.map +1 -0
- package/dist/esm/aws/state.js +209 -0
- package/dist/esm/aws/state.js.map +1 -0
- package/dist/esm/azure/cluster.d.ts.map +1 -1
- package/dist/esm/azure/cluster.js +15 -5
- package/dist/esm/azure/cluster.js.map +1 -1
- package/dist/esm/azure/dns.d.ts.map +1 -1
- package/dist/esm/azure/dns.js +3 -1
- package/dist/esm/azure/dns.js.map +1 -1
- package/dist/esm/azure/index.d.ts +1 -0
- package/dist/esm/azure/index.d.ts.map +1 -1
- package/dist/esm/azure/index.js +3 -1
- package/dist/esm/azure/index.js.map +1 -1
- package/dist/esm/azure/network.d.ts.map +1 -1
- package/dist/esm/azure/network.js +9 -3
- package/dist/esm/azure/network.js.map +1 -1
- package/dist/esm/azure/secrets.d.ts.map +1 -1
- package/dist/esm/azure/secrets.js +6 -2
- package/dist/esm/azure/secrets.js.map +1 -1
- package/dist/esm/azure/state.d.ts +30 -0
- package/dist/esm/azure/state.d.ts.map +1 -0
- package/dist/esm/azure/state.js +115 -0
- package/dist/esm/azure/state.js.map +1 -0
- package/dist/esm/cache/interfaces.d.ts +12 -0
- package/dist/esm/cache/interfaces.d.ts.map +1 -1
- package/dist/esm/cli/templates.d.ts +83 -0
- package/dist/esm/cli/templates.d.ts.map +1 -0
- package/dist/esm/cli/templates.js +800 -0
- package/dist/esm/cli/templates.js.map +1 -0
- package/dist/esm/cli.d.ts +15 -0
- package/dist/esm/cli.d.ts.map +1 -0
- package/dist/esm/cli.js +171 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/cluster/interfaces.d.ts +28 -0
- package/dist/esm/cluster/interfaces.d.ts.map +1 -1
- package/dist/esm/database/interfaces.d.ts +15 -0
- package/dist/esm/database/interfaces.d.ts.map +1 -1
- package/dist/esm/dns/interfaces.d.ts +11 -0
- package/dist/esm/dns/interfaces.d.ts.map +1 -1
- package/dist/esm/factories/cluster.d.ts +4 -3
- package/dist/esm/factories/cluster.d.ts.map +1 -1
- package/dist/esm/factories/cluster.js +13 -11
- package/dist/esm/factories/cluster.js.map +1 -1
- package/dist/esm/factories/dns.d.ts +3 -2
- package/dist/esm/factories/dns.d.ts.map +1 -1
- package/dist/esm/factories/dns.js +11 -9
- package/dist/esm/factories/dns.js.map +1 -1
- package/dist/esm/factories/index.d.ts +1 -0
- package/dist/esm/factories/index.d.ts.map +1 -1
- package/dist/esm/factories/index.js +3 -1
- package/dist/esm/factories/index.js.map +1 -1
- package/dist/esm/factories/network.d.ts +4 -3
- package/dist/esm/factories/network.d.ts.map +1 -1
- package/dist/esm/factories/network.js +13 -11
- package/dist/esm/factories/network.js.map +1 -1
- package/dist/esm/factories/secrets.d.ts +4 -3
- package/dist/esm/factories/secrets.d.ts.map +1 -1
- package/dist/esm/factories/secrets.js +12 -10
- package/dist/esm/factories/secrets.js.map +1 -1
- package/dist/esm/factories/state.d.ts +33 -0
- package/dist/esm/factories/state.d.ts.map +1 -0
- package/dist/esm/factories/state.js +63 -0
- package/dist/esm/factories/state.js.map +1 -0
- package/dist/esm/factories/types.d.ts +22 -0
- package/dist/esm/factories/types.d.ts.map +1 -1
- package/dist/esm/factories/types.js +18 -0
- package/dist/esm/factories/types.js.map +1 -1
- package/dist/esm/global-lb/glb.d.ts.map +1 -1
- package/dist/esm/global-lb/glb.js +23 -9
- package/dist/esm/global-lb/glb.js.map +1 -1
- package/dist/esm/index.d.ts +2 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -13
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/network/cidr.d.ts +34 -0
- package/dist/esm/network/cidr.d.ts.map +1 -1
- package/dist/esm/network/cidr.js +34 -0
- package/dist/esm/network/cidr.js.map +1 -1
- package/dist/esm/network/interfaces.d.ts +16 -0
- package/dist/esm/network/interfaces.d.ts.map +1 -1
- package/dist/esm/platform/interfaces.d.ts +1 -1
- package/dist/esm/platform/interfaces.d.ts.map +1 -1
- package/dist/esm/platform/stack.d.ts.map +1 -1
- package/dist/esm/platform/stack.js +6 -1
- package/dist/esm/platform/stack.js.map +1 -1
- package/dist/esm/queue/interfaces.d.ts +8 -0
- package/dist/esm/queue/interfaces.d.ts.map +1 -1
- package/dist/esm/secrets/interfaces.d.ts +5 -0
- package/dist/esm/secrets/interfaces.d.ts.map +1 -1
- package/dist/esm/state/index.d.ts +7 -0
- package/dist/esm/state/index.d.ts.map +1 -0
- package/dist/esm/state/index.js +8 -0
- package/dist/esm/state/index.js.map +1 -0
- package/dist/esm/state/interfaces.d.ts +82 -0
- package/dist/esm/state/interfaces.d.ts.map +1 -0
- package/dist/esm/state/interfaces.js +11 -0
- package/dist/esm/state/interfaces.js.map +1 -0
- package/dist/esm/storage/interfaces.d.ts +17 -0
- package/dist/esm/storage/interfaces.d.ts.map +1 -1
- package/dist/esm/types/cloud-target.d.ts +12 -0
- package/dist/esm/types/cloud-target.d.ts.map +1 -1
- package/dist/esm/types/cloud-target.js +12 -0
- package/dist/esm/types/cloud-target.js.map +1 -1
- package/dist/esm/types/tags.d.ts +16 -0
- package/dist/esm/types/tags.d.ts.map +1 -1
- package/dist/esm/types/tags.js +16 -0
- package/dist/esm/types/tags.js.map +1 -1
- package/dist/esm/types/validation.d.ts.map +1 -1
- package/dist/esm/types/validation.js +14 -11
- package/dist/esm/types/validation.js.map +1 -1
- package/dist/esm/utils/index.d.ts +7 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +11 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/provider-loader.d.ts +14 -0
- package/dist/esm/utils/provider-loader.d.ts.map +1 -0
- package/dist/esm/utils/provider-loader.js +33 -0
- package/dist/esm/utils/provider-loader.js.map +1 -0
- package/package.json +41 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../../src/azure/secrets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAc,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../../src/azure/secrets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAc,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AASvE,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,0CAA0C;IAC1C,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,oBAAoB,GAC5B,QAAQ,CAqGV"}
|
|
@@ -42,6 +42,10 @@ exports.createAzureSecrets = createAzureSecrets;
|
|
|
42
42
|
const azure = __importStar(require("@pulumi/azure-native"));
|
|
43
43
|
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
44
44
|
const types_1 = require("../types");
|
|
45
|
+
/** Maximum length for Azure Key Vault names (3-24 chars, alphanumeric + hyphens). */
|
|
46
|
+
const KEY_VAULT_NAME_MAX_LENGTH = 24;
|
|
47
|
+
/** Default soft-delete retention period in days for Key Vault. */
|
|
48
|
+
const SOFT_DELETE_RETENTION_DAYS = 90;
|
|
45
49
|
/**
|
|
46
50
|
* Create an Azure Key Vault for secret management.
|
|
47
51
|
*
|
|
@@ -65,7 +69,7 @@ function createAzureSecrets(name, config, options) {
|
|
|
65
69
|
const tags = config.tags ?? {};
|
|
66
70
|
const rgName = options.resourceGroupName;
|
|
67
71
|
// Key Vault names must be 3-24 chars, alphanumeric + hyphens
|
|
68
|
-
const vaultName = name.replace(/[^a-zA-Z0-9-]/g, "-").substring(0,
|
|
72
|
+
const vaultName = name.replace(/[^a-zA-Z0-9-]/g, "-").substring(0, KEY_VAULT_NAME_MAX_LENGTH);
|
|
69
73
|
const accessPolicies = [];
|
|
70
74
|
if (options.objectId) {
|
|
71
75
|
accessPolicies.push({
|
|
@@ -88,7 +92,7 @@ function createAzureSecrets(name, config, options) {
|
|
|
88
92
|
: azure.keyvault.SkuName.Standard,
|
|
89
93
|
},
|
|
90
94
|
enableSoftDelete: true,
|
|
91
|
-
softDeleteRetentionInDays:
|
|
95
|
+
softDeleteRetentionInDays: SOFT_DELETE_RETENTION_DAYS,
|
|
92
96
|
enableRbacAuthorization: true,
|
|
93
97
|
accessPolicies,
|
|
94
98
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../../src/azure/secrets.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../../src/azure/secrets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Azure Blob state backend implementation with BCDR features.
|
|
3
|
+
*
|
|
4
|
+
* Creates an Azure Storage Account + Blob Container for Pulumi state
|
|
5
|
+
* storage with versioning, encryption, and optional geo-replication.
|
|
6
|
+
*
|
|
7
|
+
* @module azure/state
|
|
8
|
+
*/
|
|
9
|
+
import type * as pulumi from "@pulumi/pulumi";
|
|
10
|
+
import type { IStateBackend, IStateBackendConfig } from "../state";
|
|
11
|
+
/** Azure-specific state backend options. */
|
|
12
|
+
export interface IAzureStateBackendOptions {
|
|
13
|
+
/** Resource group name. Required for Azure. */
|
|
14
|
+
readonly resourceGroupName: pulumi.Input<string>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create an Azure Blob state backend with BCDR features.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const state = createAzureStateBackend("prod", {
|
|
22
|
+
* cloud: "azure",
|
|
23
|
+
* versioning: true,
|
|
24
|
+
* encryption: true,
|
|
25
|
+
* replication: { enabled: true },
|
|
26
|
+
* }, { resourceGroupName: "my-rg" });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function createAzureStateBackend(name: string, config: IStateBackendConfig, options: IAzureStateBackendOptions): IStateBackend;
|
|
30
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/azure/state.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAMnE,4CAA4C;AAC5C,MAAM,WAAW,yBAAyB;IACxC,+CAA+C;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CAClD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,yBAAyB,GACjC,aAAa,CA2Df"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Azure Blob state backend implementation with BCDR features.
|
|
4
|
+
*
|
|
5
|
+
* Creates an Azure Storage Account + Blob Container for Pulumi state
|
|
6
|
+
* storage with versioning, encryption, and optional geo-replication.
|
|
7
|
+
*
|
|
8
|
+
* @module azure/state
|
|
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
|
+
})();
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.createAzureStateBackend = createAzureStateBackend;
|
|
45
|
+
const azure = __importStar(require("@pulumi/azure-native"));
|
|
46
|
+
const types_1 = require("../types");
|
|
47
|
+
/** Max base length for storage account names (leaves room for "state" suffix, total 3-24). */
|
|
48
|
+
const STORAGE_ACCOUNT_NAME_MAX_BASE_LENGTH = 18;
|
|
49
|
+
/**
|
|
50
|
+
* Create an Azure Blob state backend with BCDR features.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* const state = createAzureStateBackend("prod", {
|
|
55
|
+
* cloud: "azure",
|
|
56
|
+
* versioning: true,
|
|
57
|
+
* encryption: true,
|
|
58
|
+
* replication: { enabled: true },
|
|
59
|
+
* }, { resourceGroupName: "my-rg" });
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
function createAzureStateBackend(name, config, options) {
|
|
63
|
+
const cloud = Array.isArray(config.cloud) ? (config.cloud[0] ?? "azure") : config.cloud;
|
|
64
|
+
const target = (0, types_1.resolveCloudTarget)(cloud);
|
|
65
|
+
const tags = config.tags ?? {};
|
|
66
|
+
const versioning = config.versioning ?? true;
|
|
67
|
+
const replication = config.replication ?? { enabled: false };
|
|
68
|
+
const rgName = options.resourceGroupName;
|
|
69
|
+
// Storage account name: lowercase alphanumeric, 3-24 chars
|
|
70
|
+
const accountNameBase = name
|
|
71
|
+
.replace(/[^a-z0-9]/g, "")
|
|
72
|
+
.substring(0, STORAGE_ACCOUNT_NAME_MAX_BASE_LENGTH);
|
|
73
|
+
// GRS for geo-replication, LRS otherwise
|
|
74
|
+
const skuName = replication.enabled ? "Standard_GRS" : "Standard_LRS";
|
|
75
|
+
const storageAccount = new azure.storage.StorageAccount(`${name}-state-sa`, {
|
|
76
|
+
accountName: `${accountNameBase}state`,
|
|
77
|
+
resourceGroupName: rgName,
|
|
78
|
+
kind: "StorageV2",
|
|
79
|
+
sku: { name: skuName },
|
|
80
|
+
enableHttpsTrafficOnly: true,
|
|
81
|
+
minimumTlsVersion: "TLS1_2",
|
|
82
|
+
allowBlobPublicAccess: false,
|
|
83
|
+
tags: { ...tags, Name: `${name}-state` },
|
|
84
|
+
});
|
|
85
|
+
// Blob container for state files
|
|
86
|
+
const containerName = "pulumistate";
|
|
87
|
+
const container = new azure.storage.BlobContainer(`${name}-state-container`, {
|
|
88
|
+
containerName,
|
|
89
|
+
accountName: storageAccount.name,
|
|
90
|
+
resourceGroupName: rgName,
|
|
91
|
+
publicAccess: "None",
|
|
92
|
+
});
|
|
93
|
+
// Enable blob versioning
|
|
94
|
+
if (versioning) {
|
|
95
|
+
new azure.storage.BlobServiceProperties(`${name}-state-blob-props`, {
|
|
96
|
+
accountName: storageAccount.name,
|
|
97
|
+
resourceGroupName: rgName,
|
|
98
|
+
blobServicesName: "default",
|
|
99
|
+
isVersioningEnabled: true,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
name,
|
|
104
|
+
cloud: target,
|
|
105
|
+
backendType: "azblob",
|
|
106
|
+
backendUrl: container.name.apply((c) => `azblob://${c}`),
|
|
107
|
+
bucketName: container.name,
|
|
108
|
+
storageAccountName: storageAccount.name,
|
|
109
|
+
versioning,
|
|
110
|
+
encryption: true, // Azure encrypts at rest by default
|
|
111
|
+
replicationEnabled: replication.enabled,
|
|
112
|
+
nativeResource: storageAccount,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/azure/state.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BH,0DA+DC;AA1FD,4DAA8C;AAG9C,oCAA8C;AAE9C,8FAA8F;AAC9F,MAAM,oCAAoC,GAAG,EAAE,CAAC;AAQhD;;;;;;;;;;;;GAYG;AACH,SAAgB,uBAAuB,CACrC,IAAY,EACZ,MAA2B,EAC3B,OAAkC;IAElC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACxF,MAAM,MAAM,GAAG,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;IAEzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;IAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAEzC,2DAA2D;IAC3D,MAAM,eAAe,GAAG,IAAI;SACzB,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,SAAS,CAAC,CAAC,EAAE,oCAAoC,CAAC,CAAC;IAEtD,yCAAyC;IACzC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;IAEtE,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,WAAW,EAAE;QAC1E,WAAW,EAAE,GAAG,eAAe,OAAO;QACtC,iBAAiB,EAAE,MAAM;QACzB,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QACtB,sBAAsB,EAAE,IAAI;QAC5B,iBAAiB,EAAE,QAAQ;QAC3B,qBAAqB,EAAE,KAAK;QAC5B,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,EAAE;KACzC,CAAC,CAAC;IAEH,iCAAiC;IACjC,MAAM,aAAa,GAAG,aAAa,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,kBAAkB,EAAE;QAC3E,aAAa;QACb,WAAW,EAAE,cAAc,CAAC,IAAI;QAChC,iBAAiB,EAAE,MAAM;QACzB,YAAY,EAAE,MAAM;KACrB,CAAC,CAAC;IAEH,yBAAyB;IACzB,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI,mBAAmB,EAAE;YAClE,WAAW,EAAE,cAAc,CAAC,IAAI;YAChC,iBAAiB,EAAE,MAAM;YACzB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;QACxD,UAAU,EAAE,SAAS,CAAC,IAAI;QAC1B,kBAAkB,EAAE,cAAc,CAAC,IAAI;QACvC,UAAU;QACV,UAAU,EAAE,IAAI,EAAE,oCAAoC;QACtD,kBAAkB,EAAE,WAAW,CAAC,OAAO;QACvC,cAAc,EAAE,cAAc;KAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -33,10 +33,15 @@ export type CacheArchitecture = "standalone" | "replication" | "cluster";
|
|
|
33
33
|
* ```
|
|
34
34
|
*/
|
|
35
35
|
export interface ICacheConfig {
|
|
36
|
+
/** Cloud provider target or multi-cloud array. */
|
|
36
37
|
readonly cloud: CloudArg;
|
|
38
|
+
/** Cache engine to provision. */
|
|
37
39
|
readonly engine: CacheEngine;
|
|
40
|
+
/** Deployment mode: managed cloud service or Helm chart. */
|
|
38
41
|
readonly mode?: CacheMode;
|
|
42
|
+
/** Cache topology: standalone, replication, or cluster. */
|
|
39
43
|
readonly architecture?: CacheArchitecture;
|
|
44
|
+
/** Number of read replicas. */
|
|
40
45
|
readonly replicas?: number;
|
|
41
46
|
/** Instance class for managed caches. */
|
|
42
47
|
readonly instanceClass?: string;
|
|
@@ -44,15 +49,22 @@ export interface ICacheConfig {
|
|
|
44
49
|
readonly storageGb?: number;
|
|
45
50
|
/** Enable Prometheus metrics exporter. */
|
|
46
51
|
readonly metrics?: boolean;
|
|
52
|
+
/** Resource tags applied to the cache and child resources. */
|
|
47
53
|
readonly tags?: Readonly<Record<string, string>>;
|
|
48
54
|
}
|
|
49
55
|
/** Cache output — the created cache resource. */
|
|
50
56
|
export interface ICache {
|
|
57
|
+
/** Logical name of the cache resource. */
|
|
51
58
|
readonly name: string;
|
|
59
|
+
/** Resolved cloud target this cache was provisioned on. */
|
|
52
60
|
readonly cloud: ResolvedCloudTarget;
|
|
61
|
+
/** Cache engine in use. */
|
|
53
62
|
readonly engine: CacheEngine;
|
|
63
|
+
/** Cache connection endpoint hostname. */
|
|
54
64
|
readonly endpoint: pulumi.Output<string>;
|
|
65
|
+
/** Cache connection port. */
|
|
55
66
|
readonly port: pulumi.Output<number>;
|
|
67
|
+
/** Reference to cache credentials in the secrets backend, if authentication is enabled. */
|
|
56
68
|
readonly secretRef?: ISecretRef;
|
|
57
69
|
/** Escape hatch: cloud-native or Helm release resource. */
|
|
58
70
|
readonly nativeResource: pulumi.Resource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/cache/interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE3D,6BAA6B;AAC7B,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,MAAM,CAAC;AAEX,0BAA0B;AAC1B,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,aAAa,GACb,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAED,iDAAiD;AACjD,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAEhC,2DAA2D;IAC3D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC1C"}
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/cache/interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE3D,6BAA6B;AAC7B,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,MAAM,CAAC;AAEX,0BAA0B;AAC1B,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,aAAa,GACb,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAC1C,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAED,iDAAiD;AACjD,MAAM,WAAW,MAAM;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,2FAA2F;IAC3F,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAEhC,2DAA2D;IAC3D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC1C"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedded project templates for `nimbus new`.
|
|
3
|
+
*
|
|
4
|
+
* Each template function returns the contents for `index.ts` and `README.md`
|
|
5
|
+
* with the project name substituted into resource names.
|
|
6
|
+
*
|
|
7
|
+
* @module cli/templates
|
|
8
|
+
*/
|
|
9
|
+
/** Shape returned by every template function. */
|
|
10
|
+
export interface ITemplateFiles {
|
|
11
|
+
readonly indexTs: string;
|
|
12
|
+
readonly readmeMd: string;
|
|
13
|
+
}
|
|
14
|
+
/** Template metadata including provider dependencies. */
|
|
15
|
+
export interface ITemplateInfo {
|
|
16
|
+
readonly description: string;
|
|
17
|
+
readonly providers: ReadonlyArray<string>;
|
|
18
|
+
readonly generate: (name: string) => ITemplateFiles;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Generate a Pulumi.yaml project file.
|
|
22
|
+
*
|
|
23
|
+
* @param name - Project name
|
|
24
|
+
* @returns Pulumi.yaml contents
|
|
25
|
+
*/
|
|
26
|
+
export declare function generatePulumiYaml(name: string): string;
|
|
27
|
+
/**
|
|
28
|
+
* Generate a package.json for a new project.
|
|
29
|
+
*
|
|
30
|
+
* @param name - Project name
|
|
31
|
+
* @returns package.json contents
|
|
32
|
+
*/
|
|
33
|
+
export declare function generatePackageJson(name: string): string;
|
|
34
|
+
/** Shared tsconfig for scaffolded projects. */
|
|
35
|
+
export declare const PROJECT_TSCONFIG: string;
|
|
36
|
+
/** Valid template names accepted by the CLI. */
|
|
37
|
+
export declare const TEMPLATE_NAMES: readonly ["empty", "minimal-aws", "minimal-azure", "aws", "azure", "multi-cloud"];
|
|
38
|
+
export type TemplateName = (typeof TEMPLATE_NAMES)[number];
|
|
39
|
+
/** Template registry with metadata and provider dependencies. */
|
|
40
|
+
export declare const TEMPLATES: Readonly<Record<TemplateName, ITemplateInfo>>;
|
|
41
|
+
/**
|
|
42
|
+
* Empty scaffold with imports and TODO placeholders.
|
|
43
|
+
*
|
|
44
|
+
* @param name - Project name used in comments
|
|
45
|
+
* @returns Template files
|
|
46
|
+
*/
|
|
47
|
+
export declare function emptyTemplate(name: string): ITemplateFiles;
|
|
48
|
+
/**
|
|
49
|
+
* Minimal AWS template — state backend + Secrets Manager, no cluster.
|
|
50
|
+
*
|
|
51
|
+
* @param name - Project name substituted into resource names
|
|
52
|
+
* @returns Template files
|
|
53
|
+
*/
|
|
54
|
+
export declare function minimalAwsTemplate(name: string): ITemplateFiles;
|
|
55
|
+
/**
|
|
56
|
+
* Minimal Azure template — state backend + Key Vault, no cluster.
|
|
57
|
+
*
|
|
58
|
+
* @param name - Project name substituted into resource names
|
|
59
|
+
* @returns Template files
|
|
60
|
+
*/
|
|
61
|
+
export declare function minimalAzureTemplate(name: string): ITemplateFiles;
|
|
62
|
+
/**
|
|
63
|
+
* Full AWS stack — VPC + EKS + Route 53 + Secrets + Platform.
|
|
64
|
+
*
|
|
65
|
+
* @param name - Project name substituted into resource names
|
|
66
|
+
* @returns Template files
|
|
67
|
+
*/
|
|
68
|
+
export declare function awsTemplate(name: string): ITemplateFiles;
|
|
69
|
+
/**
|
|
70
|
+
* Full Azure stack — VNet + AKS + Azure DNS + Key Vault + Platform.
|
|
71
|
+
*
|
|
72
|
+
* @param name - Project name substituted into resource names
|
|
73
|
+
* @returns Template files
|
|
74
|
+
*/
|
|
75
|
+
export declare function azureTemplate(name: string): ITemplateFiles;
|
|
76
|
+
/**
|
|
77
|
+
* Multi-cloud template — AWS + Azure active-active with GLB.
|
|
78
|
+
*
|
|
79
|
+
* @param name - Project name substituted into resource names
|
|
80
|
+
* @returns Template files
|
|
81
|
+
*/
|
|
82
|
+
export declare function multiCloudTemplate(name: string): ITemplateFiles;
|
|
83
|
+
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/cli/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,cAAc,CAAC;CACrD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQvD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAaxD;AAED,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,QAiB5B,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,cAAc,mFAOjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAgB3D,iEAAiE;AACjE,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CA+BnE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA4C1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAiE/D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAwEjE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA8IxD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA+J1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAuK/D"}
|