@geekmidas/cli 1.0.2 → 1.2.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 (60) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{SSMStateProvider-C4wp4AZe.mjs → SSMStateProvider-BjCi_58g.mjs} +16 -7
  3. package/dist/SSMStateProvider-BjCi_58g.mjs.map +1 -0
  4. package/dist/{SSMStateProvider-BxAPU99a.cjs → SSMStateProvider-D79o_JjM.cjs} +16 -7
  5. package/dist/SSMStateProvider-D79o_JjM.cjs.map +1 -0
  6. package/dist/{config-C6awcFBx.mjs → config-BQ4a36Rq.mjs} +2 -2
  7. package/dist/{config-C6awcFBx.mjs.map → config-BQ4a36Rq.mjs.map} +1 -1
  8. package/dist/{config-BGeJsW1r.cjs → config-Bayob8pB.cjs} +2 -2
  9. package/dist/{config-BGeJsW1r.cjs.map → config-Bayob8pB.cjs.map} +1 -1
  10. package/dist/config.cjs +2 -2
  11. package/dist/config.d.cts +1 -1
  12. package/dist/config.d.mts +1 -1
  13. package/dist/config.mjs +2 -2
  14. package/dist/{index-KFEbMIRa.d.mts → index-Bi9vGQJy.d.mts} +61 -13
  15. package/dist/index-Bi9vGQJy.d.mts.map +1 -0
  16. package/dist/{index-B5rGIc4g.d.cts → index-CufAAnge.d.cts} +61 -13
  17. package/dist/index-CufAAnge.d.cts.map +1 -0
  18. package/dist/index.cjs +14 -9
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.mjs +14 -9
  21. package/dist/index.mjs.map +1 -1
  22. package/dist/{openapi-D1KXv2Ml.cjs → openapi-BZP8jkI4.cjs} +2 -2
  23. package/dist/{openapi-D1KXv2Ml.cjs.map → openapi-BZP8jkI4.cjs.map} +1 -1
  24. package/dist/{openapi-BMFmLnX6.mjs → openapi-DrbBWq0s.mjs} +2 -2
  25. package/dist/{openapi-BMFmLnX6.mjs.map → openapi-DrbBWq0s.mjs.map} +1 -1
  26. package/dist/openapi.cjs +3 -3
  27. package/dist/openapi.mjs +3 -3
  28. package/dist/workspace/index.cjs +2 -1
  29. package/dist/workspace/index.d.cts +2 -2
  30. package/dist/workspace/index.d.mts +2 -2
  31. package/dist/workspace/index.mjs +2 -2
  32. package/dist/{workspace-BFRUOOrh.cjs → workspace-BMJE18LV.cjs} +46 -6
  33. package/dist/workspace-BMJE18LV.cjs.map +1 -0
  34. package/dist/{workspace-DAxG3_H2.mjs → workspace-CASoZOjs.mjs} +41 -7
  35. package/dist/workspace-CASoZOjs.mjs.map +1 -0
  36. package/package.json +4 -4
  37. package/src/deploy/SSMStateProvider.ts +20 -7
  38. package/src/deploy/StateProvider.ts +1 -1
  39. package/src/deploy/__tests__/CachedStateProvider.spec.ts +7 -0
  40. package/src/deploy/__tests__/LocalStateProvider.spec.ts +4 -0
  41. package/src/deploy/__tests__/SSMStateProvider.spec.ts +20 -8
  42. package/src/deploy/__tests__/dns-verification.spec.ts +1 -1
  43. package/src/deploy/__tests__/env-resolver.spec.ts +9 -9
  44. package/src/deploy/__tests__/state-e2e.spec.ts +387 -0
  45. package/src/deploy/__tests__/state.spec.ts +53 -29
  46. package/src/deploy/index.ts +6 -1
  47. package/src/deploy/state.ts +4 -0
  48. package/src/init/__tests__/init.spec.ts +10 -1
  49. package/src/init/versions.ts +1 -1
  50. package/src/secrets/__tests__/storage.spec.ts +6 -2
  51. package/src/workspace/__tests__/index.spec.ts +129 -0
  52. package/src/workspace/index.ts +44 -0
  53. package/src/workspace/schema.ts +17 -6
  54. package/src/workspace/types.ts +26 -9
  55. package/dist/SSMStateProvider-BxAPU99a.cjs.map +0 -1
  56. package/dist/SSMStateProvider-C4wp4AZe.mjs.map +0 -1
  57. package/dist/index-B5rGIc4g.d.cts.map +0 -1
  58. package/dist/index-KFEbMIRa.d.mts.map +0 -1
  59. package/dist/workspace-BFRUOOrh.cjs.map +0 -1
  60. package/dist/workspace-DAxG3_H2.mjs.map +0 -1
