@fjall/generator 0.94.1 → 0.96.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/dist/.minified +1 -1
- package/dist/src/ast/astCodeInjection.d.ts +9 -0
- package/dist/src/ast/astCodeInjection.js +8 -0
- package/dist/src/ast/astInfrastructureParser.d.ts +1 -1
- package/dist/src/ast/astStatementClassifier.d.ts +2 -2
- package/dist/src/ast/astStatementClassifier.js +1 -1
- package/dist/src/ast/astStatementQueries.d.ts +4 -4
- package/dist/src/ast/astStatementQueries.js +3 -3
- package/dist/src/ast/astSurgicalModification.d.ts +14 -12
- package/dist/src/ast/astSurgicalModification.js +6 -13
- package/dist/src/ast/astTestHelpers.d.ts +7 -7
- package/dist/src/ast/index.d.ts +3 -2
- package/dist/src/ast/index.js +1 -1
- package/dist/src/codemod/_internal.d.ts +6 -1
- package/dist/src/codemod/_internal.js +1 -1
- package/dist/src/codemod/drift/__tests__/fixtures.d.ts +55 -0
- package/dist/src/codemod/drift/__tests__/fixtures.js +2 -0
- package/dist/src/codemod/drift/detect.d.ts +11 -0
- package/dist/src/codemod/drift/detect.js +1 -0
- package/dist/src/codemod/drift/index.d.ts +4 -0
- package/dist/src/codemod/drift/index.js +1 -0
- package/dist/src/codemod/drift/merge.d.ts +19 -0
- package/dist/src/codemod/drift/merge.js +1 -0
- package/dist/src/codemod/drift/snapshot.d.ts +4 -0
- package/dist/src/codemod/drift/snapshot.js +1 -0
- package/dist/src/codemod/drift/types.d.ts +60 -0
- package/dist/src/codemod/drift/types.js +1 -0
- package/dist/src/codemod/edits/addResource/propertyBuilder.d.ts +1 -1
- package/dist/src/codemod/edits/addResource/propertyBuilder.js +1 -1
- package/dist/src/codemod/edits/addResource.d.ts +8 -3
- package/dist/src/codemod/edits/addResource.js +1 -1
- package/dist/src/codemod/edits/controlFlowPolicy.d.ts +19 -0
- package/dist/src/codemod/edits/controlFlowPolicy.js +1 -0
- package/dist/src/codemod/edits/crossPlanConnection.d.ts +24 -0
- package/dist/src/codemod/edits/crossPlanConnection.js +1 -0
- package/dist/src/codemod/edits/driftPolicy.d.ts +7 -0
- package/dist/src/codemod/edits/driftPolicy.js +1 -0
- package/dist/src/codemod/edits/findInsertionPosition.js +1 -1
- package/dist/src/codemod/edits/index.d.ts +3 -0
- package/dist/src/codemod/edits/index.js +1 -1
- package/dist/src/codemod/edits/modifyResource.d.ts +9 -3
- package/dist/src/codemod/edits/modifyResource.js +1 -1
- package/dist/src/codemod/edits/removeResource.d.ts +2 -2
- package/dist/src/codemod/edits/removeResource.js +1 -1
- package/dist/src/codemod/edits/vpcPeer.d.ts +28 -0
- package/dist/src/codemod/edits/vpcPeer.js +1 -0
- package/dist/src/codemod/edits/vpcPeerAccepter.d.ts +23 -0
- package/dist/src/codemod/edits/vpcPeerAccepter.js +1 -0
- package/dist/src/codemod/index.d.ts +16 -4
- package/dist/src/codemod/index.js +1 -1
- package/dist/src/codemod/llmFallback/__tests__/fixtures.d.ts +5 -0
- package/dist/src/codemod/llmFallback/__tests__/fixtures.js +7 -0
- package/dist/src/codemod/llmFallback/apply.d.ts +10 -0
- package/dist/src/codemod/llmFallback/apply.js +1 -0
- package/dist/src/codemod/llmFallback/claudeTier.d.ts +6 -0
- package/dist/src/codemod/llmFallback/claudeTier.js +1 -0
- package/dist/src/codemod/llmFallback/egressGate.d.ts +5 -0
- package/dist/src/codemod/llmFallback/egressGate.js +1 -0
- package/dist/src/codemod/llmFallback/egressGate.types.d.ts +9 -0
- package/dist/src/codemod/llmFallback/egressGate.types.js +0 -0
- package/dist/src/codemod/llmFallback/index.d.ts +6 -0
- package/dist/src/codemod/llmFallback/index.js +1 -0
- package/dist/src/codemod/llmFallback/morphTier.d.ts +2 -0
- package/dist/src/codemod/llmFallback/morphTier.js +3 -0
- package/dist/src/codemod/llmFallback/prompt.d.ts +12 -0
- package/dist/src/codemod/llmFallback/prompt.js +36 -0
- package/dist/src/codemod/llmFallback/runFallback.d.ts +13 -0
- package/dist/src/codemod/llmFallback/runFallback.js +1 -0
- package/dist/src/codemod/llmFallback/shouldTryFallback.d.ts +13 -0
- package/dist/src/codemod/llmFallback/shouldTryFallback.js +1 -0
- package/dist/src/codemod/llmFallback/signals.d.ts +4 -0
- package/dist/src/codemod/llmFallback/signals.js +1 -0
- package/dist/src/codemod/llmFallback/telemetryEvents.d.ts +141 -0
- package/dist/src/codemod/llmFallback/telemetryEvents.js +1 -0
- package/dist/src/codemod/llmFallback/tierRunner.d.ts +7 -0
- package/dist/src/codemod/llmFallback/tierRunner.js +1 -0
- package/dist/src/codemod/llmFallback/types.d.ts +104 -0
- package/dist/src/codemod/llmFallback/types.js +1 -0
- package/dist/src/codemod/registry.d.ts +4 -1
- package/dist/src/codemod/registry.js +1 -1
- package/dist/src/codemod/semanticIndex/classifyControlFlow.d.ts +2 -0
- package/dist/src/codemod/semanticIndex/classifyControlFlow.js +1 -0
- package/dist/src/codemod/semanticIndex/findReferences.js +2 -2
- package/dist/src/codemod/telemetry/__tests__/errorKinds.fixture.d.ts +1 -0
- package/dist/src/codemod/telemetry/__tests__/errorKinds.fixture.js +1 -0
- package/dist/src/codemod/telemetry/errorKinds.d.ts +2 -0
- package/dist/src/codemod/telemetry/errorKinds.js +1 -0
- package/dist/src/codemod/types.d.ts +105 -1
- package/dist/src/codemod/types.js +1 -1
- package/dist/src/codemod/validationGate/gates/classify.d.ts +2 -0
- package/dist/src/codemod/validationGate/gates/classify.js +1 -0
- package/dist/src/codemod/validationGate/gates/drift.d.ts +2 -0
- package/dist/src/codemod/validationGate/gates/drift.js +1 -0
- package/dist/src/codemod/validationGate/gates/locate.d.ts +7 -0
- package/dist/src/codemod/validationGate/gates/locate.js +1 -0
- package/dist/src/codemod/validationGate/gates/parse.d.ts +2 -0
- package/dist/src/codemod/validationGate/gates/parse.js +1 -0
- package/dist/src/codemod/validationGate/gates/schema.d.ts +2 -0
- package/dist/src/codemod/validationGate/gates/schema.js +1 -0
- package/dist/src/codemod/validationGate/index.d.ts +6 -0
- package/dist/src/codemod/validationGate/index.js +1 -0
- package/dist/src/codemod/validationGate/types.d.ts +35 -0
- package/dist/src/codemod/validationGate/types.js +1 -0
- package/dist/src/dns/domainFileGenerator.js +22 -183
- package/dist/src/index.js +1 -21
- package/dist/src/planning/index.d.ts +2 -1
- package/dist/src/planning/index.js +1 -1
- package/dist/src/planning/openNextPlanning.d.ts +38 -0
- package/dist/src/planning/openNextPlanning.js +1 -0
- package/dist/src/planning/resourcePlanning.d.ts +0 -46
- package/dist/src/planning/resourcePlanning.js +1 -1
- package/dist/src/schemas/applicationSchemas.d.ts +16 -0
- package/dist/src/schemas/applicationSchemas.js +1 -1
- package/dist/src/schemas/baseSchemas.d.ts +8 -5
- package/dist/src/schemas/baseSchemas.js +2 -2
- package/dist/src/schemas/networkSchemas.d.ts +119 -5
- package/dist/src/schemas/networkSchemas.js +1 -1
- package/dist/src/validation/patterns.d.ts +2 -318
- package/dist/src/validation/patterns.js +1 -1
- package/dist/src/validation/validationMessages.d.ts +314 -0
- package/dist/src/validation/validationMessages.js +1 -0
- package/dist/src/validation/validationPatterns.d.ts +20 -0
- package/dist/src/validation/validationPatterns.js +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/package.json +3 -3
|
@@ -1,207 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
import { toPascalCase } from "../generation/common.js";
|
|
7
|
-
import { GENERATOR_VERSION } from "../version.js";
|
|
8
|
-
/**
|
|
9
|
-
* Generates all files for a domain component as pure strings.
|
|
10
|
-
* Returns a `GeneratedFile[]` ready for the GitHub PR pipeline.
|
|
11
|
-
*/
|
|
12
|
-
export function generateDomainFiles(options) {
|
|
13
|
-
const { domainName, hostedZoneId, records = [] } = options;
|
|
14
|
-
const basePath = `fjall/domains/${domainName}`;
|
|
15
|
-
const zone = {
|
|
16
|
-
origin: domainName,
|
|
17
|
-
ttl: 300,
|
|
18
|
-
records,
|
|
19
|
-
delegations: [],
|
|
20
|
-
certificates: [{ domainName, subjectAlternativeNames: [] }],
|
|
21
|
-
};
|
|
22
|
-
return [
|
|
23
|
-
{
|
|
24
|
-
path: `${basePath}/zone.bind`,
|
|
25
|
-
content: records.length > 0
|
|
26
|
-
? generateZoneFile(zone)
|
|
27
|
-
: generateDefaultZoneFile(domainName),
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
path: `${basePath}/infrastructure.ts`,
|
|
31
|
-
content: generateDefaultInfrastructureTs({
|
|
32
|
-
domainName,
|
|
33
|
-
records,
|
|
34
|
-
hostedZoneId,
|
|
35
|
-
}),
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
path: `${basePath}/package.json`,
|
|
39
|
-
content: generateDomainPackageJson(domainName),
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
path: `${basePath}/tsconfig.json`,
|
|
43
|
-
content: TSCONFIG_CONTENT,
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
path: `${basePath}/cdk.json`,
|
|
47
|
-
content: CDK_JSON_CONTENT,
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
path: `${basePath}/.gitignore`,
|
|
51
|
-
content: GITIGNORE_CONTENT,
|
|
52
|
-
},
|
|
53
|
-
];
|
|
54
|
-
}
|
|
55
|
-
// Lightweight default-scaffold emitter for the webapp PR pipeline.
|
|
56
|
-
// The CLI uses the richer `tsEmitter` in `@fjall/cli` for import-flow output.
|
|
57
|
-
function generateDefaultInfrastructureTs(args) {
|
|
58
|
-
const { domainName, records, hostedZoneId } = args;
|
|
59
|
-
const safeZoneName = toPascalCase(domainName.split(".").join(""));
|
|
60
|
-
const recordLines = records.map((r) => {
|
|
61
|
-
const ttl = r.ttl !== undefined ? `, ttl: ${r.ttl}` : "";
|
|
62
|
-
return ` { type: ${JSON.stringify(r.type)}, name: ${JSON.stringify(r.name)}, value: ${JSON.stringify(r.value)}${ttl} },`;
|
|
63
|
-
});
|
|
64
|
-
const recordsBlock = recordLines.length > 0 ? `[\n${recordLines.join("\n")}\n ]` : "[]";
|
|
65
|
-
const hostedZoneLine = hostedZoneId
|
|
66
|
-
? ` hostedZoneId: ${JSON.stringify(hostedZoneId)},\n`
|
|
67
|
-
: "";
|
|
68
|
-
return `import {
|
|
1
|
+
import{generateZoneFile as d}from"./bindWriter.js";import{toPascalCase as p}from"../generation/common.js";import{GENERATOR_VERSION as c}from"../version.js";function $(e){const{domainName:t,hostedZoneId:o,records:a=[]}=e,s=`fjall/domains/${t}`,n={origin:t,ttl:300,records:a,delegations:[],certificates:[{domainName:t,subjectAlternativeNames:[]}]};return[{path:`${s}/zone.bind`,content:a.length>0?d(n):w(t)},{path:`${s}/infrastructure.ts`,content:m({domainName:t,records:a,hostedZoneId:o})},{path:`${s}/package.json`,content:f(t)},{path:`${s}/tsconfig.json`,content:k},{path:`${s}/cdk.json`,content:y},{path:`${s}/.gitignore`,content:g}]}function m(e){const{domainName:t,records:o,hostedZoneId:a}=e,s=p(t.split(".").join("")),n=o.map(r=>{const l=r.ttl!==void 0?`, ttl: ${r.ttl}`:"";return` { type: ${JSON.stringify(r.type)}, name: ${JSON.stringify(r.name)}, value: ${JSON.stringify(r.value)}${l} },`}),i=n.length>0?`[
|
|
2
|
+
${n.join(`
|
|
3
|
+
`)}
|
|
4
|
+
]`:"[]",u=a?` hostedZoneId: ${JSON.stringify(a)},
|
|
5
|
+
`:"";return`import {
|
|
69
6
|
App,
|
|
70
7
|
Domain,
|
|
71
8
|
} from "@fjall/components-infrastructure";
|
|
72
9
|
|
|
73
|
-
// Fjall-managed domain
|
|
10
|
+
// Fjall-managed domain \u2014 edit this file to add or change records.
|
|
74
11
|
// See docs/domains.md for the Domain construct API.
|
|
75
12
|
|
|
76
|
-
const app = App.getApp(${JSON.stringify(`${
|
|
13
|
+
const app = App.getApp(${JSON.stringify(`${s}Domain`)});
|
|
77
14
|
|
|
78
|
-
new Domain(app, ${JSON.stringify(
|
|
15
|
+
new Domain(app, ${JSON.stringify(s)}, {
|
|
79
16
|
registrar: "route53",
|
|
80
|
-
zoneName: ${JSON.stringify(
|
|
81
|
-
${
|
|
82
|
-
{ domainName: ${JSON.stringify(
|
|
17
|
+
zoneName: ${JSON.stringify(t)},
|
|
18
|
+
${u} certificates: [
|
|
19
|
+
{ domainName: ${JSON.stringify(t)} },
|
|
83
20
|
],
|
|
84
|
-
records: ${
|
|
21
|
+
records: ${i},
|
|
85
22
|
});
|
|
86
|
-
`;
|
|
87
|
-
}
|
|
88
|
-
// ─── File content generators ────────────────────────────────────────────────
|
|
89
|
-
function generateDefaultZoneFile(domainName) {
|
|
90
|
-
return `; zone.bind — advisory copy only (Fjall reads infrastructure.ts)
|
|
23
|
+
`}function w(e){return`; zone.bind \u2014 advisory copy only (Fjall reads infrastructure.ts)
|
|
91
24
|
; This file is written at import time with --preserve-bind; edit infrastructure.ts to change records
|
|
92
|
-
$ORIGIN ${
|
|
25
|
+
$ORIGIN ${e}.
|
|
93
26
|
$TTL 300
|
|
94
27
|
|
|
95
28
|
; Certificate for this domain
|
|
96
|
-
$FJALL-CERT ${
|
|
29
|
+
$FJALL-CERT ${e}
|
|
97
30
|
|
|
98
31
|
; Add your DNS records below
|
|
99
32
|
; Examples:
|
|
100
33
|
; @ IN A ALIAS fjall:ecs:my-app
|
|
101
|
-
; www IN CNAME ${
|
|
34
|
+
; www IN CNAME ${e}.
|
|
102
35
|
; api IN A ALIAS fjall:ecs:my-api
|
|
103
|
-
; @ IN MX 10 mail.${
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
function generateDomainPackageJson(domainName) {
|
|
107
|
-
return (JSON.stringify({
|
|
108
|
-
name: `domain-${domainName}`,
|
|
109
|
-
version: GENERATOR_VERSION,
|
|
110
|
-
scripts: {},
|
|
111
|
-
devDependencies: {
|
|
112
|
-
"@types/node": "20.4.9",
|
|
113
|
-
"ts-node": "^10.9.1",
|
|
114
|
-
typescript: "~5.1.6",
|
|
115
|
-
},
|
|
116
|
-
dependencies: {
|
|
117
|
-
"@fjall/components-infrastructure": `^${GENERATOR_VERSION}`,
|
|
118
|
-
"aws-cdk-lib": "^2.239.0",
|
|
119
|
-
constructs: "^10.0.0",
|
|
120
|
-
},
|
|
121
|
-
}, null, 2) + "\n");
|
|
122
|
-
}
|
|
123
|
-
const GITIGNORE_CONTENT = `node_modules/
|
|
36
|
+
; @ IN MX 10 mail.${e}.
|
|
37
|
+
`}function f(e){return JSON.stringify({name:`domain-${e}`,version:c,scripts:{},devDependencies:{"@types/node":"20.4.9","ts-node":"^10.9.1",typescript:"~5.1.6"},dependencies:{"@fjall/components-infrastructure":`^${c}`,"aws-cdk-lib":"^2.239.0",constructs:"^10.0.0"}},null,2)+`
|
|
38
|
+
`}const g=`node_modules/
|
|
124
39
|
cdk.out/
|
|
125
40
|
*.d.ts
|
|
126
41
|
*.js
|
|
127
42
|
.deploy-state.json
|
|
128
43
|
.deploy-state.json.tmp
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
target: "ES2020",
|
|
133
|
-
module: "commonjs",
|
|
134
|
-
lib: ["es2020", "dom"],
|
|
135
|
-
declaration: true,
|
|
136
|
-
strict: true,
|
|
137
|
-
noImplicitAny: true,
|
|
138
|
-
strictNullChecks: true,
|
|
139
|
-
noImplicitThis: true,
|
|
140
|
-
alwaysStrict: true,
|
|
141
|
-
noUnusedLocals: false,
|
|
142
|
-
noUnusedParameters: false,
|
|
143
|
-
noImplicitReturns: true,
|
|
144
|
-
noFallthroughCasesInSwitch: false,
|
|
145
|
-
inlineSourceMap: true,
|
|
146
|
-
inlineSources: true,
|
|
147
|
-
experimentalDecorators: true,
|
|
148
|
-
strictPropertyInitialization: false,
|
|
149
|
-
typeRoots: ["./node_modules/@types"],
|
|
150
|
-
},
|
|
151
|
-
exclude: ["node_modules", "cdk.out"],
|
|
152
|
-
}, null, 2) + "\n";
|
|
153
|
-
const CDK_JSON_CONTENT = JSON.stringify({
|
|
154
|
-
app: "npx ts-node --prefer-ts-exts --transpile-only infrastructure.ts",
|
|
155
|
-
assetMetadata: false,
|
|
156
|
-
pathMetadata: false,
|
|
157
|
-
versionReporting: false,
|
|
158
|
-
watch: {
|
|
159
|
-
include: ["**"],
|
|
160
|
-
exclude: [
|
|
161
|
-
"README.md",
|
|
162
|
-
"cdk*.json",
|
|
163
|
-
"**/*.d.ts",
|
|
164
|
-
"**/*.js",
|
|
165
|
-
"tsconfig.json",
|
|
166
|
-
"package*.json",
|
|
167
|
-
"yarn.lock",
|
|
168
|
-
"node_modules",
|
|
169
|
-
"test",
|
|
170
|
-
],
|
|
171
|
-
},
|
|
172
|
-
context: {
|
|
173
|
-
"@aws-cdk/aws-lambda:recognizeLayerVersion": true,
|
|
174
|
-
"@aws-cdk/core:checkSecretUsage": true,
|
|
175
|
-
"@aws-cdk/core:target-partitions": ["aws", "aws-cn"],
|
|
176
|
-
"@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true,
|
|
177
|
-
"@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true,
|
|
178
|
-
"@aws-cdk/aws-ecs:arnFormatIncludesClusterName": true,
|
|
179
|
-
"@aws-cdk/aws-iam:minimizePolicies": true,
|
|
180
|
-
"@aws-cdk/core:validateSnapshotRemovalPolicy": true,
|
|
181
|
-
"@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": true,
|
|
182
|
-
"@aws-cdk/aws-s3:createDefaultLoggingPolicy": true,
|
|
183
|
-
"@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": true,
|
|
184
|
-
"@aws-cdk/aws-apigateway:disableCloudWatchRole": true,
|
|
185
|
-
"@aws-cdk/core:enablePartitionLiterals": true,
|
|
186
|
-
"@aws-cdk/aws-events:eventsTargetQueueSameAccount": true,
|
|
187
|
-
"@aws-cdk/aws-iam:standardizedServicePrincipals": true,
|
|
188
|
-
"@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": true,
|
|
189
|
-
"@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": true,
|
|
190
|
-
"@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": true,
|
|
191
|
-
"@aws-cdk/aws-route53-patters:useCertificate": true,
|
|
192
|
-
"@aws-cdk/customresources:installLatestAwsSdkDefault": false,
|
|
193
|
-
"@aws-cdk/aws-rds:databaseProxyUniqueResourceName": true,
|
|
194
|
-
"@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": true,
|
|
195
|
-
"@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": true,
|
|
196
|
-
"@aws-cdk/aws-ec2:launchTemplateDefaultUserData": true,
|
|
197
|
-
"@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": true,
|
|
198
|
-
"@aws-cdk/aws-redshift:columnId": true,
|
|
199
|
-
"@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": true,
|
|
200
|
-
"@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": true,
|
|
201
|
-
"@aws-cdk/aws-apigateway:requestValidatorUniqueId": true,
|
|
202
|
-
"@aws-cdk/aws-kms:aliasNameRef": true,
|
|
203
|
-
"@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": true,
|
|
204
|
-
"@aws-cdk/core:includePrefixInUniqueNameGeneration": true,
|
|
205
|
-
"@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": true,
|
|
206
|
-
},
|
|
207
|
-
}, null, 2) + "\n";
|
|
44
|
+
`,k=JSON.stringify({compilerOptions:{target:"ES2020",module:"commonjs",lib:["es2020","dom"],declaration:!0,strict:!0,noImplicitAny:!0,strictNullChecks:!0,noImplicitThis:!0,alwaysStrict:!0,noUnusedLocals:!1,noUnusedParameters:!1,noImplicitReturns:!0,noFallthroughCasesInSwitch:!1,inlineSourceMap:!0,inlineSources:!0,experimentalDecorators:!0,strictPropertyInitialization:!1,typeRoots:["./node_modules/@types"]},exclude:["node_modules","cdk.out"]},null,2)+`
|
|
45
|
+
`,y=JSON.stringify({app:"npx ts-node --prefer-ts-exts --transpile-only infrastructure.ts",assetMetadata:!1,pathMetadata:!1,versionReporting:!1,watch:{include:["**"],exclude:["README.md","cdk*.json","**/*.d.ts","**/*.js","tsconfig.json","package*.json","yarn.lock","node_modules","test"]},context:{"@aws-cdk/aws-lambda:recognizeLayerVersion":!0,"@aws-cdk/core:checkSecretUsage":!0,"@aws-cdk/core:target-partitions":["aws","aws-cn"],"@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver":!0,"@aws-cdk/aws-ec2:uniqueImdsv2TemplateName":!0,"@aws-cdk/aws-ecs:arnFormatIncludesClusterName":!0,"@aws-cdk/aws-iam:minimizePolicies":!0,"@aws-cdk/core:validateSnapshotRemovalPolicy":!0,"@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName":!0,"@aws-cdk/aws-s3:createDefaultLoggingPolicy":!0,"@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption":!0,"@aws-cdk/aws-apigateway:disableCloudWatchRole":!0,"@aws-cdk/core:enablePartitionLiterals":!0,"@aws-cdk/aws-events:eventsTargetQueueSameAccount":!0,"@aws-cdk/aws-iam:standardizedServicePrincipals":!0,"@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker":!0,"@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName":!0,"@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy":!0,"@aws-cdk/aws-route53-patters:useCertificate":!0,"@aws-cdk/customresources:installLatestAwsSdkDefault":!1,"@aws-cdk/aws-rds:databaseProxyUniqueResourceName":!0,"@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup":!0,"@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId":!0,"@aws-cdk/aws-ec2:launchTemplateDefaultUserData":!0,"@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments":!0,"@aws-cdk/aws-redshift:columnId":!0,"@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2":!0,"@aws-cdk/aws-ec2:restrictDefaultSecurityGroup":!0,"@aws-cdk/aws-apigateway:requestValidatorUniqueId":!0,"@aws-cdk/aws-kms:aliasNameRef":!0,"@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig":!0,"@aws-cdk/core:includePrefixInUniqueNameGeneration":!0,"@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby":!0}},null,2)+`
|
|
46
|
+
`;export{$ as generateDomainFiles};
|
package/dist/src/index.js
CHANGED
|
@@ -1,21 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { normaliseError, getErrorMessage } from "./util/errorUtils.js";
|
|
3
|
-
export { isSuccess, isFailure, success, failure, tryAsync, trySync, } from "./types/Result.js";
|
|
4
|
-
// Validation
|
|
5
|
-
export { VALIDATION_PATTERNS, VALIDATION_MESSAGES, } from "./validation/patterns.js";
|
|
6
|
-
// AWS
|
|
7
|
-
export { DEFAULT_REGION, regions, AWS_REGIONS_METADATA, topRegions, commonRegions, parseRegionList, isValidRegion, isValidRegionFormat, getSuggestions, validateRegion, validateRegionList, filterDuplicateRegions, getRegionOptions, getRegionOptionsExcluding, getRegionName, createRegionFormatter, } from "./aws/regions.js";
|
|
8
|
-
// Version
|
|
9
|
-
export { GENERATOR_VERSION } from "./version.js";
|
|
10
|
-
// Schemas, plan types, constants
|
|
11
|
-
export * from "./schemas/index.js";
|
|
12
|
-
// Code generation
|
|
13
|
-
export * from "./generation/index.js";
|
|
14
|
-
// Tier, pattern, and storage presets
|
|
15
|
-
export * from "./presets/index.js";
|
|
16
|
-
// AST parsing & surgical modification
|
|
17
|
-
export * from "./ast/index.js";
|
|
18
|
-
// Resource planning
|
|
19
|
-
export * from "./planning/index.js";
|
|
20
|
-
// DNS
|
|
21
|
-
export * from "./dns/index.js";
|
|
1
|
+
import{normaliseError as r,getErrorMessage as i}from"./util/errorUtils.js";import{isSuccess as s,isFailure as g,success as n,failure as R,tryAsync as m,trySync as a}from"./types/Result.js";import{VALIDATION_PATTERNS as f,VALIDATION_MESSAGES as A}from"./validation/patterns.js";import{DEFAULT_REGION as x,regions as c,AWS_REGIONS_METADATA as l,topRegions as S,commonRegions as N,parseRegionList as O,isValidRegion as T,isValidRegionFormat as u,getSuggestions as I,validateRegion as _,validateRegionList as d,filterDuplicateRegions as D,getRegionOptions as L,getRegionOptionsExcluding as V,getRegionName as y,createRegionFormatter as F}from"./aws/regions.js";import{GENERATOR_VERSION as M}from"./version.js";export*from"./schemas/index.js";export*from"./generation/index.js";export*from"./presets/index.js";export*from"./ast/index.js";export*from"./planning/index.js";export*from"./dns/index.js";export{l as AWS_REGIONS_METADATA,x as DEFAULT_REGION,M as GENERATOR_VERSION,A as VALIDATION_MESSAGES,f as VALIDATION_PATTERNS,N as commonRegions,F as createRegionFormatter,R as failure,D as filterDuplicateRegions,i as getErrorMessage,y as getRegionName,L as getRegionOptions,V as getRegionOptionsExcluding,I as getSuggestions,g as isFailure,s as isSuccess,T as isValidRegion,u as isValidRegionFormat,r as normaliseError,O as parseRegionList,c as regions,n as success,S as topRegions,m as tryAsync,a as trySync,_ as validateRegion,d as validateRegionList};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { planApplicationResources, type
|
|
1
|
+
export { planApplicationResources, type GenerationOptions, generateInfrastructureFromPlan, } from "./resourcePlanning.js";
|
|
2
|
+
export { type OpenNextResourceOptions, planOpenNextResources, } from "./openNextPlanning.js";
|
|
2
3
|
export { type ConnectionType, applyComputeConnections, applyServiceConnections, } from "./resourceConnections.js";
|
|
3
4
|
export { type AddableResourceType, type AddResourceOptions, type DatabaseAddOptions, type ProxyAddOptions, type S3AddOptions, type NetworkAddOptions, type EcsComputeAddOptions, type LambdaComputeAddOptions, type CdnAddOptions, type TunnelAddOptions, addResourceToPlan, validateResourceAddition, listAvailableResources, } from "./resourceAddition.js";
|
|
4
5
|
export { type ResourceChangeResult, generateResourceChange, } from "./generateResourceChange.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{planApplicationResources as r,
|
|
1
|
+
import{planApplicationResources as r,generateInfrastructureFromPlan as n}from"./resourcePlanning.js";import{planOpenNextResources as a}from"./openNextPlanning.js";import{applyComputeConnections as s,applyServiceConnections as c}from"./resourceConnections.js";import{addResourceToPlan as i,validateResourceAddition as u,listAvailableResources as m}from"./resourceAddition.js";import{generateResourceChange as x}from"./generateResourceChange.js";export{i as addResourceToPlan,s as applyComputeConnections,c as applyServiceConnections,n as generateInfrastructureFromPlan,x as generateResourceChange,m as listAvailableResources,r as planApplicationResources,a as planOpenNextResources,u as validateResourceAddition};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type PatternTypeWithCustom } from "../presets/patternTierPresets.js";
|
|
2
|
+
import type { PatternType } from "../schemas/constants.js";
|
|
3
|
+
import { type Result } from "../types/Result.js";
|
|
4
|
+
import type { ApplicationResourcePlan } from "../schemas/resourceSchemas.js";
|
|
5
|
+
export interface OpenNextResourceOptions {
|
|
6
|
+
/** Pattern tier: lightweight, standard, resilient, or custom */
|
|
7
|
+
tier?: PatternTypeWithCustom;
|
|
8
|
+
/** Custom domain (auto-creates certificate + DNS) */
|
|
9
|
+
domain?: string;
|
|
10
|
+
/** Database configuration (uses tier defaults if not specified) */
|
|
11
|
+
database?: {
|
|
12
|
+
type?: "Instance" | "Aurora";
|
|
13
|
+
instanceType?: string;
|
|
14
|
+
databaseName?: string;
|
|
15
|
+
publiclyAccessible?: boolean;
|
|
16
|
+
allowedIpCidr?: string;
|
|
17
|
+
backupRetention?: number;
|
|
18
|
+
deletionProtection?: boolean;
|
|
19
|
+
encryption?: {
|
|
20
|
+
useCMK: true;
|
|
21
|
+
} | false;
|
|
22
|
+
};
|
|
23
|
+
/** Compute (Lambda) configuration (uses tier defaults if not specified) */
|
|
24
|
+
compute?: {
|
|
25
|
+
memorySize?: number;
|
|
26
|
+
timeout?: number;
|
|
27
|
+
};
|
|
28
|
+
/** CDN configuration (advanced - prefer `domain` for simple setup) */
|
|
29
|
+
cdn?: {
|
|
30
|
+
domainNames?: string[];
|
|
31
|
+
certificateArn?: string;
|
|
32
|
+
};
|
|
33
|
+
/** Additional environment variables */
|
|
34
|
+
environment?: Record<string, string>;
|
|
35
|
+
/** Resource tags */
|
|
36
|
+
tags?: Record<string, string>;
|
|
37
|
+
}
|
|
38
|
+
export declare function planOpenNextResources(appName: string, pattern: PatternType, options?: OpenNextResourceOptions): Result<ApplicationResourcePlan, Error>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getPatternTierPreset as b,isPatternTierName as C,PATTERN_TIER_NAMES as T}from"../presets/patternTierPresets.js";import{getNetworkPreset as P}from"../presets/tierPresets.js";import{success as l,failure as f}from"../types/Result.js";import{PatternConfigSchema as y}from"../schemas/resourceSchemas.js";const N=P("standard");function w(e){return y.options.some(n=>n.shape?.type?.value===e)}function $(e,n,c){const{tier:r="standard",domain:u,database:d,compute:a,cdn:p,environment:i,tags:m}=c??{},s=C(r);if(!s&&r!=="custom")return f(new Error(`Invalid pattern tier: "${r}". Valid tiers are: ${[...T,"custom"].join(", ")}`));if(!w(n))return f(new Error(`Unsupported pattern type: ${n}`));const t=s?b(r):null,o=R(n,e,{domain:u,database:d,compute:a,cdn:p,environment:i,tierPreset:t});if(!o.success)return o;const g=o.data;return l({appName:e,type:"standard",pattern:n,network:t?t.network:N,backup:t?t.backup:!1,patternConfig:g,database:[],s3:[],compute:[],tags:m??{}})}function k(e,n){return{type:e?.type??n.database.type,instanceType:e?.instanceType??n.database.instanceType,backupRetention:e?.backupRetention??n.database.backupRetention,deletionProtection:e?.deletionProtection??n.database.deletionProtection,...e?.databaseName!==void 0&&{databaseName:e.databaseName},...e?.publiclyAccessible!==void 0&&{publiclyAccessible:e.publiclyAccessible},...e?.allowedIpCidr!==void 0&&{allowedIpCidr:e.allowedIpCidr},...e?.encryption!==void 0&&{encryption:e.encryption}}}function A(e,n){return{memorySize:e?.memorySize??n.compute.memorySize,timeout:e?.timeout??n.compute.timeout}}function E(e){const{encryption:n,...c}=e;return{...c,...n&&{encryption:{storageKey:n}}}}function R(e,n,c){const{domain:r,database:u,compute:d,cdn:a,environment:p,tierPreset:i}=c,m=i?k(u,i):u,s=i?A(d,i):d,t={type:e,name:n,domain:r,database:m?E(m):void 0,compute:s?{server:s}:void 0,cdn:a?{domainNames:a.domainNames,certificateArn:a.certificateArn}:void 0,environment:p},o=y.safeParse(t);return o.success?l(o.data):f(new Error(`Invalid pattern config: ${o.error.message}`))}export{$ as planOpenNextResources};
|
|
@@ -1,56 +1,10 @@
|
|
|
1
1
|
import { type UserServiceConfig, type AppType } from "../presets/tierPresets.js";
|
|
2
|
-
import { type PatternTypeWithCustom } from "../presets/patternTierPresets.js";
|
|
3
|
-
import { type PatternType } from "../schemas/constants.js";
|
|
4
2
|
import { type Result } from "../types/Result.js";
|
|
5
3
|
import type { ApplicationResourcePlan } from "../schemas/resourceSchemas.js";
|
|
6
4
|
export declare function planApplicationResources(appName: string, appType: AppType, includeDatabase?: boolean, services?: UserServiceConfig[], snapshotOptions?: {
|
|
7
5
|
snapshotIdentifier?: string;
|
|
8
6
|
snapshotUsername?: string;
|
|
9
7
|
}): ApplicationResourcePlan;
|
|
10
|
-
export interface OpenNextResourceOptions {
|
|
11
|
-
/** Pattern tier: lightweight, standard, resilient, or custom */
|
|
12
|
-
tier?: PatternTypeWithCustom;
|
|
13
|
-
/** Custom domain (auto-creates certificate + DNS) */
|
|
14
|
-
domain?: string;
|
|
15
|
-
/** Database configuration (uses tier defaults if not specified) */
|
|
16
|
-
database?: {
|
|
17
|
-
type?: "Instance" | "Aurora";
|
|
18
|
-
instanceType?: string;
|
|
19
|
-
databaseName?: string;
|
|
20
|
-
publiclyAccessible?: boolean;
|
|
21
|
-
allowedIpCidr?: string;
|
|
22
|
-
backupRetention?: number;
|
|
23
|
-
deletionProtection?: boolean;
|
|
24
|
-
encryption?: {
|
|
25
|
-
useCMK: true;
|
|
26
|
-
} | false;
|
|
27
|
-
};
|
|
28
|
-
/** Compute (Lambda) configuration (uses tier defaults if not specified) */
|
|
29
|
-
compute?: {
|
|
30
|
-
memorySize?: number;
|
|
31
|
-
timeout?: number;
|
|
32
|
-
};
|
|
33
|
-
/** CDN configuration (advanced - prefer `domain` for simple setup) */
|
|
34
|
-
cdn?: {
|
|
35
|
-
domainNames?: string[];
|
|
36
|
-
certificateArn?: string;
|
|
37
|
-
};
|
|
38
|
-
/** Additional environment variables */
|
|
39
|
-
environment?: Record<string, string>;
|
|
40
|
-
/** Resource tags */
|
|
41
|
-
tags?: Record<string, string>;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Plan resources for OpenNext patterns (Next.js/Payload).
|
|
45
|
-
*
|
|
46
|
-
* All OpenNext patterns use the PatternFactory approach, generating a single
|
|
47
|
-
* `PatternFactory.build()` call. The pattern class internally handles all
|
|
48
|
-
* infrastructure (database, S3, DynamoDB, SQS, Lambdas, CDN).
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* const plan = planOpenNextResources("my-cms", "payload", { tier: "standard" });
|
|
52
|
-
*/
|
|
53
|
-
export declare function planOpenNextResources(appName: string, pattern: PatternType, options?: OpenNextResourceOptions): Result<ApplicationResourcePlan, Error>;
|
|
54
8
|
export interface GenerationOptions {
|
|
55
9
|
/** Resource name mapping from old names to new names (for custom code repositioning) */
|
|
56
10
|
resourceMapping?: Map<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{TIER_PRESETS as
|
|
1
|
+
import{TIER_PRESETS as m,getDefaultDatabaseTypeForTier as C,applyTierDefaultsToServices as b}from"../presets/tierPresets.js";import{COMPUTE_TYPE as g}from"../schemas/constants.js";import{success as u,failure as l}from"../types/Result.js";import{injectCustomCodeBlocks as P}from"../ast/astCodeInjection.js";import{toVariableName as d,toValidDatabaseName as k,generateImports as h,generateAppInit as D,generateTags as E,generateNetworkCode as f,generateDatabaseCode as R,generateS3Code as S,generateDynamoDBCode as T,generateSQSCode as I,generateComputeCode as w,generateCDNCode as B,collectCdnReferencedResources as j,usesPatternApproach as y,generatePatternCodeWithComments as U}from"../generation/index.js";function N(e,n,r=!0,o,t){const s={appName:e,type:n,database:[],s3:[],compute:[]};if(n==="custom")return s;const c=n,a=m[c];return{...s,database:$(e,a,c,r,t),compute:A(e,a,c,r,o),network:a.network,backup:a.backup}}function $(e,n,r,o,t){const s=C(r),c=n.database[s];return!o||c===null?[]:[{name:e,type:s,databaseName:k(e),variableName:`${d(e)}Database`,...c,...t?.snapshotIdentifier!==void 0&&{snapshotIdentifier:t.snapshotIdentifier},...t?.snapshotUsername!==void 0&&{snapshotUsername:t.snapshotUsername}}]}function p(e,n){if(!(e===void 0&&n===void 0))return{scaling:{...e!==void 0&&{minCapacity:e},...n!==void 0&&{maxCapacity:n}}}}function v(e,n){const{minCapacity:r,maxCapacity:o,...t}=e,s=n?.containerPort??3e3;return{...t,dockerfilePath:n?.dockerfilePath,needsDatabaseConnection:n?.needsDatabaseConnection,containers:[{port:s}],...p(r,o)}}function A(e,n,r,o,t){const s=n.compute.ecs,c=t&&t.length>0?b(r,t):s.services.map((a,i)=>({...a,name:i===0?"api":`service-${i+1}`}));return[{name:e,type:g.ECS,needsConnection:o,connectedDatabase:o?[e]:void 0,variableName:`${d(e)}Compute`,cluster:s.cluster,services:c.map((a,i)=>v(a,t?.[i]))}]}function Q(e,n){const r=[h(e),D(e),E(e)];if(y(e))r.push(U(e),f(e));else{const t=j(e);r.push(f(e),R(e),S(e),T(e),I(e),w(e,t),B(e))}const o=r.join("");if(e.customCodeBlocks&&e.customCodeBlocks.length>0){const t=P(o,e.customCodeBlocks,n?.resourceMapping);return t.success?u(t.content):l(new Error(`Custom code injection failed: ${t.error??"unknown error"}`))}return u(o)}export{Q as generateInfrastructureFromPlan,N as planApplicationResources};
|
|
@@ -761,6 +761,9 @@ export declare const ApplicationResourcePlanSchema: z.ZodObject<{
|
|
|
761
761
|
network: "network";
|
|
762
762
|
messaging: "messaging";
|
|
763
763
|
cdn: "cdn";
|
|
764
|
+
"vpc-peer": "vpc-peer";
|
|
765
|
+
"vpc-peer-accepter": "vpc-peer-accepter";
|
|
766
|
+
"cross-plan-connection": "cross-plan-connection";
|
|
764
767
|
}>;
|
|
765
768
|
name: z.ZodOptional<z.ZodString>;
|
|
766
769
|
}, z.core.$strict>>;
|
|
@@ -866,5 +869,18 @@ export declare const ApplicationGeneratorSchema: z.ZodObject<{
|
|
|
866
869
|
snapshotIdentifier: z.ZodOptional<z.ZodString>;
|
|
867
870
|
snapshotUsername: z.ZodOptional<z.ZodString>;
|
|
868
871
|
}, z.core.$strict>;
|
|
872
|
+
export declare const CrossPlanConnectionResourcePlanSchema: z.ZodObject<{
|
|
873
|
+
name: z.ZodString;
|
|
874
|
+
localResource: z.ZodString;
|
|
875
|
+
remoteApp: z.ZodString;
|
|
876
|
+
remoteResource: z.ZodString;
|
|
877
|
+
permission: z.ZodEnum<{
|
|
878
|
+
read: "read";
|
|
879
|
+
write: "write";
|
|
880
|
+
"read-write": "read-write";
|
|
881
|
+
}>;
|
|
882
|
+
remoteArn: z.ZodOptional<z.ZodString>;
|
|
883
|
+
}, z.core.$strict>;
|
|
869
884
|
export type ApplicationResourcePlan = z.infer<typeof ApplicationResourcePlanSchema>;
|
|
870
885
|
export type ApplicationGeneratorOptions = z.infer<typeof ApplicationGeneratorSchema>;
|
|
886
|
+
export type CrossPlanConnectionResourcePlan = z.infer<typeof CrossPlanConnectionResourcePlanSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z as o}from"zod";import{VALIDATION_MESSAGES as a}from"../validation/patterns.js";import{AppNameSchema as t,AppTypeSchema as e,PatternSchema as r,CustomCodeBlockSchema as n,BackupConfigSchema as i,TunnelConfigSchema as p}from"./baseSchemas.js";import{DatabaseResourcePlanSchema as
|
|
1
|
+
import{z as o}from"zod";import{VALIDATION_MESSAGES as a}from"../validation/patterns.js";import{AppNameSchema as t,AppTypeSchema as e,PatternSchema as r,CustomCodeBlockSchema as n,BackupConfigSchema as i,TunnelConfigSchema as m,ResourceNameSchema as p}from"./baseSchemas.js";import{DatabaseResourcePlanSchema as c}from"./databaseSchemas.js";import{NetworkResourcePlanSchema as s,AdditionalNetworkResourcePlanSchema as l,NetworkConfigSchema as S}from"./networkSchemas.js";import{S3ResourcePlanSchema as u}from"./storageSchemas.js";import{SQSResourcePlanSchema as g}from"./messagingSchemas.js";import{CDNResourcePlanSchema as h}from"./cdnSchemas.js";import{ComputeResourcePlanSchema as d,ApplicationServiceConfigSchema as f}from"./computeSchemas.js";import{DynamoDBResourcePlanSchema as A}from"./databaseSchemas.js";import{PatternConfigSchema as C,PatternTierSchema as P,CustomPatternDatabaseSchema as y,CustomPatternComputeSchema as R}from"./patternSchemas.js";const v=o.object({appName:t,type:e,pattern:r.optional(),patternConfig:C.optional(),owner:o.string().optional(),tags:o.record(o.string(),o.string()).optional(),vpcId:o.string().optional(),network:s.optional(),backup:i.optional(),tunnel:m.optional(),additionalNetworks:o.array(l).optional(),database:o.array(c),s3:o.array(u),compute:o.array(d),dynamodb:o.array(A).optional(),sqs:o.array(g).optional(),cdn:h.optional(),customCodeBlocks:o.array(n).optional(),additionalManagedImports:o.array(o.object({moduleSpecifier:o.string(),namedImports:o.array(o.string()),defaultImport:o.string().optional()}).strict()).optional()}).strict(),x=o.object({name:t,type:e,pattern:r.optional(),patternTier:P.optional(),patternDomain:o.string().optional(),customDatabase:y.optional(),customCompute:R.optional(),region:o.string().optional(),owner:o.string().optional(),includeDatabase:o.boolean().optional(),databaseName:o.string().min(1,a.DATABASE.NAME.REQUIRED).max(63,a.DATABASE.NAME.MAX_LENGTH).optional(),vpcId:o.string().optional(),network:S.optional(),services:o.array(f).optional(),snapshotIdentifier:o.string().optional(),snapshotUsername:o.string().optional()}).strict(),G=o.object({name:p,localResource:o.string().min(1),remoteApp:o.string().min(1),remoteResource:o.string().min(1),permission:o.enum(["read","write","read-write"]),remoteArn:o.string().optional()}).strict();export{x as ApplicationGeneratorSchema,v as ApplicationResourcePlanSchema,G as CrossPlanConnectionResourcePlanSchema};
|
|
@@ -108,10 +108,7 @@ export declare const CustomCodePositionSchema: z.ZodEnum<{
|
|
|
108
108
|
"after-resource": "after-resource";
|
|
109
109
|
"end-of-file": "end-of-file";
|
|
110
110
|
}>;
|
|
111
|
-
|
|
112
|
-
* Statement type for managed resources.
|
|
113
|
-
*/
|
|
114
|
-
export declare const StatementTypeSchema: z.ZodEnum<{
|
|
111
|
+
export declare const AstStatementTypeSchema: z.ZodEnum<{
|
|
115
112
|
custom: "custom";
|
|
116
113
|
storage: "storage";
|
|
117
114
|
database: "database";
|
|
@@ -123,6 +120,9 @@ export declare const StatementTypeSchema: z.ZodEnum<{
|
|
|
123
120
|
network: "network";
|
|
124
121
|
messaging: "messaging";
|
|
125
122
|
cdn: "cdn";
|
|
123
|
+
"vpc-peer": "vpc-peer";
|
|
124
|
+
"vpc-peer-accepter": "vpc-peer-accepter";
|
|
125
|
+
"cross-plan-connection": "cross-plan-connection";
|
|
126
126
|
}>;
|
|
127
127
|
/**
|
|
128
128
|
* Custom code block schema.
|
|
@@ -152,6 +152,9 @@ export declare const CustomCodeBlockSchema: z.ZodObject<{
|
|
|
152
152
|
network: "network";
|
|
153
153
|
messaging: "messaging";
|
|
154
154
|
cdn: "cdn";
|
|
155
|
+
"vpc-peer": "vpc-peer";
|
|
156
|
+
"vpc-peer-accepter": "vpc-peer-accepter";
|
|
157
|
+
"cross-plan-connection": "cross-plan-connection";
|
|
155
158
|
}>;
|
|
156
159
|
name: z.ZodOptional<z.ZodString>;
|
|
157
160
|
}, z.core.$strict>>;
|
|
@@ -205,7 +208,7 @@ export type CallValue = z.infer<typeof CallValueSchema>;
|
|
|
205
208
|
export type SpecialValue = z.infer<typeof SpecialValueSchema>;
|
|
206
209
|
export type EnvironmentValue = z.infer<typeof EnvironmentValueSchema>;
|
|
207
210
|
export type CustomCodePosition = z.infer<typeof CustomCodePositionSchema>;
|
|
208
|
-
export type
|
|
211
|
+
export type AstStatementType = z.infer<typeof AstStatementTypeSchema>;
|
|
209
212
|
export type CustomCodeBlock = z.infer<typeof CustomCodeBlockSchema>;
|
|
210
213
|
export type ExtraProperty = z.infer<typeof ExtraPropertySchema>;
|
|
211
214
|
export type OrganisationGeneratorOptions = z.infer<typeof OrganisationGeneratorSchema>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{z as e}from"zod";import{VALIDATION_PATTERNS as o,VALIDATION_MESSAGES as t}from"../validation/patterns.js";import{APP_TYPES as a,PATTERN_TYPE_VALUES as i,MIN_PORT as c,MAX_PORT as m,BACKUP_VAULT_TIERS as
|
|
2
|
-
`)}export{U as AppNameSchema,F as AppTypeSchema,k as BackupConfigSchema,
|
|
1
|
+
import{z as e}from"zod";import{VALIDATION_PATTERNS as o,VALIDATION_MESSAGES as t}from"../validation/patterns.js";import{APP_TYPES as a,PATTERN_TYPE_VALUES as i,MIN_PORT as c,MAX_PORT as m,BACKUP_VAULT_TIERS as p}from"./constants.js";import{regions as E}from"../aws/regions.js";const O=n=>e.union([e.literal(!1),n]),b={check:n=>n.minCapacity!==void 0&&n.maxCapacity!==void 0?n.minCapacity<=n.maxCapacity:!0,params:{message:t.CAPACITY_CONSTRAINT.MIN_LTE_MAX,path:["maxCapacity"]}},P=n=>e.number().int(t.MEMORY_LIMIT.INTEGER).min(n,n===128?t.MEMORY_LIMIT.MIN_128:t.MEMORY_LIMIT.MIN_512).max(30720,t.MEMORY_LIMIT.MAX),L=e.string().min(1,t.REQUIRED.RESOURCE_NAME).max(63,t.MAX_LENGTH.RESOURCE_NAME).regex(o.RESOURCE_NAME,t.RESOURCE_NAME),D=e.string().min(1,t.REQUIRED.BUCKET_NAME).max(63,t.MAX_LENGTH.BUCKET_NAME).regex(o.BUCKET_NAME,t.BUCKET_NAME),y=e.string().min(1,t.REQUIRED.DATABASE_NAME).max(63,t.MAX_LENGTH.DATABASE_NAME).regex(o.DATABASE_NAME,t.DATABASE_NAME),U=e.string().min(2,t.IDENTIFIER_MIN_LENGTH).max(50,t.MAX_LENGTH.APP_NAME).regex(o.IDENTIFIER,t.IDENTIFIER).refine(n=>!n.endsWith("-"),{message:t.IDENTIFIER_NO_TRAILING_HYPHEN}).refine(n=>!n.includes("--"),{message:t.IDENTIFIER_NO_CONSECUTIVE_HYPHENS}),G=e.number().int(t.PORT.INTEGER).min(c,t.PORT.MIN).max(m,t.PORT.MAX),H=e.object({key:e.string(),sourceText:e.string()}).strict(),I=e.object({__identifier:e.string()}).strict(),N=e.object({__expression:e.string()}).strict(),T=e.object({__call:e.string()}).strict(),A=e.union([I,N,T]),_=e.union([e.string(),e.number(),e.boolean(),A]),j=e.record(e.string(),_),g=e.object({id:e.string(),name:e.string(),field:e.string().optional()}).strict(),B=e.record(e.string(),g),Y=e.record(e.string(),e.unknown()),F=e.enum(a).describe(`Application type must be one of: ${a.join(", ")}`),V=e.enum(i).describe(`OpenNext deployment pattern: ${i.join(", ")}`),l=e.enum(["before-imports","after-imports","after-app-init","after-tags","after-resource","end-of-file"]),x=e.enum(["import","app-init","tags","database","compute","storage","network","messaging","cdn","pattern","vpc-peer","vpc-peer-accepter","cross-plan-connection","custom"]),X=e.object({sourceText:e.string(),position:l,afterManagedResource:e.object({type:x,name:e.string().optional()}).strict().optional(),originalLine:e.number().int().optional(),leadingComments:e.array(e.string()).optional(),orphaned:e.boolean().optional(),orphanedComment:e.string().optional()}).strict(),k=e.union([e.object({tier:e.enum(p)}).strict(),e.literal(!1)]),K=e.union([e.object({instanceType:e.string().optional()}).strict(),e.literal(!1)]),R=e.string().min(2,t.IDENTIFIER_MIN_LENGTH).max(50,t.MAX_LENGTH.ORGANISATION_NAME).regex(o.IDENTIFIER,t.IDENTIFIER).refine(n=>!n.endsWith("-"),{message:t.IDENTIFIER_NO_TRAILING_HYPHEN}).refine(n=>!n.includes("--"),{message:t.IDENTIFIER_NO_CONSECUTIVE_HYPHENS}),S=e.string().regex(o.EMAIL,t.EMAIL),s=e.string().refine(n=>E.includes(n),{message:t.REGION}),$=e.object({name:R,email:S,accountName:e.string().optional(),primaryRegion:s.optional().default("us-east-1"),secondaryRegions:e.array(s).optional(),security:e.enum(["foundation","compliance","hardened"]).optional(),force:e.boolean().optional()}).strict();function v(n){return n.issues.map(r=>`${r.path.length>0?`${r.path.join(".")}: `:""}${r.message}`).join(`
|
|
2
|
+
`)}export{U as AppNameSchema,F as AppTypeSchema,x as AstStatementTypeSchema,k as BackupConfigSchema,D as BucketNameSchema,b as CAPACITY_REFINEMENT,T as CallValueSchema,X as CustomCodeBlockSchema,l as CustomCodePositionSchema,y as DatabaseNameSchema,S as EmailSchema,j as EnvironmentRecordSchema,_ as EnvironmentValueSchema,N as ExpressionValueSchema,H as ExtraPropertySchema,I as IdentifierValueSchema,Y as MetadataRecordSchema,$ as OrganisationGeneratorSchema,R as OrganisationNameSchema,V as PatternSchema,G as PortSchema,s as RegionSchema,L as ResourceNameSchema,g as SecretImportSchema,B as SecretsImportRecordSchema,A as SpecialValueSchema,K as TunnelConfigSchema,v as getZodErrorMessage,P as memoryLimitMiBSchema,O as optionalOrDisabled};
|