@jaypie/constructs 1.1.65 → 1.1.66

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 (139) hide show
  1. package/dist/cjs/JaypieAccountLoggingBucket.d.ts +60 -0
  2. package/dist/cjs/JaypieApiGateway.d.ts +47 -0
  3. package/dist/cjs/JaypieAppStack.d.ts +5 -0
  4. package/dist/cjs/JaypieBucketQueuedLambda.d.ts +48 -0
  5. package/dist/cjs/JaypieDatadogBucket.d.ts +55 -0
  6. package/dist/cjs/JaypieDatadogForwarder.d.ts +76 -0
  7. package/dist/cjs/JaypieDatadogSecret.d.ts +5 -0
  8. package/dist/cjs/JaypieDistribution.d.ts +76 -0
  9. package/dist/cjs/JaypieDnsRecord.d.ts +45 -0
  10. package/dist/cjs/JaypieEnvSecret.d.ts +41 -0
  11. package/dist/cjs/JaypieEventsRule.d.ts +45 -0
  12. package/dist/cjs/JaypieExpressLambda.d.ts +5 -0
  13. package/dist/cjs/JaypieGitHubDeployRole.d.ts +14 -0
  14. package/dist/cjs/JaypieHostedZone.d.ts +59 -0
  15. package/dist/cjs/JaypieInfrastructureStack.d.ts +5 -0
  16. package/dist/cjs/JaypieLambda.d.ts +115 -0
  17. package/dist/cjs/JaypieMongoDbSecret.d.ts +5 -0
  18. package/dist/cjs/JaypieNextJs.d.ts +36 -0
  19. package/dist/cjs/JaypieNextJs.test.d.ts +1 -0
  20. package/dist/cjs/JaypieOpenAiSecret.d.ts +5 -0
  21. package/dist/cjs/JaypieOrganizationTrail.d.ts +62 -0
  22. package/dist/cjs/JaypieQueuedLambda.d.ts +77 -0
  23. package/dist/cjs/JaypieSsoPermissions.d.ts +96 -0
  24. package/dist/cjs/JaypieSsoSyncApplication.d.ts +27 -0
  25. package/dist/cjs/JaypieStack.d.ts +8 -0
  26. package/dist/cjs/JaypieStaticWebBucket.d.ts +22 -0
  27. package/dist/cjs/JaypieTraceSigningKeySecret.d.ts +5 -0
  28. package/dist/cjs/JaypieWebDeploymentBucket.d.ts +84 -0
  29. package/dist/cjs/__tests__/JaypieBucketQueuedLambda.spec.d.ts +1 -0
  30. package/dist/cjs/__tests__/JaypieDistribution.spec.d.ts +1 -0
  31. package/dist/cjs/__tests__/JaypieDnsRecord.spec.d.ts +1 -0
  32. package/dist/cjs/__tests__/JaypieEnvSecret.spec.d.ts +1 -0
  33. package/dist/cjs/__tests__/JaypieExpressLambda.spec.d.ts +1 -0
  34. package/dist/cjs/__tests__/JaypieHostedZone.spec.d.ts +1 -0
  35. package/dist/cjs/__tests__/JaypieLambda.spec.d.ts +1 -0
  36. package/dist/cjs/__tests__/JaypieQueuedLambda.spec.d.ts +1 -0
  37. package/dist/cjs/__tests__/JaypieSsoPermissions.spec.d.ts +1 -0
  38. package/dist/cjs/__tests__/JaypieSsoSyncApplication.spec.d.ts +1 -0
  39. package/dist/cjs/__tests__/JaypieStaticWebBucket.spec.d.ts +1 -0
  40. package/dist/cjs/__tests__/index.spec.d.ts +1 -0
  41. package/dist/cjs/constants.d.ts +151 -0
  42. package/dist/cjs/helpers/__tests__/envHostname.spec.d.ts +1 -0
  43. package/dist/cjs/helpers/__tests__/jaypieLambdaEnv.spec.d.ts +1 -0
  44. package/dist/cjs/helpers/__tests__/resolveDatadogForwarderFunction.spec.d.ts +1 -0
  45. package/dist/cjs/helpers/__tests__/resolveDatadogLoggingDestination.spec.d.ts +1 -0
  46. package/dist/cjs/helpers/__tests__/resolveEnvironment.spec.d.ts +1 -0
  47. package/dist/cjs/helpers/__tests__/resolveSecrets.spec.d.ts +1 -0
  48. package/dist/cjs/helpers/addDatadogLayers.d.ts +5 -0
  49. package/dist/cjs/helpers/constructEnvName.d.ts +5 -0
  50. package/dist/cjs/helpers/constructStackName.d.ts +1 -0
  51. package/dist/cjs/helpers/constructTagger.d.ts +4 -0
  52. package/dist/cjs/helpers/envHostname.d.ts +6 -0
  53. package/dist/cjs/helpers/extendDatadogRole.d.ts +31 -0
  54. package/dist/cjs/helpers/index.d.ts +18 -0
  55. package/dist/cjs/helpers/isEnv.d.ts +12 -0
  56. package/dist/cjs/helpers/isValidHostname.d.ts +1 -0
  57. package/dist/cjs/helpers/isValidSubdomain.d.ts +1 -0
  58. package/dist/cjs/helpers/jaypieLambdaEnv.d.ts +8 -0
  59. package/dist/cjs/helpers/mergeDomain.d.ts +1 -0
  60. package/dist/cjs/helpers/resolveDatadogForwarderFunction.d.ts +7 -0
  61. package/dist/cjs/helpers/resolveDatadogLayers.d.ts +7 -0
  62. package/dist/cjs/helpers/resolveDatadogLoggingDestination.d.ts +4 -0
  63. package/dist/cjs/helpers/resolveEnvironment.d.ts +47 -0
  64. package/dist/cjs/helpers/resolveHostedZone.d.ts +6 -0
  65. package/dist/cjs/helpers/resolveParamsAndSecrets.d.ts +13 -0
  66. package/dist/cjs/helpers/resolveSecrets.d.ts +52 -0
  67. package/dist/cjs/index.cjs +3503 -0
  68. package/dist/cjs/index.cjs.map +1 -0
  69. package/dist/cjs/index.d.ts +29 -0
  70. package/dist/esm/JaypieAccountLoggingBucket.d.ts +60 -0
  71. package/dist/esm/JaypieApiGateway.d.ts +47 -0
  72. package/dist/esm/JaypieAppStack.d.ts +5 -0
  73. package/dist/esm/JaypieBucketQueuedLambda.d.ts +48 -0
  74. package/dist/esm/JaypieDatadogBucket.d.ts +55 -0
  75. package/dist/esm/JaypieDatadogForwarder.d.ts +76 -0
  76. package/dist/esm/JaypieDatadogSecret.d.ts +5 -0
  77. package/dist/esm/JaypieDistribution.d.ts +76 -0
  78. package/dist/esm/JaypieDnsRecord.d.ts +45 -0
  79. package/dist/esm/JaypieEnvSecret.d.ts +41 -0
  80. package/dist/esm/JaypieEventsRule.d.ts +45 -0
  81. package/dist/esm/JaypieExpressLambda.d.ts +5 -0
  82. package/dist/esm/JaypieGitHubDeployRole.d.ts +14 -0
  83. package/dist/esm/JaypieHostedZone.d.ts +59 -0
  84. package/dist/esm/JaypieInfrastructureStack.d.ts +5 -0
  85. package/dist/esm/JaypieLambda.d.ts +115 -0
  86. package/dist/esm/JaypieMongoDbSecret.d.ts +5 -0
  87. package/dist/esm/JaypieNextJs.d.ts +36 -0
  88. package/dist/esm/JaypieNextJs.test.d.ts +1 -0
  89. package/dist/esm/JaypieOpenAiSecret.d.ts +5 -0
  90. package/dist/esm/JaypieOrganizationTrail.d.ts +62 -0
  91. package/dist/esm/JaypieQueuedLambda.d.ts +77 -0
  92. package/dist/esm/JaypieSsoPermissions.d.ts +96 -0
  93. package/dist/esm/JaypieSsoSyncApplication.d.ts +27 -0
  94. package/dist/esm/JaypieStack.d.ts +8 -0
  95. package/dist/esm/JaypieStaticWebBucket.d.ts +22 -0
  96. package/dist/esm/JaypieTraceSigningKeySecret.d.ts +5 -0
  97. package/dist/esm/JaypieWebDeploymentBucket.d.ts +84 -0
  98. package/dist/esm/__tests__/JaypieBucketQueuedLambda.spec.d.ts +1 -0
  99. package/dist/esm/__tests__/JaypieDistribution.spec.d.ts +1 -0
  100. package/dist/esm/__tests__/JaypieDnsRecord.spec.d.ts +1 -0
  101. package/dist/esm/__tests__/JaypieEnvSecret.spec.d.ts +1 -0
  102. package/dist/esm/__tests__/JaypieExpressLambda.spec.d.ts +1 -0
  103. package/dist/esm/__tests__/JaypieHostedZone.spec.d.ts +1 -0
  104. package/dist/esm/__tests__/JaypieLambda.spec.d.ts +1 -0
  105. package/dist/esm/__tests__/JaypieQueuedLambda.spec.d.ts +1 -0
  106. package/dist/esm/__tests__/JaypieSsoPermissions.spec.d.ts +1 -0
  107. package/dist/esm/__tests__/JaypieSsoSyncApplication.spec.d.ts +1 -0
  108. package/dist/esm/__tests__/JaypieStaticWebBucket.spec.d.ts +1 -0
  109. package/dist/esm/__tests__/index.spec.d.ts +1 -0
  110. package/dist/esm/constants.d.ts +151 -0
  111. package/dist/esm/helpers/__tests__/envHostname.spec.d.ts +1 -0
  112. package/dist/esm/helpers/__tests__/jaypieLambdaEnv.spec.d.ts +1 -0
  113. package/dist/esm/helpers/__tests__/resolveDatadogForwarderFunction.spec.d.ts +1 -0
  114. package/dist/esm/helpers/__tests__/resolveDatadogLoggingDestination.spec.d.ts +1 -0
  115. package/dist/esm/helpers/__tests__/resolveEnvironment.spec.d.ts +1 -0
  116. package/dist/esm/helpers/__tests__/resolveSecrets.spec.d.ts +1 -0
  117. package/dist/esm/helpers/addDatadogLayers.d.ts +5 -0
  118. package/dist/esm/helpers/constructEnvName.d.ts +5 -0
  119. package/dist/esm/helpers/constructStackName.d.ts +1 -0
  120. package/dist/esm/helpers/constructTagger.d.ts +4 -0
  121. package/dist/esm/helpers/envHostname.d.ts +6 -0
  122. package/dist/esm/helpers/extendDatadogRole.d.ts +31 -0
  123. package/dist/esm/helpers/index.d.ts +18 -0
  124. package/dist/esm/helpers/isEnv.d.ts +12 -0
  125. package/dist/esm/helpers/isValidHostname.d.ts +1 -0
  126. package/dist/esm/helpers/isValidSubdomain.d.ts +1 -0
  127. package/dist/esm/helpers/jaypieLambdaEnv.d.ts +8 -0
  128. package/dist/esm/helpers/mergeDomain.d.ts +1 -0
  129. package/dist/esm/helpers/resolveDatadogForwarderFunction.d.ts +7 -0
  130. package/dist/esm/helpers/resolveDatadogLayers.d.ts +7 -0
  131. package/dist/esm/helpers/resolveDatadogLoggingDestination.d.ts +4 -0
  132. package/dist/esm/helpers/resolveEnvironment.d.ts +47 -0
  133. package/dist/esm/helpers/resolveHostedZone.d.ts +6 -0
  134. package/dist/esm/helpers/resolveParamsAndSecrets.d.ts +13 -0
  135. package/dist/esm/helpers/resolveSecrets.d.ts +52 -0
  136. package/dist/esm/index.d.ts +29 -0
  137. package/dist/esm/index.js +3423 -0
  138. package/dist/esm/index.js.map +1 -0
  139. package/package.json +2 -2