package/dist/openapi.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env -S npx tsx
2
- require('./workspace-BFRUOOrh.cjs');
3
- require('./config-BGeJsW1r.cjs');
4
- const require_openapi = require('./openapi-D1KXv2Ml.cjs');
2
+ require('./workspace-BMJE18LV.cjs');
3
+ require('./config-Bayob8pB.cjs');
4
+ const require_openapi = require('./openapi-BZP8jkI4.cjs');
5
5
 
6
6
  exports.OPENAPI_OUTPUT_PATH = require_openapi.OPENAPI_OUTPUT_PATH;
7
7
  exports.generateOpenApi = require_openapi.generateOpenApi;
package/dist/openapi.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env -S npx tsx
2
- import "./workspace-DAxG3_H2.mjs";
3
- import "./config-C6awcFBx.mjs";
4
- import { OPENAPI_OUTPUT_PATH, generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi-BMFmLnX6.mjs";
2
+ import "./workspace-CASoZOjs.mjs";
3
+ import "./config-BQ4a36Rq.mjs";
4
+ import { OPENAPI_OUTPUT_PATH, generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi-DrbBWq0s.mjs";
5
5
 
6
6
  export { OPENAPI_OUTPUT_PATH, generateOpenApi, openapiCommand, resolveOpenApiConfig };
@@ -1,4 +1,4 @@
1
- const require_workspace = require('../workspace-BFRUOOrh.cjs');
1
+ const require_workspace = require('../workspace-BMJE18LV.cjs');
2
2
 
3
3
  exports.PHASE_2_DEPLOY_TARGETS = require_workspace.PHASE_2_DEPLOY_TARGETS;
4
4
  exports.SUPPORTED_DEPLOY_TARGETS = require_workspace.SUPPORTED_DEPLOY_TARGETS;
@@ -9,6 +9,7 @@ exports.getAppBuildOrder = require_workspace.getAppBuildOrder;
9
9
  exports.getAppGkmConfig = require_workspace.getAppGkmConfig;
10
10
  exports.getDependencyEnvVars = require_workspace.getDependencyEnvVars;
11
11
  exports.getDeployTargetError = require_workspace.getDeployTargetError;
12
+ exports.getEndpointForStage = require_workspace.getEndpointForStage;
12
13
  exports.isDeployTargetSupported = require_workspace.isDeployTargetSupported;
13
14
  exports.isPhase2DeployTarget = require_workspace.isPhase2DeployTarget;
14
15
  exports.isWorkspaceConfig = require_workspace.isWorkspaceConfig;
@@ -1,3 +1,3 @@
1
1
  import "../types-l53qUmGt.cjs";
2
- import { 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 } from "../index-B5rGIc4g.cjs";
3
- 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 };
2
+ import { 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 } from "../index-CufAAnge.cjs";
3
+ 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 };
@@ -1,3 +1,3 @@
1
1
  import "../types-BldpmqQX.mjs";
2
- import { 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 } from "../index-KFEbMIRa.mjs";
3
- 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 };
2
+ import { 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 } from "../index-Bi9vGQJy.mjs";
3
+ 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 };
@@ -1,3 +1,3 @@
1
- import { PHASE_2_DEPLOY_TARGETS, SUPPORTED_DEPLOY_TARGETS, WorkspaceConfigSchema, defineWorkspace, formatValidationErrors, getAppBuildOrder, getAppGkmConfig, getDependencyEnvVars, getDeployTargetError, isDeployTargetSupported, isPhase2DeployTarget, isWorkspaceConfig, normalizeWorkspace, processConfig, safeValidateWorkspaceConfig, validateWorkspaceConfig, wrapSingleAppAsWorkspace } from "../workspace-DAxG3_H2.mjs";
1
+ import { PHASE_2_DEPLOY_TARGETS, SUPPORTED_DEPLOY_TARGETS, WorkspaceConfigSchema, defineWorkspace, formatValidationErrors, getAppBuildOrder, getAppGkmConfig, getDependencyEnvVars, getDeployTargetError, getEndpointForStage, isDeployTargetSupported, isPhase2DeployTarget, isWorkspaceConfig, normalizeWorkspace, processConfig, safeValidateWorkspaceConfig, validateWorkspaceConfig, wrapSingleAppAsWorkspace } from "../workspace-CASoZOjs.mjs";
2
2
 
3
- export { PHASE_2_DEPLOY_TARGETS, SUPPORTED_DEPLOY_TARGETS, WorkspaceConfigSchema, defineWorkspace, formatValidationErrors, getAppBuildOrder, getAppGkmConfig, getDependencyEnvVars, getDeployTargetError, isDeployTargetSupported, isPhase2DeployTarget, isWorkspaceConfig, normalizeWorkspace, processConfig, safeValidateWorkspaceConfig, validateWorkspaceConfig, wrapSingleAppAsWorkspace };
3
+ export { PHASE_2_DEPLOY_TARGETS, SUPPORTED_DEPLOY_TARGETS, WorkspaceConfigSchema, defineWorkspace, formatValidationErrors, getAppBuildOrder, getAppGkmConfig, getDependencyEnvVars, getDeployTargetError, getEndpointForStage, isDeployTargetSupported, isPhase2DeployTarget, isWorkspaceConfig, normalizeWorkspace, processConfig, safeValidateWorkspaceConfig, validateWorkspaceConfig, wrapSingleAppAsWorkspace };
@@ -3488,13 +3488,15 @@ const ServicesConfigSchema = object({
3488
3488
  });
