@geekmidas/cli 0.39.0 → 0.41.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.
Files changed (81) hide show
  1. package/dist/{bundler-CyHg1v_T.cjs → bundler-BB-kETMd.cjs} +20 -49
  2. package/dist/bundler-BB-kETMd.cjs.map +1 -0
  3. package/dist/{bundler-DQIuE3Kn.mjs → bundler-DGry2vaR.mjs} +22 -51
  4. package/dist/bundler-DGry2vaR.mjs.map +1 -0
  5. package/dist/{config-BC5n1a2D.mjs → config-C0b0jdmU.mjs} +2 -2
  6. package/dist/{config-BC5n1a2D.mjs.map → config-C0b0jdmU.mjs.map} +1 -1
  7. package/dist/{config-BAE9LFC1.cjs → config-xVZsRjN7.cjs} +2 -2
  8. package/dist/{config-BAE9LFC1.cjs.map → config-xVZsRjN7.cjs.map} +1 -1
  9. package/dist/config.cjs +2 -2
  10. package/dist/config.d.cts +1 -1
  11. package/dist/config.d.mts +2 -2
  12. package/dist/config.mjs +2 -2
  13. package/dist/dokploy-api-Bdmk5ImW.cjs +3 -0
  14. package/dist/{dokploy-api-C5czOZoc.cjs → dokploy-api-BdxOMH_V.cjs} +43 -1
  15. package/dist/{dokploy-api-C5czOZoc.cjs.map → dokploy-api-BdxOMH_V.cjs.map} +1 -1
  16. package/dist/{dokploy-api-B9qR2Yn1.mjs → dokploy-api-DWsqNjwP.mjs} +43 -1
  17. package/dist/{dokploy-api-B9qR2Yn1.mjs.map → dokploy-api-DWsqNjwP.mjs.map} +1 -1
  18. package/dist/dokploy-api-tZSZaHd9.mjs +3 -0
  19. package/dist/{encryption-JtMsiGNp.mjs → encryption-BC4MAODn.mjs} +1 -1
  20. package/dist/{encryption-JtMsiGNp.mjs.map → encryption-BC4MAODn.mjs.map} +1 -1
  21. package/dist/encryption-Biq0EZ4m.cjs +4 -0
  22. package/dist/encryption-CQXBZGkt.mjs +3 -0
  23. package/dist/{encryption-BAz0xQ1Q.cjs → encryption-DaCB_NmS.cjs} +13 -3
  24. package/dist/{encryption-BAz0xQ1Q.cjs.map → encryption-DaCB_NmS.cjs.map} +1 -1
  25. package/dist/{index-C7TkoYmt.d.mts → index-CXa3odEw.d.mts} +68 -7
  26. package/dist/index-CXa3odEw.d.mts.map +1 -0
  27. package/dist/{index-CpchsC9w.d.cts → index-E8Nu2Rxl.d.cts} +67 -6
  28. package/dist/index-E8Nu2Rxl.d.cts.map +1 -0
  29. package/dist/index.cjs +698 -127
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.mjs +677 -106
  32. package/dist/index.mjs.map +1 -1
  33. package/dist/{openapi-CjYeF-Tg.mjs → openapi-D3pA6FfZ.mjs} +2 -2
  34. package/dist/{openapi-CjYeF-Tg.mjs.map → openapi-D3pA6FfZ.mjs.map} +1 -1
  35. package/dist/{openapi-a-e3Y8WA.cjs → openapi-DhcCtKzM.cjs} +2 -2
  36. package/dist/{openapi-a-e3Y8WA.cjs.map → openapi-DhcCtKzM.cjs.map} +1 -1
  37. package/dist/{openapi-react-query-DvNpdDpM.cjs → openapi-react-query-C_MxpBgF.cjs} +1 -1
  38. package/dist/{openapi-react-query-DvNpdDpM.cjs.map → openapi-react-query-C_MxpBgF.cjs.map} +1 -1
  39. package/dist/{openapi-react-query-5rSortLH.mjs → openapi-react-query-ZoP9DPbY.mjs} +1 -1
  40. package/dist/{openapi-react-query-5rSortLH.mjs.map → openapi-react-query-ZoP9DPbY.mjs.map} +1 -1
  41. package/dist/openapi-react-query.cjs +1 -1
  42. package/dist/openapi-react-query.mjs +1 -1
  43. package/dist/openapi.cjs +3 -3
  44. package/dist/openapi.d.mts +1 -1
  45. package/dist/openapi.mjs +3 -3
  46. package/dist/{types-K2uQJ-FO.d.mts → types-BtGL-8QS.d.mts} +1 -1
  47. package/dist/{types-K2uQJ-FO.d.mts.map → types-BtGL-8QS.d.mts.map} +1 -1
  48. package/dist/workspace/index.cjs +1 -1
  49. package/dist/workspace/index.d.cts +2 -2
  50. package/dist/workspace/index.d.mts +3 -3
  51. package/dist/workspace/index.mjs +1 -1
  52. package/dist/{workspace-My0A4IRO.cjs → workspace-BDAhr6Kb.cjs} +33 -4
  53. package/dist/{workspace-My0A4IRO.cjs.map → workspace-BDAhr6Kb.cjs.map} +1 -1
  54. package/dist/{workspace-DFJ3sWfY.mjs → workspace-D_6ZCaR_.mjs} +33 -4
  55. package/dist/{workspace-DFJ3sWfY.mjs.map → workspace-D_6ZCaR_.mjs.map} +1 -1
  56. package/package.json +5 -5
  57. package/src/build/bundler.ts +27 -79
  58. package/src/deploy/__tests__/domain.spec.ts +231 -0
  59. package/src/deploy/__tests__/secrets.spec.ts +300 -0
  60. package/src/deploy/__tests__/sniffer.spec.ts +221 -0
  61. package/src/deploy/docker.ts +40 -11
  62. package/src/deploy/dokploy-api.ts +99 -0
  63. package/src/deploy/domain.ts +125 -0
  64. package/src/deploy/index.ts +366 -148
  65. package/src/deploy/secrets.ts +182 -0
  66. package/src/deploy/sniffer.ts +180 -0
  67. package/src/dev/index.ts +11 -0
  68. package/src/docker/index.ts +24 -5
  69. package/src/docker/templates.ts +187 -1
  70. package/src/init/templates/api.ts +4 -4
  71. package/src/init/versions.ts +2 -2
  72. package/src/workspace/index.ts +2 -0
  73. package/src/workspace/schema.ts +32 -6
  74. package/src/workspace/types.ts +64 -2
  75. package/tsconfig.tsbuildinfo +1 -1
  76. package/dist/bundler-CyHg1v_T.cjs.map +0 -1
  77. package/dist/bundler-DQIuE3Kn.mjs.map +0 -1
  78. package/dist/dokploy-api-B0w17y4_.mjs +0 -3
  79. package/dist/dokploy-api-BnGeUqN4.cjs +0 -3
  80. package/dist/index-C7TkoYmt.d.mts.map +0 -1
  81. package/dist/index-CpchsC9w.d.cts.map +0 -1
