@geekmidas/cli 1.5.1 → 1.7.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 (71) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/{config-BYn5yUt5.cjs → config-6JHOwLCx.cjs} +30 -2
  3. package/dist/{config-dLNQIvDR.mjs.map → config-6JHOwLCx.cjs.map} +1 -1
  4. package/dist/{config-dLNQIvDR.mjs → config-DxASSNjr.mjs} +25 -3
  5. package/dist/{config-BYn5yUt5.cjs.map → config-DxASSNjr.mjs.map} +1 -1
  6. package/dist/config.cjs +3 -2
  7. package/dist/config.d.cts +14 -2
  8. package/dist/config.d.cts.map +1 -1
  9. package/dist/config.d.mts +14 -2
  10. package/dist/config.d.mts.map +1 -1
  11. package/dist/config.mjs +3 -3
  12. package/dist/{index-Bj5VNxEL.d.mts → index-C-KxSGGK.d.mts} +2 -2
  13. package/dist/{index-Ba21_lNt.d.cts.map → index-C-KxSGGK.d.mts.map} +1 -1
  14. package/dist/{index-Ba21_lNt.d.cts → index-Cyk2rTyj.d.cts} +2 -2
  15. package/dist/{index-Bj5VNxEL.d.mts.map → index-Cyk2rTyj.d.cts.map} +1 -1
  16. package/dist/index.cjs +555 -139
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.mjs +519 -103
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/{openapi-CMTyaIJJ.mjs → openapi-BYlyAbH3.mjs} +6 -5
  21. package/dist/openapi-BYlyAbH3.mjs.map +1 -0
  22. package/dist/{openapi-CqblwJZ4.cjs → openapi-CnvwSRDU.cjs} +6 -5
  23. package/dist/openapi-CnvwSRDU.cjs.map +1 -0
  24. package/dist/openapi.cjs +3 -3
  25. package/dist/openapi.d.cts +1 -0
  26. package/dist/openapi.d.cts.map +1 -1
  27. package/dist/openapi.d.mts +1 -0
  28. package/dist/openapi.d.mts.map +1 -1
  29. package/dist/openapi.mjs +3 -3
  30. package/dist/workspace/index.cjs +1 -1
  31. package/dist/workspace/index.d.cts +1 -1
  32. package/dist/workspace/index.d.mts +1 -1
  33. package/dist/workspace/index.mjs +1 -1
  34. package/dist/{workspace-Dy8k7Wru.mjs → workspace-9IQIjwkQ.mjs} +5 -3
  35. package/dist/workspace-9IQIjwkQ.mjs.map +1 -0
  36. package/dist/{workspace-DIMnYaYt.cjs → workspace-D2ocAlpl.cjs} +5 -3
  37. package/dist/workspace-D2ocAlpl.cjs.map +1 -0
  38. package/package.json +11 -10
  39. package/src/config.ts +44 -0
  40. package/src/dev/__tests__/index.spec.ts +490 -0
  41. package/src/dev/index.ts +313 -18
  42. package/src/generators/Generator.ts +4 -1
  43. package/src/init/__tests__/generators.spec.ts +167 -18
  44. package/src/init/__tests__/init.spec.ts +66 -3
  45. package/src/init/generators/auth.ts +6 -5
  46. package/src/init/generators/config.ts +49 -7
  47. package/src/init/generators/docker.ts +8 -8
  48. package/src/init/generators/index.ts +1 -0
  49. package/src/init/generators/models.ts +3 -5
  50. package/src/init/generators/package.ts +4 -0
  51. package/src/init/generators/test.ts +133 -0
  52. package/src/init/generators/ui.ts +13 -12
  53. package/src/init/generators/web.ts +9 -8
  54. package/src/init/index.ts +2 -0
  55. package/src/init/templates/api.ts +6 -6
  56. package/src/init/templates/minimal.ts +2 -2
  57. package/src/init/templates/worker.ts +2 -2
  58. package/src/init/versions.ts +4 -4
  59. package/src/openapi.ts +6 -2
  60. package/src/test/__tests__/__fixtures__/workspace.ts +104 -0
  61. package/src/test/__tests__/api.spec.ts +199 -0
  62. package/src/test/__tests__/auth.spec.ts +162 -0
  63. package/src/test/__tests__/index.spec.ts +323 -0
  64. package/src/test/__tests__/web.spec.ts +210 -0
  65. package/src/test/index.ts +165 -14
  66. package/src/workspace/__tests__/index.spec.ts +3 -0
  67. package/src/workspace/index.ts +4 -2
  68. package/dist/openapi-CMTyaIJJ.mjs.map +0 -1
  69. package/dist/openapi-CqblwJZ4.cjs.map +0 -1
  70. package/dist/workspace-DIMnYaYt.cjs.map +0 -1
  71. package/dist/workspace-Dy8k7Wru.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @geekmidas/cli
2
2
 