3489
3489
  /**
3490
3490
  * Dokploy workspace configuration schema.
3491
+ * Supports either a single endpoint or per-stage endpoints.
3491
3492
  */
3492
3493
  const DokployWorkspaceConfigSchema = object({
3493
- endpoint: url("Dokploy endpoint must be a valid URL"),
3494
- projectId: string().min(1, "Project ID is required"),
3494
+ endpoint: url("Dokploy endpoint must be a valid URL").optional(),
3495
+ endpoints: record(string(), url("Endpoint must be a valid URL")).optional(),
3495
3496
  registry: string().optional(),
3496
- registryId: string().optional()
3497
- });
3497
+ registryId: string().optional(),
3498
+ domains: record(string(), string()).optional()
3499
+ }).refine((data) => data.endpoint || data.endpoints, { message: "Either endpoint or endpoints must be provided" });
3498
3500
  /**
3499
3501
  * Valid AWS regions.
3500
3502
  */
@@ -3968,7 +3970,8 @@ function normalizeWorkspace(config$1, cwd) {
3968
3970
  services: config$1.services ?? {},
3969
3971
  deploy: config$1.deploy ?? { default: "dokploy" },
3970
3972
  shared: config$1.shared ?? { packages: ["packages/*"] },
3971
- secrets: config$1.secrets ?? {}
3973
+ secrets: config$1.secrets ?? {},
3974
+ state: config$1.state
3972
3975
  };
3973
3976
  }
3974
3977
  /**
@@ -4110,6 +4113,37 @@ function getDependencyEnvVars(workspace, appName, urlPrefix = "http://localhost"
4110
4113
  }
4111
4114
  return env;
4112
4115
  }
4116
+ /**
4117
+ * Resolve the Dokploy endpoint for a specific stage.
4118
+ *
4119
+ * Uses per-stage endpoint from `endpoints` if available,
4120
+ * otherwise falls back to the global `endpoint`.
4121
+ *
4122
+ * @param dokployConfig - Dokploy workspace configuration
4123
+ * @param stage - Deployment stage (e.g., 'development', 'production')
4124
+ * @returns The endpoint URL for the stage, or undefined if not configured
4125
+ *
4126
+ * @example
4127
+ * ```ts
4128
+ * // With per-stage endpoints
4129
+ * const config = {
4130
+ * endpoints: {
4131
+ * development: 'https://dev.dokploy.example.com:3000',
4132
+ * production: 'https://prod.dokploy.example.com:3000',
4133
+ * },
4134
+ * };
4135
+ * getEndpointForStage(config, 'production'); // => 'https://prod.dokploy.example.com:3000'
4136
+ *
4137
+ * // With single endpoint
4138
+ * const config = { endpoint: 'https://dokploy.example.com:3000' };
4139
+ * getEndpointForStage(config, 'production'); // => 'https://dokploy.example.com:3000'
4140
+ * ```
4141
+ */
4142
+ function getEndpointForStage(dokployConfig, stage) {
4143
+ if (!dokployConfig) return void 0;
4144
+ if (dokployConfig.endpoints?.[stage]) return dokployConfig.endpoints[stage];
4145
+ return dokployConfig.endpoint;
4146
+ }
4113
4147
 
4114
4148
  //#endregion
4115
4149
  Object.defineProperty(exports, 'PHASE_2_DEPLOY_TARGETS', {
@@ -4166,6 +4200,12 @@ Object.defineProperty(exports, 'getDeployTargetError', {
4166
4200
  return getDeployTargetError;
4167
4201
  }
4168
4202
  });
4203
+ Object.defineProperty(exports, 'getEndpointForStage', {
4204
+ enumerable: true,
4205
+ get: function () {
4206
+ return getEndpointForStage;
4207
+ }
4208
+ });
4169
4209
  Object.defineProperty(exports, 'isDeployTargetSupported', {
4170
4210
  enumerable: true,
4171
4211
  get: function () {
@@ -4214,4 +4254,4 @@ Object.defineProperty(exports, 'wrapSingleAppAsWorkspace', {
4214
4254
  return wrapSingleAppAsWorkspace;
4215
4255
  }
4216
4256
  });
4217
- //# sourceMappingURL=workspace-BFRUOOrh.cjs.map
4257
+ //# sourceMappingURL=workspace-BMJE18LV.cjs.map