@@ -9,6 +9,14 @@ import { z } from "zod/v4";
9
9
  * Future: 'vercel' | 'cloudflare'
10
10
  */
11
11
  type DeployTarget = 'dokploy' | 'vercel' | 'cloudflare';
12
+ /**
13
+ * Backend framework types for apps that don't use gkm routes.
14
+ */
15
+ type BackendFramework = 'hono' | 'better-auth' | 'express' | 'fastify';
16
+ /**
17
+ * Frontend framework types.
18
+ */
19
+ type FrontendFramework = 'nextjs' | 'remix' | 'vite';
12
20
  /**
13
21
  * Service image configuration for custom Docker images.
14
22
  */
@@ -41,6 +49,18 @@ interface ServicesConfig {
41
49
  /** Mail service (mailpit for dev) */
42
50
  mail?: boolean | MailServiceConfig;
43
51
  }
52
+ /**
53
+ * Stage-based domain configuration.
54
+ * Maps deployment stages to base domains.
55
+ * @example { development: 'dev.myapp.com', production: 'myapp.com' }
56
+ */
57
+ type DokployDomainsConfig = Record<string, string>;
58
+ /**
59
+ * Per-app domain override configuration.
60
+ * Can be a single domain string or stage-specific domains.
61
+ * @example 'api.custom.com' or { production: 'api.custom.com', staging: 'api.staging.com' }
62
+ */
63
+ type AppDomainConfig = string | Record<string, string>;
44
64
  /**
45
65
  * Dokploy workspace deployment configuration.
46
66
  */
@@ -53,6 +73,13 @@ interface DokployWorkspaceConfig {
53
73
  registry?: string;
54
74
  /** Registry ID in Dokploy */
55
75
  registryId?: string;
76
+ /**
77
+ * Stage-based domain configuration.
78
+ * The main frontend app gets the base domain.
79
+ * Other apps get {appName}.{baseDomain} by default.
80
+ * @example { development: 'dev.myapp.com', production: 'myapp.com' }
81
+ */
82
+ domains?: DokployDomainsConfig;
56
83
  }
