@frontmcp/nx 1.0.2 → 1.0.3

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/README.md CHANGED
@@ -74,7 +74,7 @@ nx serve my-server
74
74
  ## Related Packages
75
75
 
76
76
  - [`@frontmcp/sdk`](https://www.npmjs.com/package/@frontmcp/sdk) — Core FrontMCP SDK
77
- - [`@frontmcp/cli`](https://www.npmjs.com/package/@frontmcp/cli) — FrontMCP CLI
77
+ - [`frontmcp`](https://www.npmjs.com/package/frontmcp) — FrontMCP CLI
78
78
  - [`@frontmcp/adapters`](https://www.npmjs.com/package/@frontmcp/adapters) — Framework adapters
79
79
  - [`@frontmcp/plugins`](https://www.npmjs.com/package/@frontmcp/plugins) — Plugin system
80
80
 
@@ -18,7 +18,7 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@frontmcp/sdk": "<%= frontmcpVersion %>",
21
- "@frontmcp/cli": "<%= frontmcpVersion %>",
21
+ "frontmcp": "<%= frontmcpVersion %>",
22
22
  "reflect-metadata": "^0.2.2",
23
23
  "zod": "^4.0.0",
24
24
  "tslib": "^2.3.0"
@@ -12,7 +12,7 @@ async function workspaceGenerator(tree, schema) {
12
12
  async function workspaceGeneratorInternal(tree, schema) {
13
13
  const options = (0, index_js_1.normalizeOptions)(schema);
14
14
  const frontmcpVersion = `~${(0, versions_js_1.getFrontmcpVersion)()}`;
15
- const nxVersion = '22.3.3';
15
+ const nxVersion = (0, versions_js_1.getNxVersion)();
16
16
  (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, 'files'), options.workspaceRoot, {
17
17
  ...options,
18
18
  frontmcpVersion,
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../../src/generators/workspace/workspace.ts"],"names":[],"mappings":";;AAOA,gDAEC;AATD,uCAAgH;AAChH,iDAAyC;AACzC,+BAA4B;AAE5B,6CAAkD;AAClD,yDAA6D;AAEtD,KAAK,UAAU,kBAAkB,CAAC,IAAU,EAAE,MAAgC;IACnF,OAAO,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,IAAU,EAAE,MAAgC;IACpF,MAAM,OAAO,GAAG,IAAA,2BAAgB,EAAC,MAAM,CAAC,CAAC;IACzC,MAAM,eAAe,GAAG,IAAI,IAAA,gCAAkB,GAAE,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,QAAQ,CAAC;IAE3B,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE;QACnE,GAAG,OAAO;QACV,eAAe;QACf,SAAS;QACT,IAAI,EAAE,EAAE;QACR,GAAG,EAAE,GAAG;KACT,CAAC,CAAC;IAEH,2BAA2B;IAC3B,IAAI,CAAC,KAAK,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAEnE,0DAA0D;IAC1D,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACvD,MAAM,YAAY,CAAC,IAAI,EAAE;YACvB,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAA,WAAI,EAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC;YACtD,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAExB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,GAAG,EAAE;gBACV,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3C,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,EAAE;YACV,UAAU;QACZ,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,EAAE;QACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,aAAqB;IAC9C,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,UAAU,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,IAAA,wBAAQ,EAAC,YAAY,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChE,IAAA,wBAAQ,EAAC,gCAAgC,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;AACH,CAAC;AAED,kBAAe,kBAAkB,CAAC","sourcesContent":["import { type Tree, formatFiles, generateFiles, installPackagesTask, type GeneratorCallback } from '@nx/devkit';\nimport { execSync } from 'child_process';\nimport { join } from 'path';\nimport type { WorkspaceGeneratorSchema } from './schema.js';\nimport { normalizeOptions } from './lib/index.js';\nimport { getFrontmcpVersion } from '../../utils/versions.js';\n\nexport async function workspaceGenerator(tree: Tree, schema: WorkspaceGeneratorSchema): Promise<GeneratorCallback> {\n return workspaceGeneratorInternal(tree, schema);\n}\n\nasync function workspaceGeneratorInternal(tree: Tree, schema: WorkspaceGeneratorSchema): Promise<GeneratorCallback> {\n const options = normalizeOptions(schema);\n const frontmcpVersion = `~${getFrontmcpVersion()}`;\n const nxVersion = '22.3.3';\n\n generateFiles(tree, join(__dirname, 'files'), options.workspaceRoot, {\n ...options,\n frontmcpVersion,\n nxVersion,\n tmpl: '',\n dot: '.',\n });\n\n // Create empty directories\n tree.write(join(options.workspaceRoot, 'apps', '.gitkeep'), '');\n tree.write(join(options.workspaceRoot, 'libs', '.gitkeep'), '');\n tree.write(join(options.workspaceRoot, 'servers', '.gitkeep'), '');\n\n // Compose with app generator when createSampleApp is true\n if (options.createSampleApp) {\n const { appGenerator } = await import('../app/app.js');\n await appGenerator(tree, {\n name: 'demo',\n directory: join(options.workspaceRoot, 'apps', 'demo'),\n tags: 'scope:apps',\n skipFormat: true,\n });\n }\n\n await formatFiles(tree);\n\n if (options.skipInstall) {\n if (!options.skipGit) {\n return () => {\n initGitRepository(options.workspaceRoot);\n };\n }\n return () => {\n /* noop */\n };\n }\n\n return () => {\n installPackagesTask(tree);\n if (!options.skipGit) {\n initGitRepository(options.workspaceRoot);\n }\n };\n}\n\nfunction initGitRepository(workspaceRoot: string): void {\n try {\n execSync('git init', { cwd: workspaceRoot, stdio: 'ignore' });\n execSync('git add -A', { cwd: workspaceRoot, stdio: 'ignore' });\n execSync('git commit -m \"Initial commit\"', { cwd: workspaceRoot, stdio: 'ignore' });\n } catch {\n // git may not be installed — silently skip\n }\n}\n\nexport default workspaceGenerator;\n"]}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../../src/generators/workspace/workspace.ts"],"names":[],"mappings":";;AAOA,gDAEC;AATD,uCAAgH;AAChH,iDAAyC;AACzC,+BAA4B;AAE5B,6CAAkD;AAClD,yDAA2E;AAEpE,KAAK,UAAU,kBAAkB,CAAC,IAAU,EAAE,MAAgC;IACnF,OAAO,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,IAAU,EAAE,MAAgC;IACpF,MAAM,OAAO,GAAG,IAAA,2BAAgB,EAAC,MAAM,CAAC,CAAC;IACzC,MAAM,eAAe,GAAG,IAAI,IAAA,gCAAkB,GAAE,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,IAAA,0BAAY,GAAE,CAAC;IAEjC,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE;QACnE,GAAG,OAAO;QACV,eAAe;QACf,SAAS;QACT,IAAI,EAAE,EAAE;QACR,GAAG,EAAE,GAAG;KACT,CAAC,CAAC;IAEH,2BAA2B;IAC3B,IAAI,CAAC,KAAK,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAEnE,0DAA0D;IAC1D,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACvD,MAAM,YAAY,CAAC,IAAI,EAAE;YACvB,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAA,WAAI,EAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC;YACtD,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAExB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,GAAG,EAAE;gBACV,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3C,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,EAAE;YACV,UAAU;QACZ,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,EAAE;QACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,aAAqB;IAC9C,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,UAAU,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,IAAA,wBAAQ,EAAC,YAAY,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChE,IAAA,wBAAQ,EAAC,gCAAgC,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;AACH,CAAC;AAED,kBAAe,kBAAkB,CAAC","sourcesContent":["import { type Tree, formatFiles, generateFiles, installPackagesTask, type GeneratorCallback } from '@nx/devkit';\nimport { execSync } from 'child_process';\nimport { join } from 'path';\nimport type { WorkspaceGeneratorSchema } from './schema.js';\nimport { normalizeOptions } from './lib/index.js';\nimport { getFrontmcpVersion, getNxVersion } from '../../utils/versions.js';\n\nexport async function workspaceGenerator(tree: Tree, schema: WorkspaceGeneratorSchema): Promise<GeneratorCallback> {\n return workspaceGeneratorInternal(tree, schema);\n}\n\nasync function workspaceGeneratorInternal(tree: Tree, schema: WorkspaceGeneratorSchema): Promise<GeneratorCallback> {\n const options = normalizeOptions(schema);\n const frontmcpVersion = `~${getFrontmcpVersion()}`;\n const nxVersion = getNxVersion();\n\n generateFiles(tree, join(__dirname, 'files'), options.workspaceRoot, {\n ...options,\n frontmcpVersion,\n nxVersion,\n tmpl: '',\n dot: '.',\n });\n\n // Create empty directories\n tree.write(join(options.workspaceRoot, 'apps', '.gitkeep'), '');\n tree.write(join(options.workspaceRoot, 'libs', '.gitkeep'), '');\n tree.write(join(options.workspaceRoot, 'servers', '.gitkeep'), '');\n\n // Compose with app generator when createSampleApp is true\n if (options.createSampleApp) {\n const { appGenerator } = await import('../app/app.js');\n await appGenerator(tree, {\n name: 'demo',\n directory: join(options.workspaceRoot, 'apps', 'demo'),\n tags: 'scope:apps',\n skipFormat: true,\n });\n }\n\n await formatFiles(tree);\n\n if (options.skipInstall) {\n if (!options.skipGit) {\n return () => {\n initGitRepository(options.workspaceRoot);\n };\n }\n return () => {\n /* noop */\n };\n }\n\n return () => {\n installPackagesTask(tree);\n if (!options.skipGit) {\n initGitRepository(options.workspaceRoot);\n }\n };\n}\n\nfunction initGitRepository(workspaceRoot: string): void {\n try {\n execSync('git init', { cwd: workspaceRoot, stdio: 'ignore' });\n execSync('git add -A', { cwd: workspaceRoot, stdio: 'ignore' });\n execSync('git commit -m \"Initial commit\"', { cwd: workspaceRoot, stdio: 'ignore' });\n } catch {\n // git may not be installed — silently skip\n }\n}\n\nexport default workspaceGenerator;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontmcp/nx",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Nx plugin for FrontMCP — generators and executors for building MCP servers",
5
5
  "author": "AgentFront <info@agentfront.dev>",
6
6
  "homepage": "https://docs.agentfront.dev",
@@ -33,8 +33,8 @@
33
33
  "node": ">=24.0.0"
34
34
  },
35
35
  "dependencies": {
36
- "@frontmcp/skills": "1.0.2",
37
- "@nx/devkit": "22.3.3",
36
+ "@frontmcp/skills": "1.0.3",
37
+ "@nx/devkit": "22.6.4",
38
38
  "tslib": "^2.3.0"
39
39
  },
40
40
  "peerDependencies": {
@@ -1,5 +1,6 @@
1
1
  export declare function getFrontmcpVersion(): string;
2
2
  export declare function getFrontmcpDependencies(): Record<string, string>;
3
3
  export declare function getFrontmcpDevDependencies(): Record<string, string>;
4
+ export declare function getNxVersion(): string;
4
5
  export declare function getNxDependencies(): Record<string, string>;
5
6
  export declare function getNxDevDependencies(): Record<string, string>;
package/utils/versions.js CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFrontmcpVersion = getFrontmcpVersion;
4
4
  exports.getFrontmcpDependencies = getFrontmcpDependencies;
5
5
  exports.getFrontmcpDevDependencies = getFrontmcpDevDependencies;
6
+ exports.getNxVersion = getNxVersion;
6
7
  exports.getNxDependencies = getNxDependencies;
7
8
  exports.getNxDevDependencies = getNxDevDependencies;
8
9
  const devkit_1 = require("@nx/devkit");
@@ -36,7 +37,7 @@ function getFrontmcpDependencies() {
36
37
  const range = `~${getFrontmcpVersion()}`;
37
38
  return {
38
39
  '@frontmcp/sdk': range,
39
- '@frontmcp/cli': range,
40
+ frontmcp: range,
40
41
  'reflect-metadata': '^0.2.2',
41
42
  zod: '^4.0.0',
42
43
  };
@@ -47,19 +48,23 @@ function getFrontmcpDevDependencies() {
47
48
  '@frontmcp/testing': range,
48
49
  };
49
50
  }
51
+ const NX_VERSION = '22.6.4';
52
+ function getNxVersion() {
53
+ return NX_VERSION;
54
+ }
50
55
  function getNxDependencies() {
51
56
  return {
52
- nx: '22.3.3',
53
- '@nx/devkit': '22.3.3',
54
- '@nx/js': '22.3.3',
55
- '@nx/eslint': '22.3.3',
56
- '@nx/jest': '22.3.3',
57
- '@nx/esbuild': '22.3.3',
57
+ nx: NX_VERSION,
58
+ '@nx/devkit': NX_VERSION,
59
+ '@nx/js': NX_VERSION,
60
+ '@nx/eslint': NX_VERSION,
61
+ '@nx/jest': NX_VERSION,
62
+ '@nx/esbuild': NX_VERSION,
58
63
  };
59
64
  }
60
65
  function getNxDevDependencies() {
61
66
  return {
62
- '@nx/workspace': '22.3.3',
67
+ '@nx/workspace': NX_VERSION,
63
68
  '@swc-node/register': '~1.9.1',
64
69
  '@swc/core': '~1.5.7',
65
70
  '@swc/helpers': '~0.5.11',
@@ -1 +1 @@
1
- {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../src/utils/versions.ts"],"names":[],"mappings":";;AA2BA,gDAEC;AAED,0DAQC;AAED,gEAKC;AAED,8CASC;AAED,oDAcC;AAzED,uCAA0C;AAC1C,+BAA4B;AAC5B,2BAAgC;AAEhC,IAAI,aAAiC,CAAC;AAEtC,SAAS,iBAAiB;IACxB,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,gEAAgE;IAChE,8DAA8D;IAC9D,kDAAkD;IAClD,IAAI,GAAG,GAAG,SAAS,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,GAAG,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAA,eAAU,EAAC,SAAS,CAAC;YAAE,SAAS;QACrC,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAuC,SAAS,CAAC,CAAC;QAC1E,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACnE,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC;YAC5B,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,sDAAsD,SAAS,GAAG,CAAC,CAAC;AACtF,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,iBAAiB,EAAE,CAAC;AAC7B,CAAC;AAED,SAAgB,uBAAuB;IACrC,MAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,EAAE,CAAC;IACzC,OAAO;QACL,eAAe,EAAE,KAAK;QACtB,eAAe,EAAE,KAAK;QACtB,kBAAkB,EAAE,QAAQ;QAC5B,GAAG,EAAE,QAAQ;KACd,CAAC;AACJ,CAAC;AAED,SAAgB,0BAA0B;IACxC,MAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,EAAE,CAAC;IACzC,OAAO;QACL,mBAAmB,EAAE,KAAK;KAC3B,CAAC;AACJ,CAAC;AAED,SAAgB,iBAAiB;IAC/B,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,YAAY,EAAE,QAAQ;QACtB,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,QAAQ;QACpB,aAAa,EAAE,QAAQ;KACxB,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO;QACL,eAAe,EAAE,QAAQ;QACzB,oBAAoB,EAAE,QAAQ;QAC9B,WAAW,EAAE,QAAQ;QACrB,cAAc,EAAE,SAAS;QACzB,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,SAAS;QACxB,aAAa,EAAE,SAAS;QACxB,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,QAAQ;KACnB,CAAC;AACJ,CAAC","sourcesContent":["import { readJsonFile } from '@nx/devkit';\nimport { join } from 'path';\nimport { existsSync } from 'fs';\n\nlet cachedVersion: string | undefined;\n\nfunction readPluginVersion(): string {\n if (cachedVersion) return cachedVersion;\n\n // Walk up from __dirname to find the @frontmcp/nx package.json.\n // In monorepo (src/utils/ or dist/utils/): ../../package.json\n // When published to npm (utils/): ../package.json\n let dir = __dirname;\n for (let i = 0; i < 4; i++) {\n dir = join(dir, '..');\n const candidate = join(dir, 'package.json');\n if (!existsSync(candidate)) continue;\n const pkg = readJsonFile<{ name?: string; version?: unknown }>(candidate);\n if (pkg.name === '@frontmcp/nx' && typeof pkg.version === 'string') {\n cachedVersion = pkg.version;\n return cachedVersion;\n }\n }\n\n throw new Error(`@frontmcp/nx package.json not found (searched from ${__dirname})`);\n}\n\nexport function getFrontmcpVersion(): string {\n return readPluginVersion();\n}\n\nexport function getFrontmcpDependencies(): Record<string, string> {\n const range = `~${getFrontmcpVersion()}`;\n return {\n '@frontmcp/sdk': range,\n '@frontmcp/cli': range,\n 'reflect-metadata': '^0.2.2',\n zod: '^4.0.0',\n };\n}\n\nexport function getFrontmcpDevDependencies(): Record<string, string> {\n const range = `~${getFrontmcpVersion()}`;\n return {\n '@frontmcp/testing': range,\n };\n}\n\nexport function getNxDependencies(): Record<string, string> {\n return {\n nx: '22.3.3',\n '@nx/devkit': '22.3.3',\n '@nx/js': '22.3.3',\n '@nx/eslint': '22.3.3',\n '@nx/jest': '22.3.3',\n '@nx/esbuild': '22.3.3',\n };\n}\n\nexport function getNxDevDependencies(): Record<string, string> {\n return {\n '@nx/workspace': '22.3.3',\n '@swc-node/register': '~1.9.1',\n '@swc/core': '~1.5.7',\n '@swc/helpers': '~0.5.11',\n '@swc/jest': '~0.2.39',\n '@types/jest': '^30.0.0',\n '@types/node': '^24.0.0',\n jest: '^30.0.2',\n typescript: '~5.9.2',\n tslib: '^2.3.0',\n prettier: '~3.6.2',\n };\n}\n"]}
1
+ {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../src/utils/versions.ts"],"names":[],"mappings":";;AA2BA,gDAEC;AAED,0DAQC;AAED,gEAKC;AAID,oCAEC;AAED,8CASC;AAED,oDAcC;AA/ED,uCAA0C;AAC1C,+BAA4B;AAC5B,2BAAgC;AAEhC,IAAI,aAAiC,CAAC;AAEtC,SAAS,iBAAiB;IACxB,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,gEAAgE;IAChE,8DAA8D;IAC9D,kDAAkD;IAClD,IAAI,GAAG,GAAG,SAAS,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,GAAG,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAA,eAAU,EAAC,SAAS,CAAC;YAAE,SAAS;QACrC,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAuC,SAAS,CAAC,CAAC;QAC1E,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACnE,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC;YAC5B,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,sDAAsD,SAAS,GAAG,CAAC,CAAC;AACtF,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,iBAAiB,EAAE,CAAC;AAC7B,CAAC;AAED,SAAgB,uBAAuB;IACrC,MAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,EAAE,CAAC;IACzC,OAAO;QACL,eAAe,EAAE,KAAK;QACtB,QAAQ,EAAE,KAAK;QACf,kBAAkB,EAAE,QAAQ;QAC5B,GAAG,EAAE,QAAQ;KACd,CAAC;AACJ,CAAC;AAED,SAAgB,0BAA0B;IACxC,MAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,EAAE,CAAC;IACzC,OAAO;QACL,mBAAmB,EAAE,KAAK;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,QAAQ,CAAC;AAE5B,SAAgB,YAAY;IAC1B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,iBAAiB;IAC/B,OAAO;QACL,EAAE,EAAE,UAAU;QACd,YAAY,EAAE,UAAU;QACxB,QAAQ,EAAE,UAAU;QACpB,YAAY,EAAE,UAAU;QACxB,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO;QACL,eAAe,EAAE,UAAU;QAC3B,oBAAoB,EAAE,QAAQ;QAC9B,WAAW,EAAE,QAAQ;QACrB,cAAc,EAAE,SAAS;QACzB,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,SAAS;QACxB,aAAa,EAAE,SAAS;QACxB,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,QAAQ;KACnB,CAAC;AACJ,CAAC","sourcesContent":["import { readJsonFile } from '@nx/devkit';\nimport { join } from 'path';\nimport { existsSync } from 'fs';\n\nlet cachedVersion: string | undefined;\n\nfunction readPluginVersion(): string {\n if (cachedVersion) return cachedVersion;\n\n // Walk up from __dirname to find the @frontmcp/nx package.json.\n // In monorepo (src/utils/ or dist/utils/): ../../package.json\n // When published to npm (utils/): ../package.json\n let dir = __dirname;\n for (let i = 0; i < 4; i++) {\n dir = join(dir, '..');\n const candidate = join(dir, 'package.json');\n if (!existsSync(candidate)) continue;\n const pkg = readJsonFile<{ name?: string; version?: unknown }>(candidate);\n if (pkg.name === '@frontmcp/nx' && typeof pkg.version === 'string') {\n cachedVersion = pkg.version;\n return cachedVersion;\n }\n }\n\n throw new Error(`@frontmcp/nx package.json not found (searched from ${__dirname})`);\n}\n\nexport function getFrontmcpVersion(): string {\n return readPluginVersion();\n}\n\nexport function getFrontmcpDependencies(): Record<string, string> {\n const range = `~${getFrontmcpVersion()}`;\n return {\n '@frontmcp/sdk': range,\n frontmcp: range,\n 'reflect-metadata': '^0.2.2',\n zod: '^4.0.0',\n };\n}\n\nexport function getFrontmcpDevDependencies(): Record<string, string> {\n const range = `~${getFrontmcpVersion()}`;\n return {\n '@frontmcp/testing': range,\n };\n}\n\nconst NX_VERSION = '22.6.4';\n\nexport function getNxVersion(): string {\n return NX_VERSION;\n}\n\nexport function getNxDependencies(): Record<string, string> {\n return {\n nx: NX_VERSION,\n '@nx/devkit': NX_VERSION,\n '@nx/js': NX_VERSION,\n '@nx/eslint': NX_VERSION,\n '@nx/jest': NX_VERSION,\n '@nx/esbuild': NX_VERSION,\n };\n}\n\nexport function getNxDevDependencies(): Record<string, string> {\n return {\n '@nx/workspace': NX_VERSION,\n '@swc-node/register': '~1.9.1',\n '@swc/core': '~1.5.7',\n '@swc/helpers': '~0.5.11',\n '@swc/jest': '~0.2.39',\n '@types/jest': '^30.0.0',\n '@types/node': '^24.0.0',\n jest: '^30.0.2',\n typescript: '~5.9.2',\n tslib: '^2.3.0',\n prettier: '~3.6.2',\n };\n}\n"]}