@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.
- 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 +67 -0
- package/dist/cjs/cli/templates.d.ts.map +1 -0
- package/dist/cjs/cli/templates.js +752 -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 +209 -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 +67 -0
- package/dist/esm/cli/templates.d.ts.map +1 -0
- package/dist/esm/cli/templates.js +752 -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 +176 -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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State backend interfaces for @reyemtech/nimbus.
|
|
3
|
+
*
|
|
4
|
+
* Abstracts Pulumi state storage (S3, Azure Blob) with BCDR features:
|
|
5
|
+
* versioning, encryption, replication, and locking.
|
|
6
|
+
*
|
|
7
|
+
* @module state/interfaces
|
|
8
|
+
*/
|
|
9
|
+
import type * as pulumi from "@pulumi/pulumi";
|
|
10
|
+
import type { CloudArg, ResolvedCloudTarget } from "../types";
|
|
11
|
+
/** Supported state backend storage types. */
|
|
12
|
+
export type StateBackendType = "s3" | "azblob" | "gs";
|
|
13
|
+
/** Cross-region replication configuration. */
|
|
14
|
+
export interface IReplicationConfig {
|
|
15
|
+
/** Enable cross-region replication for disaster recovery. */
|
|
16
|
+
readonly enabled: boolean;
|
|
17
|
+
/** Destination region for replication. */
|
|
18
|
+
readonly destinationRegion?: string;
|
|
19
|
+
}
|
|
20
|
+
/** State locking configuration. */
|
|
21
|
+
export interface IStateLockConfig {
|
|
22
|
+
/** Enable state locking. Default: true. */
|
|
23
|
+
readonly enabled?: boolean;
|
|
24
|
+
/** DynamoDB table name for AWS state locking. Auto-generated if not provided. */
|
|
25
|
+
readonly dynamoDbTableName?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* State backend configuration input.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const config: IStateBackendConfig = {
|
|
33
|
+
* cloud: "aws",
|
|
34
|
+
* versioning: true,
|
|
35
|
+
* encryption: true,
|
|
36
|
+
* locking: { enabled: true },
|
|
37
|
+
* replication: { enabled: true, destinationRegion: "us-west-2" },
|
|
38
|
+
* };
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export interface IStateBackendConfig {
|
|
42
|
+
readonly cloud: CloudArg;
|
|
43
|
+
/** Override the auto-detected backend type. */
|
|
44
|
+
readonly backendType?: StateBackendType;
|
|
45
|
+
/** Enable bucket/container versioning. Default: true. */
|
|
46
|
+
readonly versioning?: boolean;
|
|
47
|
+
/** Enable server-side encryption. Default: true. */
|
|
48
|
+
readonly encryption?: boolean;
|
|
49
|
+
/** State locking configuration. Default: enabled. */
|
|
50
|
+
readonly locking?: IStateLockConfig;
|
|
51
|
+
/** Cross-region replication configuration. */
|
|
52
|
+
readonly replication?: IReplicationConfig;
|
|
53
|
+
/** Resource tags. */
|
|
54
|
+
readonly tags?: Readonly<Record<string, string>>;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* State backend output — the created state storage resources.
|
|
58
|
+
*
|
|
59
|
+
* Use `backendUrl` to configure Pulumi's backend:
|
|
60
|
+
* ```
|
|
61
|
+
* pulumi login s3://bucket-name
|
|
62
|
+
* pulumi login azblob://container-name
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export interface IStateBackend {
|
|
66
|
+
readonly name: string;
|
|
67
|
+
readonly cloud: ResolvedCloudTarget;
|
|
68
|
+
readonly backendType: StateBackendType;
|
|
69
|
+
/** Backend URL for `pulumi login`. e.g., `s3://bucket-name` or `azblob://container-name`. */
|
|
70
|
+
readonly backendUrl: pulumi.Output<string>;
|
|
71
|
+
readonly bucketName: pulumi.Output<string>;
|
|
72
|
+
/** DynamoDB table name for state locking (AWS only). */
|
|
73
|
+
readonly lockTableName?: pulumi.Output<string>;
|
|
74
|
+
/** Storage account name (Azure only). */
|
|
75
|
+
readonly storageAccountName?: pulumi.Output<string>;
|
|
76
|
+
readonly versioning: boolean;
|
|
77
|
+
readonly encryption: boolean;
|
|
78
|
+
readonly replicationEnabled: boolean;
|
|
79
|
+
/** Escape hatch: cloud-native state storage resource. */
|
|
80
|
+
readonly nativeResource: pulumi.Resource;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/state/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;AAE9D,6CAA6C;AAC7C,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEtD,8CAA8C;AAC9C,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,mCAAmC;AACnC,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IACxC,yDAAyD;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAC1C,qBAAqB;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,6FAA6F;IAC7F,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,wDAAwD;IACxD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,yCAAyC;IACzC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,yDAAyD;IACzD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC1C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* State backend interfaces for @reyemtech/nimbus.
|
|
4
|
+
*
|
|
5
|
+
* Abstracts Pulumi state storage (S3, Azure Blob) with BCDR features:
|
|
6
|
+
* versioning, encryption, replication, and locking.
|
|
7
|
+
*
|
|
8
|
+
* @module state/interfaces
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
//# sourceMappingURL=interfaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/state/interfaces.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG"}
|
|
@@ -10,16 +10,24 @@ import type * as pulumi from "@pulumi/pulumi";
|
|
|
10
10
|
import type { CloudArg, ResolvedCloudTarget } from "../types";
|
|
11
11
|
/** Lifecycle rule for object expiration/transition. */
|
|
12
12
|
export interface ILifecycleRule {
|
|
13
|
+
/** Object key prefix to scope this rule (e.g., "logs/"). Applies to all objects if omitted. */
|
|
13
14
|
readonly prefix?: string;
|
|
15
|
+
/** Number of days after creation before objects are deleted. */
|
|
14
16
|
readonly expirationDays?: number;
|
|
17
|
+
/** Number of days after creation before objects are transitioned to another storage class. */
|
|
15
18
|
readonly transitionDays?: number;
|
|
19
|
+
/** Target storage class for transition (e.g., "GLACIER", "COOL"). */
|
|
16
20
|
readonly transitionStorageClass?: string;
|
|
17
21
|
}
|
|
18
22
|
/** CORS rule for cross-origin access. */
|
|
19
23
|
export interface ICorsRule {
|
|
24
|
+
/** Allowed origin domains (e.g., ["https://reyem.tech"]). Use ["*"] for any origin. */
|
|
20
25
|
readonly allowedOrigins: ReadonlyArray<string>;
|
|
26
|
+
/** Allowed HTTP methods (e.g., ["GET", "PUT"]). */
|
|
21
27
|
readonly allowedMethods: ReadonlyArray<string>;
|
|
28
|
+
/** Allowed request headers. */
|
|
22
29
|
readonly allowedHeaders?: ReadonlyArray<string>;
|
|
30
|
+
/** Max time in seconds the browser may cache the preflight response. */
|
|
23
31
|
readonly maxAgeSeconds?: number;
|
|
24
32
|
}
|
|
25
33
|
/**
|
|
@@ -39,23 +47,32 @@ export interface ICorsRule {
|
|
|
39
47
|
* ```
|
|
40
48
|
*/
|
|
41
49
|
export interface IObjectStorageConfig {
|
|
50
|
+
/** Cloud provider target or multi-cloud array. */
|
|
42
51
|
readonly cloud: CloudArg;
|
|
52
|
+
/** Enable object versioning on the bucket. */
|
|
43
53
|
readonly versioning?: boolean;
|
|
44
54
|
/** Enable server-side encryption. Default: true. */
|
|
45
55
|
readonly encryption?: boolean;
|
|
56
|
+
/** Lifecycle rules for automatic object expiration or storage class transition. */
|
|
46
57
|
readonly lifecycleRules?: ReadonlyArray<ILifecycleRule>;
|
|
47
58
|
/** Allow public access. Default: false. */
|
|
48
59
|
readonly publicAccess?: boolean;
|
|
60
|
+
/** CORS rules for cross-origin browser access. */
|
|
49
61
|
readonly corsRules?: ReadonlyArray<ICorsRule>;
|
|
62
|
+
/** Resource tags applied to the bucket. */
|
|
50
63
|
readonly tags?: Readonly<Record<string, string>>;
|
|
51
64
|
}
|
|
52
65
|
/** Object storage output — the created bucket. */
|
|
53
66
|
export interface IObjectStorage {
|
|
67
|
+
/** Logical name of the storage resource. */
|
|
54
68
|
readonly name: string;
|
|
69
|
+
/** Resolved cloud target this bucket was provisioned on. */
|
|
55
70
|
readonly cloud: ResolvedCloudTarget;
|
|
71
|
+
/** Cloud-assigned bucket name. */
|
|
56
72
|
readonly bucketName: pulumi.Output<string>;
|
|
57
73
|
/** AWS-specific: bucket ARN. */
|
|
58
74
|
readonly bucketArn?: pulumi.Output<string>;
|
|
75
|
+
/** Bucket endpoint URL for object access. */
|
|
59
76
|
readonly endpoint: pulumi.Output<string>;
|
|
60
77
|
/** Escape hatch: cloud-native bucket resource. */
|
|
61
78
|
readonly nativeResource: pulumi.Resource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/storage/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;AAE9D,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C;AAED,yCAAyC;AACzC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACxD,2CAA2C;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAED,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,gCAAgC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzC,kDAAkD;IAClD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC1C"}
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/storage/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;AAE9D,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,+FAA+F;IAC/F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,8FAA8F;IAC9F,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,qEAAqE;IACrE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C;AAED,yCAAyC;AACzC,MAAM,WAAW,SAAS;IACxB,uFAAuF;IACvF,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/C,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/C,+BAA+B;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD,wEAAwE;IACxE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,mFAAmF;IACnF,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACxD,2CAA2C;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAED,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,kCAAkC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,gCAAgC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzC,kDAAkD;IAClD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC1C"}
|
|
@@ -62,6 +62,12 @@ export declare const CLOUD_PROVIDERS: ReadonlyArray<CloudProvider>;
|
|
|
62
62
|
*
|
|
63
63
|
* @param value - Value to check
|
|
64
64
|
* @returns True if value is a valid CloudProvider
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* isCloudProvider("aws"); // true
|
|
69
|
+
* isCloudProvider("digitalocean"); // false
|
|
70
|
+
* ```
|
|
65
71
|
*/
|
|
66
72
|
export declare function isCloudProvider(value: unknown): value is CloudProvider;
|
|
67
73
|
/**
|
|
@@ -69,6 +75,12 @@ export declare function isCloudProvider(value: unknown): value is CloudProvider;
|
|
|
69
75
|
*
|
|
70
76
|
* @param value - Value to check
|
|
71
77
|
* @returns True if value is a CloudTarget
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* isCloudTarget({ provider: "aws", region: "us-east-1" }); // true
|
|
82
|
+
* isCloudTarget("aws"); // false
|
|
83
|
+
* ```
|
|
72
84
|
*/
|
|
73
85
|
export declare function isCloudTarget(value: unknown): value is CloudTarget;
|
|
74
86
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-target.d.ts","sourceRoot":"","sources":["../../../src/types/cloud-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,iCAAiC;AACjC,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC;AAEhG;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,0EAA0E;AAC1E,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAK1D,CAAC;AAEX,uDAAuD;AACvD,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,aAAa,CAK/C,CAAC;AAEX
|
|
1
|
+
{"version":3,"file":"cloud-target.d.ts","sourceRoot":"","sources":["../../../src/types/cloud-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,iCAAiC;AACjC,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC;AAEhG;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,0EAA0E;AAC1E,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAK1D,CAAC;AAEX,uDAAuD;AACvD,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,aAAa,CAK/C,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAOlE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,WAAW,GAAG,mBAAmB,CAAC;AAC5F,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,CAAC,aAAa,GAAG,WAAW,CAAC,GAChD,aAAa,CAAC,mBAAmB,CAAC,CAAC;AACtC,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,GACd,mBAAmB,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -33,6 +33,12 @@ exports.CLOUD_PROVIDERS = [
|
|
|
33
33
|
*
|
|
34
34
|
* @param value - Value to check
|
|
35
35
|
* @returns True if value is a valid CloudProvider
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* isCloudProvider("aws"); // true
|
|
40
|
+
* isCloudProvider("digitalocean"); // false
|
|
41
|
+
* ```
|
|
36
42
|
*/
|
|
37
43
|
function isCloudProvider(value) {
|
|
38
44
|
return typeof value === "string" && exports.CLOUD_PROVIDERS.includes(value);
|
|
@@ -42,6 +48,12 @@ function isCloudProvider(value) {
|
|
|
42
48
|
*
|
|
43
49
|
* @param value - Value to check
|
|
44
50
|
* @returns True if value is a CloudTarget
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* isCloudTarget({ provider: "aws", region: "us-east-1" }); // true
|
|
55
|
+
* isCloudTarget("aws"); // false
|
|
56
|
+
* ```
|
|
45
57
|
*/
|
|
46
58
|
function isCloudTarget(value) {
|
|
47
59
|
return (typeof value === "object" &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-target.js","sourceRoot":"","sources":["../../../src/types/cloud-target.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;
|
|
1
|
+
{"version":3,"file":"cloud-target.js","sourceRoot":"","sources":["../../../src/types/cloud-target.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAkFH,0CAEC;AAcD,sCAOC;AAqBD,gDAOC;AAnID,qCAAgD;AAoDhD,0EAA0E;AAC7D,QAAA,eAAe,GAA4C;IACtE,GAAG,EAAE,WAAW;IAChB,KAAK,EAAE,QAAQ;IACf,GAAG,EAAE,aAAa;IAClB,SAAS,EAAE,iBAAiB;CACpB,CAAC;AAEX,uDAAuD;AAC1C,QAAA,eAAe,GAAiC;IAC3D,KAAK;IACL,OAAO;IACP,KAAK;IACL,WAAW;CACH,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAe,CAAC,QAAQ,CAAC,KAAsB,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,aAAa,CAAC,KAAc;IAC1C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,UAAU,IAAI,KAAK;QACnB,eAAe,CAAE,KAAqB,CAAC,QAAQ,CAAC,CACjD,CAAC;AACJ,CAAC;AAqBD,SAAgB,kBAAkB,CAChC,KAAe;IAEf,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,aAAa,CAAC,KAAoC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,KAAkC;IACvD,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,uBAAe,CAAC,KAAK,CAAC;SAC/B,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,uBAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;SACxD,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,6BAAoB,CAC5B,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,wDAAwD,CACzG,CAAC;AACJ,CAAC"}
|
package/dist/esm/types/tags.d.ts
CHANGED
|
@@ -39,6 +39,13 @@ export declare function normalizeTags(tags: Readonly<Record<string, string>>, pr
|
|
|
39
39
|
*
|
|
40
40
|
* @param value - Label string to validate
|
|
41
41
|
* @returns True if the label is valid for GCP
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* isValidGcpLabel("environment"); // true
|
|
46
|
+
* isValidGcpLabel("My-Label"); // false (uppercase)
|
|
47
|
+
* isValidGcpLabel(""); // false (empty)
|
|
48
|
+
* ```
|
|
42
49
|
*/
|
|
43
50
|
export declare function isValidGcpLabel(value: string): boolean;
|
|
44
51
|
/**
|
|
@@ -48,6 +55,15 @@ export declare function isValidGcpLabel(value: string): boolean;
|
|
|
48
55
|
* @param required - Required tag values
|
|
49
56
|
* @param userTags - User-provided additional tags
|
|
50
57
|
* @returns Merged tag set
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* mergeWithRequiredTags(
|
|
62
|
+
* { environment: "prod", client: "acme", costCenter: "eng" },
|
|
63
|
+
* { team: "platform" }
|
|
64
|
+
* );
|
|
65
|
+
* // { team: "platform", environment: "prod", client: "acme", costCenter: "eng", managedBy: "nimbus" }
|
|
66
|
+
* ```
|
|
51
67
|
*/
|
|
52
68
|
export declare function mergeWithRequiredTags(required: Omit<IRequiredTags, "managedBy">, userTags?: Readonly<Record<string, string>>): Record<string, string>;
|
|
53
69
|
//# sourceMappingURL=tags.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/types/tags.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,+CAA+C;AAC/C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;CAC9B;AAQD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,QAAQ,EAAE,aAAa,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxB;AAuCD
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/types/tags.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,+CAA+C;AAC/C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;CAC9B;AAQD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,QAAQ,EAAE,aAAa,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxB;AAuCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,EAC1C,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxB"}
|
package/dist/esm/types/tags.js
CHANGED
|
@@ -86,6 +86,13 @@ function normalizeGcpLabelValue(value) {
|
|
|
86
86
|
*
|
|
87
87
|
* @param value - Label string to validate
|
|
88
88
|
* @returns True if the label is valid for GCP
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* isValidGcpLabel("environment"); // true
|
|
93
|
+
* isValidGcpLabel("My-Label"); // false (uppercase)
|
|
94
|
+
* isValidGcpLabel(""); // false (empty)
|
|
95
|
+
* ```
|
|
89
96
|
*/
|
|
90
97
|
function isValidGcpLabel(value) {
|
|
91
98
|
return value.length > 0 && value.length <= GCP_LABEL_MAX_LENGTH && GCP_LABEL_REGEX.test(value);
|
|
@@ -97,6 +104,15 @@ function isValidGcpLabel(value) {
|
|
|
97
104
|
* @param required - Required tag values
|
|
98
105
|
* @param userTags - User-provided additional tags
|
|
99
106
|
* @returns Merged tag set
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* mergeWithRequiredTags(
|
|
111
|
+
* { environment: "prod", client: "acme", costCenter: "eng" },
|
|
112
|
+
* { team: "platform" }
|
|
113
|
+
* );
|
|
114
|
+
* // { team: "platform", environment: "prod", client: "acme", costCenter: "eng", managedBy: "nimbus" }
|
|
115
|
+
* ```
|
|
100
116
|
*/
|
|
101
117
|
function mergeWithRequiredTags(required, userTags) {
|
|
102
118
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/types/tags.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAqCH,sCAqBC;
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/types/tags.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAqCH,sCAqBC;AAoDD,0CAEC;AAmBD,sDAWC;AAlID,8CAA8C;AAC9C,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,+FAA+F;AAC/F,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAE7C;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,aAAa,CAC3B,IAAsC,EACtC,QAAuB;IAEvB,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,aAAa,IAAI,UAAU,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CACV,sCAAsC,GAAG,oBAAoB,aAAa,mCAAmC,CAC9G,CAAC;YACF,SAAS;QACX,CAAC;QACD,UAAU,CAAC,aAAa,CAAC,GAAG,eAAe,CAAC;IAC9C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,KAAa;IACzC,IAAI,KAAK,GAAG,KAAK;SACd,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;SACzB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAErB,IAAI,KAAK,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QACxC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,KAAa;IAC3C,IAAI,KAAK,GAAG,KAAK;SACd,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAErB,IAAI,KAAK,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QACxC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,oBAAoB,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjG,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,qBAAqB,CACnC,QAA0C,EAC1C,QAA2C;IAE3C,OAAO;QACL,GAAG,QAAQ;QACX,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,SAAS,EAAE,QAAQ;KACpB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AASzE,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1C;AAwBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAK9E;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAEpF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC3C,YAAY,EAAE,MAAM,GACnB,iBAAiB,CA0BnB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,iBAAiB,CAiD7F;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC3C,YAAY,EAAE,MAAM,GACnB,IAAI,CAKN"}
|
|
@@ -16,6 +16,10 @@ exports.validateMultiCloud = validateMultiCloud;
|
|
|
16
16
|
exports.validateResourceName = validateResourceName;
|
|
17
17
|
exports.assertValidMultiCloud = assertValidMultiCloud;
|
|
18
18
|
const errors_1 = require("./errors");
|
|
19
|
+
/** Maximum resource name length for AWS, Azure, and GCP. */
|
|
20
|
+
const RESOURCE_NAME_MAX_LENGTH = 63;
|
|
21
|
+
/** Maximum resource name length for Rackspace. */
|
|
22
|
+
const RACKSPACE_NAME_MAX_LENGTH = 255;
|
|
19
23
|
/** Features that may not be available on all providers. */
|
|
20
24
|
const PROVIDER_FEATURES = {
|
|
21
25
|
aws: new Set([
|
|
@@ -108,24 +112,21 @@ function validateResourceName(name, provider) {
|
|
|
108
112
|
const warnings = [];
|
|
109
113
|
switch (provider) {
|
|
110
114
|
case "aws":
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
errors.push(`Resource name "${name}" exceeds AWS 63-character limit.`);
|
|
115
|
+
if (name.length > RESOURCE_NAME_MAX_LENGTH) {
|
|
116
|
+
errors.push(`Resource name "${name}" exceeds AWS ${RESOURCE_NAME_MAX_LENGTH}-character limit.`);
|
|
114
117
|
}
|
|
115
118
|
break;
|
|
116
119
|
case "azure":
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
errors.push(`Resource name "${name}" exceeds Azure 63-character limit.`);
|
|
120
|
+
if (name.length > RESOURCE_NAME_MAX_LENGTH) {
|
|
121
|
+
errors.push(`Resource name "${name}" exceeds Azure ${RESOURCE_NAME_MAX_LENGTH}-character limit.`);
|
|
120
122
|
}
|
|
121
123
|
if (/[^a-zA-Z0-9-]/.test(name)) {
|
|
122
124
|
warnings.push(`Resource name "${name}" contains characters not allowed in Azure (only alphanumeric + hyphens).`);
|
|
123
125
|
}
|
|
124
126
|
break;
|
|
125
127
|
case "gcp":
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
errors.push(`Resource name "${name}" exceeds GCP 63-character limit.`);
|
|
128
|
+
if (name.length > RESOURCE_NAME_MAX_LENGTH) {
|
|
129
|
+
errors.push(`Resource name "${name}" exceeds GCP ${RESOURCE_NAME_MAX_LENGTH}-character limit.`);
|
|
129
130
|
}
|
|
130
131
|
if (name !== name.toLowerCase()) {
|
|
131
132
|
warnings.push(`Resource name "${name}" will be lowercased for GCP.`);
|
|
@@ -135,10 +136,12 @@ function validateResourceName(name, provider) {
|
|
|
135
136
|
}
|
|
136
137
|
break;
|
|
137
138
|
case "rackspace":
|
|
138
|
-
if (name.length >
|
|
139
|
-
errors.push(`Resource name "${name}" exceeds Rackspace
|
|
139
|
+
if (name.length > RACKSPACE_NAME_MAX_LENGTH) {
|
|
140
|
+
errors.push(`Resource name "${name}" exceeds Rackspace ${RACKSPACE_NAME_MAX_LENGTH}-character limit.`);
|
|
140
141
|
}
|
|
141
142
|
break;
|
|
143
|
+
default:
|
|
144
|
+
(0, errors_1.assertNever)(provider);
|
|
142
145
|
}
|
|
143
146
|
return { valid: errors.length === 0, errors, warnings };
|
|
144
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AA+CH,0CAKC;AASD,gDAEC;AAcD,gDA6BC;AASD,oDAiDC;AASD,sDAQC;AAlLD,qCAAsF;AAEtF,4DAA4D;AAC5D,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAEpC,kDAAkD;AAClD,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAStC,2DAA2D;AAC3D,MAAM,iBAAiB,GAAyD;IAC9E,GAAG,EAAE,IAAI,GAAG,CAAC;QACX,eAAe;QACf,SAAS;QACT,aAAa;QACb,gBAAgB;QAChB,SAAS;QACT,iBAAiB;KAClB,CAAC;IACF,KAAK,EAAE,IAAI,GAAG,CAAC;QACb,eAAe;QACf,WAAW;QACX,aAAa;QACb,gBAAgB;QAChB,WAAW;QACX,WAAW;KACZ,CAAC;IACF,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC3F,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;CACvC,CAAC;AAEF;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,OAAe,EAAE,QAAuB;IACtE,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,gCAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,OAAe,EAAE,QAAuB;IACzE,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,kBAAkB,CAChC,OAA2C,EAC3C,YAAoB;IAEpB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,8BAA8B;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,oDAAoD,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAED,wCAAwC;IACxC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,IAAY,EAAE,QAAuB;IACxE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,KAAK;YACR,IAAI,IAAI,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CACT,kBAAkB,IAAI,iBAAiB,wBAAwB,mBAAmB,CACnF,CAAC;YACJ,CAAC;YACD,MAAM;QACR,KAAK,OAAO;YACV,IAAI,IAAI,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CACT,kBAAkB,IAAI,mBAAmB,wBAAwB,mBAAmB,CACrF,CAAC;YACJ,CAAC;YACD,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CACX,kBAAkB,IAAI,2EAA2E,CAClG,CAAC;YACJ,CAAC;YACD,MAAM;QACR,KAAK,KAAK;YACR,IAAI,IAAI,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CACT,kBAAkB,IAAI,iBAAiB,wBAAwB,mBAAmB,CACnF,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,IAAI,+BAA+B,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,kBAAkB,IAAI,qCAAqC,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM;QACR,KAAK,WAAW;YACd,IAAI,IAAI,CAAC,MAAM,GAAG,yBAAyB,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAAI,CACT,kBAAkB,IAAI,uBAAuB,yBAAyB,mBAAmB,CAC1F,CAAC;YACJ,CAAC;YACD,MAAM;QACR;YACE,IAAA,oBAAW,EAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,qBAAqB,CACnC,OAA2C,EAC3C,YAAoB;IAEpB,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,6BAAoB,CAAC,mCAAmC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Utility functions for @reyemtech/nimbus.
|
|
4
|
+
*
|
|
5
|
+
* @module utils
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.loadProvider = void 0;
|
|
9
|
+
var provider_loader_1 = require("./provider-loader");
|
|
10
|
+
Object.defineProperty(exports, "loadProvider", { enumerable: true, get: function () { return provider_loader_1.loadProvider; } });
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,qDAAiD;AAAxC,+GAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamic provider loader with helpful error messages.
|
|
3
|
+
*
|
|
4
|
+
* @module utils/provider-loader
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Dynamically import a provider module, throwing a helpful error if missing.
|
|
8
|
+
*
|
|
9
|
+
* @param provider - The cloud provider name (aws, azure, etc.)
|
|
10
|
+
* @param modulePath - The module path to import
|
|
11
|
+
* @returns The imported module
|
|
12
|
+
*/
|
|
13
|
+
export declare function loadProvider<T>(provider: string, modulePath: string): Promise<T>;
|
|
14
|
+
//# sourceMappingURL=provider-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-loader.d.ts","sourceRoot":"","sources":["../../../src/utils/provider-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAYtF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Dynamic provider loader with helpful error messages.
|
|
4
|
+
*
|
|
5
|
+
* @module utils/provider-loader
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.loadProvider = loadProvider;
|
|
9
|
+
const PROVIDER_PACKAGES = {
|
|
10
|
+
aws: ["@pulumi/aws"],
|
|
11
|
+
azure: ["@pulumi/azure-native"],
|
|
12
|
+
gcp: ["@pulumi/gcp"],
|
|
13
|
+
kubernetes: ["@pulumi/kubernetes"],
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Dynamically import a provider module, throwing a helpful error if missing.
|
|
17
|
+
*
|
|
18
|
+
* @param provider - The cloud provider name (aws, azure, etc.)
|
|
19
|
+
* @param modulePath - The module path to import
|
|
20
|
+
* @returns The imported module
|
|
21
|
+
*/
|
|
22
|
+
async function loadProvider(provider, modulePath) {
|
|
23
|
+
try {
|
|
24
|
+
return (await import(modulePath));
|
|
25
|
+
}
|
|
26
|
+
catch (cause) {
|
|
27
|
+
const packages = PROVIDER_PACKAGES[provider] ?? [modulePath];
|
|
28
|
+
throw new Error(`Cloud provider "${provider}" requires: ${packages.join(", ")}\n` +
|
|
29
|
+
`Run: npm install ${packages.join(" ")}\n` +
|
|
30
|
+
`Or: npx @reyemtech/nimbus install ${provider}`, { cause });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=provider-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-loader.js","sourceRoot":"","sources":["../../../src/utils/provider-loader.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAgBH,oCAYC;AA1BD,MAAM,iBAAiB,GAAoD;IACzE,GAAG,EAAE,CAAC,aAAa,CAAC;IACpB,KAAK,EAAE,CAAC,sBAAsB,CAAC;IAC/B,GAAG,EAAE,CAAC,aAAa,CAAC;IACpB,UAAU,EAAE,CAAC,oBAAoB,CAAC;CACnC,CAAC;AAEF;;;;;;GAMG;AACI,KAAK,UAAU,YAAY,CAAI,QAAgB,EAAE,UAAkB;IACxE,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAM,CAAC;IACzC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,mBAAmB,QAAQ,eAAe,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC/D,oBAAoB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;YAC1C,sCAAsC,QAAQ,EAAE,EAClD,EAAE,KAAK,EAAE,CACV,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reyemtech/nimbus",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Cloud-agnostic infrastructure abstractions for Pulumi",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -15,12 +15,36 @@
|
|
|
15
15
|
"types": "./dist/cjs/index.d.ts",
|
|
16
16
|
"default": "./dist/cjs/index.js"
|
|
17
17
|
}
|
|
18
|
+
},
|
|
19
|
+
"./aws": {
|
|
20
|
+
"import": {
|
|
21
|
+
"types": "./dist/esm/aws/index.d.ts",
|
|
22
|
+
"default": "./dist/esm/aws/index.js"
|
|
23
|
+
},
|
|
24
|
+
"require": {
|
|
25
|
+
"types": "./dist/cjs/aws/index.d.ts",
|
|
26
|
+
"default": "./dist/cjs/aws/index.js"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"./azure": {
|
|
30
|
+
"import": {
|
|
31
|
+
"types": "./dist/esm/azure/index.d.ts",
|
|
32
|
+
"default": "./dist/esm/azure/index.js"
|
|
33
|
+
},
|
|
34
|
+
"require": {
|
|
35
|
+
"types": "./dist/cjs/azure/index.d.ts",
|
|
36
|
+
"default": "./dist/cjs/azure/index.js"
|
|
37
|
+
}
|
|
18
38
|
}
|
|
19
39
|
},
|
|
40
|
+
"bin": {
|
|
41
|
+
"nimbus": "./dist/cjs/cli.js"
|
|
42
|
+
},
|
|
20
43
|
"files": [
|
|
21
44
|
"dist",
|
|
22
45
|
"README.md",
|
|
23
|
-
"LICENSE"
|
|
46
|
+
"LICENSE",
|
|
47
|
+
"bin"
|
|
24
48
|
],
|
|
25
49
|
"scripts": {
|
|
26
50
|
"build": "npm run build:esm && npm run build:cjs",
|
|
@@ -62,7 +86,21 @@
|
|
|
62
86
|
"node": ">=20"
|
|
63
87
|
},
|
|
64
88
|
"peerDependencies": {
|
|
65
|
-
"@pulumi/pulumi": ">=3.0.0"
|
|
89
|
+
"@pulumi/pulumi": ">=3.0.0",
|
|
90
|
+
"@pulumi/aws": ">=6.0.0",
|
|
91
|
+
"@pulumi/azure-native": ">=2.0.0",
|
|
92
|
+
"@pulumi/kubernetes": ">=4.0.0"
|
|
93
|
+
},
|
|
94
|
+
"peerDependenciesMeta": {
|
|
95
|
+
"@pulumi/aws": {
|
|
96
|
+
"optional": true
|
|
97
|
+
},
|
|
98
|
+
"@pulumi/azure-native": {
|
|
99
|
+
"optional": true
|
|
100
|
+
},
|
|
101
|
+
"@pulumi/kubernetes": {
|
|
102
|
+
"optional": true
|
|
103
|
+
}
|
|
66
104
|
},
|
|
67
105
|
"devDependencies": {
|
|
68
106
|
"@eslint/js": "^9.0.0",
|