57
84
  /**
58
85
  * Deployment configuration for the workspace.
@@ -141,10 +168,28 @@ interface AppConfigBase {
141
168
  runtime?: Runtime;
142
169
  /** Environment file(s) to load */
143
170
  env?: string | string[];
144
- /** Frontend framework (currently only 'nextjs') */
145
- framework?: 'nextjs';
171
+ /**
172
+ * Entry file path for apps that don't use gkm routes.
173
+ * Used by both `gkm dev` (runs with tsx) and Docker builds (bundles with tsdown).
174
+ * @example './src/index.ts'
175
+ */
176
+ entry?: string;
177
+ /** Framework for the app (frontend or backend without gkm routes) */
178
+ framework?: BackendFramework | FrontendFramework;
146
179
  /** Client generation configuration */
147
180
  client?: ClientConfig;
181
+ /**
182
+ * Override domain for this app (per-stage or single value).
183
+ * @example 'api.custom.com' or { production: 'api.custom.com', staging: 'api.staging.com' }
184
+ */
185
+ domain?: AppDomainConfig;
186
+ /**
187
+ * Required environment variables for entry-based apps.
188
+ * Use this instead of envParser for apps that don't use gkm routes.
189
+ * The deploy command uses this to filter which secrets to embed.
190
+ * @example ['DATABASE_URL', 'BETTER_AUTH_SECRET']
191
+ */
192
+ requiredEnv?: string[];
148
193
  }
149
194
  /**
150
195
  * App configuration input with type-safe dependencies.
@@ -237,6 +282,14 @@ interface NormalizedAppConfig extends Omit<AppConfigBase, 'type'> {
237
282
  dependencies: string[];
238
283
  /** Resolved deploy target (app.deploy > deploy.default > 'dokploy') */
239
284
  resolvedDeployTarget: DeployTarget;
285
+ /** Entry file path for non-gkm apps */
286
+ entry?: string;
287
+ /** Framework for the app */
288
+ framework?: BackendFramework | FrontendFramework;
289
+ /** Override domain for this app */
290
+ domain?: AppDomainConfig;
291
+ /** Required environment variables for entry-based apps */
292
+ requiredEnv?: string[];
240
293
  }
241
294
  /**
242
295
  * Normalized workspace configuration with resolved defaults.
@@ -340,9 +393,17 @@ declare const WorkspaceConfigSchema: z.ZodObject<{
340
393
  bun: "bun";
341
394
  }>>;
342
395
  env: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
343
- framework: z.ZodOptional<z.ZodEnum<{
396
+ entry: z.ZodOptional<z.ZodString>;
397
+ framework: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
398
+ hono: "hono";
399
+ "better-auth": "better-auth";
400
+ express: "express";
401
+ fastify: "fastify";
402
+ }>, z.ZodEnum<{
344
403
  nextjs: "nextjs";
345
- }>>;
404
+ remix: "remix";
405
+ vite: "vite";
406
+ }>]>>;
346
407
  client: z.ZodOptional<z.ZodObject<{
347
408
  output: z.ZodOptional<z.ZodString>;
348
409
  }, z.core.$strip>>;
@@ -495,5 +556,5 @@ declare function getDependencyEnvVars(workspace: NormalizedWorkspace, appName: s
495
556
  //# sourceMappingURL=index.d.ts.map
496
557
 
497
558
  //#endregion
498
- export { AppConfig, AppConfigInput, AppInput, AppsRecord, ClientConfig, ConstrainedApps, DeployConfig, DeployTarget, DokployWorkspaceConfig, 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, isDeployTargetSupported, isPhase2DeployTarget, isWorkspaceConfig, normalizeWorkspace, processConfig, safeValidateWorkspaceConfig, validateWorkspaceConfig, wrapSingleAppAsWorkspace };
499
- //# sourceMappingURL=index-CpchsC9w.d.cts.map
559
+ 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, isDeployTargetSupported, isPhase2DeployTarget, isWorkspaceConfig, normalizeWorkspace, processConfig, safeValidateWorkspaceConfig, validateWorkspaceConfig, wrapSingleAppAsWorkspace };
560
+ //# sourceMappingURL=index-E8Nu2Rxl.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-E8Nu2Rxl.d.cts","names":[],"sources":["../src/workspace/types.ts","../src/workspace/schema.ts","../src/workspace/index.ts"],"sourcesContent":[],"mappings":"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"}