@@ -0,0 +1,151 @@
1
+ export declare const CDK: {
2
+ ACCOUNT: {
3
+ DEVELOPMENT: string;
4
+ MANAGEMENT: string;
5
+ OPERATIONS: string;
6
+ PRODUCTION: string;
7
+ SANDBOX: string;
8
+ SECURITY: string;
9
+ STAGE: string;
10
+ };
11
+ BUILD: {
12
+ CONFIG: {
13
+ ALL: string;
14
+ API: string;
15
+ INFRASTRUCTURE: string;
16
+ NONE: string;
17
+ WEB: string;
18
+ };
19
+ PERSONAL: string;
20
+ /**
21
+ * @deprecated rename "ephemeral" to "personal" (since 2/24/2025)
22
+ */
23
+ EPHEMERAL: string;
24
+ /**
25
+ * @deprecated as even "ephemeral" builds have static assets (since 7/6/2024)
26
+ */
27
+ STATIC: string;
28
+ };
29
+ CREATION: {
30
+ CDK: string;
31
+ CLOUDFORMATION_TEMPLATE: string;
32
+ MANUAL: string;
33
+ };
34
+ DATADOG: {
35
+ SITE: string;
36
+ LAYER: {
37
+ NODE: number;
38
+ EXTENSION: number;
39
+ };
40
+ };
41
+ DEFAULT: {
42
+ REGION: string;
43
+ };
44
+ DNS: {
45
+ CONFIG: {
46
+ TTL: number;
47
+ };
48
+ RECORD: {
49
+ A: string;
50
+ CNAME: string;
51
+ MX: string;
52
+ NS: string;
53
+ TXT: string;
54
+ };
55
+ };
56
+ DURATION: {
57
+ EXPRESS_API: number;
58
+ LAMBDA_MAXIMUM: number;
59
+ LAMBDA_WORKER: number;
60
+ };
61
+ ENV: {
62
+ DEMO: string;
63
+ DEVELOPMENT: string;
64
+ /** @deprecated */ EPHEMERAL: string;
65
+ LOCAL: string;
66
+ /** @deprecated */ MAIN: string;
67
+ META: string;
68
+ PERSONAL: string;
69
+ PREVIEW: string;
70
+ PRODUCTION: string;
71
+ RELEASE: string;
72
+ REVIEW: string;
73
+ SANDBOX: string;
74
+ TRAINING: string;
75
+ };
76
+ HOST: {
77
+ APEX: string;
78
+ };
79
+ IMPORT: {
80
+ DATADOG_LOG_FORWARDER: string;
81
+ DATADOG_ROLE: string;
82
+ DATADOG_SECRET: string;
83
+ LOG_BUCKET: string;
84
+ OIDC_PROVIDER: string;
85
+ };
86
+ LAMBDA: {
87
+ LOG_RETENTION: number;
88
+ MEMORY_SIZE: number;
89
+ };
90
+ PRINCIPAL: {
91
+ ROUTE53: string;
92
+ };
93
+ PRINCIPAL_TYPE: {
94
+ GROUP: string;
95
+ USER: string;
96
+ };
97
+ PROJECT: {
98
+ INFRASTRUCTURE: string;
99
+ };
100
+ ROLE: {
101
+ API: string;
102
+ DEPLOY: string;
103
+ HOSTING: string;
104
+ MONITORING: string;
105
+ NETWORKING: string;
106
+ PROCESSING: string;
107
+ SECURITY: string;
108
+ STACK: string;
109
+ STORAGE: string;
110
+ TOY: string;
111
+ };
112
+ SERVICE: {
113
+ DATADOG: string;
114
+ INFRASTRUCTURE: string;
115
+ LIBRARIES: string;
116
+ NONE: string;
117
+ SSO: string;
118
+ TRACE: string;
119
+ };
120
+ TAG: {
121
+ BUILD_DATE: string;
122
+ BUILD_HEX: string;
123
+ BUILD_NUMBER: string;
124
+ BUILD_TIME: string;
125
+ BUILD_TYPE: string;
126
+ COMMIT: string;
127
+ CREATION: string;
128
+ ENV: string;
129
+ NONCE: string;
130
+ PROJECT: string;
131
+ ROLE: string;
132
+ SERVICE: string;
133
+ SPONSOR: string;
134
+ STACK: string;
135
+ STACK_SHA: string;
136
+ VENDOR: string;
137
+ VERSION: string;
138
+ };
139
+ TARGET_TYPE: {
140
+ AWS_ACCOUNT: string;
141
+ };
142
+ VENDOR: {
143
+ ANTHROPIC: string;
144
+ AUTH0: string;
145
+ DATADOG: string;
146
+ KNOWTRACE: string;
147
+ MONGODB: string;
148
+ OPENAI: string;
149
+ SPLINTERLANDS: string;
150
+ };
151
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import * as lambda from "aws-cdk-lib/aws-lambda";
2
+ export interface AddDatadogLayerOptions {
3
+ datadogApiKeyArn?: string;
4
+ }
5
+ export declare function addDatadogLayers(lambdaFunction: lambda.Function, options?: AddDatadogLayerOptions): boolean;
@@ -0,0 +1,5 @@
1
+ export declare function constructEnvName(name: string, opts?: {
2
+ env?: string;
3
+ key?: string;
4
+ nonce?: string;
5
+ }): string;
@@ -0,0 +1 @@
1
+ export declare function constructStackName(key?: string): string;
@@ -0,0 +1,4 @@
1
+ import { Construct } from "constructs";
2
+ export declare function constructTagger(construct: Construct, { name }?: {
3
+ name?: string;
4
+ }): boolean;
@@ -0,0 +1,6 @@
1
+ export declare function envHostname({ component, domain, env, subdomain, }?: {
2
+ component?: string;
3
+ domain?: string;
4
+ env?: string;
5
+ subdomain?: string;
6
+ }): string;
@@ -0,0 +1,31 @@
1
+ import { Policy } from "aws-cdk-lib/aws-iam";
2
+ import { Construct } from "constructs";
3
+ export interface ExtendDatadogRoleOptions {
4
+ /**
5
+ * Optional construct ID for the policy
6
+ * @default "DatadogCustomPolicy"
7
+ */
8
+ id?: string;
9
+ /**
10
+ * The service tag value
11
+ * @default CDK.SERVICE.DATADOG
12
+ */
13
+ service?: string;
14
+ /**
15
+ * Optional project tag value
16
+ */
17
+ project?: string;
18
+ }
19
+ /**
20
+ * Extends the Datadog IAM role with additional permissions
21
+ *
22
+ * Checks for CDK_ENV_DATADOG_ROLE_ARN environment variable.
23
+ * If found, creates a custom policy with:
24
+ * - budgets:ViewBudget
25
+ * - logs:DescribeLogGroups
26
+ *
27
+ * @param scope - The construct scope
28
+ * @param options - Configuration options
29
+ * @returns The created Policy, or undefined if CDK_ENV_DATADOG_ROLE_ARN is not set
30
+ */
31
+ export declare function extendDatadogRole(scope: Construct, options?: ExtendDatadogRoleOptions): Policy | undefined;
@@ -0,0 +1,18 @@
1
+ export { addDatadogLayers } from "./addDatadogLayers";
2
+ export { constructEnvName } from "./constructEnvName";
3
+ export { constructStackName } from "./constructStackName";
4
+ export { constructTagger } from "./constructTagger";
5
+ export { envHostname } from "./envHostname";
6
+ export { extendDatadogRole, ExtendDatadogRoleOptions, } from "./extendDatadogRole";
7
+ export { isEnv, isProductionEnv, isSandboxEnv } from "./isEnv";
8
+ export { isValidHostname } from "./isValidHostname";
9
+ export { isValidSubdomain } from "./isValidSubdomain";
10
+ export { jaypieLambdaEnv } from "./jaypieLambdaEnv";
11
+ export { mergeDomain } from "./mergeDomain";
12
+ export { resolveDatadogForwarderFunction } from "./resolveDatadogForwarderFunction";
13
+ export { resolveDatadogLayers } from "./resolveDatadogLayers";
14
+ export { resolveDatadogLoggingDestination } from "./resolveDatadogLoggingDestination";
15
+ export { resolveEnvironment, EnvironmentArrayItem, EnvironmentInput, } from "./resolveEnvironment";
16
+ export { resolveHostedZone } from "./resolveHostedZone";
17
+ export { resolveParamsAndSecrets } from "./resolveParamsAndSecrets";
18
+ export { resolveSecrets, SecretsArrayItem, clearSecretsCache, clearAllSecretsCaches, } from "./resolveSecrets";
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Check if the current environment matches the given environment
3
+ */
4
+ export declare function isEnv(env: string): boolean;
5
+ /**
6
+ * Check if the current environment is production
7
+ */
8
+ export declare function isProductionEnv(): boolean;
9
+ /**
10
+ * Check if the current environment is sandbox
11
+ */
12
+ export declare function isSandboxEnv(): boolean;
@@ -0,0 +1 @@
1
+ export declare function isValidHostname(hostname: string): boolean;
@@ -0,0 +1 @@
1
+ export declare function isValidSubdomain(subdomain: string): boolean;
@@ -0,0 +1,8 @@
1
+ export interface JaypieLambdaEnvOptions {
2
+ initialEnvironment?: {
3
+ [key: string]: string;
4
+ };
5
+ }
6
+ export declare function jaypieLambdaEnv(options?: JaypieLambdaEnvOptions): {
7
+ [key: string]: string;
8
+ };
@@ -0,0 +1 @@
1
+ export declare function mergeDomain(subDomain: string, hostedZone: string): string;
@@ -0,0 +1,7 @@
1
+ import * as lambda from "aws-cdk-lib/aws-lambda";
2
+ import { Construct } from "constructs";
3
+ export interface ResolveDatadogForwarderFunctionOptions {
4
+ import?: string;
5
+ name?: string;
6
+ }
7
+ export declare function resolveDatadogForwarderFunction(scope: Construct, options?: ResolveDatadogForwarderFunctionOptions): lambda.IFunction;
@@ -0,0 +1,7 @@
1
+ import * as lambda from "aws-cdk-lib/aws-lambda";
2
+ import { Construct } from "constructs";
3
+ export interface ResolveDatadogLayerOptions {
4
+ datadogApiKeyArn?: string;
5
+ uniqueId?: string;
6
+ }
7
+ export declare function resolveDatadogLayers(scope: Construct, options?: ResolveDatadogLayerOptions): lambda.ILayerVersion[] | undefined;
@@ -0,0 +1,4 @@
1
+ import * as logDestinations from "aws-cdk-lib/aws-logs-destinations";
2
+ import { Construct } from "constructs";
3
+ import { ResolveDatadogForwarderFunctionOptions } from "./resolveDatadogForwarderFunction";
4
+ export declare function resolveDatadogLoggingDestination(scope: Construct, options?: ResolveDatadogForwarderFunctionOptions): logDestinations.LambdaDestination;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Environment value type for the new array syntax
3
+ * - string: key to lookup in process.env
4
+ * - object: key-value pairs to include directly
5
+ */
6
+ export type EnvironmentArrayItem = string | {
7
+ [key: string]: string;
8
+ };
9
+ /**
10
+ * Environment type that supports both legacy object syntax and new array syntax
11
+ */
12
+ export type EnvironmentInput = {
13
+ [key: string]: string;
14
+ } | EnvironmentArrayItem[];
15
+ /**
16
+ * Resolves environment input to a plain object.
17
+ *
18
+ * When environment is an object (legacy syntax), returns it as-is.
19
+ * When environment is an array:
20
+ * - Strings are treated as keys to lookup in process.env
21
+ * - Objects have their key-value pairs merged in
22
+ *
23
+ * @example
24
+ * // Legacy object syntax
25
+ * resolveEnvironment({ FOO: "bar" })
26
+ * // => { FOO: "bar" }
27
+ *
28
+ * @example
29
+ * // Array syntax with process.env lookup
30
+ * // Given process.env.MY_VAR = "hello"
31
+ * resolveEnvironment(["MY_VAR"])
32
+ * // => { MY_VAR: "hello" }
33
+ *
34
+ * @example
35
+ * // Array syntax with objects
36
+ * resolveEnvironment([{ FOO: "bar", BAZ: "qux" }])
37
+ * // => { FOO: "bar", BAZ: "qux" }
38
+ *
39
+ * @example
40
+ * // Mixed array syntax
41
+ * // Given process.env.MY_VAR = "hello"
42
+ * resolveEnvironment(["MY_VAR", { FOO: "bar" }])
43
+ * // => { MY_VAR: "hello", FOO: "bar" }
44
+ */
45
+ export declare function resolveEnvironment(environment?: EnvironmentInput, env?: Record<string, string | undefined>): {
46
+ [key: string]: string;
47
+ };
@@ -0,0 +1,6 @@
1
+ import { Construct } from "constructs";
2
+ import * as route53 from "aws-cdk-lib/aws-route53";
3
+ export declare function resolveHostedZone(scope: Construct, { name, zone, }?: {
4
+ name?: string;
5
+ zone?: string | route53.IHostedZone;
6
+ }): route53.IHostedZone;
@@ -0,0 +1,13 @@
1
+ import { Duration } from "aws-cdk-lib";
2
+ import * as lambda from "aws-cdk-lib/aws-lambda";
3
+ export interface ResolveParamsAndSecretsOptions {
4
+ cacheSize?: number;
5
+ logLevel?: lambda.ParamsAndSecretsLogLevel;
6
+ parameterStoreTtl?: Duration;
7
+ secretsManagerTtl?: Duration;
8
+ }
9
+ export declare const resolveParamsAndSecrets: ({ paramsAndSecrets, options, }?: {
10
+ paramsAndSecrets?: lambda.ParamsAndSecretsLayerVersion | boolean;
11
+ options?: ResolveParamsAndSecretsOptions;
12
+ }) => lambda.ParamsAndSecretsLayerVersion | undefined;
13
+ export default resolveParamsAndSecrets;
@@ -0,0 +1,52 @@
1
+ import { Construct } from "constructs";
2
+ import { JaypieEnvSecret } from "../JaypieEnvSecret.js";
3
+ /**
4
+ * Secrets input type that supports both JaypieEnvSecret instances and strings
5
+ * - JaypieEnvSecret: passed through as-is
6
+ * - string: converted to JaypieEnvSecret with the string as envKey
7
+ */
8
+ export type SecretsArrayItem = JaypieEnvSecret | string;
9
+ /**
10
+ * Resolves secrets input to an array of JaypieEnvSecret instances.
11
+ *
12
+ * When an item is already a JaypieEnvSecret, it's passed through as-is.
13
+ * When an item is a string, a JaypieEnvSecret is created (or reused from cache)
14
+ * with the string as the envKey.
15
+ *
16
+ * Secrets are cached per scope to avoid creating duplicate secrets when
17
+ * multiple constructs in the same scope reference the same secret.
18
+ *
19
+ * @example
20
+ * // JaypieEnvSecret instances pass through
21
+ * const secret = new JaypieEnvSecret(scope, "MySecret", { envKey: "MY_KEY" });
22
+ * resolveSecrets(scope, [secret])
23
+ * // => [secret]
24
+ *
25
+ * @example
26
+ * // Strings create JaypieEnvSecret instances
27
+ * resolveSecrets(scope, ["AUTH0_SECRET", "MONGODB_URI"])
28
+ * // => [JaypieEnvSecret(envKey: "AUTH0_SECRET"), JaypieEnvSecret(envKey: "MONGODB_URI")]
29
+ *
30
+ * @example
31
+ * // Mixed input
32
+ * const existingSecret = new JaypieEnvSecret(scope, "Existing", { envKey: "EXISTING" });
33
+ * resolveSecrets(scope, [existingSecret, "NEW_SECRET"])
34
+ * // => [existingSecret, JaypieEnvSecret(envKey: "NEW_SECRET")]
35
+ *
36
+ * @example
37
+ * // Secrets are shared across calls with the same scope
38
+ * const secrets1 = resolveSecrets(scope, ["SHARED_SECRET"]);
39
+ * const secrets2 = resolveSecrets(scope, ["SHARED_SECRET"]);
40
+ * // secrets1[0] === secrets2[0] (same instance)
41
+ */
42
+ export declare function resolveSecrets(scope: Construct, secrets?: SecretsArrayItem[]): JaypieEnvSecret[];
43
+ /**
44
+ * Clears the secrets cache for a given scope.
45
+ * Primarily useful for testing.
46
+ */
47
+ export declare function clearSecretsCache(scope: Construct): void;
48
+ /**
49
+ * Clears all secrets caches.
50
+ * Primarily useful for testing.
51
+ */
52
+ export declare function clearAllSecretsCaches(): void;