@geekmidas/cli 1.5.0 → 1.5.1
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 +6 -0
- package/dist/{HostingerProvider-B9N-TKbp.mjs → HostingerProvider-402UdK89.mjs} +34 -1
- package/dist/HostingerProvider-402UdK89.mjs.map +1 -0
- package/dist/{HostingerProvider-DUV9-Tzg.cjs → HostingerProvider-BiXdHjiq.cjs} +34 -1
- package/dist/HostingerProvider-BiXdHjiq.cjs.map +1 -0
- package/dist/{Route53Provider-C8mS0zY6.mjs → Route53Provider-DbBo7Uz5.mjs} +53 -1
- package/dist/Route53Provider-DbBo7Uz5.mjs.map +1 -0
- package/dist/{Route53Provider-Bs7Arms9.cjs → Route53Provider-kfJ77LmL.cjs} +53 -1
- package/dist/Route53Provider-kfJ77LmL.cjs.map +1 -0
- package/dist/backup-provisioner-B5e-F6zX.cjs +164 -0
- package/dist/backup-provisioner-B5e-F6zX.cjs.map +1 -0
- package/dist/backup-provisioner-BIArpmTr.mjs +163 -0
- package/dist/backup-provisioner-BIArpmTr.mjs.map +1 -0
- package/dist/{config-ZQM1vBoz.cjs → config-BYn5yUt5.cjs} +2 -2
- package/dist/{config-ZQM1vBoz.cjs.map → config-BYn5yUt5.cjs.map} +1 -1
- package/dist/{config-DfCJ29PQ.mjs → config-dLNQIvDR.mjs} +2 -2
- package/dist/{config-DfCJ29PQ.mjs.map → config-dLNQIvDR.mjs.map} +1 -1
- package/dist/config.cjs +2 -2
- package/dist/config.d.cts +1 -1
- package/dist/config.d.mts +2 -2
- package/dist/config.mjs +2 -2
- package/dist/{dokploy-api-z0833e7r.mjs → dokploy-api-2ldYoN3i.mjs} +131 -1
- package/dist/dokploy-api-2ldYoN3i.mjs.map +1 -0
- package/dist/dokploy-api-C93pveuy.mjs +3 -0
- package/dist/dokploy-api-CbDh4o93.cjs +3 -0
- package/dist/{dokploy-api-CQvhV6Hd.cjs → dokploy-api-DLgvEQlr.cjs} +131 -1
- package/dist/dokploy-api-DLgvEQlr.cjs.map +1 -0
- package/dist/{index-B58qjyBd.d.cts → index-Ba21_lNt.d.cts} +131 -29
- package/dist/index-Ba21_lNt.d.cts.map +1 -0
- package/dist/{index-C0SpUT9Y.d.mts → index-Bj5VNxEL.d.mts} +132 -30
- package/dist/index-Bj5VNxEL.d.mts.map +1 -0
- package/dist/index.cjs +119 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +119 -25
- package/dist/index.mjs.map +1 -1
- package/dist/{openapi-BcSjLfWq.mjs → openapi-CMTyaIJJ.mjs} +2 -2
- package/dist/{openapi-BcSjLfWq.mjs.map → openapi-CMTyaIJJ.mjs.map} +1 -1
- package/dist/{openapi-D6Hcfov0.cjs → openapi-CqblwJZ4.cjs} +2 -2
- package/dist/{openapi-D6Hcfov0.cjs.map → openapi-CqblwJZ4.cjs.map} +1 -1
- package/dist/openapi.cjs +3 -3
- package/dist/openapi.d.mts +1 -1
- package/dist/openapi.mjs +3 -3
- package/dist/{types-B9UZ7fOG.d.mts → types-CZg5iUgD.d.mts} +1 -1
- package/dist/{types-B9UZ7fOG.d.mts.map → types-CZg5iUgD.d.mts.map} +1 -1
- package/dist/workspace/index.cjs +1 -1
- package/dist/workspace/index.d.cts +1 -1
- package/dist/workspace/index.d.mts +2 -2
- package/dist/workspace/index.mjs +1 -1
- package/dist/{workspace-2Do2YcGZ.cjs → workspace-DIMnYaYt.cjs} +16 -2
- package/dist/{workspace-2Do2YcGZ.cjs.map → workspace-DIMnYaYt.cjs.map} +1 -1
- package/dist/{workspace-BW2iU37P.mjs → workspace-Dy8k7Wru.mjs} +16 -2
- package/dist/{workspace-BW2iU37P.mjs.map → workspace-Dy8k7Wru.mjs.map} +1 -1
- package/examples/cron-example.ts +6 -6
- package/examples/function-example.ts +1 -1
- package/package.json +7 -5
- package/src/deploy/__tests__/backup-provisioner.spec.ts +428 -0
- package/src/deploy/__tests__/createDnsProvider.spec.ts +23 -0
- package/src/deploy/__tests__/env-resolver.spec.ts +1 -1
- package/src/deploy/__tests__/undeploy.spec.ts +758 -0
- package/src/deploy/backup-provisioner.ts +316 -0
- package/src/deploy/dns/DnsProvider.ts +39 -1
- package/src/deploy/dns/HostingerProvider.ts +74 -0
- package/src/deploy/dns/Route53Provider.ts +81 -0
- package/src/deploy/dns/index.ts +25 -0
- package/src/deploy/dokploy-api.ts +237 -0
- package/src/deploy/index.ts +71 -13
- package/src/deploy/state.ts +171 -0
- package/src/deploy/undeploy.ts +407 -0
- package/src/generators/FunctionGenerator.ts +1 -1
- package/src/init/versions.ts +2 -2
- package/src/workspace/schema.ts +26 -0
- package/src/workspace/types.ts +14 -37
- package/dist/HostingerProvider-B9N-TKbp.mjs.map +0 -1
- package/dist/HostingerProvider-DUV9-Tzg.cjs.map +0 -1
- package/dist/Route53Provider-Bs7Arms9.cjs.map +0 -1
- package/dist/Route53Provider-C8mS0zY6.mjs.map +0 -1
- package/dist/dokploy-api-CQvhV6Hd.cjs.map +0 -1
- package/dist/dokploy-api-CWc02yyg.cjs +0 -3
- package/dist/dokploy-api-DSJYNx88.mjs +0 -3
- package/dist/dokploy-api-z0833e7r.mjs.map +0 -1
- package/dist/index-B58qjyBd.d.cts.map +0 -1
- package/dist/index-C0SpUT9Y.d.mts.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GkmConfig, HooksConfig, OpenApiConfig, ProvidersConfig, Routes, Runtime, StudioConfig, TelescopeConfig } from "./types-
|
|
1
|
+
import { GkmConfig, HooksConfig, OpenApiConfig, ProvidersConfig, Routes, Runtime, StudioConfig, TelescopeConfig } from "./types-CZg5iUgD.mjs";
|
|
2
2
|
import { z } from "zod/v4";
|
|
3
3
|
|
|
4
4
|
//#region src/deploy/state.d.ts
|
|
@@ -23,6 +23,46 @@ interface DnsVerificationRecord {
|
|
|
23
23
|
serverIp: string;
|
|
24
24
|
verifiedAt: string;
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* A DNS record that was created during deploy
|
|
28
|
+
*/
|
|
29
|
+
interface CreatedDnsRecord {
|
|
30
|
+
/** The domain this record belongs to (e.g., 'example.com') */
|
|
31
|
+
domain: string;
|
|
32
|
+
/** Record name/subdomain (e.g., 'api' or '@' for root) */
|
|
33
|
+
name: string;
|
|
34
|
+
/** Record type (A, CNAME, etc.) */
|
|
35
|
+
type: string;
|
|
36
|
+
/** Record value (IP address, hostname, etc.) */
|
|
37
|
+
value: string;
|
|
38
|
+
/** TTL in seconds */
|
|
39
|
+
ttl: number;
|
|
40
|
+
/** When this record was created */
|
|
41
|
+
createdAt: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Backup destination state
|
|
45
|
+
*/
|
|
46
|
+
interface BackupState {
|
|
47
|
+
/** S3 bucket name for backups */
|
|
48
|
+
bucketName: string;
|
|
49
|
+
/** S3 bucket ARN */
|
|
50
|
+
bucketArn: string;
|
|
51
|
+
/** IAM user name created for backup access */
|
|
52
|
+
iamUserName: string;
|
|
53
|
+
/** IAM access key ID */
|
|
54
|
+
iamAccessKeyId: string;
|
|
55
|
+
/** IAM secret access key */
|
|
56
|
+
iamSecretAccessKey: string;
|
|
57
|
+
/** Dokploy destination ID */
|
|
58
|
+
destinationId: string;
|
|
59
|
+
/** Dokploy backup schedule ID for postgres (if configured) */
|
|
60
|
+
postgresBackupId?: string;
|
|
61
|
+
/** AWS region where bucket was created */
|
|
62
|
+
region: string;
|
|
63
|
+
/** Timestamp when backup was configured */
|
|
64
|
+
createdAt: string;
|
|
65
|
+
}
|
|
26
66
|
/**
|
|
27
67
|
* State for a single stage deployment
|
|
28
68
|
*/
|
|
@@ -43,6 +83,10 @@ interface DokployStageState {
|
|
|
43
83
|
generatedSecrets?: Record<string, Record<string, string>>;
|
|
44
84
|
/** DNS verification state per hostname */
|
|
45
85
|
dnsVerified?: Record<string, DnsVerificationRecord>;
|
|
86
|
+
/** DNS records created during deploy (keyed by "name:type", e.g., "api:A") */
|
|
87
|
+
dnsRecords?: Record<string, CreatedDnsRecord>;
|
|
88
|
+
/** Backup destination state */
|
|
89
|
+
backups?: BackupState;
|
|
46
90
|
lastDeployedAt: string;
|
|
47
91
|
}
|
|
48
92
|
/**
|
|
@@ -249,6 +293,49 @@ declare const DnsConfigWithLegacySchema: z.ZodUnion<readonly [z.ZodRecord<z.ZodS
|
|
|
249
293
|
ttl: z.ZodOptional<z.ZodNumber>;
|
|
250
294
|
domain: z.ZodString;
|
|
251
295
|
}, z.core.$strip>]>]>;
|
|
296
|
+
type DnsConfig = z.infer<typeof DnsConfigWithLegacySchema>;
|
|
297
|
+
/**
|
|
298
|
+
* Backups configuration schema.
|
|
299
|
+
*
|
|
300
|
+
* Configures automatic backup destinations for database services.
|
|
301
|
+
* On first deploy, creates S3 bucket with unique name and IAM credentials.
|
|
302
|
+
*/
|
|
303
|
+
declare const BackupsConfigSchema: z.ZodObject<{
|
|
304
|
+
type: z.ZodLiteral<"s3">;
|
|
305
|
+
profile: z.ZodOptional<z.ZodString>;
|
|
306
|
+
region: z.ZodEnum<{
|
|
307
|
+
"us-east-1": "us-east-1";
|
|
308
|
+
"us-east-2": "us-east-2";
|
|
309
|
+
"us-west-1": "us-west-1";
|
|
310
|
+
"us-west-2": "us-west-2";
|
|
311
|
+
"af-south-1": "af-south-1";
|
|
312
|
+
"ap-east-1": "ap-east-1";
|
|
313
|
+
"ap-south-1": "ap-south-1";
|
|
314
|
+
"ap-south-2": "ap-south-2";
|
|
315
|
+
"ap-southeast-1": "ap-southeast-1";
|
|
316
|
+
"ap-southeast-2": "ap-southeast-2";
|
|
317
|
+
"ap-southeast-3": "ap-southeast-3";
|
|
318
|
+
"ap-southeast-4": "ap-southeast-4";
|
|
319
|
+
"ap-northeast-1": "ap-northeast-1";
|
|
320
|
+
"ap-northeast-2": "ap-northeast-2";
|
|
321
|
+
"ap-northeast-3": "ap-northeast-3";
|
|
322
|
+
"ca-central-1": "ca-central-1";
|
|
323
|
+
"eu-central-1": "eu-central-1";
|
|
324
|
+
"eu-central-2": "eu-central-2";
|
|
325
|
+
"eu-west-1": "eu-west-1";
|
|
326
|
+
"eu-west-2": "eu-west-2";
|
|
327
|
+
"eu-west-3": "eu-west-3";
|
|
328
|
+
"eu-south-1": "eu-south-1";
|
|
329
|
+
"eu-south-2": "eu-south-2";
|
|
330
|
+
"eu-north-1": "eu-north-1";
|
|
331
|
+
"me-south-1": "me-south-1";
|
|
332
|
+
"me-central-1": "me-central-1";
|
|
333
|
+
"sa-east-1": "sa-east-1";
|
|
334
|
+
}>;
|
|
335
|
+
schedule: z.ZodOptional<z.ZodString>;
|
|
336
|
+
retention: z.ZodOptional<z.ZodNumber>;
|
|
337
|
+
}, z.core.$strip>;
|
|
338
|
+
type BackupsConfig = z.infer<typeof BackupsConfigSchema>;
|
|
252
339
|
/**
|
|
253
340
|
* Workspace configuration schema.
|
|
254
341
|
*/
|
|
@@ -458,6 +545,41 @@ declare const WorkspaceConfigSchema: z.ZodObject<{
|
|
|
458
545
|
ttl: z.ZodOptional<z.ZodNumber>;
|
|
459
546
|
domain: z.ZodString;
|
|
460
547
|
}, z.core.$strip>]>]>>;
|
|
548
|
+
backups: z.ZodOptional<z.ZodObject<{
|
|
549
|
+
type: z.ZodLiteral<"s3">;
|
|
550
|
+
profile: z.ZodOptional<z.ZodString>;
|
|
551
|
+
region: z.ZodEnum<{
|
|
552
|
+
"us-east-1": "us-east-1";
|
|
553
|
+
"us-east-2": "us-east-2";
|
|
554
|
+
"us-west-1": "us-west-1";
|
|
555
|
+
"us-west-2": "us-west-2";
|
|
556
|
+
"af-south-1": "af-south-1";
|
|
557
|
+
"ap-east-1": "ap-east-1";
|
|
558
|
+
"ap-south-1": "ap-south-1";
|
|
559
|
+
"ap-south-2": "ap-south-2";
|
|
560
|
+
"ap-southeast-1": "ap-southeast-1";
|
|
561
|
+
"ap-southeast-2": "ap-southeast-2";
|
|
562
|
+
"ap-southeast-3": "ap-southeast-3";
|
|
563
|
+
"ap-southeast-4": "ap-southeast-4";
|
|
564
|
+
"ap-northeast-1": "ap-northeast-1";
|
|
565
|
+
"ap-northeast-2": "ap-northeast-2";
|
|
566
|
+
"ap-northeast-3": "ap-northeast-3";
|
|
567
|
+
"ca-central-1": "ca-central-1";
|
|
568
|
+
"eu-central-1": "eu-central-1";
|
|
569
|
+
"eu-central-2": "eu-central-2";
|
|
570
|
+
"eu-west-1": "eu-west-1";
|
|
571
|
+
"eu-west-2": "eu-west-2";
|
|
572
|
+
"eu-west-3": "eu-west-3";
|
|
573
|
+
"eu-south-1": "eu-south-1";
|
|
574
|
+
"eu-south-2": "eu-south-2";
|
|
575
|
+
"eu-north-1": "eu-north-1";
|
|
576
|
+
"me-south-1": "me-south-1";
|
|
577
|
+
"me-central-1": "me-central-1";
|
|
578
|
+
"sa-east-1": "sa-east-1";
|
|
579
|
+
}>;
|
|
580
|
+
schedule: z.ZodOptional<z.ZodString>;
|
|
581
|
+
retention: z.ZodOptional<z.ZodNumber>;
|
|
582
|
+
}, z.core.$strip>>;
|
|
461
583
|
}, z.core.$strip>>;
|
|
462
584
|
services: z.ZodOptional<z.ZodObject<{
|
|
463
585
|
db: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
@@ -791,33 +913,6 @@ interface DokployWorkspaceConfig {
|
|
|
791
913
|
* DNS provider types for automatic DNS record creation.
|
|
792
914
|
*/
|
|
793
915
|
|
|
794
|
-
/**
|
|
795
|
-
* DNS configuration for automatic record creation during deployment.
|
|
796
|
-
*
|
|
797
|
-
* Maps root domains to their DNS provider configuration.
|
|
798
|
-
* When configured, the deploy command will automatically create DNS
|
|
799
|
-
* A records pointing to your Dokploy server for each app's domain.
|
|
800
|
-
*
|
|
801
|
-
* @example
|
|
802
|
-
* ```ts
|
|
803
|
-
* // Multi-domain with different providers
|
|
804
|
-
* dns: {
|
|
805
|
-
* 'geekmidas.dev': { provider: 'hostinger' },
|
|
806
|
-
* 'geekmidas.com': { provider: 'route53' },
|
|
807
|
-
* }
|
|
808
|
-
*
|
|
809
|
-
* // Single domain
|
|
810
|
-
* dns: {
|
|
811
|
-
* 'traflabs.io': { provider: 'hostinger', ttl: 300 },
|
|
812
|
-
* }
|
|
813
|
-
*
|
|
814
|
-
* // Manual mode - just print required records
|
|
815
|
-
* dns: {
|
|
816
|
-
* 'myapp.com': { provider: 'manual' },
|
|
817
|
-
* }
|
|
818
|
-
* ```
|
|
819
|
-
*/
|
|
820
|
-
type DnsConfig = z.infer<typeof DnsConfigWithLegacySchema>;
|
|
821
916
|
/**
|
|
822
917
|
* Deployment configuration for the workspace.
|
|
823
918
|
*
|
|
@@ -828,7 +923,7 @@ type DnsConfig = z.infer<typeof DnsConfigWithLegacySchema>;
|
|
|
828
923
|
* default: 'dokploy',
|
|
829
924
|
* }
|
|
830
925
|
*
|
|
831
|
-
* // Full configuration with DNS
|
|
926
|
+
* // Full configuration with DNS and backups
|
|
832
927
|
* deploy: {
|
|
833
928
|
* default: 'dokploy',
|
|
834
929
|
* dokploy: {
|
|
@@ -843,6 +938,10 @@ type DnsConfig = z.infer<typeof DnsConfigWithLegacySchema>;
|
|
|
843
938
|
* provider: 'hostinger',
|
|
844
939
|
* domain: 'myapp.com',
|
|
845
940
|
* },
|
|
941
|
+
* backups: {
|
|
942
|
+
* type: 's3',
|
|
943
|
+
* region: 'us-east-1',
|
|
944
|
+
* },
|
|
846
945
|
* }
|
|
847
946
|
* ```
|
|
848
947
|
*/
|
|
@@ -853,6 +952,8 @@ interface DeployConfig {
|
|
|
853
952
|
dokploy?: DokployWorkspaceConfig;
|
|
854
953
|
/** DNS configuration for automatic record creation */
|
|
855
954
|
dns?: DnsConfig;
|
|
955
|
+
/** Backup destination configuration for database services */
|
|
956
|
+
backups?: BackupsConfig;
|
|
856
957
|
}
|
|
857
958
|
/**
|
|
858
959
|
* Models package configuration for shared schemas.
|
|
@@ -1435,6 +1536,7 @@ interface LoadedConfig {
|
|
|
1435
1536
|
* ```
|
|
1436
1537
|
*/
|
|
1437
1538
|
declare function isWorkspaceConfig(config: GkmConfig | WorkspaceConfig): config is WorkspaceConfig;
|
|
1539
|
+
//# sourceMappingURL=types.d.ts.map
|
|
1438
1540
|
//#endregion
|
|
1439
1541
|
//#region src/workspace/index.d.ts
|
|
1440
1542
|
/**
|
|
@@ -1543,4 +1645,4 @@ declare function getEndpointForStage(dokployConfig: {
|
|
|
1543
1645
|
|
|
1544
1646
|
//#endregion
|
|
1545
1647
|
export { AppConfig, AppConfigInput, AppInput, AppsRecord, BackendFramework, ClientConfig, ConstrainedApps, DeployConfig, DeployTarget, DokployWorkspaceConfig, FrontendFramework, InferAppNames, InferredWorkspaceConfig, LoadedConfig, MailServiceConfig, ModelsConfig, NormalizedAppConfig, NormalizedWorkspace, PHASE_2_DEPLOY_TARGETS, SUPPORTED_DEPLOY_TARGETS, SecretsConfig, ServiceImageConfig, ServicesConfig, SharedConfig, WorkspaceConfig, WorkspaceConfigSchema, WorkspaceInput, defineWorkspace, formatValidationErrors, getAppBuildOrder, getAppGkmConfig, getDependencyEnvVars, getDeployTargetError, getEndpointForStage, isDeployTargetSupported, isPhase2DeployTarget, isWorkspaceConfig, normalizeWorkspace, processConfig, safeValidateWorkspaceConfig, validateWorkspaceConfig, wrapSingleAppAsWorkspace };
|
|
1546
|
-
//# sourceMappingURL=index-
|
|
1648
|
+
//# sourceMappingURL=index-Bj5VNxEL.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Bj5VNxEL.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":";;;;;;;;;AAaA;AAQA;AAQA;AAkBA;AAwBA;AAAkC,UA1DjB,gBAAA,CA0DiB;EAAA,MAMnB,EAAA,MAAA;EAAM,UAMY,EAAA,MAAA;;;;;AAIlB,UAlEE,qBAAA,CAkEF;EAAM,QAEQ,EAAA,MAAA;EAAgB,UAA/B,EAAA,MAAA;;AAEQ;;;UA9DL,gBAAA;ECZA;EAAa,MAAA,EAAA,MAAA;EAAA;EAOiB,IAAzB,EAAA,MAAA;EAAO;EAQiB,IAAG,EAAA,MAAA;EAAO;EAM5C,KAAA,EAAA,MAAS;EAgCJ;EAOA,GAAA,EAAA,MAAA;EAWA;EAQL,SAAA,EAAA,MAAW;;;;;AAAwD,UDjD9D,WAAA,CCiD8D;;;;ECJzE,SAAA,EAAA,MAAA;EAKA;EAKU,WAAA,EAAA,MAAA;EASA;EASA,cAAA,EAAA,MAAA;EAuSH;EAGX,kBAAA,EAAA,MAAA;EAAA;EAHoC,aAAA,EAAA,MAAA;;;;QAAA,EAAA,MAAA;EAAA;;;;;;UFxVrB,iBAAA;;;;;;gBAMF;;;;;;mBAMG,eAAe;;EE4UK,gBAzFxB,CAAA,EFjPM,MEiPN,CAAA,MAAA,EFjPqB,MEiPrB,CAAA,MAAA,EAAA,MAAA,CAAA,CAAA;EAAQ;EACG,WADX,CAAA,EF/OC,ME+OD,CAAA,MAAA,EF/OgB,qBE+OhB,CAAA;EAAQ;EACG,UAAA,CAAA,EF9OX,ME8OW,CAAA,MAAA,EF9OI,gBE8OJ,CAAA;;YF5Od;;;;;;;;;AApBX;;;;;;;AAgB8B,UCtEb,aAAA,CDsEa;EAAqB;;;;AAI7B;;uBCnEA,QAAQ;;AAP9B;;;;;EAe8C,KAAG,CAAA,KAAA,EAAA,MAAA,EAAA,KAAA,EAApB,iBAAoB,CAAA,EAAA,OAAA,CAAA,IAAA,CAAA;AAAO;AAMxD;AAgCA;AAOA;AAWiB,KAlDL,SAAA,GAkDsB,WAAA,GAEvB,WAAa,GAAA,WAAA,GAAA,WAAA,GAAA,YAAA,GAAA,WAAA,GAAA,YAAA,GAAA,YAAA,GAAA,gBAAA,GAAA,gBAAA,GAAA,gBAAA,GAAA,gBAAA,GAAA,gBAAA,GAAA,gBAAA,GAAA,gBAAA,GAAA,cAAA,GAAA,cAAA,GAAA,cAAA,GAAA,WAAA,GAAA,WAAA,GAAA,WAAA,GAAA,YAAA,GAAA,YAAA,GAAA,YAAA,GAAA,YAAA,GAAA,cAAA,GAAA,WAAA;AAMxB;;;AAA6C,UA1B5B,gBAAA,CA0B4B;EAAc,QAAG,EAAA,OAAA;AAAiB;;;;ACJzE,UDfW,cAAA,CCeoC;EAK/C,QAAA,EAAA,KAAA;EAKU;EASA,MAAA,ED/BP,SC+BO;EASA;EAuSH,OAAA,CAAA,EAAA,MAAA;;;;;UDvUI,iBAAA;;UCuUqB,EDrU3B,aCqU2B;;;;;KD/T1B,WAAA,GAAc,mBAAmB,iBAAiB;;;;;;;;;ADnF9D,cE+EM,wBF/E2B,EAAA,SAAA,CAAA,SAAA,CAAA;AAQjC;AAQA;AAkBA;AAwBA,cE0BM,sBF1B4B,EAAA,SAAA,CAAA,QAAA,EAAA,YAAA,CAAA;;;;AAYhB,iBEmBF,uBAAA,CFnBE,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA;;;;AAIH,iBEwBC,oBAAA,CFxBD,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA;;;;AAIO,iBE6BN,oBAAA,CF7BM,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;;AG2TtB;AAGC;;AAgES,cD1DG,yBC0DH,ED1D4B,CAAA,CAAA,QC0D5B,CAAA,SAAA,CD1D4B,CAAA,CAAA,SC0D5B,CD1D4B,CAAA,CAAA,SC0D5B,ED1D4B,CAAA,CAAA,QC0D5B,CAAA,SAAA,CD1D4B,CAAA,CAAA,qBC0D5B,CAAA,CD1D4B,CAAA,CAAA,SC0D5B,CAAA;EAAY,QAUZ,EDpE4B,CAAA,CAAA,UCoE5B,CAAA,WAAA,CAAA;EAAM,GAMH,eAAA,YAAA,CAAA;CAAM,eAMV,CAAA,aAAA,CAAA;EAAM,QAMA,EDtFuB,CAAA,CAAA,UCsFvB,CAAA,SAAA,CAAA;EAAM,MAeR,eAAA,UAAA,CAAA;IAMJ,WAAA,EAAA,WAAA;IAMuB,WAAA,EAAA,WAAA;IAMH,WAAA,EAAA,WAAA;IAMR,WAAA,EAAA,WAAA;IAMV,YAAA,EAAA,YAAA;IAuCE,WAAA,EAAA,WAAA;IAAmB,YAAA,EAAA,YAAA;IAMtB,YAAA,EAAA,YAAA;IA+CA,gBAAA,EAAA,gBAAA;IAAe,gBAAA,EAAA,gBAAA;IAmCR,gBAAc,EAAA,gBAAA;IAAA,gBAAA,EAAA,gBAAA;IAGf,gBAAA,EAAA,gBAAA;IAFP,gBAAA,EAAA,gBAAA;IAAa,gBAAA,EAAA,gBAAA;IASL,cAAU,EAAA,cAAQ;IAQvB,cAAQ,EAAA,cAAG;IAOX,cAAU,EAAA,cAAA;IAAA,WAAA,EAAA,WAAA;IAAkB,WAAA,EAAA,WAAA;IAAf,WAAA,EAAA,WAAA;IAAM,YAAA,EAAA,YAAA;IAMnB,YAAA,EAAe,YAAA;IAAA,YAAA,EAAA,YAAA;IAAe,YAAA,EAAA,YAAA;IAC7B,cAAA,EAAA,cAAA;IAAa,WAAA,EAAA,WAAA;EAAK,CAAA,CAAA,CAAC;EAAC,OAAZ,eAAA,YAAA,CAAA;EAAI,YACQ,eAAA,YAAA,CAAA;EAAK,GAAA,eAAA,YAAA,CAAA;AAqCtC,CAAA,eAAY,CAAA,aAAc,CAAA;EAAA,QAAA,cAAA,CAAA,YAAA,CAAA;EAAA,GAAe,eAAA,YAAA,CAAA;CAAU,eAI5B,CAAA,aAAA,CAAA;EAAK,QAArB,cAAA,CAAA,QAAA,CAAA;CAAe,eAEZ,CAAA,CAAA,EAAA,UAAA,CAAA,aAAA,CAAA;EAAY,QAEZ,EDxae,CAAA,CAAA,SCwaf,CAAA;IAEE,IAAA,EAAA,MAAA;IAED,UAAA,ED7aG,QC6aH;IAEF,aAAA,ED9aQ,QC8aR;EAAW,CAAA,EAAA;IAMR,IAAA,EAAA,MAAa;IAAA,UAAA,EDrbX,QCqbW;IAAe,aAAA,EDpbvB,QCobuB;EAAU,CAAA,CAAA;EAAe,GAAA,eAAA,YAAA,CAAA;AAKjE,CAAA,eAAY,CAAA,CAAA,CAAA,CAAA,YAAuB,CAAA,SAAA,wBAAA,CAAA,YAAA,CAAA;EAAA,QAAA,EDjWG,CAAA,CAAA,UCiWH,CAAA,WAAA,CAAA;EAAA,GAAe,eAAA,YAAA,CAAA;EAAU,MAG9C,aAAA;CAAK,eAAQ,CAAA,aAAA,CAAA;EAAK,QAAC,cAAA,CAAA,SAAA,CAAA;EAAC,MAAZ,eAAA,UAAA,CAAA;IACU,WAAA,EAAA,WAAA;IAAd,WAAA,EAAA,WAAA;IAGR,WAAA,EAAA,WAAA;IACA,WAAA,EAAA,WAAA;IACE,YAAA,EAAA,YAAA;IACD,WAAA,EAAA,WAAA;IACF,YAAA,EAAA,YAAA;IAAW,YAAA,EAAA,YAAA;IA+FH,gBAAe,EAAA,gBAAA;IAAA,gBAAA,EAAA,gBAAA;IAKV,gBAAA,EAAA,gBAAA;IAAf,gBAAA,EAAA,gBAAA;IAGG,gBAAA,EAAA,gBAAA;IAGA,gBAAA,EAAA,gBAAA;IAGE,gBAAA,EAAA,gBAAA;IAGD,cAAA,EAAA,cAAA;IAGF,cAAA,EAAA,cAAA;IAAW,cAAA,EAAA,cAAA;IASH,WAAA,EAAA,WAAoB;IAAA,WAAA,EAAA,WAAA;IAAa,WAAA,EAAA,WAAA;IAU3B,YAAA,EAAA,YAAA;IAIV,YAAA,EAAA,YAAA;IAAmB,YAAA,EAAA,YAAA;IAEtB,YAAA,EAAA,YAAA;IAhBmC,cAAA,EAAA,cAAA;IAAI,WAAA,EAAA,WAAA;EA2BhC,CAAA,CAAA,CAAA;EAAmB,OAAA,eAAA,YAAA,CAAA;EAAA,YAMd,eAAA,YAAA,CAAA;EAAmB,GAAlC,eAAA,YAAA,CAAA;EAAM,MAEF,aAAA;CAAc,eAEhB,CAAA,aAAA,CAAA;EAAY,QAEZ,cAAA,CAAA,YAAA,CAAA;EAAY,GAEX,eAAA,YAAA,CAAA;EAAa,MAEd,aAAA;AAAW,CAAA,eAAA,CAAA,aAAA,CAAA;EAMH,QAAA,cAAY,CAAA,QAAA,CAAA;EAAA,MAAA,aAAA;CAAA,eAIvB,CAAA,CAAA,EAAA,UAAA,CAAA,aAAA,CAAA;EAAS,QAAG,EDrnBO,CAAA,CAAA,SCqnBP,CAAA;IAEN,IAAA,EAAA,MAAA;IAAmB,UAAA,EDxnBjB,QCwnBiB;IAef,aAAA,EDtoBC,QCsoBgB;EAAA,CAAA,EAAA;IACxB,IAAA,EAAA,MAAA;IAAY,UAAA,EDxoBP,QCwoBO;IACR,aAAA,EDxoBI,QCwoBJ;EAAe,CAAA,CAAA;;;;ACl1BZ,KFuSJ,SAAA,GAAY,CAAA,CAAE,KEvSK,CAAA,OFuSQ,yBEvSR,CAAA;;;;;;;AAEL,cF6Sb,mBE7Sa,EF6SM,CAAA,CAAA,SE7SN,CAAA;EA8BV,IAAA,EF0Rd,CAAA,CAAA,UE1Rc,CAAA,IAAkB,CAAA;EAAA,OAAA,eAAA,YAAA,CAAA;EAAA,MACzB,WAAA,CAAA;IAEN,WAAA,EAAA,WAAA;IAAmB,WAAA,EAAA,WAAA;IA6CN,WAAA,EAAA,WAAwB;IAAA,WAAA,EAAA,WAAA;IAC/B,YAAA,EAAA,YAAA;IAEN,WAAA,EAAA,WAAA;IAAmB,YAAA,EAAA,YAAA;IAyDN,YAAa,EAAA,YAAA;IAAA,gBAAA,EAAA,gBAAA;IACpB,gBAAA,EAAA,gBAAA;IAAY,gBAAA,EAAA,gBAAA;IAElB,gBAAA,EAAA,gBAAA;IAAY,gBAAA,EAAA,gBAAA;IA2BC,gBAAe,EAAA,gBAAA;IAAA,gBAAA,EAAA,gBAAA;IACnB,cAAA,EAAA,cAAA;IAET,cAAA,EAAA,cAAA;IAAS,cAAA,EAAA,cAAA;IA2BI,WAAA,EAAA,WAAgB;IA8BhB,WAAA,EAAA,WAAoB;IAAA,WAAA,EAAA,WAAA;IACxB,YAAA,EAAA,YAAA;IAGT,YAAA,EAAA,YAAA;IAAM,YAAA,EAAA,YAAA;IA2CO,YAAA,EAAA,YAAmB;;;;;;;KFuCvB,aAAA,GAAgB,CAAA,CAAE,aAAa;;;;cAgL9B,uBAAqB,CAAA,CAAA;sBAsG/B,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAxYsB,CAAA,CAAA;;oBADX;uBACG;;;oBADH;uBACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAAQ,CAAA,CAAA;;oBADX;uBACG;;;oBADH;uBACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkLoC,CAAA,CAAA;YAAzB;aAAiB;;YAAjB;aAAiB;;;;;;;;iBA4N7B,uBAAA,mBAEb,CAAA,CAAE,aAAa;;;;iBAOF,2BAAA;;SAER,CAAA,CAAE,aAAa;UACd,CAAA,CAAE;;;;;iBAYK,sBAAA,QAA8B,CAAA,CAAE;;;AFxtBhD;AAQA;AAkBA;AAwBA;;;;;;;;;;;;AAoBsB,KG1DV,YAAA,GH0DU,SAAA,GAAA,QAAA,GAAA,YAAA;;;;AC1EtB;;;;;;AAewD;AAMxD;AAgCA;AAOA;AAWA;AAQA;;;;;AAA+E;;;KEvCnE,gBAAA;ADzDe;AA4F0B;AAUrD;AASA;AASA;AAuSA;;;;;;;;;;;;;;;KChVY,iBAAA;;;;;;;;;;;;;ADuPE,UCzOG,kBAAA,CDyOH;EAAQ;EACG,OADX,CAAA,EAAA,MAAA;EAAQ;EACG,KAAA,CAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;UC/MR,iBAAA,SAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;ADuSL;AAKtC;;;;AAA+B;AAQ/B;;;;;;;;;;UCzQiB,cAAA;;EDyQe,EAAA,CAAA,EAAA,OAAA,GCvQhB,kBDuQgB;EAapB;EAAa,KAAA,CAAA,EAAA,OAAA,GClRN,kBDkRM;EAAA;EAAqC,IAAlC,CAAE,EAAA,OAAA,GChRZ,iBDgRY;AAAK;AAgLnC;;;;;;;;;;;;;;;;;;;;KCzaY,oBAAA,GAAuB;;;;;;;;;;;;;;;;;;;;KAqBvB,eAAA,YAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAkCtB,sBAAA;;;;cAIJ;;;;;;;;;;YAUF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAwCM,YAAA;;YAEN;;YAEA;;QAEJ;;YAEI;;;;;;;;;;;;;;;;;;UAmBM,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ADFH,UC8BG,YAAA,CD9BH;EAAQ;EACG,QADX,CAAA,EAAA,MAAA,EAAA;EAAQ;EACG,MAAA,CAAA,ECiCf,YDjCe;;;;;;;;;;;;;;;;;;UCoDR,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;;UA2BA,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAwCP,aAAA;;;;;;;;;;;;;;;;;;;;;;;;WA2BA;;;;;WAUA;;;;;cAMG;;;;;EDgBuB,KAAS,CAAA,ECVpC,MDUoC;EAAQ;;;;gBCJtC;;;;;EDoHmB,SAAA,CAAA,EAAA,MAAA;EA4GlB;;;;EAEN,MAAA,CAAA,EAAA,MAAA;EAOM;EAA2B,SAAA,CAAA,EC1N9B,eD0N8B;EAAA;;;AAGxB;EAYH,KAAA,CAAA,ECnOP,WDmOO;;;;AC5sBhB;EAwBY,SAAA,CAAA,EAAA,MAAA,GAAgB,OAAA,GAudI,eAvdJ;EAsBhB;AAcZ;AA2BA;AA2CA;EAA+B,MAAA,CAAA,EAAA,MAAA,GAAA,OAAA,GAmXF,YAnXE;EAAA;;;AAMI;EAuBvB,OAAA,CAAA,EAAA,OAAA,GA4VS,aA5VW;EAqBpB;AAkCZ;;;EAImB,OAUR,CAAA,EA6RA,OA7RA;EAAoB;AAwC/B;;;EAEuB,GAEZ,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;EAAsB;;AAIT;AAmBxB;AA4BA;AAuBA;AA2BA;AAGC;;;;;;EAsFc,KAMA,CAAA,EAAA,MAAA;EAAM;;;;;;;;EAoF4B,SAMvC,CAAA,EANG,gBAMH,GANsB,iBAMtB;EAAY;AA+CG;AAmCzB;;EAA+B,MAGf,CAAA,EArFN,YAqFM;EAAS;AAFH;AAStB;AAQA;AAOA;;;;AAA+B;AAM/B;;;;;;;EACyB,MACQ,CAAA,EAAA;IAAK;IAqC1B,MAAA,CAAA,EAAA,MAAc;IAAA;IAAe,MAAA,CAAA,EAAA,MAAA;EAAU,CAAA;EAIvB;;;;;;AAUR;AAMpB;;;;AAAiE;AAKjE;;;;;;EAGkC,MAAZ,CAAA,EArIZ,eAqIY;EAAI;;;;;;;AAQN;AA+FpB;EAAgC,WAAA,CAAA,EAAA,MAAA,EAAA;;;;;;;;AAoBZ;AASpB;;;;;;;;AAAiD;AA2BjD;;;;;AAUS,UA3QQ,cA2QR,CAAA,kBAAA,MAAA,GAAA,MAAA,CAAA,SA1QA,aA0QA,CAAA;EAAY;EAEA,YAEX,CAAA,EA5QM,SA4QN,EAAA;;AAEU;AAMpB;;;AAIkB,UAjRD,SAAA,SAAkB,aAiRjB,CAAA;EAAe;EAEF,YAAA,CAAA,EAAA,MAAA,EAAA;AAe/B;;;;AAEa,KA5RD,QAAA,GAAW,aA4RV,GAAA;EAAe,YAAA,CAAA,EAAA,SAAA,MAAA,EAAA;;;;ACl1B5B;AAA+B,KD6jBnB,UAAA,GAAa,MC7jBM,CAAA,MAAA,ED6jBS,QC7jBT,CAAA;;;;;AAE5B,KDikBS,eCjkBT,CAAA,cDikBuC,UCjkBvC,CAAA,GAAA,QAAuB,MDkkBb,KClkBa,GDkkBL,IClkBK,CDkkBA,KClkBA,CDkkBM,CClkBN,CAAA,EAAA,cAAA,CAAA,GAAA;EA8BV,YAAA,CAAA,EAAA,SAAkB,CAAA,MDqiBD,KCriBC,GAAA,MAAA,CAAA,EAAA;AAAA,CAAA,EAAA;;AAGZ;AA6CtB;;;;AAGsB;AAyDtB;;;;;AAGe;AA2Bf;;;;AAGY;AA2BZ;AA8BA;;;;AAIS;AA2CT;;;;;;;;;KDqVY,6BAA6B;;;;QAIlC,gBAAgB;;WAEb;;WAEA;;aAEE;;YAED;;UAEF;;;;;KAMG,4BAA4B,oBAAoB;;;;KAKhD,sCAAsC;;sBAGpC,QAAQ,KAAK,MAAM;mBACf,cAAc;;WAGtB;WACA;aACE;YACD;UACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA+FQ,eAAA;;;;QAKV,eAAe;;WAGZ;;WAGA;;aAGE;;YAGD;;UAGF;;;;;;;;UASQ,mBAAA,SAA4B,KAAK;;;;;;;;;;wBAU3B;;;;cAIV,mBAAmB;;WAEtB;;;;;;;;;;UAWO,mBAAA;;;;;;QAMV,eAAe;;YAEX;;UAEF;;UAEA;;WAEC;;UAED;;;;;UAMQ,YAAA;;;;OAIX,YAAY;;aAEN;;;;;;;;;;;;;;iBAeI,iBAAA,SACP,YAAY,4BACR;;;;AH17Bb;AAQA;AAkBA;AAwBA;;;;;;;;;;;;AAoBsB;;;;AC1EtB;;;;;;AAewD;AAMxD;AAgCA;AAOA;AAWA;AAQA;;;;;AAA+E;;;;AChGpD;AA4F0B;AAUrD;AASgB,iBEcA,eFdoB,CAAA,oBEcgB,UFdhB,CAAA,CAAA,MAAA,EEe3B,cFf2B,CEeZ,KFfY,CAAA,CAAA,EEgBjC,uBFhBiC,CEgBT,KFhBS,CAAA;AASpC;AAuSA;;AAAsC,iBElQtB,kBAAA,CFkQsB,MAAA,EEjQ7B,eFiQ6B,EAAA,GAAA,EAAA,MAAA,CAAA,EE/PnC,mBF+PmC;;;;;AAAA,iBElNtB,wBAAA,CFkNsB,MAAA,EEjN7B,SFiN6B,EAAA,GAAA,EAAA,MAAA,CAAA,EE/MnC,mBF+MmC;;;;;iBEtJtB,aAAA,SACP,YAAY,+BAElB;;;;;iBA2Ba,eAAA,YACJ,uCAET;;;;;iBA2Ba,gBAAA,YAA4B;;;;;AF0FN,iBE5DtB,oBAAA,CF4DsB,SAAA,EE3D1B,mBF2D0B,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,MAAA,CAAA,EExDnC,MFwDmC,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;iBEbtB,mBAAA;;cAEqB"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env -S npx tsx
|
|
2
2
|
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
3
|
-
const require_workspace = require('./workspace-
|
|
4
|
-
const require_config = require('./config-
|
|
3
|
+
const require_workspace = require('./workspace-DIMnYaYt.cjs');
|
|
4
|
+
const require_config = require('./config-BYn5yUt5.cjs');
|
|
5
5
|
const require_credentials = require('./credentials-C8DWtnMY.cjs');
|
|
6
|
-
const require_openapi = require('./openapi-
|
|
6
|
+
const require_openapi = require('./openapi-CqblwJZ4.cjs');
|
|
7
7
|
const require_storage = require('./storage-CoCNe0Pt.cjs');
|
|
8
|
-
const require_dokploy_api = require('./dokploy-api-
|
|
8
|
+
const require_dokploy_api = require('./dokploy-api-DLgvEQlr.cjs');
|
|
9
9
|
const require_encryption = require('./encryption-BE0UOb8j.cjs');
|
|
10
10
|
const require_CachedStateProvider = require('./CachedStateProvider-D73dCqfH.cjs');
|
|
11
11
|
const require_openapi_react_query = require('./openapi-react-query-BeXvk-wa.cjs');
|
|
@@ -32,7 +32,7 @@ const prompts = require_chunk.__toESM(require("prompts"));
|
|
|
32
32
|
|
|
33
33
|
//#region package.json
|
|
34
34
|
var name = "@geekmidas/cli";
|
|
35
|
-
var version = "1.
|
|
35
|
+
var version = "1.5.0";
|
|
36
36
|
var description = "CLI tools for building Lambda handlers, server applications, and generating OpenAPI specs";
|
|
37
37
|
var private$1 = false;
|
|
38
38
|
var type = "module";
|
|
@@ -78,7 +78,9 @@ var repository = {
|
|
|
78
78
|
};
|
|
79
79
|
var dependencies = {
|
|
80
80
|
"@apidevtools/swagger-parser": "^10.1.0",
|
|
81
|
+
"@aws-sdk/client-iam": "~3.971.0",
|
|
81
82
|
"@aws-sdk/client-route-53": "~3.971.0",
|
|
83
|
+
"@aws-sdk/client-s3": "~3.971.0",
|
|
82
84
|
"@aws-sdk/client-ssm": "~3.971.0",
|
|
83
85
|
"@aws-sdk/credential-providers": "~3.971.0",
|
|
84
86
|
"@geekmidas/constructs": "workspace:~",
|
|
@@ -132,7 +134,7 @@ const logger$11 = console;
|
|
|
132
134
|
* Validate Dokploy token by making a test API call
|
|
133
135
|
*/
|
|
134
136
|
async function validateDokployToken(endpoint, token) {
|
|
135
|
-
const { DokployApi: DokployApi$1 } = await Promise.resolve().then(() => require("./dokploy-api-
|
|
137
|
+
const { DokployApi: DokployApi$1 } = await Promise.resolve().then(() => require("./dokploy-api-CbDh4o93.cjs"));
|
|
136
138
|
const api = new DokployApi$1({
|
|
137
139
|
baseUrl: endpoint,
|
|
138
140
|
token
|
|
@@ -417,7 +419,7 @@ var FunctionGenerator = class extends require_openapi.ConstructGenerator {
|
|
|
417
419
|
const importPath = relativePath.replace(/\.ts$/, ".js");
|
|
418
420
|
const relativeEnvParserPath = (0, node_path.relative)((0, node_path.dirname)(handlerPath), context.envParserPath);
|
|
419
421
|
const relativeLoggerPath = (0, node_path.relative)((0, node_path.dirname)(handlerPath), context.loggerPath);
|
|
420
|
-
const content = `import { AWSLambdaFunction } from '@geekmidas/constructs/
|
|
422
|
+
const content = `import { AWSLambdaFunction } from '@geekmidas/constructs/aws';
|
|
421
423
|
import { ${exportName} } from '${importPath}';
|
|
422
424
|
import ${context.envParserImportPattern} from '${relativeEnvParserPath}';
|
|
423
425
|
import ${context.loggerImportPattern} from '${relativeLoggerPath}';
|
|
@@ -2176,6 +2178,41 @@ function isDnsVerified(state, hostname, serverIp) {
|
|
|
2176
2178
|
const record = state?.dnsVerified?.[hostname];
|
|
2177
2179
|
return record?.serverIp === serverIp;
|
|
2178
2180
|
}
|
|
2181
|
+
/**
|
|
2182
|
+
* Get the key for a DNS record in state
|
|
2183
|
+
*/
|
|
2184
|
+
function getDnsRecordKey(name$1, type$1) {
|
|
2185
|
+
return `${name$1}:${type$1}`;
|
|
2186
|
+
}
|
|
2187
|
+
/**
|
|
2188
|
+
* Set a created DNS record in state (mutates state)
|
|
2189
|
+
*/
|
|
2190
|
+
function setDnsRecord(state, record) {
|
|
2191
|
+
if (!state.dnsRecords) state.dnsRecords = {};
|
|
2192
|
+
const key = getDnsRecordKey(record.name, record.type);
|
|
2193
|
+
state.dnsRecords[key] = {
|
|
2194
|
+
...record,
|
|
2195
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
2196
|
+
};
|
|
2197
|
+
}
|
|
2198
|
+
/**
|
|
2199
|
+
* Get backup state from state
|
|
2200
|
+
*/
|
|
2201
|
+
function getBackupState(state) {
|
|
2202
|
+
return state?.backups;
|
|
2203
|
+
}
|
|
2204
|
+
/**
|
|
2205
|
+
* Set backup state (mutates state)
|
|
2206
|
+
*/
|
|
2207
|
+
function setBackupState(state, backupState) {
|
|
2208
|
+
state.backups = backupState;
|
|
2209
|
+
}
|
|
2210
|
+
/**
|
|
2211
|
+
* Set postgres backup ID in state (mutates state)
|
|
2212
|
+
*/
|
|
2213
|
+
function setPostgresBackupId(state, backupId) {
|
|
2214
|
+
if (state.backups) state.backups.postgresBackupId = backupId;
|
|
2215
|
+
}
|
|
2179
2216
|
|
|
2180
2217
|
//#endregion
|
|
2181
2218
|
//#region src/deploy/dns/DnsProvider.ts
|
|
@@ -2183,7 +2220,7 @@ function isDnsVerified(state, hostname, serverIp) {
|
|
|
2183
2220
|
* Check if value is a DnsProvider implementation.
|
|
2184
2221
|
*/
|
|
2185
2222
|
function isDnsProvider(value) {
|
|
2186
|
-
return typeof value === "object" && value !== null && typeof value.name === "string" && typeof value.getRecords === "function" && typeof value.upsertRecords === "function";
|
|
2223
|
+
return typeof value === "object" && value !== null && typeof value.name === "string" && typeof value.getRecords === "function" && typeof value.upsertRecords === "function" && typeof value.deleteRecords === "function";
|
|
2187
2224
|
}
|
|
2188
2225
|
/**
|
|
2189
2226
|
* Create a DNS provider based on configuration.
|
|
@@ -2199,11 +2236,11 @@ async function createDnsProvider(options) {
|
|
|
2199
2236
|
if (isDnsProvider(config.provider)) return config.provider;
|
|
2200
2237
|
const provider = config.provider;
|
|
2201
2238
|
if (provider === "hostinger") {
|
|
2202
|
-
const { HostingerProvider } = await Promise.resolve().then(() => require("./HostingerProvider-
|
|
2239
|
+
const { HostingerProvider } = await Promise.resolve().then(() => require("./HostingerProvider-BiXdHjiq.cjs"));
|
|
2203
2240
|
return new HostingerProvider();
|
|
2204
2241
|
}
|
|
2205
2242
|
if (provider === "route53") {
|
|
2206
|
-
const { Route53Provider } = await Promise.resolve().then(() => require("./Route53Provider-
|
|
2243
|
+
const { Route53Provider } = await Promise.resolve().then(() => require("./Route53Provider-kfJ77LmL.cjs"));
|
|
2207
2244
|
const route53Config = config;
|
|
2208
2245
|
return new Route53Provider({
|
|
2209
2246
|
region: route53Config.region,
|
|
@@ -2414,8 +2451,13 @@ async function createDnsRecordsForDomain(records, rootDomain, providerConfig) {
|
|
|
2414
2451
|
* Supports both legacy single-domain format and new multi-domain format:
|
|
2415
2452
|
* - Legacy: { provider: 'hostinger', domain: 'example.com' }
|
|
2416
2453
|
* - Multi: { 'example.com': { provider: 'hostinger' }, 'example.dev': { provider: 'route53' } }
|
|
2454
|
+
*
|
|
2455
|
+
* @param appHostnames - Map of app names to hostnames
|
|
2456
|
+
* @param dnsConfig - DNS configuration (legacy or multi-domain)
|
|
2457
|
+
* @param dokployEndpoint - Dokploy server endpoint to resolve IP from
|
|
2458
|
+
* @param state - Optional state to save created records for later deletion
|
|
2417
2459
|
*/
|
|
2418
|
-
async function orchestrateDns(appHostnames, dnsConfig, dokployEndpoint) {
|
|
2460
|
+
async function orchestrateDns(appHostnames, dnsConfig, dokployEndpoint, state) {
|
|
2419
2461
|
if (!dnsConfig) return null;
|
|
2420
2462
|
const normalizedConfig = normalizeDnsConfig(dnsConfig);
|
|
2421
2463
|
logger$6.log("\n🌐 Setting up DNS records...");
|
|
@@ -2461,6 +2503,15 @@ async function orchestrateDns(appHostnames, dnsConfig, dokployEndpoint) {
|
|
|
2461
2503
|
logger$6.log(` ⚠ ${failed} record(s) failed for ${rootDomain}`);
|
|
2462
2504
|
hasFailures = true;
|
|
2463
2505
|
}
|
|
2506
|
+
if (state) {
|
|
2507
|
+
for (const record of domainRecords) if (record.created || record.existed) setDnsRecord(state, {
|
|
2508
|
+
domain: rootDomain,
|
|
2509
|
+
name: record.subdomain,
|
|
2510
|
+
type: record.type,
|
|
2511
|
+
value: record.value,
|
|
2512
|
+
ttl: "ttl" in providerConfig && providerConfig.ttl ? providerConfig.ttl : 300
|
|
2513
|
+
});
|
|
2514
|
+
}
|
|
2464
2515
|
printDnsRecordsTable(domainRecords, rootDomain);
|
|
2465
2516
|
if (providerConfig.provider === "manual" || failed > 0) printDnsRecordsSimple(domainRecords.filter((r) => !r.created && !r.existed), rootDomain);
|
|
2466
2517
|
}
|
|
@@ -5008,27 +5059,40 @@ async function initializePostgresUsers(api, postgres, serverHostname, users) {
|
|
|
5008
5059
|
for (const user of users) {
|
|
5009
5060
|
const schemaName = user.usePublicSchema ? "public" : user.name;
|
|
5010
5061
|
logger$1.log(` Creating user "${user.name}" with schema "${schemaName}"...`);
|
|
5011
|
-
|
|
5012
|
-
|
|
5013
|
-
|
|
5014
|
-
|
|
5015
|
-
|
|
5016
|
-
|
|
5017
|
-
|
|
5018
|
-
|
|
5019
|
-
|
|
5020
|
-
|
|
5062
|
+
if (user.usePublicSchema) {
|
|
5063
|
+
await client.query(`
|
|
5064
|
+
DO $$ BEGIN
|
|
5065
|
+
IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = '${user.name}') THEN
|
|
5066
|
+
CREATE USER "${user.name}" WITH PASSWORD '${user.password}';
|
|
5067
|
+
ELSE
|
|
5068
|
+
ALTER USER "${user.name}" WITH PASSWORD '${user.password}';
|
|
5069
|
+
END IF;
|
|
5070
|
+
END $$;
|
|
5071
|
+
`);
|
|
5072
|
+
await client.query(`
|
|
5021
5073
|
GRANT ALL ON SCHEMA public TO "${user.name}";
|
|
5022
5074
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO "${user.name}";
|
|
5023
5075
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO "${user.name}";
|
|
5024
5076
|
`);
|
|
5025
|
-
else
|
|
5077
|
+
} else {
|
|
5078
|
+
await client.query(`
|
|
5079
|
+
DO $$ BEGIN
|
|
5080
|
+
IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = '${user.name}') THEN
|
|
5081
|
+
CREATE USER "${user.name}" WITH PASSWORD '${user.password}';
|
|
5082
|
+
ELSE
|
|
5083
|
+
ALTER USER "${user.name}" WITH PASSWORD '${user.password}';
|
|
5084
|
+
END IF;
|
|
5085
|
+
-- Set search_path in same transaction to avoid tuple conflict
|
|
5086
|
+
ALTER USER "${user.name}" SET search_path TO "${schemaName}";
|
|
5087
|
+
END $$;
|
|
5088
|
+
`);
|
|
5089
|
+
await client.query(`
|
|
5026
5090
|
CREATE SCHEMA IF NOT EXISTS "${schemaName}" AUTHORIZATION "${user.name}";
|
|
5027
|
-
ALTER USER "${user.name}" SET search_path TO "${schemaName}";
|
|
5028
5091
|
GRANT USAGE ON SCHEMA "${schemaName}" TO "${user.name}";
|
|
5029
5092
|
GRANT ALL ON ALL TABLES IN SCHEMA "${schemaName}" TO "${user.name}";
|
|
5030
5093
|
ALTER DEFAULT PRIVILEGES IN SCHEMA "${schemaName}" GRANT ALL ON TABLES TO "${user.name}";
|
|
5031
5094
|
`);
|
|
5095
|
+
}
|
|
5032
5096
|
logger$1.log(` ✓ User "${user.name}" configured`);
|
|
5033
5097
|
}
|
|
5034
5098
|
} finally {
|
|
@@ -5534,6 +5598,36 @@ async function workspaceDeployCommand(workspace, options) {
|
|
|
5534
5598
|
await initializePostgresUsers(api, provisionedPostgres, serverHostname, usersToCreate);
|
|
5535
5599
|
}
|
|
5536
5600
|
}
|
|
5601
|
+
if (workspace.deploy?.backups && provisionedPostgres) {
|
|
5602
|
+
logger$1.log("\n💾 Provisioning backup destination...");
|
|
5603
|
+
const { provisionBackupDestination } = await Promise.resolve().then(() => require("./backup-provisioner-B5e-F6zX.cjs"));
|
|
5604
|
+
const backupState = await provisionBackupDestination({
|
|
5605
|
+
api,
|
|
5606
|
+
projectId: project.projectId,
|
|
5607
|
+
projectName: workspace.name,
|
|
5608
|
+
stage,
|
|
5609
|
+
config: workspace.deploy.backups,
|
|
5610
|
+
existingState: getBackupState(state),
|
|
5611
|
+
logger: logger$1
|
|
5612
|
+
});
|
|
5613
|
+
setBackupState(state, backupState);
|
|
5614
|
+
if (!backupState.postgresBackupId) {
|
|
5615
|
+
const backupSchedule = workspace.deploy.backups.schedule ?? "0 2 * * *";
|
|
5616
|
+
const backupRetention = workspace.deploy.backups.retention ?? 30;
|
|
5617
|
+
logger$1.log(" Creating postgres backup schedule...");
|
|
5618
|
+
const backup = await api.createPostgresBackup({
|
|
5619
|
+
schedule: backupSchedule,
|
|
5620
|
+
prefix: `${stage}/postgres`,
|
|
5621
|
+
destinationId: backupState.destinationId,
|
|
5622
|
+
database: provisionedPostgres.databaseName,
|
|
5623
|
+
postgresId: provisionedPostgres.postgresId,
|
|
5624
|
+
enabled: true,
|
|
5625
|
+
keepLatestCount: backupRetention
|
|
5626
|
+
});
|
|
5627
|
+
setPostgresBackupId(state, backup.backupId);
|
|
5628
|
+
logger$1.log(` ✓ Postgres backup schedule created (${backupSchedule})`);
|
|
5629
|
+
} else logger$1.log(" ✓ Using existing postgres backup schedule");
|
|
5630
|
+
}
|
|
5537
5631
|
const publicUrls = {};
|
|
5538
5632
|
const results = [];
|
|
5539
5633
|
const dokployConfig = workspace.deploy.dokploy;
|
|
@@ -6275,10 +6369,10 @@ const GEEKMIDAS_VERSIONS = {
|
|
|
6275
6369
|
"@geekmidas/cache": "~1.0.0",
|
|
6276
6370
|
"@geekmidas/client": "~1.0.0",
|
|
6277
6371
|
"@geekmidas/cloud": "~1.0.0",
|
|
6278
|
-
"@geekmidas/constructs": "~1.0.
|
|
6372
|
+
"@geekmidas/constructs": "~1.0.4",
|
|
6279
6373
|
"@geekmidas/db": "~1.0.0",
|
|
6280
6374
|
"@geekmidas/emailkit": "~1.0.0",
|
|
6281
|
-
"@geekmidas/envkit": "~1.0.
|
|
6375
|
+
"@geekmidas/envkit": "~1.0.1",
|
|
6282
6376
|
"@geekmidas/errors": "~1.0.0",
|
|
6283
6377
|
"@geekmidas/events": "~1.0.0",
|
|
6284
6378
|
"@geekmidas/logger": "~1.0.0",
|