3
+ ## 1.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 🔥 [`66a0eac`](https://github.com/geekmidas/toolbox/commit/66a0eacfb2aa711da5d67ec10f28a8fa8bcbdf1e) Thanks [@geekmidas](https://github.com/geekmidas)! - Remove test adaptor from subscriber exports
8
+
9
+ ## 1.6.0
10
+
11
+ ### Minor Changes
12
+
13
+ - ⚡️ [`73511d9`](https://github.com/geekmidas/toolbox/commit/73511d912062eb0776935168c9f72d42c7c854a6) Thanks [@geekmidas](https://github.com/geekmidas)! - Improve dev script experience and export function tester
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies [[`73511d9`](https://github.com/geekmidas/toolbox/commit/73511d912062eb0776935168c9f72d42c7c854a6)]:
18
+ - @geekmidas/constructs@1.1.0
19
+
3
20
  ## 1.5.1
4
21
 
5
22
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const require_workspace = require('./workspace-DIMnYaYt.cjs');
2
+ const require_workspace = require('./workspace-D2ocAlpl.cjs');
3
3
  const node_fs = require_chunk.__toESM(require("node:fs"));
4
4
  const node_path = require_chunk.__toESM(require("node:path"));
5
5
 
@@ -184,6 +184,28 @@ async function loadAppConfig(cwd = process.cwd()) {
184
184
  appRoot: (0, node_path.join)(workspaceRoot, app.path)
185
185
  };
186
186
  }
187
+ /**
188
+ * Load workspace info for any app (frontend or backend).
189
+ * Unlike loadAppConfig, this does NOT require the app to have a gkm config
190
+ * (routes, entry, etc.), making it suitable for gkm exec/test from frontend apps.
191
+ */
192
+ async function loadWorkspaceAppInfo(cwd = process.cwd()) {
193
+ const appName = getAppNameFromCwd(cwd);
194
+ if (!appName) throw new Error("Could not determine app name. Ensure package.json exists with a \"name\" field.");
195
+ const { config, workspaceRoot } = await loadRawConfig(cwd);
196
+ const loadedConfig = require_workspace.processConfig(config, workspaceRoot);
197
+ const app = loadedConfig.workspace.apps[appName];
198
+ if (!app) {
199
+ const availableApps = Object.keys(loadedConfig.workspace.apps).join(", ");
200
+ throw new Error(`App "${appName}" not found in workspace config. Available apps: ${availableApps}. Ensure the package.json name matches the app key in gkm.config.ts.`);
201
+ }
202
+ return {
203
+ appName,
204
+ app,
205
+ workspace: loadedConfig.workspace,
206
+ workspaceRoot
207
+ };
208
+ }
187
209
 
188
210
  //#endregion
189
211
  Object.defineProperty(exports, 'defineConfig', {
@@ -210,6 +232,12 @@ Object.defineProperty(exports, 'loadConfig', {
210
232
  return loadConfig;
211
233
  }
212
234
  });
235
+ Object.defineProperty(exports, 'loadWorkspaceAppInfo', {
236
+ enumerable: true,
237
+ get: function () {
238
+ return loadWorkspaceAppInfo;
239
+ }
240
+ });
213
241
  Object.defineProperty(exports, 'loadWorkspaceConfig', {
214
242
  enumerable: true,
215
243
  get: function () {
@@ -222,4 +250,4 @@ Object.defineProperty(exports, 'parseModuleConfig', {
222
250
  return parseModuleConfig;
223
251
  }
224
252
  });
225
- //# sourceMappingURL=config-BYn5yUt5.cjs.map
253
+ //# sourceMappingURL=config-6JHOwLCx.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-dLNQIvDR.mjs","names":["config: GkmConfig","configString: string","defaultAlias: string","cwd: string"],"sources":["../src/config.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { dirname, join, parse } from 'node:path';\nimport type { GkmConfig } from './types.js';\nimport {\n\tgetAppGkmConfig,\n\tisWorkspaceConfig,\n\ttype LoadedConfig,\n\ttype NormalizedAppConfig,\n\ttype NormalizedWorkspace,\n\tprocessConfig,\n\ttype WorkspaceConfig,\n} from './workspace/index.js';\n\nexport type { GkmConfig } from './types.js';\nexport type { LoadedConfig, WorkspaceConfig } from './workspace/index.js';\nexport { defineWorkspace } from './workspace/index.js';\n/**\n * Define GKM configuration with full TypeScript support.\n * This is an identity function that provides type safety and autocomplete.\n *\n * @example\n * ```ts\n * // gkm.config.ts\n * import { defineConfig } from '@geekmidas/cli/config';\n *\n * export default defineConfig({\n * routes: './src/endpoints/**\\/*.ts',\n * envParser: './src/config/env',\n * logger: './src/config/logger',\n * telescope: true,\n * });\n * ```\n */\nexport function defineConfig(config: GkmConfig): GkmConfig {\n\treturn config;\n}\n\nexport interface ParsedModuleConfig {\n\tpath: string;\n\timportPattern: string;\n}\n\n/**\n * Parse a module config string into path and import pattern.\n *\n * @param configString - Config string in format \"./path/to/module\" or \"./path/to/module#exportName\"\n * @param defaultAlias - The default alias name to use if no export name specified\n * @returns Object with path and import pattern\n *\n * @example\n * parseModuleConfig('./src/config/env', 'envParser')\n * // { path: './src/config/env', importPattern: 'envParser' }\n *\n * parseModuleConfig('./src/config/env#envParser', 'envParser')\n * // { path: './src/config/env', importPattern: '{ envParser }' }\n *\n * parseModuleConfig('./src/config/env#myEnv', 'envParser')\n * // { path: './src/config/env', importPattern: '{ myEnv as envParser }' }\n */\nexport function parseModuleConfig(\n\tconfigString: string,\n\tdefaultAlias: string,\n): ParsedModuleConfig {\n\tconst parts = configString.split('#');\n\tconst path = parts[0] ?? configString;\n\tconst exportName = parts[1];\n\tconst importPattern = !exportName\n\t\t? defaultAlias\n\t\t: exportName === defaultAlias\n\t\t\t? `{ ${defaultAlias} }`\n\t\t\t: `{ ${exportName} as ${defaultAlias} }`;\n\n\treturn { path, importPattern };\n}\n\nexport interface ConfigDiscoveryResult {\n\tconfigPath: string;\n\tworkspaceRoot: string;\n}\n\n/**\n * Find and return the path to the config file.\n *\n * Resolution order:\n * 1. GKM_CONFIG_PATH env var (set by workspace dev command)\n * 2. Walk up directory tree from cwd\n */\nfunction findConfigPath(cwd: string): ConfigDiscoveryResult {\n\tconst files = ['gkm.config.json', 'gkm.config.ts', 'gkm.config.js'];\n\n\t// Check GKM_CONFIG_PATH env var first (set by workspace dev command)\n\tconst envConfigPath = process.env.GKM_CONFIG_PATH;\n\tif (envConfigPath && existsSync(envConfigPath)) {\n\t\treturn {\n\t\t\tconfigPath: envConfigPath,\n\t\t\tworkspaceRoot: dirname(envConfigPath),\n\t\t};\n\t}\n\n\t// Walk up directory tree to find config\n\tlet currentDir = cwd;\n\tconst { root } = parse(currentDir);\n\n\twhile (currentDir !== root) {\n\t\tfor (const file of files) {\n\t\t\tconst configPath = join(currentDir, file);\n\t\t\tif (existsSync(configPath)) {\n\t\t\t\treturn {\n\t\t\t\t\tconfigPath,\n\t\t\t\t\tworkspaceRoot: currentDir,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tcurrentDir = dirname(currentDir);\n\t}\n\n\tthrow new Error(\n\t\t'Configuration file not found. Please create gkm.config.json, gkm.config.ts, or gkm.config.js in the project root.',\n\t);\n}\n\n/**\n * Get app name from package.json in the given directory.\n * Handles scoped packages by extracting the name after the scope.\n *\n * @example\n * getAppNameFromCwd('/path/to/apps/api')\n * // package.json: { \"name\": \"@myorg/api\" }\n * // Returns: 'api'\n */\nexport function getAppNameFromCwd(cwd: string = process.cwd()): string | null {\n\tconst packageJsonPath = join(cwd, 'package.json');\n\n\tif (!existsSync(packageJsonPath)) {\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\n\t\tconst name = packageJson.name as string | undefined;\n\n\t\tif (!name) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Handle scoped packages: @scope/name -> name\n\t\tif (name.startsWith('@') && name.includes('/')) {\n\t\t\treturn name.split('/')[1] ?? null;\n\t\t}\n\n\t\treturn name;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\ninterface RawConfigResult {\n\tconfig: GkmConfig | WorkspaceConfig;\n\tworkspaceRoot: string;\n}\n\n/**\n * Load raw configuration from file.\n */\nasync function loadRawConfig(cwd: string): Promise<RawConfigResult> {\n\tconst { configPath, workspaceRoot } = findConfigPath(cwd);\n\n\ttry {\n\t\tconst config = await import(configPath);\n\t\treturn {\n\t\t\tconfig: config.default,\n\t\t\tworkspaceRoot,\n\t\t};\n\t} catch (error) {\n\t\tthrow new Error(`Failed to load config: ${(error as Error).message}`);\n\t}\n}\n\n/**\n * Load configuration file (single-app format).\n * For backwards compatibility with existing code.\n *\n * @deprecated Use loadWorkspaceConfig for new code\n */\nexport async function loadConfig(\n\tcwd: string = process.cwd(),\n): Promise<GkmConfig> {\n\tconst { config } = await loadRawConfig(cwd);\n\n\t// If it's a workspace config, throw an error\n\tif (isWorkspaceConfig(config)) {\n\t\tthrow new Error(\n\t\t\t'Workspace configuration detected. Use loadWorkspaceConfig() instead.',\n\t\t);\n\t}\n\n\treturn config;\n}\n\n/**\n * Load configuration file and process it as a workspace.\n * Works with both single-app and workspace configurations.\n *\n * Single-app configs are automatically wrapped as a workspace with one app.\n *\n * @example\n * ```ts\n * const { type, workspace } = await loadWorkspaceConfig();\n *\n * if (type === 'workspace') {\n * console.log('Multi-app workspace:', workspace.apps);\n * } else {\n * console.log('Single app wrapped as workspace');\n * }\n * ```\n */\nexport async function loadWorkspaceConfig(\n\tcwd: string = process.cwd(),\n): Promise<LoadedConfig> {\n\tconst { config, workspaceRoot } = await loadRawConfig(cwd);\n\treturn processConfig(config, workspaceRoot);\n}\n\nexport interface AppConfigResult {\n\tappName: string;\n\tapp: NormalizedAppConfig;\n\tgkmConfig: GkmConfig;\n\tworkspace: NormalizedWorkspace;\n\tworkspaceRoot: string;\n\tappRoot: string;\n}\n\n/**\n * Load app-specific configuration from workspace.\n * Uses the app name from package.json to find the correct app config.\n *\n * @example\n * ```ts\n * // From apps/api directory with package.json: { \"name\": \"@myorg/api\" }\n * const { app, workspace, workspaceRoot } = await loadAppConfig();\n * console.log(app.routes); // './src/endpoints/**\\/*.ts'\n * ```\n */\nexport async function loadAppConfig(\n\tcwd: string = process.cwd(),\n): Promise<AppConfigResult> {\n\tconst appName = getAppNameFromCwd(cwd);\n\n\tif (!appName) {\n\t\tthrow new Error(\n\t\t\t'Could not determine app name. Ensure package.json exists with a \"name\" field.',\n\t\t);\n\t}\n\n\tconst { config, workspaceRoot } = await loadRawConfig(cwd);\n\tconst loadedConfig = processConfig(config, workspaceRoot);\n\n\t// Find the app in workspace (apps is a Record<string, NormalizedAppConfig>)\n\tconst app = loadedConfig.workspace.apps[appName];\n\n\tif (!app) {\n\t\tconst availableApps = Object.keys(loadedConfig.workspace.apps).join(', ');\n\t\tthrow new Error(\n\t\t\t`App \"${appName}\" not found in workspace config. Available apps: ${availableApps}. ` +\n\t\t\t\t`Ensure the package.json name matches the app key in gkm.config.ts.`,\n\t\t);\n\t}\n\n\t// Get the app's GKM config using the helper\n\tconst gkmConfig = getAppGkmConfig(loadedConfig.workspace, appName);\n\n\tif (!gkmConfig) {\n\t\tthrow new Error(\n\t\t\t`App \"${appName}\" is not a backend app and cannot be run with gkm dev.`,\n\t\t);\n\t}\n\n\treturn {\n\t\tappName,\n\t\tapp,\n\t\tgkmConfig,\n\t\tworkspace: loadedConfig.workspace,\n\t\tworkspaceRoot,\n\t\tappRoot: join(workspaceRoot, app.path),\n\t};\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"config-6JHOwLCx.cjs","names":["config: GkmConfig","configString: string","defaultAlias: string","cwd: string"],"sources":["../src/config.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { dirname, join, parse } from 'node:path';\nimport type { GkmConfig } from './types.js';\nimport {\n\tgetAppGkmConfig,\n\tisWorkspaceConfig,\n\ttype LoadedConfig,\n\ttype NormalizedAppConfig,\n\ttype NormalizedWorkspace,\n\tprocessConfig,\n\ttype WorkspaceConfig,\n} from './workspace/index.js';\n\nexport type { GkmConfig } from './types.js';\nexport type { LoadedConfig, WorkspaceConfig } from './workspace/index.js';\nexport { defineWorkspace } from './workspace/index.js';\n/**\n * Define GKM configuration with full TypeScript support.\n * This is an identity function that provides type safety and autocomplete.\n *\n * @example\n * ```ts\n * // gkm.config.ts\n * import { defineConfig } from '@geekmidas/cli/config';\n *\n * export default defineConfig({\n * routes: './src/endpoints/**\\/*.ts',\n * envParser: './src/config/env',\n * logger: './src/config/logger',\n * telescope: true,\n * });\n * ```\n */\nexport function defineConfig(config: GkmConfig): GkmConfig {\n\treturn config;\n}\n\nexport interface ParsedModuleConfig {\n\tpath: string;\n\timportPattern: string;\n}\n\n/**\n * Parse a module config string into path and import pattern.\n *\n * @param configString - Config string in format \"./path/to/module\" or \"./path/to/module#exportName\"\n * @param defaultAlias - The default alias name to use if no export name specified\n * @returns Object with path and import pattern\n *\n * @example\n * parseModuleConfig('./src/config/env', 'envParser')\n * // { path: './src/config/env', importPattern: 'envParser' }\n *\n * parseModuleConfig('./src/config/env#envParser', 'envParser')\n * // { path: './src/config/env', importPattern: '{ envParser }' }\n *\n * parseModuleConfig('./src/config/env#myEnv', 'envParser')\n * // { path: './src/config/env', importPattern: '{ myEnv as envParser }' }\n */\nexport function parseModuleConfig(\n\tconfigString: string,\n\tdefaultAlias: string,\n): ParsedModuleConfig {\n\tconst parts = configString.split('#');\n\tconst path = parts[0] ?? configString;\n\tconst exportName = parts[1];\n\tconst importPattern = !exportName\n\t\t? defaultAlias\n\t\t: exportName === defaultAlias\n\t\t\t? `{ ${defaultAlias} }`\n\t\t\t: `{ ${exportName} as ${defaultAlias} }`;\n\n\treturn { path, importPattern };\n}\n\nexport interface ConfigDiscoveryResult {\n\tconfigPath: string;\n\tworkspaceRoot: string;\n}\n\n/**\n * Find and return the path to the config file.\n *\n * Resolution order:\n * 1. GKM_CONFIG_PATH env var (set by workspace dev command)\n * 2. Walk up directory tree from cwd\n */\nfunction findConfigPath(cwd: string): ConfigDiscoveryResult {\n\tconst files = ['gkm.config.json', 'gkm.config.ts', 'gkm.config.js'];\n\n\t// Check GKM_CONFIG_PATH env var first (set by workspace dev command)\n\tconst envConfigPath = process.env.GKM_CONFIG_PATH;\n\tif (envConfigPath && existsSync(envConfigPath)) {\n\t\treturn {\n\t\t\tconfigPath: envConfigPath,\n\t\t\tworkspaceRoot: dirname(envConfigPath),\n\t\t};\n\t}\n\n\t// Walk up directory tree to find config\n\tlet currentDir = cwd;\n\tconst { root } = parse(currentDir);\n\n\twhile (currentDir !== root) {\n\t\tfor (const file of files) {\n\t\t\tconst configPath = join(currentDir, file);\n\t\t\tif (existsSync(configPath)) {\n\t\t\t\treturn {\n\t\t\t\t\tconfigPath,\n\t\t\t\t\tworkspaceRoot: currentDir,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tcurrentDir = dirname(currentDir);\n\t}\n\n\tthrow new Error(\n\t\t'Configuration file not found. Please create gkm.config.json, gkm.config.ts, or gkm.config.js in the project root.',\n\t);\n}\n\n/**\n * Get app name from package.json in the given directory.\n * Handles scoped packages by extracting the name after the scope.\n *\n * @example\n * getAppNameFromCwd('/path/to/apps/api')\n * // package.json: { \"name\": \"@myorg/api\" }\n * // Returns: 'api'\n */\nexport function getAppNameFromCwd(cwd: string = process.cwd()): string | null {\n\tconst packageJsonPath = join(cwd, 'package.json');\n\n\tif (!existsSync(packageJsonPath)) {\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\n\t\tconst name = packageJson.name as string | undefined;\n\n\t\tif (!name) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Handle scoped packages: @scope/name -> name\n\t\tif (name.startsWith('@') && name.includes('/')) {\n\t\t\treturn name.split('/')[1] ?? null;\n\t\t}\n\n\t\treturn name;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\ninterface RawConfigResult {\n\tconfig: GkmConfig | WorkspaceConfig;\n\tworkspaceRoot: string;\n}\n\n/**\n * Load raw configuration from file.\n */\nasync function loadRawConfig(cwd: string): Promise<RawConfigResult> {\n\tconst { configPath, workspaceRoot } = findConfigPath(cwd);\n\n\ttry {\n\t\tconst config = await import(configPath);\n\t\treturn {\n\t\t\tconfig: config.default,\n\t\t\tworkspaceRoot,\n\t\t};\n\t} catch (error) {\n\t\tthrow new Error(`Failed to load config: ${(error as Error).message}`);\n\t}\n}\n\n/**\n * Load configuration file (single-app format).\n * For backwards compatibility with existing code.\n *\n * @deprecated Use loadWorkspaceConfig for new code\n */\nexport async function loadConfig(\n\tcwd: string = process.cwd(),\n): Promise<GkmConfig> {\n\tconst { config } = await loadRawConfig(cwd);\n\n\t// If it's a workspace config, throw an error\n\tif (isWorkspaceConfig(config)) {\n\t\tthrow new Error(\n\t\t\t'Workspace configuration detected. Use loadWorkspaceConfig() instead.',\n\t\t);\n\t}\n\n\treturn config;\n}\n\n/**\n * Load configuration file and process it as a workspace.\n * Works with both single-app and workspace configurations.\n *\n * Single-app configs are automatically wrapped as a workspace with one app.\n *\n * @example\n * ```ts\n * const { type, workspace } = await loadWorkspaceConfig();\n *\n * if (type === 'workspace') {\n * console.log('Multi-app workspace:', workspace.apps);\n * } else {\n * console.log('Single app wrapped as workspace');\n * }\n * ```\n */\nexport async function loadWorkspaceConfig(\n\tcwd: string = process.cwd(),\n): Promise<LoadedConfig> {\n\tconst { config, workspaceRoot } = await loadRawConfig(cwd);\n\treturn processConfig(config, workspaceRoot);\n}\n\nexport interface AppConfigResult {\n\tappName: string;\n\tapp: NormalizedAppConfig;\n\tgkmConfig: GkmConfig;\n\tworkspace: NormalizedWorkspace;\n\tworkspaceRoot: string;\n\tappRoot: string;\n}\n\n/**\n * Load app-specific configuration from workspace.\n * Uses the app name from package.json to find the correct app config.\n *\n * @example\n * ```ts\n * // From apps/api directory with package.json: { \"name\": \"@myorg/api\" }\n * const { app, workspace, workspaceRoot } = await loadAppConfig();\n * console.log(app.routes); // './src/endpoints/**\\/*.ts'\n * ```\n */\nexport async function loadAppConfig(\n\tcwd: string = process.cwd(),\n): Promise<AppConfigResult> {\n\tconst appName = getAppNameFromCwd(cwd);\n\n\tif (!appName) {\n\t\tthrow new Error(\n\t\t\t'Could not determine app name. Ensure package.json exists with a \"name\" field.',\n\t\t);\n\t}\n\n\tconst { config, workspaceRoot } = await loadRawConfig(cwd);\n\tconst loadedConfig = processConfig(config, workspaceRoot);\n\n\t// Find the app in workspace (apps is a Record<string, NormalizedAppConfig>)\n\tconst app = loadedConfig.workspace.apps[appName];\n\n\tif (!app) {\n\t\tconst availableApps = Object.keys(loadedConfig.workspace.apps).join(', ');\n\t\tthrow new Error(\n\t\t\t`App \"${appName}\" not found in workspace config. Available apps: ${availableApps}. ` +\n\t\t\t\t`Ensure the package.json name matches the app key in gkm.config.ts.`,\n\t\t);\n\t}\n\n\t// Get the app's GKM config using the helper\n\tconst gkmConfig = getAppGkmConfig(loadedConfig.workspace, appName);\n\n\tif (!gkmConfig) {\n\t\tthrow new Error(\n\t\t\t`App \"${appName}\" is not a backend app and cannot be run with gkm dev.`,\n\t\t);\n\t}\n\n\treturn {\n\t\tappName,\n\t\tapp,\n\t\tgkmConfig,\n\t\tworkspace: loadedConfig.workspace,\n\t\tworkspaceRoot,\n\t\tappRoot: join(workspaceRoot, app.path),\n\t};\n}\n\nexport interface WorkspaceAppInfo {\n\tappName: string;\n\tapp: NormalizedAppConfig;\n\tworkspace: NormalizedWorkspace;\n\tworkspaceRoot: string;\n}\n\n/**\n * Load workspace info for any app (frontend or backend).\n * Unlike loadAppConfig, this does NOT require the app to have a gkm config\n * (routes, entry, etc.), making it suitable for gkm exec/test from frontend apps.\n */\nexport async function loadWorkspaceAppInfo(\n\tcwd: string = process.cwd(),\n): Promise<WorkspaceAppInfo> {\n\tconst appName = getAppNameFromCwd(cwd);\n\n\tif (!appName) {\n\t\tthrow new Error(\n\t\t\t'Could not determine app name. Ensure package.json exists with a \"name\" field.',\n\t\t);\n\t}\n\n\tconst { config, workspaceRoot } = await loadRawConfig(cwd);\n\tconst loadedConfig = processConfig(config, workspaceRoot);\n\n\tconst app = loadedConfig.workspace.apps[appName];\n\n\tif (!app) {\n\t\tconst availableApps = Object.keys(loadedConfig.workspace.apps).join(', ');\n\t\tthrow new Error(\n\t\t\t`App \"${appName}\" not found in workspace config. Available apps: ${availableApps}. ` +\n\t\t\t\t`Ensure the package.json name matches the app key in gkm.config.ts.`,\n\t\t);\n\t}\n\n\treturn {\n\t\tappName,\n\t\tapp,\n\t\tworkspace: loadedConfig.workspace,\n\t\tworkspaceRoot,\n\t};\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { getAppGkmConfig, isWorkspaceConfig, processConfig } from "./workspace-Dy8k7Wru.mjs";
1
+ import { getAppGkmConfig, isWorkspaceConfig, processConfig } from "./workspace-9IQIjwkQ.mjs";
2
2
  import { existsSync, readFileSync } from "node:fs";
3
3
  import { dirname, join, parse } from "node:path";
4
4
 
@@ -183,7 +183,29 @@ async function loadAppConfig(cwd = process.cwd()) {
183
183
  appRoot: join(workspaceRoot, app.path)
184
184
  };
185
185
  }
186
+ /**
187
+ * Load workspace info for any app (frontend or backend).
188
+ * Unlike loadAppConfig, this does NOT require the app to have a gkm config
189
+ * (routes, entry, etc.), making it suitable for gkm exec/test from frontend apps.
190
+ */
191
+ async function loadWorkspaceAppInfo(cwd = process.cwd()) {
192
+ const appName = getAppNameFromCwd(cwd);
193
+ if (!appName) throw new Error("Could not determine app name. Ensure package.json exists with a \"name\" field.");
194
+ const { config, workspaceRoot } = await loadRawConfig(cwd);
195
+ const loadedConfig = processConfig(config, workspaceRoot);
196
+ const app = loadedConfig.workspace.apps[appName];
197
+ if (!app) {
198
+ const availableApps = Object.keys(loadedConfig.workspace.apps).join(", ");
199
+ throw new Error(`App "${appName}" not found in workspace config. Available apps: ${availableApps}. Ensure the package.json name matches the app key in gkm.config.ts.`);
200
+ }
201
+ return {
202
+ appName,
203
+ app,
204
+ workspace: loadedConfig.workspace,
205
+ workspaceRoot
206
+ };
207
+ }
186
208
 
187
209
  //#endregion
188
- export { defineConfig, getAppNameFromCwd, loadAppConfig, loadConfig, loadWorkspaceConfig, parseModuleConfig };
189
- //# sourceMappingURL=config-dLNQIvDR.mjs.map
210
+ export { defineConfig, getAppNameFromCwd, loadAppConfig, loadConfig, loadWorkspaceAppInfo, loadWorkspaceConfig, parseModuleConfig };
211
+ //# sourceMappingURL=config-DxASSNjr.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-BYn5yUt5.cjs","names":["config: GkmConfig","configString: string","defaultAlias: string","cwd: string"],"sources":["../src/config.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { dirname, join, parse } from 'node:path';\nimport type { GkmConfig } from './types.js';\nimport {\n\tgetAppGkmConfig,\n\tisWorkspaceConfig,\n\ttype LoadedConfig,\n\ttype NormalizedAppConfig,\n\ttype NormalizedWorkspace,\n\tprocessConfig,\n\ttype WorkspaceConfig,\n} from './workspace/index.js';\n\nexport type { GkmConfig } from './types.js';\nexport type { LoadedConfig, WorkspaceConfig } from './workspace/index.js';\nexport { defineWorkspace } from './workspace/index.js';\n/**\n * Define GKM configuration with full TypeScript support.\n * This is an identity function that provides type safety and autocomplete.\n *\n * @example\n * ```ts\n * // gkm.config.ts\n * import { defineConfig } from '@geekmidas/cli/config';\n *\n * export default defineConfig({\n * routes: './src/endpoints/**\\/*.ts',\n * envParser: './src/config/env',\n * logger: './src/config/logger',\n * telescope: true,\n * });\n * ```\n */\nexport function defineConfig(config: GkmConfig): GkmConfig {\n\treturn config;\n}\n\nexport interface ParsedModuleConfig {\n\tpath: string;\n\timportPattern: string;\n}\n\n/**\n * Parse a module config string into path and import pattern.\n *\n * @param configString - Config string in format \"./path/to/module\" or \"./path/to/module#exportName\"\n * @param defaultAlias - The default alias name to use if no export name specified\n * @returns Object with path and import pattern\n *\n * @example\n * parseModuleConfig('./src/config/env', 'envParser')\n * // { path: './src/config/env', importPattern: 'envParser' }\n *\n * parseModuleConfig('./src/config/env#envParser', 'envParser')\n * // { path: './src/config/env', importPattern: '{ envParser }' }\n *\n * parseModuleConfig('./src/config/env#myEnv', 'envParser')\n * // { path: './src/config/env', importPattern: '{ myEnv as envParser }' }\n */\nexport function parseModuleConfig(\n\tconfigString: string,\n\tdefaultAlias: string,\n): ParsedModuleConfig {\n\tconst parts = configString.split('#');\n\tconst path = parts[0] ?? configString;\n\tconst exportName = parts[1];\n\tconst importPattern = !exportName\n\t\t? defaultAlias\n\t\t: exportName === defaultAlias\n\t\t\t? `{ ${defaultAlias} }`\n\t\t\t: `{ ${exportName} as ${defaultAlias} }`;\n\n\treturn { path, importPattern };\n}\n\nexport interface ConfigDiscoveryResult {\n\tconfigPath: string;\n\tworkspaceRoot: string;\n}\n\n/**\n * Find and return the path to the config file.\n *\n * Resolution order:\n * 1. GKM_CONFIG_PATH env var (set by workspace dev command)\n * 2. Walk up directory tree from cwd\n */\nfunction findConfigPath(cwd: string): ConfigDiscoveryResult {\n\tconst files = ['gkm.config.json', 'gkm.config.ts', 'gkm.config.js'];\n\n\t// Check GKM_CONFIG_PATH env var first (set by workspace dev command)\n\tconst envConfigPath = process.env.GKM_CONFIG_PATH;\n\tif (envConfigPath && existsSync(envConfigPath)) {\n\t\treturn {\n\t\t\tconfigPath: envConfigPath,\n\t\t\tworkspaceRoot: dirname(envConfigPath),\n\t\t};\n\t}\n\n\t// Walk up directory tree to find config\n\tlet currentDir = cwd;\n\tconst { root } = parse(currentDir);\n\n\twhile (currentDir !== root) {\n\t\tfor (const file of files) {\n\t\t\tconst configPath = join(currentDir, file);\n\t\t\tif (existsSync(configPath)) {\n\t\t\t\treturn {\n\t\t\t\t\tconfigPath,\n\t\t\t\t\tworkspaceRoot: currentDir,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tcurrentDir = dirname(currentDir);\n\t}\n\n\tthrow new Error(\n\t\t'Configuration file not found. Please create gkm.config.json, gkm.config.ts, or gkm.config.js in the project root.',\n\t);\n}\n\n/**\n * Get app name from package.json in the given directory.\n * Handles scoped packages by extracting the name after the scope.\n *\n * @example\n * getAppNameFromCwd('/path/to/apps/api')\n * // package.json: { \"name\": \"@myorg/api\" }\n * // Returns: 'api'\n */\nexport function getAppNameFromCwd(cwd: string = process.cwd()): string | null {\n\tconst packageJsonPath = join(cwd, 'package.json');\n\n\tif (!existsSync(packageJsonPath)) {\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\n\t\tconst name = packageJson.name as string | undefined;\n\n\t\tif (!name) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Handle scoped packages: @scope/name -> name\n\t\tif (name.startsWith('@') && name.includes('/')) {\n\t\t\treturn name.split('/')[1] ?? null;\n\t\t}\n\n\t\treturn name;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\ninterface RawConfigResult {\n\tconfig: GkmConfig | WorkspaceConfig;\n\tworkspaceRoot: string;\n}\n\n/**\n * Load raw configuration from file.\n */\nasync function loadRawConfig(cwd: string): Promise<RawConfigResult> {\n\tconst { configPath, workspaceRoot } = findConfigPath(cwd);\n\n\ttry {\n\t\tconst config = await import(configPath);\n\t\treturn {\n\t\t\tconfig: config.default,\n\t\t\tworkspaceRoot,\n\t\t};\n\t} catch (error) {\n\t\tthrow new Error(`Failed to load config: ${(error as Error).message}`);\n\t}\n}\n\n/**\n * Load configuration file (single-app format).\n * For backwards compatibility with existing code.\n *\n * @deprecated Use loadWorkspaceConfig for new code\n */\nexport async function loadConfig(\n\tcwd: string = process.cwd(),\n): Promise<GkmConfig> {\n\tconst { config } = await loadRawConfig(cwd);\n\n\t// If it's a workspace config, throw an error\n\tif (isWorkspaceConfig(config)) {\n\t\tthrow new Error(\n\t\t\t'Workspace configuration detected. Use loadWorkspaceConfig() instead.',\n\t\t);\n\t}\n\n\treturn config;\n}\n\n/**\n * Load configuration file and process it as a workspace.\n * Works with both single-app and workspace configurations.\n *\n * Single-app configs are automatically wrapped as a workspace with one app.\n *\n * @example\n * ```ts\n * const { type, workspace } = await loadWorkspaceConfig();\n *\n * if (type === 'workspace') {\n * console.log('Multi-app workspace:', workspace.apps);\n * } else {\n * console.log('Single app wrapped as workspace');\n * }\n * ```\n */\nexport async function loadWorkspaceConfig(\n\tcwd: string = process.cwd(),\n): Promise<LoadedConfig> {\n\tconst { config, workspaceRoot } = await loadRawConfig(cwd);\n\treturn processConfig(config, workspaceRoot);\n}\n\nexport interface AppConfigResult {\n\tappName: string;\n\tapp: NormalizedAppConfig;\n\tgkmConfig: GkmConfig;\n\tworkspace: NormalizedWorkspace;\n\tworkspaceRoot: string;\n\tappRoot: string;\n}\n\n/**\n * Load app-specific configuration from workspace.\n * Uses the app name from package.json to find the correct app config.\n *\n * @example\n * ```ts\n * // From apps/api directory with package.json: { \"name\": \"@myorg/api\" }\n * const { app, workspace, workspaceRoot } = await loadAppConfig();\n * console.log(app.routes); // './src/endpoints/**\\/*.ts'\n * ```\n */\nexport async function loadAppConfig(\n\tcwd: string = process.cwd(),\n): Promise<AppConfigResult> {\n\tconst appName = getAppNameFromCwd(cwd);\n\n\tif (!appName) {\n\t\tthrow new Error(\n\t\t\t'Could not determine app name. Ensure package.json exists with a \"name\" field.',\n\t\t);\n\t}\n\n\tconst { config, workspaceRoot } = await loadRawConfig(cwd);\n\tconst loadedConfig = processConfig(config, workspaceRoot);\n\n\t// Find the app in workspace (apps is a Record<string, NormalizedAppConfig>)\n\tconst app = loadedConfig.workspace.apps[appName];\n\n\tif (!app) {\n\t\tconst availableApps = Object.keys(loadedConfig.workspace.apps).join(', ');\n\t\tthrow new Error(\n\t\t\t`App \"${appName}\" not found in workspace config. Available apps: ${availableApps}. ` +\n\t\t\t\t`Ensure the package.json name matches the app key in gkm.config.ts.`,\n\t\t);\n\t}\n\n\t// Get the app's GKM config using the helper\n\tconst gkmConfig = getAppGkmConfig(loadedConfig.workspace, appName);\n\n\tif (!gkmConfig) {\n\t\tthrow new Error(\n\t\t\t`App \"${appName}\" is not a backend app and cannot be run with gkm dev.`,\n\t\t);\n\t}\n\n\treturn {\n\t\tappName,\n\t\tapp,\n\t\tgkmConfig,\n\t\tworkspace: loadedConfig.workspace,\n\t\tworkspaceRoot,\n\t\tappRoot: join(workspaceRoot, app.path),\n\t};\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"config-DxASSNjr.mjs","names":["config: GkmConfig","configString: string","defaultAlias: string","cwd: string"],"sources":["../src/config.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { dirname, join, parse } from 'node:path';\nimport type { GkmConfig } from './types.js';\nimport {\n\tgetAppGkmConfig,\n\tisWorkspaceConfig,\n\ttype LoadedConfig,\n\ttype NormalizedAppConfig,\n\ttype NormalizedWorkspace,\n\tprocessConfig,\n\ttype WorkspaceConfig,\n} from './workspace/index.js';\n\nexport type { GkmConfig } from './types.js';\nexport type { LoadedConfig, WorkspaceConfig } from './workspace/index.js';\nexport { defineWorkspace } from './workspace/index.js';\n/**\n * Define GKM configuration with full TypeScript support.\n * This is an identity function that provides type safety and autocomplete.\n *\n * @example\n * ```ts\n * // gkm.config.ts\n * import { defineConfig } from '@geekmidas/cli/config';\n *\n * export default defineConfig({\n * routes: './src/endpoints/**\\/*.ts',\n * envParser: './src/config/env',\n * logger: './src/config/logger',\n * telescope: true,\n * });\n * ```\n */\nexport function defineConfig(config: GkmConfig): GkmConfig {\n\treturn config;\n}\n\nexport interface ParsedModuleConfig {\n\tpath: string;\n\timportPattern: string;\n}\n\n/**\n * Parse a module config string into path and import pattern.\n *\n * @param configString - Config string in format \"./path/to/module\" or \"./path/to/module#exportName\"\n * @param defaultAlias - The default alias name to use if no export name specified\n * @returns Object with path and import pattern\n *\n * @example\n * parseModuleConfig('./src/config/env', 'envParser')\n * // { path: './src/config/env', importPattern: 'envParser' }\n *\n * parseModuleConfig('./src/config/env#envParser', 'envParser')\n * // { path: './src/config/env', importPattern: '{ envParser }' }\n *\n * parseModuleConfig('./src/config/env#myEnv', 'envParser')\n * // { path: './src/config/env', importPattern: '{ myEnv as envParser }' }\n */\nexport function parseModuleConfig(\n\tconfigString: string,\n\tdefaultAlias: string,\n): ParsedModuleConfig {\n\tconst parts = configString.split('#');\n\tconst path = parts[0] ?? configString;\n\tconst exportName = parts[1];\n\tconst importPattern = !exportName\n\t\t? defaultAlias\n\t\t: exportName === defaultAlias\n\t\t\t? `{ ${defaultAlias} }`\n\t\t\t: `{ ${exportName} as ${defaultAlias} }`;\n\n\treturn { path, importPattern };\n}\n\nexport interface ConfigDiscoveryResult {\n\tconfigPath: string;\n\tworkspaceRoot: string;\n}\n\n/**\n * Find and return the path to the config file.\n *\n * Resolution order:\n * 1. GKM_CONFIG_PATH env var (set by workspace dev command)\n * 2. Walk up directory tree from cwd\n */\nfunction findConfigPath(cwd: string): ConfigDiscoveryResult {\n\tconst files = ['gkm.config.json', 'gkm.config.ts', 'gkm.config.js'];\n\n\t// Check GKM_CONFIG_PATH env var first (set by workspace dev command)\n\tconst envConfigPath = process.env.GKM_CONFIG_PATH;\n\tif (envConfigPath && existsSync(envConfigPath)) {\n\t\treturn {\n\t\t\tconfigPath: envConfigPath,\n\t\t\tworkspaceRoot: dirname(envConfigPath),\n\t\t};\n\t}\n\n\t// Walk up directory tree to find config\n\tlet currentDir = cwd;\n\tconst { root } = parse(currentDir);\n\n\twhile (currentDir !== root) {\n\t\tfor (const file of files) {\n\t\t\tconst configPath = join(currentDir, file);\n\t\t\tif (existsSync(configPath)) {\n\t\t\t\treturn {\n\t\t\t\t\tconfigPath,\n\t\t\t\t\tworkspaceRoot: currentDir,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tcurrentDir = dirname(currentDir);\n\t}\n\n\tthrow new Error(\n\t\t'Configuration file not found. Please create gkm.config.json, gkm.config.ts, or gkm.config.js in the project root.',\n\t);\n}\n\n/**\n * Get app name from package.json in the given directory.\n * Handles scoped packages by extracting the name after the scope.\n *\n * @example\n * getAppNameFromCwd('/path/to/apps/api')\n * // package.json: { \"name\": \"@myorg/api\" }\n * // Returns: 'api'\n */\nexport function getAppNameFromCwd(cwd: string = process.cwd()): string | null {\n\tconst packageJsonPath = join(cwd, 'package.json');\n\n\tif (!existsSync(packageJsonPath)) {\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\n\t\tconst name = packageJson.name as string | undefined;\n\n\t\tif (!name) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Handle scoped packages: @scope/name -> name\n\t\tif (name.startsWith('@') && name.includes('/')) {\n\t\t\treturn name.split('/')[1] ?? null;\n\t\t}\n\n\t\treturn name;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\ninterface RawConfigResult {\n\tconfig: GkmConfig | WorkspaceConfig;\n\tworkspaceRoot: string;\n}\n\n/**\n * Load raw configuration from file.\n */\nasync function loadRawConfig(cwd: string): Promise<RawConfigResult> {\n\tconst { configPath, workspaceRoot } = findConfigPath(cwd);\n\n\ttry {\n\t\tconst config = await import(configPath);\n\t\treturn {\n\t\t\tconfig: config.default,\n\t\t\tworkspaceRoot,\n\t\t};\n\t} catch (error) {\n\t\tthrow new Error(`Failed to load config: ${(error as Error).message}`);\n\t}\n}\n\n/**\n * Load configuration file (single-app format).\n * For backwards compatibility with existing code.\n *\n * @deprecated Use loadWorkspaceConfig for new code\n */\nexport async function loadConfig(\n\tcwd: string = process.cwd(),\n): Promise<GkmConfig> {\n\tconst { config } = await loadRawConfig(cwd);\n\n\t// If it's a workspace config, throw an error\n\tif (isWorkspaceConfig(config)) {\n\t\tthrow new Error(\n\t\t\t'Workspace configuration detected. Use loadWorkspaceConfig() instead.',\n\t\t);\n\t}\n\n\treturn config;\n}\n\n/**\n * Load configuration file and process it as a workspace.\n * Works with both single-app and workspace configurations.\n *\n * Single-app configs are automatically wrapped as a workspace with one app.\n *\n * @example\n * ```ts\n * const { type, workspace } = await loadWorkspaceConfig();\n *\n * if (type === 'workspace') {\n * console.log('Multi-app workspace:', workspace.apps);\n * } else {\n * console.log('Single app wrapped as workspace');\n * }\n * ```\n */\nexport async function loadWorkspaceConfig(\n\tcwd: string = process.cwd(),\n): Promise<LoadedConfig> {\n\tconst { config, workspaceRoot } = await loadRawConfig(cwd);\n\treturn processConfig(config, workspaceRoot);\n}\n\nexport interface AppConfigResult {\n\tappName: string;\n\tapp: NormalizedAppConfig;\n\tgkmConfig: GkmConfig;\n\tworkspace: NormalizedWorkspace;\n\tworkspaceRoot: string;\n\tappRoot: string;\n}\n\n/**\n * Load app-specific configuration from workspace.\n * Uses the app name from package.json to find the correct app config.\n *\n * @example\n * ```ts\n * // From apps/api directory with package.json: { \"name\": \"@myorg/api\" }\n * const { app, workspace, workspaceRoot } = await loadAppConfig();\n * console.log(app.routes); // './src/endpoints/**\\/*.ts'\n * ```\n */\nexport async function loadAppConfig(\n\tcwd: string = process.cwd(),\n): Promise<AppConfigResult> {\n\tconst appName = getAppNameFromCwd(cwd);\n\n\tif (!appName) {\n\t\tthrow new Error(\n\t\t\t'Could not determine app name. Ensure package.json exists with a \"name\" field.',\n\t\t);\n\t}\n\n\tconst { config, workspaceRoot } = await loadRawConfig(cwd);\n\tconst loadedConfig = processConfig(config, workspaceRoot);\n\n\t// Find the app in workspace (apps is a Record<string, NormalizedAppConfig>)\n\tconst app = loadedConfig.workspace.apps[appName];\n\n\tif (!app) {\n\t\tconst availableApps = Object.keys(loadedConfig.workspace.apps).join(', ');\n\t\tthrow new Error(\n\t\t\t`App \"${appName}\" not found in workspace config. Available apps: ${availableApps}. ` +\n\t\t\t\t`Ensure the package.json name matches the app key in gkm.config.ts.`,\n\t\t);\n\t}\n\n\t// Get the app's GKM config using the helper\n\tconst gkmConfig = getAppGkmConfig(loadedConfig.workspace, appName);\n\n\tif (!gkmConfig) {\n\t\tthrow new Error(\n\t\t\t`App \"${appName}\" is not a backend app and cannot be run with gkm dev.`,\n\t\t);\n\t}\n\n\treturn {\n\t\tappName,\n\t\tapp,\n\t\tgkmConfig,\n\t\tworkspace: loadedConfig.workspace,\n\t\tworkspaceRoot,\n\t\tappRoot: join(workspaceRoot, app.path),\n\t};\n}\n\nexport interface WorkspaceAppInfo {\n\tappName: string;\n\tapp: NormalizedAppConfig;\n\tworkspace: NormalizedWorkspace;\n\tworkspaceRoot: string;\n}\n\n/**\n * Load workspace info for any app (frontend or backend).\n * Unlike loadAppConfig, this does NOT require the app to have a gkm config\n * (routes, entry, etc.), making it suitable for gkm exec/test from frontend apps.\n */\nexport async function loadWorkspaceAppInfo(\n\tcwd: string = process.cwd(),\n): Promise<WorkspaceAppInfo> {\n\tconst appName = getAppNameFromCwd(cwd);\n\n\tif (!appName) {\n\t\tthrow new Error(\n\t\t\t'Could not determine app name. Ensure package.json exists with a \"name\" field.',\n\t\t);\n\t}\n\n\tconst { config, workspaceRoot } = await loadRawConfig(cwd);\n\tconst loadedConfig = processConfig(config, workspaceRoot);\n\n\tconst app = loadedConfig.workspace.apps[appName];\n\n\tif (!app) {\n\t\tconst availableApps = Object.keys(loadedConfig.workspace.apps).join(', ');\n\t\tthrow new Error(\n\t\t\t`App \"${appName}\" not found in workspace config. Available apps: ${availableApps}. ` +\n\t\t\t\t`Ensure the package.json name matches the app key in gkm.config.ts.`,\n\t\t);\n\t}\n\n\treturn {\n\t\tappName,\n\t\tapp,\n\t\tworkspace: loadedConfig.workspace,\n\t\tworkspaceRoot,\n\t};\n}\n"],"mappings":"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"}
package/dist/config.cjs CHANGED
@@ -1,10 +1,11 @@
1
- const require_workspace = require('./workspace-DIMnYaYt.cjs');
2
- const require_config = require('./config-BYn5yUt5.cjs');
1
+ const require_workspace = require('./workspace-D2ocAlpl.cjs');
2
+ const require_config = require('./config-6JHOwLCx.cjs');
3
3
 
4
4
  exports.defineConfig = require_config.defineConfig;
5
5
  exports.defineWorkspace = require_workspace.defineWorkspace;
6
6
  exports.getAppNameFromCwd = require_config.getAppNameFromCwd;
7
7
  exports.loadAppConfig = require_config.loadAppConfig;
8
8
  exports.loadConfig = require_config.loadConfig;
9
+ exports.loadWorkspaceAppInfo = require_config.loadWorkspaceAppInfo;
9
10
  exports.loadWorkspaceConfig = require_config.loadWorkspaceConfig;
10
11
  exports.parseModuleConfig = require_config.parseModuleConfig;
package/dist/config.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { GkmConfig } from "./types-l53qUmGt.cjs";
2
- import { LoadedConfig, NormalizedAppConfig, NormalizedWorkspace, WorkspaceConfig, defineWorkspace } from "./index-Ba21_lNt.cjs";
2
+ import { LoadedConfig, NormalizedAppConfig, NormalizedWorkspace, WorkspaceConfig, defineWorkspace } from "./index-Cyk2rTyj.cjs";
3
3
 
4
4
  //#region src/config.d.ts
5
5
 
@@ -102,7 +102,19 @@ interface AppConfigResult {
102
102
  * ```
103
103
  */
104
104
  declare function loadAppConfig(cwd?: string): Promise<AppConfigResult>;
105
+ interface WorkspaceAppInfo {
106
+ appName: string;
107
+ app: NormalizedAppConfig;
108
+ workspace: NormalizedWorkspace;
109
+ workspaceRoot: string;
110
+ }
111
+ /**
112
+ * Load workspace info for any app (frontend or backend).
113
+ * Unlike loadAppConfig, this does NOT require the app to have a gkm config
114
+ * (routes, entry, etc.), making it suitable for gkm exec/test from frontend apps.
115
+ */
116
+ declare function loadWorkspaceAppInfo(cwd?: string): Promise<WorkspaceAppInfo>;
105
117
  //# sourceMappingURL=config.d.ts.map
106
118
  //#endregion
107
- export { AppConfigResult, ConfigDiscoveryResult, GkmConfig, LoadedConfig, ParsedModuleConfig, WorkspaceConfig, defineConfig, defineWorkspace, getAppNameFromCwd, loadAppConfig, loadConfig, loadWorkspaceConfig, parseModuleConfig };
119
+ export { AppConfigResult, ConfigDiscoveryResult, GkmConfig, LoadedConfig, ParsedModuleConfig, WorkspaceAppInfo, WorkspaceConfig, defineConfig, defineWorkspace, getAppNameFromCwd, loadAppConfig, loadConfig, loadWorkspaceAppInfo, loadWorkspaceConfig, parseModuleConfig };
108
120
  //# sourceMappingURL=config.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.cts","names":[],"sources":["../src/config.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAiC0D;AAI1D;AAsBA;AAgBA;AAuDA;AAsDA;;;;AAEU;AA8BV;;;;AAEU,iBAzLM,YAAA,CAyLN,MAAA,EAzL2B,SAyL3B,CAAA,EAzLuC,SAyLvC;AAKO,UA1LA,kBAAA,CA0Le;EAAA,IAAA,EAAA,MAAA;EAAA,aAE1B,EAAA,MAAA;;;AAEyB;AAgB/B;;;;AAEU;;;;;;;;;;;iBA1LM,iBAAA,8CAGb;UAac,qBAAA;;;;;;;;;;;;;iBAuDD,iBAAA;;;;;;;iBAsDM,UAAA,gBAEnB,QAAQ;;;;;;;;;;;;;;;;;;iBA8BW,mBAAA,gBAEnB,QAAQ;UAKM,eAAA;;OAEX;aACM;aACA;;;;;;;;;;;;;;;iBAgBU,aAAA,gBAEnB,QAAQ"}
1
+ {"version":3,"file":"config.d.cts","names":[],"sources":["../src/config.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAiC0D;AAI1D;AAsBA;AAgBA;AAuDA;AAsDA;;;;AAEU;AA8BV;;;;AAEU,iBAzLM,YAAA,CAyLN,MAAA,EAzL2B,SAyL3B,CAAA,EAzLuC,SAyLvC;AAKO,UA1LA,kBAAA,CA0Le;EAAA,IAAA,EAAA,MAAA;EAAA,aAE1B,EAAA,MAAA;;;AAEyB;AAgB/B;;;;AAEU;AA0CV;;;;AAG+B;AAS/B;;;;AAEU;iBAlPM,iBAAA,8CAGb;UAac,qBAAA;;;;;;;;;;;;;iBAuDD,iBAAA;;;;;;;iBAsDM,UAAA,gBAEnB,QAAQ;;;;;;;;;;;;;;;;;;iBA8BW,mBAAA,gBAEnB,QAAQ;UAKM,eAAA;;OAEX;aACM;aACA;;;;;;;;;;;;;;;iBAgBU,aAAA,gBAEnB,QAAQ;UA0CM,gBAAA;;OAEX;aACM;;;;;;;;iBASU,oBAAA,gBAEnB,QAAQ"}
package/dist/config.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { GkmConfig } from "./types-CZg5iUgD.mjs";
2
- import { LoadedConfig, NormalizedAppConfig, NormalizedWorkspace, WorkspaceConfig, defineWorkspace } from "./index-Bj5VNxEL.mjs";
2
+ import { LoadedConfig, NormalizedAppConfig, NormalizedWorkspace, WorkspaceConfig, defineWorkspace } from "./index-C-KxSGGK.mjs";
3
3
 
4
4
  //#region src/config.d.ts
5
5
 
@@ -102,7 +102,19 @@ interface AppConfigResult {
102
102
  * ```
103
103
  */
104
104
  declare function loadAppConfig(cwd?: string): Promise<AppConfigResult>;
105
+ interface WorkspaceAppInfo {
106
+ appName: string;
107
+ app: NormalizedAppConfig;
108
+ workspace: NormalizedWorkspace;
109
+ workspaceRoot: string;
110
+ }
111
+ /**
112
+ * Load workspace info for any app (frontend or backend).
113
+ * Unlike loadAppConfig, this does NOT require the app to have a gkm config
114
+ * (routes, entry, etc.), making it suitable for gkm exec/test from frontend apps.
115
+ */
116
+ declare function loadWorkspaceAppInfo(cwd?: string): Promise<WorkspaceAppInfo>;
105
117
  //# sourceMappingURL=config.d.ts.map
106
118
  //#endregion
107
- export { AppConfigResult, ConfigDiscoveryResult, GkmConfig, LoadedConfig, ParsedModuleConfig, WorkspaceConfig, defineConfig, defineWorkspace, getAppNameFromCwd, loadAppConfig, loadConfig, loadWorkspaceConfig, parseModuleConfig };
119
+ export { AppConfigResult, ConfigDiscoveryResult, GkmConfig, LoadedConfig, ParsedModuleConfig, WorkspaceAppInfo, WorkspaceConfig, defineConfig, defineWorkspace, getAppNameFromCwd, loadAppConfig, loadConfig, loadWorkspaceAppInfo, loadWorkspaceConfig, parseModuleConfig };
108
120
  //# sourceMappingURL=config.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.mts","names":[],"sources":["../src/config.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAiC0D;AAI1D;AAsBA;AAgBA;AAuDA;AAsDA;;;;AAEU;AA8BV;;;;AAEU,iBAzLM,YAAA,CAyLN,MAAA,EAzL2B,SAyL3B,CAAA,EAzLuC,SAyLvC;AAKO,UA1LA,kBAAA,CA0Le;EAAA,IAAA,EAAA,MAAA;EAAA,aAE1B,EAAA,MAAA;;;AAEyB;AAgB/B;;;;AAEU;;;;;;;;;;;iBA1LM,iBAAA,8CAGb;UAac,qBAAA;;;;;;;;;;;;;iBAuDD,iBAAA;;;;;;;iBAsDM,UAAA,gBAEnB,QAAQ;;;;;;;;;;;;;;;;;;iBA8BW,mBAAA,gBAEnB,QAAQ;UAKM,eAAA;;OAEX;aACM;aACA;;;;;;;;;;;;;;;iBAgBU,aAAA,gBAEnB,QAAQ"}
1
+ {"version":3,"file":"config.d.mts","names":[],"sources":["../src/config.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAiC0D;AAI1D;AAsBA;AAgBA;AAuDA;AAsDA;;;;AAEU;AA8BV;;;;AAEU,iBAzLM,YAAA,CAyLN,MAAA,EAzL2B,SAyL3B,CAAA,EAzLuC,SAyLvC;AAKO,UA1LA,kBAAA,CA0Le;EAAA,IAAA,EAAA,MAAA;EAAA,aAE1B,EAAA,MAAA;;;AAEyB;AAgB/B;;;;AAEU;AA0CV;;;;AAG+B;AAS/B;;;;AAEU;iBAlPM,iBAAA,8CAGb;UAac,qBAAA;;;;;;;;;;;;;iBAuDD,iBAAA;;;;;;;iBAsDM,UAAA,gBAEnB,QAAQ;;;;;;;;;;;;;;;;;;iBA8BW,mBAAA,gBAEnB,QAAQ;UAKM,eAAA;;OAEX;aACM;aACA;;;;;;;;;;;;;;;iBAgBU,aAAA,gBAEnB,QAAQ;UA0CM,gBAAA;;OAEX;aACM;;;;;;;;iBASU,oBAAA,gBAEnB,QAAQ"}
package/dist/config.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { defineWorkspace } from "./workspace-Dy8k7Wru.mjs";
2
- import { defineConfig, getAppNameFromCwd, loadAppConfig, loadConfig, loadWorkspaceConfig, parseModuleConfig } from "./config-dLNQIvDR.mjs";
1
+ import { defineWorkspace } from "./workspace-9IQIjwkQ.mjs";
2
+ import { defineConfig, getAppNameFromCwd, loadAppConfig, loadConfig, loadWorkspaceAppInfo, loadWorkspaceConfig, parseModuleConfig } from "./config-DxASSNjr.mjs";
3
3
 
4
- export { defineConfig, defineWorkspace, getAppNameFromCwd, loadAppConfig, loadConfig, loadWorkspaceConfig, parseModuleConfig };
4
+ export { defineConfig, defineWorkspace, getAppNameFromCwd, loadAppConfig, loadConfig, loadWorkspaceAppInfo, loadWorkspaceConfig, parseModuleConfig };
@@ -1608,7 +1608,7 @@ declare function getAppGkmConfig(workspace: NormalizedWorkspace, appName: string
1608
1608
  declare function getAppBuildOrder(workspace: NormalizedWorkspace): string[];
1609
1609
  /**
1610
1610
  * Generate environment variables for app dependencies.
1611
- * Each dependency gets a {DEP_NAME}_URL variable.
1611
+ * Each dependency gets both a `{DEP_NAME}_URL` and `NEXT_PUBLIC_{DEP_NAME}_URL` variable.
1612
1612
  */
1613
1613
  declare function getDependencyEnvVars(workspace: NormalizedWorkspace, appName: string, urlPrefix?: string): Record<string, string>;
1614
1614
  /**
@@ -1645,4 +1645,4 @@ declare function getEndpointForStage(dokployConfig: {
1645
1645
 
1646
1646
  //#endregion
1647
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 };
1648
- //# sourceMappingURL=index-Bj5VNxEL.d.mts.map
1648
+ //# sourceMappingURL=index-C-KxSGGK.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-Ba21_lNt.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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"}
1
+ {"version":3,"file":"index-C-KxSGGK.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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"}
@@ -1608,7 +1608,7 @@ declare function getAppGkmConfig(workspace: NormalizedWorkspace, appName: string
1608
1608
  declare function getAppBuildOrder(workspace: NormalizedWorkspace): string[];
1609
1609
  /**
1610
1610
  * Generate environment variables for app dependencies.
1611
- * Each dependency gets a {DEP_NAME}_URL variable.
1611
+ * Each dependency gets both a `{DEP_NAME}_URL` and `NEXT_PUBLIC_{DEP_NAME}_URL` variable.
1612
1612
  */
1613
1613
  declare function getDependencyEnvVars(workspace: NormalizedWorkspace, appName: string, urlPrefix?: string): Record<string, string>;
1614
1614
  /**
@@ -1645,4 +1645,4 @@ declare function getEndpointForStage(dokployConfig: {
1645
1645
 
1646
1646
  //#endregion
1647
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 };
1648
- //# sourceMappingURL=index-Ba21_lNt.d.cts.map
1648
+ //# sourceMappingURL=index-Cyk2rTyj.d.cts.map
@@ -1 +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":"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"}
1
+ {"version":3,"file":"index-Cyk2rTyj.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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"}