@geekmidas/cli 1.3.0 → 1.5.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/CHANGELOG.md +12 -0
- package/dist/{Route53Provider-xrWuBXih.cjs → Route53Provider-Bs7Arms9.cjs} +3 -2
- package/dist/Route53Provider-Bs7Arms9.cjs.map +1 -0
- package/dist/{Route53Provider-DOWmFnwN.mjs → Route53Provider-C8mS0zY6.mjs} +3 -2
- package/dist/Route53Provider-C8mS0zY6.mjs.map +1 -0
- package/dist/{config-C1bidhvG.mjs → config-DfCJ29PQ.mjs} +2 -2
- package/dist/{config-C1bidhvG.mjs.map → config-DfCJ29PQ.mjs.map} +1 -1
- package/dist/{config-C1dM7aZb.cjs → config-ZQM1vBoz.cjs} +2 -2
- package/dist/{config-C1dM7aZb.cjs.map → config-ZQM1vBoz.cjs.map} +1 -1
- package/dist/config.cjs +2 -2
- package/dist/config.d.cts +1 -1
- package/dist/config.d.mts +1 -1
- package/dist/config.mjs +2 -2
- package/dist/{index-DzmZ6SUW.d.cts → index-B58qjyBd.d.cts} +27 -1
- package/dist/index-B58qjyBd.d.cts.map +1 -0
- package/dist/{index-DvpWzLD7.d.mts → index-C0SpUT9Y.d.mts} +27 -1
- package/dist/index-C0SpUT9Y.d.mts.map +1 -0
- package/dist/index.cjs +117 -49
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +117 -49
- package/dist/index.mjs.map +1 -1
- package/dist/{openapi-9k6a6VA4.mjs → openapi-BcSjLfWq.mjs} +2 -2
- package/dist/{openapi-9k6a6VA4.mjs.map → openapi-BcSjLfWq.mjs.map} +1 -1
- package/dist/{openapi-Dcja4e1C.cjs → openapi-D6Hcfov0.cjs} +2 -2
- package/dist/{openapi-Dcja4e1C.cjs.map → openapi-D6Hcfov0.cjs.map} +1 -1
- package/dist/openapi.cjs +3 -3
- package/dist/openapi.mjs +3 -3
- package/dist/workspace/index.cjs +1 -1
- package/dist/workspace/index.d.cts +1 -1
- package/dist/workspace/index.d.mts +1 -1
- package/dist/workspace/index.mjs +1 -1
- package/dist/{workspace-CeFgIDC-.cjs → workspace-2Do2YcGZ.cjs} +5 -1
- package/dist/{workspace-CeFgIDC-.cjs.map → workspace-2Do2YcGZ.cjs.map} +1 -1
- package/dist/{workspace-Cb_I7oCJ.mjs → workspace-BW2iU37P.mjs} +5 -1
- package/dist/{workspace-Cb_I7oCJ.mjs.map → workspace-BW2iU37P.mjs.map} +1 -1
- package/package.json +2 -2
- package/src/deploy/__tests__/Route53Provider.spec.ts +23 -0
- package/src/deploy/__tests__/env-resolver.spec.ts +384 -2
- package/src/deploy/__tests__/index.spec.ts +393 -5
- package/src/deploy/__tests__/sniffer.spec.ts +104 -93
- package/src/deploy/dns/Route53Provider.ts +4 -1
- package/src/deploy/env-resolver.ts +20 -0
- package/src/deploy/index.ts +83 -24
- package/src/deploy/sniffer.ts +39 -7
- package/src/init/generators/monorepo.ts +7 -1
- package/src/init/generators/web.ts +45 -2
- package/src/workspace/schema.ts +8 -0
- package/src/workspace/types.ts +23 -0
- package/dist/Route53Provider-DOWmFnwN.mjs.map +0 -1
- package/dist/Route53Provider-xrWuBXih.cjs.map +0 -1
- package/dist/index-DvpWzLD7.d.mts.map +0 -1
- package/dist/index-DzmZ6SUW.d.cts.map +0 -1
package/src/workspace/types.ts
CHANGED
|
@@ -614,6 +614,29 @@ interface AppConfigBase {
|
|
|
614
614
|
*/
|
|
615
615
|
client?: ClientConfig;
|
|
616
616
|
|
|
617
|
+
/**
|
|
618
|
+
* Config file paths for frontend environment sniffing.
|
|
619
|
+
*
|
|
620
|
+
* Points to file(s) that call EnvironmentParser.parse() at import time.
|
|
621
|
+
* The sniffer imports these files and captures all env vars accessed.
|
|
622
|
+
*
|
|
623
|
+
* Dependencies are auto-generated as NEXT_PUBLIC_{DEP}_URL variables.
|
|
624
|
+
*
|
|
625
|
+
* @example
|
|
626
|
+
* ```ts
|
|
627
|
+
* config: {
|
|
628
|
+
* client: './src/config/client.ts', // NEXT_PUBLIC_* vars for browser
|
|
629
|
+
* server: './src/config/server.ts', // Server-only vars for SSR
|
|
630
|
+
* }
|
|
631
|
+
* ```
|
|
632
|
+
*/
|
|
633
|
+
config?: {
|
|
634
|
+
/** Client-side config (NEXT_PUBLIC_* vars, available in browser) */
|
|
635
|
+
client?: string;
|
|
636
|
+
/** Server-side config (all env vars, for SSR/API routes) */
|
|
637
|
+
server?: string;
|
|
638
|
+
};
|
|
639
|
+
|
|
617
640
|
// ─────────────────────────────────────────────────────────────────
|
|
618
641
|
// Deployment
|
|
619
642
|
// ─────────────────────────────────────────────────────────────────
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Route53Provider-DOWmFnwN.mjs","names":["options: Route53ProviderOptions","domain: string","type: string","validTypes: DnsRecordType[]","recordName: string","records: DnsRecord[]","nextRecordName: string | undefined","nextRecordType: RRType | undefined","records: UpsertDnsRecord[]","results: UpsertResult[]"],"sources":["../src/deploy/dns/Route53Provider.ts"],"sourcesContent":["/**\n * Route53 DNS Provider\n *\n * Implements DnsProvider interface using AWS Route53.\n */\n\nimport {\n\tChangeResourceRecordSetsCommand,\n\tListHostedZonesByNameCommand,\n\tListResourceRecordSetsCommand,\n\tRoute53Client,\n\ttype RRType,\n} from '@aws-sdk/client-route-53';\nimport { fromIni } from '@aws-sdk/credential-providers';\nimport type {\n\tDnsProvider,\n\tDnsRecord,\n\tDnsRecordType,\n\tUpsertDnsRecord,\n\tUpsertResult,\n} from './DnsProvider';\n\nexport interface Route53ProviderOptions {\n\t/** AWS region (optional - uses AWS_REGION env var if not provided) */\n\tregion?: string;\n\t/** AWS profile name (optional - uses default credential chain if not provided) */\n\tprofile?: string;\n\t/** Hosted zone ID (optional - auto-detected from domain if not provided) */\n\thostedZoneId?: string;\n\t/** Custom endpoint for testing with localstack */\n\tendpoint?: string;\n}\n\n/**\n * Route53 DNS provider implementation.\n *\n * Uses AWS default credential chain for authentication.\n * Region can be specified or will use AWS_REGION/AWS_DEFAULT_REGION env vars.\n * Profile can be specified to use a named profile from ~/.aws/credentials.\n */\nexport class Route53Provider implements DnsProvider {\n\treadonly name = 'route53';\n\tprivate client: Route53Client;\n\tprivate hostedZoneId?: string;\n\tprivate hostedZoneCache: Map<string, string> = new Map();\n\n\tconstructor(options: Route53ProviderOptions = {}) {\n\t\tthis.client = new Route53Client({\n\t\t\t...(options.region && { region: options.region }),\n\t\t\t...(options.endpoint && { endpoint: options.endpoint }),\n\t\t\t...(options.profile && {\n\t\t\t\tcredentials: fromIni({ profile: options.profile }),\n\t\t\t}),\n\t\t});\n\t\tthis.hostedZoneId = options.hostedZoneId;\n\t}\n\n\t/**\n\t * Get the hosted zone ID for a domain.\n\t * Uses cache to avoid repeated API calls.\n\t */\n\tprivate async getHostedZoneId(domain: string): Promise<string> {\n\t\t// Use configured zone ID if provided\n\t\tif (this.hostedZoneId) {\n\t\t\treturn this.hostedZoneId;\n\t\t}\n\n\t\t// Check cache\n\t\tif (this.hostedZoneCache.has(domain)) {\n\t\t\treturn this.hostedZoneCache.get(domain)!;\n\t\t}\n\n\t\t// Auto-detect from domain\n\t\tconst command = new ListHostedZonesByNameCommand({\n\t\t\tDNSName: domain,\n\t\t\tMaxItems: 1,\n\t\t});\n\n\t\tconst response = await this.client.send(command);\n\t\tconst zones = response.HostedZones ?? [];\n\n\t\t// Find exact match (domain with trailing dot)\n\t\tconst normalizedDomain = domain.endsWith('.') ? domain : `${domain}.`;\n\t\tconst zone = zones.find((z) => z.Name === normalizedDomain);\n\n\t\tif (!zone?.Id) {\n\t\t\tthrow new Error(\n\t\t\t\t`No hosted zone found for domain: ${domain}. Create one in Route53 or provide hostedZoneId in config.`,\n\t\t\t);\n\t\t}\n\n\t\t// Zone ID comes as \"/hostedzone/Z1234567890\" - extract just the ID\n\t\tconst zoneId = zone.Id.replace('/hostedzone/', '');\n\t\tthis.hostedZoneCache.set(domain, zoneId);\n\t\treturn zoneId;\n\t}\n\n\t/**\n\t * Convert Route53 record type to our DnsRecordType.\n\t * Excludes NS and SOA which are auto-managed by Route53 for the zone.\n\t */\n\tprivate toRecordType(type: string): DnsRecordType | null {\n\t\t// Exclude NS and SOA which are auto-managed zone records\n\t\tconst managedTypes = ['NS', 'SOA'];\n\t\tif (managedTypes.includes(type)) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst validTypes: DnsRecordType[] = [\n\t\t\t'A',\n\t\t\t'AAAA',\n\t\t\t'CNAME',\n\t\t\t'MX',\n\t\t\t'TXT',\n\t\t\t'SRV',\n\t\t\t'CAA',\n\t\t];\n\t\treturn validTypes.includes(type as DnsRecordType)\n\t\t\t? (type as DnsRecordType)\n\t\t\t: null;\n\t}\n\n\t/**\n\t * Extract subdomain from full record name relative to domain.\n\t */\n\tprivate extractSubdomain(recordName: string, domain: string): string {\n\t\tconst normalizedDomain = domain.endsWith('.') ? domain : `${domain}.`;\n\t\tconst normalizedName = recordName.endsWith('.')\n\t\t\t? recordName\n\t\t\t: `${recordName}.`;\n\n\t\tif (normalizedName === normalizedDomain) {\n\t\t\treturn '@';\n\t\t}\n\n\t\t// Remove the domain suffix\n\t\tconst subdomain = normalizedName.replace(`.${normalizedDomain}`, '');\n\t\treturn subdomain.replace(/\\.$/, ''); // Remove trailing dot if any\n\t}\n\n\tasync getRecords(domain: string): Promise<DnsRecord[]> {\n\t\tconst zoneId = await this.getHostedZoneId(domain);\n\t\tconst records: DnsRecord[] = [];\n\n\t\tlet nextRecordName: string | undefined;\n\t\tlet nextRecordType: RRType | undefined;\n\n\t\t// Paginate through all records\n\t\tdo {\n\t\t\tconst command = new ListResourceRecordSetsCommand({\n\t\t\t\tHostedZoneId: zoneId,\n\t\t\t\tStartRecordName: nextRecordName,\n\t\t\t\tStartRecordType: nextRecordType,\n\t\t\t\tMaxItems: 100,\n\t\t\t});\n\n\t\t\tconst response = await this.client.send(command);\n\n\t\t\tfor (const recordSet of response.ResourceRecordSets ?? []) {\n\t\t\t\tconst type = this.toRecordType(recordSet.Type ?? '');\n\t\t\t\tif (!type || !recordSet.Name) continue;\n\n\t\t\t\tconst values = (recordSet.ResourceRecords ?? [])\n\t\t\t\t\t.map((r) => r.Value)\n\t\t\t\t\t.filter((v): v is string => !!v);\n\n\t\t\t\trecords.push({\n\t\t\t\t\tname: this.extractSubdomain(recordSet.Name, domain),\n\t\t\t\t\ttype,\n\t\t\t\t\tttl: recordSet.TTL ?? 300,\n\t\t\t\t\tvalues,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (response.IsTruncated) {\n\t\t\t\tnextRecordName = response.NextRecordName;\n\t\t\t\tnextRecordType = response.NextRecordType;\n\t\t\t} else {\n\t\t\t\tnextRecordName = undefined;\n\t\t\t}\n\t\t} while (nextRecordName);\n\n\t\treturn records;\n\t}\n\n\tasync upsertRecords(\n\t\tdomain: string,\n\t\trecords: UpsertDnsRecord[],\n\t): Promise<UpsertResult[]> {\n\t\tconst zoneId = await this.getHostedZoneId(domain);\n\t\tconst results: UpsertResult[] = [];\n\n\t\t// Get existing records to determine if creating or updating\n\t\tconst existingRecords = await this.getRecords(domain);\n\n\t\t// Process records in batches (Route53 allows max 1000 changes per request)\n\t\tconst batchSize = 100;\n\t\tfor (let i = 0; i < records.length; i += batchSize) {\n\t\t\tconst batch = records.slice(i, i + batchSize);\n\t\t\tconst changes = [];\n\n\t\t\tfor (const record of batch) {\n\t\t\t\tconst existing = existingRecords.find(\n\t\t\t\t\t(r) => r.name === record.name && r.type === record.type,\n\t\t\t\t);\n\n\t\t\t\tconst existingValue = existing?.values?.[0];\n\n\t\t\t\tif (existing && existingValue === record.value) {\n\t\t\t\t\t// Record exists with same value - unchanged\n\t\t\t\t\tresults.push({\n\t\t\t\t\t\trecord,\n\t\t\t\t\t\tcreated: false,\n\t\t\t\t\t\tunchanged: true,\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Build full record name\n\t\t\t\tconst recordName =\n\t\t\t\t\trecord.name === '@' ? domain : `${record.name}.${domain}`;\n\n\t\t\t\tchanges.push({\n\t\t\t\t\tAction: 'UPSERT' as const,\n\t\t\t\t\tResourceRecordSet: {\n\t\t\t\t\t\tName: recordName,\n\t\t\t\t\t\tType: record.type,\n\t\t\t\t\t\tTTL: record.ttl,\n\t\t\t\t\t\tResourceRecords: [{ Value: record.value }],\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresults.push({\n\t\t\t\t\trecord,\n\t\t\t\t\tcreated: !existing,\n\t\t\t\t\tunchanged: false,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Execute batch if there are changes\n\t\t\tif (changes.length > 0) {\n\t\t\t\tconst command = new ChangeResourceRecordSetsCommand({\n\t\t\t\t\tHostedZoneId: zoneId,\n\t\t\t\t\tChangeBatch: {\n\t\t\t\t\t\tComment: 'Upsert by gkm deploy',\n\t\t\t\t\t\tChanges: changes,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tawait this.client.send(command);\n\t\t\t}\n\t\t}\n\n\t\treturn results;\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Route53Provider-xrWuBXih.cjs","names":["options: Route53ProviderOptions","Route53Client","domain: string","ListHostedZonesByNameCommand","type: string","validTypes: DnsRecordType[]","recordName: string","records: DnsRecord[]","nextRecordName: string | undefined","nextRecordType: RRType | undefined","ListResourceRecordSetsCommand","records: UpsertDnsRecord[]","results: UpsertResult[]","ChangeResourceRecordSetsCommand"],"sources":["../src/deploy/dns/Route53Provider.ts"],"sourcesContent":["/**\n * Route53 DNS Provider\n *\n * Implements DnsProvider interface using AWS Route53.\n */\n\nimport {\n\tChangeResourceRecordSetsCommand,\n\tListHostedZonesByNameCommand,\n\tListResourceRecordSetsCommand,\n\tRoute53Client,\n\ttype RRType,\n} from '@aws-sdk/client-route-53';\nimport { fromIni } from '@aws-sdk/credential-providers';\nimport type {\n\tDnsProvider,\n\tDnsRecord,\n\tDnsRecordType,\n\tUpsertDnsRecord,\n\tUpsertResult,\n} from './DnsProvider';\n\nexport interface Route53ProviderOptions {\n\t/** AWS region (optional - uses AWS_REGION env var if not provided) */\n\tregion?: string;\n\t/** AWS profile name (optional - uses default credential chain if not provided) */\n\tprofile?: string;\n\t/** Hosted zone ID (optional - auto-detected from domain if not provided) */\n\thostedZoneId?: string;\n\t/** Custom endpoint for testing with localstack */\n\tendpoint?: string;\n}\n\n/**\n * Route53 DNS provider implementation.\n *\n * Uses AWS default credential chain for authentication.\n * Region can be specified or will use AWS_REGION/AWS_DEFAULT_REGION env vars.\n * Profile can be specified to use a named profile from ~/.aws/credentials.\n */\nexport class Route53Provider implements DnsProvider {\n\treadonly name = 'route53';\n\tprivate client: Route53Client;\n\tprivate hostedZoneId?: string;\n\tprivate hostedZoneCache: Map<string, string> = new Map();\n\n\tconstructor(options: Route53ProviderOptions = {}) {\n\t\tthis.client = new Route53Client({\n\t\t\t...(options.region && { region: options.region }),\n\t\t\t...(options.endpoint && { endpoint: options.endpoint }),\n\t\t\t...(options.profile && {\n\t\t\t\tcredentials: fromIni({ profile: options.profile }),\n\t\t\t}),\n\t\t});\n\t\tthis.hostedZoneId = options.hostedZoneId;\n\t}\n\n\t/**\n\t * Get the hosted zone ID for a domain.\n\t * Uses cache to avoid repeated API calls.\n\t */\n\tprivate async getHostedZoneId(domain: string): Promise<string> {\n\t\t// Use configured zone ID if provided\n\t\tif (this.hostedZoneId) {\n\t\t\treturn this.hostedZoneId;\n\t\t}\n\n\t\t// Check cache\n\t\tif (this.hostedZoneCache.has(domain)) {\n\t\t\treturn this.hostedZoneCache.get(domain)!;\n\t\t}\n\n\t\t// Auto-detect from domain\n\t\tconst command = new ListHostedZonesByNameCommand({\n\t\t\tDNSName: domain,\n\t\t\tMaxItems: 1,\n\t\t});\n\n\t\tconst response = await this.client.send(command);\n\t\tconst zones = response.HostedZones ?? [];\n\n\t\t// Find exact match (domain with trailing dot)\n\t\tconst normalizedDomain = domain.endsWith('.') ? domain : `${domain}.`;\n\t\tconst zone = zones.find((z) => z.Name === normalizedDomain);\n\n\t\tif (!zone?.Id) {\n\t\t\tthrow new Error(\n\t\t\t\t`No hosted zone found for domain: ${domain}. Create one in Route53 or provide hostedZoneId in config.`,\n\t\t\t);\n\t\t}\n\n\t\t// Zone ID comes as \"/hostedzone/Z1234567890\" - extract just the ID\n\t\tconst zoneId = zone.Id.replace('/hostedzone/', '');\n\t\tthis.hostedZoneCache.set(domain, zoneId);\n\t\treturn zoneId;\n\t}\n\n\t/**\n\t * Convert Route53 record type to our DnsRecordType.\n\t * Excludes NS and SOA which are auto-managed by Route53 for the zone.\n\t */\n\tprivate toRecordType(type: string): DnsRecordType | null {\n\t\t// Exclude NS and SOA which are auto-managed zone records\n\t\tconst managedTypes = ['NS', 'SOA'];\n\t\tif (managedTypes.includes(type)) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst validTypes: DnsRecordType[] = [\n\t\t\t'A',\n\t\t\t'AAAA',\n\t\t\t'CNAME',\n\t\t\t'MX',\n\t\t\t'TXT',\n\t\t\t'SRV',\n\t\t\t'CAA',\n\t\t];\n\t\treturn validTypes.includes(type as DnsRecordType)\n\t\t\t? (type as DnsRecordType)\n\t\t\t: null;\n\t}\n\n\t/**\n\t * Extract subdomain from full record name relative to domain.\n\t */\n\tprivate extractSubdomain(recordName: string, domain: string): string {\n\t\tconst normalizedDomain = domain.endsWith('.') ? domain : `${domain}.`;\n\t\tconst normalizedName = recordName.endsWith('.')\n\t\t\t? recordName\n\t\t\t: `${recordName}.`;\n\n\t\tif (normalizedName === normalizedDomain) {\n\t\t\treturn '@';\n\t\t}\n\n\t\t// Remove the domain suffix\n\t\tconst subdomain = normalizedName.replace(`.${normalizedDomain}`, '');\n\t\treturn subdomain.replace(/\\.$/, ''); // Remove trailing dot if any\n\t}\n\n\tasync getRecords(domain: string): Promise<DnsRecord[]> {\n\t\tconst zoneId = await this.getHostedZoneId(domain);\n\t\tconst records: DnsRecord[] = [];\n\n\t\tlet nextRecordName: string | undefined;\n\t\tlet nextRecordType: RRType | undefined;\n\n\t\t// Paginate through all records\n\t\tdo {\n\t\t\tconst command = new ListResourceRecordSetsCommand({\n\t\t\t\tHostedZoneId: zoneId,\n\t\t\t\tStartRecordName: nextRecordName,\n\t\t\t\tStartRecordType: nextRecordType,\n\t\t\t\tMaxItems: 100,\n\t\t\t});\n\n\t\t\tconst response = await this.client.send(command);\n\n\t\t\tfor (const recordSet of response.ResourceRecordSets ?? []) {\n\t\t\t\tconst type = this.toRecordType(recordSet.Type ?? '');\n\t\t\t\tif (!type || !recordSet.Name) continue;\n\n\t\t\t\tconst values = (recordSet.ResourceRecords ?? [])\n\t\t\t\t\t.map((r) => r.Value)\n\t\t\t\t\t.filter((v): v is string => !!v);\n\n\t\t\t\trecords.push({\n\t\t\t\t\tname: this.extractSubdomain(recordSet.Name, domain),\n\t\t\t\t\ttype,\n\t\t\t\t\tttl: recordSet.TTL ?? 300,\n\t\t\t\t\tvalues,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (response.IsTruncated) {\n\t\t\t\tnextRecordName = response.NextRecordName;\n\t\t\t\tnextRecordType = response.NextRecordType;\n\t\t\t} else {\n\t\t\t\tnextRecordName = undefined;\n\t\t\t}\n\t\t} while (nextRecordName);\n\n\t\treturn records;\n\t}\n\n\tasync upsertRecords(\n\t\tdomain: string,\n\t\trecords: UpsertDnsRecord[],\n\t): Promise<UpsertResult[]> {\n\t\tconst zoneId = await this.getHostedZoneId(domain);\n\t\tconst results: UpsertResult[] = [];\n\n\t\t// Get existing records to determine if creating or updating\n\t\tconst existingRecords = await this.getRecords(domain);\n\n\t\t// Process records in batches (Route53 allows max 1000 changes per request)\n\t\tconst batchSize = 100;\n\t\tfor (let i = 0; i < records.length; i += batchSize) {\n\t\t\tconst batch = records.slice(i, i + batchSize);\n\t\t\tconst changes = [];\n\n\t\t\tfor (const record of batch) {\n\t\t\t\tconst existing = existingRecords.find(\n\t\t\t\t\t(r) => r.name === record.name && r.type === record.type,\n\t\t\t\t);\n\n\t\t\t\tconst existingValue = existing?.values?.[0];\n\n\t\t\t\tif (existing && existingValue === record.value) {\n\t\t\t\t\t// Record exists with same value - unchanged\n\t\t\t\t\tresults.push({\n\t\t\t\t\t\trecord,\n\t\t\t\t\t\tcreated: false,\n\t\t\t\t\t\tunchanged: true,\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Build full record name\n\t\t\t\tconst recordName =\n\t\t\t\t\trecord.name === '@' ? domain : `${record.name}.${domain}`;\n\n\t\t\t\tchanges.push({\n\t\t\t\t\tAction: 'UPSERT' as const,\n\t\t\t\t\tResourceRecordSet: {\n\t\t\t\t\t\tName: recordName,\n\t\t\t\t\t\tType: record.type,\n\t\t\t\t\t\tTTL: record.ttl,\n\t\t\t\t\t\tResourceRecords: [{ Value: record.value }],\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresults.push({\n\t\t\t\t\trecord,\n\t\t\t\t\tcreated: !existing,\n\t\t\t\t\tunchanged: false,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Execute batch if there are changes\n\t\t\tif (changes.length > 0) {\n\t\t\t\tconst command = new ChangeResourceRecordSetsCommand({\n\t\t\t\t\tHostedZoneId: zoneId,\n\t\t\t\t\tChangeBatch: {\n\t\t\t\t\t\tComment: 'Upsert by gkm deploy',\n\t\t\t\t\t\tChanges: changes,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tawait this.client.send(command);\n\t\t\t}\n\t\t}\n\n\t\treturn results;\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DvpWzLD7.d.mts","names":[],"sources":["../src/deploy/state.ts","../src/deploy/StateProvider.ts","../src/workspace/schema.ts","../src/workspace/types.ts","../src/workspace/index.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DzmZ6SUW.d.cts","names":[],"sources":["../src/deploy/state.ts","../src/deploy/StateProvider.ts","../src/workspace/schema.ts","../src/workspace/types.ts","../src/workspace/index.ts"],"sourcesContent":[],"mappings":"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"}
|