@tsed/cli 7.0.0-beta.1 → 7.0.0-beta.10

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 (124) hide show
  1. package/lib/esm/bin/ts-mode.js +10 -0
  2. package/lib/esm/bin/tsed.js +4 -2
  3. package/lib/esm/commands/add/AddCmd.js +2 -1
  4. package/lib/esm/commands/generate/GenerateCmd.js +2 -1
  5. package/lib/esm/commands/index.js +3 -1
  6. package/lib/esm/commands/init/InitCmd.js +20 -113
  7. package/lib/esm/commands/init/InitOptionsCmd.js +17 -0
  8. package/lib/esm/commands/init/config/FeaturesPrompt.js +35 -36
  9. package/lib/esm/commands/init/config/InitSchema.js +337 -0
  10. package/lib/esm/commands/init/prompts/getFeaturesPrompt.js +1 -1
  11. package/lib/esm/commands/mcp/McpCommand.js +15 -0
  12. package/lib/esm/commands/mcp/resources/index.js +4 -0
  13. package/lib/esm/commands/mcp/resources/initOptionsResource.js +93 -0
  14. package/lib/esm/commands/mcp/resources/projectInfoResource.js +43 -0
  15. package/lib/esm/commands/mcp/resources/serverInfoResource.js +40 -0
  16. package/lib/esm/commands/mcp/schema/InitMCPSchema.js +9 -0
  17. package/lib/esm/commands/mcp/schema/ProjectPreferencesSchema.js +16 -0
  18. package/lib/esm/commands/mcp/tools/generateTool.js +105 -0
  19. package/lib/esm/commands/mcp/tools/getTemplateTool.js +47 -0
  20. package/lib/esm/commands/mcp/tools/index.js +6 -0
  21. package/lib/esm/commands/mcp/tools/initProjectTool.js +64 -0
  22. package/lib/esm/commands/mcp/tools/listTemplatesTool.js +37 -0
  23. package/lib/esm/commands/mcp/tools/setWorkspaceTool.js +64 -0
  24. package/lib/esm/commands/run/RunCmd.js +4 -1
  25. package/lib/esm/commands/template/CreateTemplateCommand.js +2 -1
  26. package/lib/esm/commands/update/UpdateCmd.js +3 -4
  27. package/lib/esm/index.js +3 -0
  28. package/lib/esm/processors/transformConfigFile.js +1 -1
  29. package/lib/esm/processors/transformServerFile.js +5 -7
  30. package/lib/esm/services/CliProjectService.js +7 -3
  31. package/lib/esm/services/CliStats.js +45 -0
  32. package/lib/esm/services/CliTemplatesService.js +13 -4
  33. package/lib/esm/templates/agents.template.js +17 -0
  34. package/lib/esm/templates/asyncFactory.template.js +4 -3
  35. package/lib/esm/templates/barrels.template.js +1 -8
  36. package/lib/esm/templates/command.template.js +1 -0
  37. package/lib/esm/templates/controller.template.js +7 -0
  38. package/lib/esm/templates/decorator.template.js +22 -11
  39. package/lib/esm/templates/dockerfile.template.js +5 -0
  40. package/lib/esm/templates/exception-filter.template.js +1 -0
  41. package/lib/esm/templates/factory.template.js +4 -3
  42. package/lib/esm/templates/index.command.template.js +1 -1
  43. package/lib/esm/templates/index.controller.template.js +12 -8
  44. package/lib/esm/templates/index.js +1 -0
  45. package/lib/esm/templates/index.logger.template.js +0 -1
  46. package/lib/esm/templates/interceptor.template.js +1 -0
  47. package/lib/esm/templates/interface.template.js +1 -0
  48. package/lib/esm/templates/middleware.template.js +14 -4
  49. package/lib/esm/templates/model.template.js +1 -0
  50. package/lib/esm/templates/module.template.js +1 -0
  51. package/lib/esm/templates/pipe.template.js +1 -0
  52. package/lib/esm/templates/prisma.service.template.js +1 -0
  53. package/lib/esm/templates/repository.template.js +1 -0
  54. package/lib/esm/templates/response-filter.template.js +1 -0
  55. package/lib/esm/templates/service.template.js +1 -0
  56. package/lib/esm/templates/value.template.js +1 -0
  57. package/lib/esm/utils/resolveSchema.js +17 -0
  58. package/lib/esm/utils/summarizeSchema.js +24 -0
  59. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  60. package/lib/types/bin/ts-mode.d.ts +1 -0
  61. package/lib/types/bin/tsed.d.ts +1 -1
  62. package/lib/types/commands/generate/GenerateCmd.d.ts +38 -1
  63. package/lib/types/commands/index.d.ts +103 -1
  64. package/lib/types/commands/init/InitCmd.d.ts +2 -5
  65. package/lib/types/commands/init/InitOptionsCmd.d.ts +52 -0
  66. package/lib/types/commands/init/config/FeaturesPrompt.d.ts +26 -32
  67. package/lib/types/commands/init/config/InitSchema.d.ts +18 -0
  68. package/lib/types/commands/mcp/McpCommand.d.ts +52 -0
  69. package/lib/types/commands/mcp/resources/index.d.ts +2 -0
  70. package/lib/types/commands/mcp/resources/initOptionsResource.d.ts +1 -0
  71. package/lib/types/commands/mcp/resources/projectInfoResource.d.ts +1 -0
  72. package/lib/types/commands/mcp/resources/serverInfoResource.d.ts +1 -0
  73. package/lib/types/commands/mcp/schema/InitMCPSchema.d.ts +5 -0
  74. package/lib/types/commands/mcp/schema/ProjectPreferencesSchema.d.ts +9 -0
  75. package/lib/types/commands/mcp/tools/generateTool.d.ts +116 -0
  76. package/lib/types/commands/mcp/tools/getTemplateTool.d.ts +114 -0
  77. package/lib/types/commands/mcp/tools/index.d.ts +345 -0
  78. package/lib/types/commands/mcp/tools/initProjectTool.d.ts +116 -0
  79. package/lib/types/commands/mcp/tools/listTemplatesTool.d.ts +114 -0
  80. package/lib/types/commands/mcp/tools/setWorkspaceTool.d.ts +119 -0
  81. package/lib/types/index.d.ts +3 -0
  82. package/lib/types/interfaces/InitCmdOptions.d.ts +1 -1
  83. package/lib/types/pipes/SymbolNamePipe.d.ts +1 -1
  84. package/lib/types/services/CliProjectService.d.ts +1 -1
  85. package/lib/types/services/CliStats.d.ts +36 -0
  86. package/lib/types/services/CliTemplatesService.d.ts +6 -5
  87. package/lib/types/templates/agents.template.d.ts +17 -0
  88. package/lib/types/templates/asyncFactory.template.d.ts +1 -0
  89. package/lib/types/templates/barrels.template.d.ts +1 -0
  90. package/lib/types/templates/command.template.d.ts +1 -0
  91. package/lib/types/templates/config.template.d.ts +1 -0
  92. package/lib/types/templates/controller.template.d.ts +1 -0
  93. package/lib/types/templates/decorator.template.d.ts +1 -0
  94. package/lib/types/templates/docker-compose.template.d.ts +1 -0
  95. package/lib/types/templates/exception-filter.template.d.ts +1 -0
  96. package/lib/types/templates/factory.template.d.ts +1 -0
  97. package/lib/types/templates/index.command.template.d.ts +1 -0
  98. package/lib/types/templates/index.config.utils.template.d.ts +1 -0
  99. package/lib/types/templates/index.controller.template.d.ts +1 -0
  100. package/lib/types/templates/index.d.ts +1 -0
  101. package/lib/types/templates/index.logger.template.d.ts +3 -2
  102. package/lib/types/templates/index.template.d.ts +1 -0
  103. package/lib/types/templates/interceptor.template.d.ts +1 -0
  104. package/lib/types/templates/interface.template.d.ts +1 -0
  105. package/lib/types/templates/middleware.template.d.ts +1 -0
  106. package/lib/types/templates/model.template.d.ts +1 -0
  107. package/lib/types/templates/module.template.d.ts +1 -0
  108. package/lib/types/templates/pipe.template.d.ts +1 -0
  109. package/lib/types/templates/prisma.service.template.d.ts +1 -0
  110. package/lib/types/templates/readme.template.d.ts +1 -0
  111. package/lib/types/templates/repository.template.d.ts +1 -0
  112. package/lib/types/templates/response-filter.template.d.ts +1 -0
  113. package/lib/types/templates/server.template.d.ts +1 -0
  114. package/lib/types/templates/service.template.d.ts +1 -0
  115. package/lib/types/templates/tsconfig.spec.template.d.ts +1 -0
  116. package/lib/types/templates/value.template.d.ts +1 -0
  117. package/lib/types/utils/defineTemplate.d.ts +11 -0
  118. package/lib/types/utils/resolveSchema.d.ts +2 -0
  119. package/lib/types/utils/summarizeSchema.d.ts +8 -0
  120. package/package.json +18 -13
  121. package/templates/views/home.ejs +347 -0
  122. package/lib/esm/commands/init/config/InitFileSchema.js +0 -49
  123. package/lib/types/commands/init/config/InitFileSchema.d.ts +0 -49
  124. package/templates/views/swagger.ejs +0 -100
@@ -1,5 +1,6 @@
1
1
  import "@tsed/logger-std";
2
2
  import "./templates/index.js";
3
+ import "./services/CliStats.js";
3
4
  export * from "./commands/add/AddCmd.js";
4
5
  export * from "./commands/generate/GenerateCmd.js";
5
6
  export { default as commands } from "./commands/index.js";
@@ -7,6 +8,8 @@ export * from "./commands/init/config/FeaturesPrompt.js";
7
8
  export * from "./commands/init/config/FeaturesPrompt.js";
8
9
  export * from "./commands/init/InitCmd.js";
9
10
  export * from "./commands/init/prompts/getFeaturesPrompt.js";
11
+ export { default as resources } from "./commands/mcp/resources/index.js";
12
+ export { default as tools } from "./commands/mcp/tools/index.js";
10
13
  export * from "./commands/update/UpdateCmd.js";
11
14
  export * from "./constants/index.js";
12
15
  export * from "./fn/exec.js";
@@ -2,7 +2,7 @@ import type { RenderDataContext } from "./RenderDataContext.js";
2
2
  export interface InitOptions extends RenderDataContext {
3
3
  root: string;
4
4
  srcDir: string;
5
- skipPrompt: boolean;
5
+ skipPrompt?: boolean;
6
6
  GH_TOKEN?: string;
7
7
  }
8
8
  export type InitCmdContext = InitOptions;
@@ -8,5 +8,5 @@ export declare class SymbolNamePipe {
8
8
  name: string;
9
9
  type: string;
10
10
  format?: ProjectConvention;
11
- }): any;
11
+ }): string;
12
12
  }
@@ -4,7 +4,7 @@ import { CliTemplatesService, type TemplateRenderOptions, type TemplateRenderRet
4
4
  export declare class CliProjectService {
5
5
  readonly templates: CliTemplatesService;
6
6
  private project;
7
- private rootDir;
7
+ get rootDir(): string;
8
8
  get srcDir(): string;
9
9
  getRelativePath(path: string): string;
10
10
  getServerFileName(): "server" | "Server";
@@ -0,0 +1,36 @@
1
+ import { CliHttpClient, ProjectPackageJson } from "@tsed/cli-core";
2
+ declare global {
3
+ namespace TsED {
4
+ interface Configuration {
5
+ stats?: {
6
+ disabled?: boolean;
7
+ url?: string;
8
+ };
9
+ }
10
+ }
11
+ }
12
+ type InitStatPayload = {
13
+ tsed_version: string;
14
+ platform: string;
15
+ convention: string;
16
+ package_manager: string;
17
+ runtime: string;
18
+ features: string[];
19
+ channel: string;
20
+ cli_version: string;
21
+ os: string;
22
+ is_success: boolean;
23
+ };
24
+ export declare class CliStats extends CliHttpClient {
25
+ protected disabled: boolean;
26
+ protected host: string;
27
+ protected projectPackage: ProjectPackageJson;
28
+ sendInit(opts: Partial<InitStatPayload>): Promise<unknown> | undefined;
29
+ $onFinish(data: {
30
+ commandName?: string;
31
+ features?: string[];
32
+ }, er?: Error): Promise<unknown> | undefined;
33
+ protected onSuccess(options: Record<string, unknown>): void;
34
+ protected onError(error: any, options: any): void;
35
+ }
36
+ export {};
@@ -1,6 +1,7 @@
1
1
  import { CliFs } from "@tsed/cli-core";
2
2
  import type { SourceFile } from "ts-morph";
3
3
  import type { RenderDataContext } from "../interfaces/index.js";
4
+ import type { DefineTemplateOptions } from "../utils/defineTemplate.js";
4
5
  export type TemplateRenderOptions = {
5
6
  name?: string;
6
7
  symbolName?: string;
@@ -20,16 +21,16 @@ export type TemplateRenderReturnType = {
20
21
  };
21
22
  export declare class CliTemplatesService {
22
23
  #private;
23
- readonly rootDir: string;
24
24
  readonly fs: CliFs;
25
- readonly renderedFiles: TemplateRenderReturnType[];
25
+ get rootDir(): string;
26
26
  get srcDir(): string;
27
27
  get templatesDir(): string;
28
28
  $onInit(): Promise<void>;
29
29
  loadTemplates(): Promise<void>;
30
- getAll(): any[];
31
- find(id?: string): any[];
32
- get(id: string): any;
30
+ getAll(): DefineTemplateOptions[];
31
+ find(id?: string): DefineTemplateOptions[];
32
+ get(id: string): DefineTemplateOptions | undefined;
33
33
  render(templateId: string, data: TemplateRenderOptions): Promise<TemplateRenderReturnType | undefined>;
34
+ getRenderedFiles(): TemplateRenderReturnType[];
34
35
  protected pushRenderResult(renderedFile: TemplateRenderReturnType): TemplateRenderReturnType;
35
36
  }
@@ -0,0 +1,17 @@
1
+ declare const _default: import("@tsed/cli-core").FactoryTokenProvider<{
2
+ id: string;
3
+ label: string;
4
+ description?: string;
5
+ outputDir: string;
6
+ type?: string;
7
+ fileName?: string;
8
+ ext: string | null;
9
+ hidden?: boolean;
10
+ preserveCase?: boolean;
11
+ preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
13
+ render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
14
+ prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
15
+ hooks?: import("@tsed/cli-core").ProviderOpts["hooks"];
16
+ }>;
17
+ export default _default;
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -10,6 +10,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
10
10
  hidden?: boolean;
11
11
  preserveCase?: boolean;
12
12
  preserveDirectory?: boolean;
13
+ schema?: import("@tsed/schema").JsonSchema;
13
14
  render(symbolName: string, data: GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
14
15
  prompts?(data: GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<GenerateCmdContext>[]>;
15
16
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -10,6 +10,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
10
10
  hidden?: boolean;
11
11
  preserveCase?: boolean;
12
12
  preserveDirectory?: boolean;
13
+ schema?: import("@tsed/schema").JsonSchema;
13
14
  render(symbolName: string, data: GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
14
15
  prompts?(data: GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<GenerateCmdContext>[]>;
15
16
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -1,4 +1,5 @@
1
1
  import "./asyncFactory.template.js";
2
+ import "./agents.template.js";
2
3
  import "./command.template.js";
3
4
  import "./controller.template.js";
4
5
  import "./decorator.template.js";
@@ -9,8 +9,9 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
- render(symbolName: string, data: import("../interfaces/GenerateCmdContext.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
- prompts?(data: import("../interfaces/GenerateCmdContext.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../interfaces/GenerateCmdContext.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../interfaces/GenerateCmdContext.js").GenerateCmdContext>[]>;
12
+ schema?: import("@tsed/schema").JsonSchema;
13
+ render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
14
+ prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
15
16
  }>;
16
17
  export default _default;
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -10,6 +10,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
10
10
  hidden?: boolean;
11
11
  preserveCase?: boolean;
12
12
  preserveDirectory?: boolean;
13
+ schema?: import("@tsed/schema").JsonSchema;
13
14
  render(symbolName: string, data: GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
14
15
  prompts?(data: GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<GenerateCmdContext>[]>;
15
16
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/cli-core").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("@tsed/cli").GenerateCmdContext): Promise<string | undefined | import("@tsed/cli").TemplateRenderReturnType> | string | undefined | import("@tsed/cli").TemplateRenderReturnType;
13
14
  prompts?(data: import("@tsed/cli").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("@tsed/cli").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("@tsed/cli").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/cli-core").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -9,6 +9,7 @@ declare const _default: import("@tsed/di").FactoryTokenProvider<{
9
9
  hidden?: boolean;
10
10
  preserveCase?: boolean;
11
11
  preserveDirectory?: boolean;
12
+ schema?: import("@tsed/schema").JsonSchema;
12
13
  render(symbolName: string, data: import("../index.js").GenerateCmdContext): Promise<string | undefined | import("../index.js").TemplateRenderReturnType> | string | undefined | import("../index.js").TemplateRenderReturnType;
13
14
  prompts?(data: import("../index.js").GenerateCmdContext): import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[] | Promise<import("@tsed/cli-core").QuestionOptions<import("../index.js").GenerateCmdContext>[]>;
14
15
  hooks?: import("@tsed/di").ProviderOpts["hooks"];
@@ -1,4 +1,5 @@
1
1
  import { type ProviderOpts, type QuestionOptions } from "@tsed/cli-core";
2
+ import type { JsonSchema } from "@tsed/schema";
2
3
  import type { GenerateCmdContext } from "../interfaces/index.js";
3
4
  import type { TemplateRenderReturnType } from "../services/CliTemplatesService.js";
4
5
  export type DefineTemplateOptions = {
@@ -31,6 +32,11 @@ export type DefineTemplateOptions = {
31
32
  * If `true` the directory structure will be preserved when generating the file.
32
33
  */
33
34
  preserveDirectory?: boolean;
35
+ /**
36
+ * Optional Ts.ED Schema describing template-specific arguments (exclude global fields like `type` and `name`).
37
+ * Can be provided as a JsonSchema builder result (from @tsed/schema DSL) or any object exposing `toJSON()` to JSON Schema.
38
+ */
39
+ schema?: JsonSchema;
34
40
  render(symbolName: string, data: GenerateCmdContext): Promise<string | undefined | TemplateRenderReturnType> | string | undefined | TemplateRenderReturnType;
35
41
  prompts?(data: GenerateCmdContext): QuestionOptions<GenerateCmdContext>[] | Promise<QuestionOptions<GenerateCmdContext>[]>;
36
42
  hooks?: ProviderOpts["hooks"];
@@ -61,6 +67,11 @@ export declare function defineTemplate(opts: DefineTemplateOptions): import("@ts
61
67
  * If `true` the directory structure will be preserved when generating the file.
62
68
  */
63
69
  preserveDirectory?: boolean;
70
+ /**
71
+ * Optional Ts.ED Schema describing template-specific arguments (exclude global fields like `type` and `name`).
72
+ * Can be provided as a JsonSchema builder result (from @tsed/schema DSL) or any object exposing `toJSON()` to JSON Schema.
73
+ */
74
+ schema?: JsonSchema;
64
75
  render(symbolName: string, data: GenerateCmdContext): Promise<string | undefined | TemplateRenderReturnType> | string | undefined | TemplateRenderReturnType;
65
76
  prompts?(data: GenerateCmdContext): QuestionOptions<GenerateCmdContext>[] | Promise<QuestionOptions<GenerateCmdContext>[]>;
66
77
  hooks?: ProviderOpts["hooks"];
@@ -0,0 +1,2 @@
1
+ import { JsonSchema } from "@tsed/schema";
2
+ export declare function resolveSchema(schema?: JsonSchema): Promise<any>;
@@ -0,0 +1,8 @@
1
+ import type { DefineTemplateOptions } from "./defineTemplate.js";
2
+ export declare const summarizeSchema: (tpl: DefineTemplateOptions) => {
3
+ required?: undefined;
4
+ properties?: undefined;
5
+ } | {
6
+ required: any;
7
+ properties: Record<string, any> | undefined;
8
+ } | undefined;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tsed/cli",
3
3
  "description": "CLI to bootstrap your Ts.ED project",
4
- "version": "7.0.0-beta.1",
4
+ "version": "7.0.0-beta.10",
5
5
  "type": "module",
6
6
  "main": "./lib/esm/index.js",
7
7
  "source": "./src/index.ts",
@@ -26,6 +26,7 @@
26
26
  },
27
27
  "files": [
28
28
  "lib/esm/bin/tsed.js",
29
+ "lib/esm/bin/tsed-mcp.js",
29
30
  "lib/esm/bin",
30
31
  "lib",
31
32
  "templates"
@@ -44,33 +45,37 @@
44
45
  "node": ">=14"
45
46
  },
46
47
  "dependencies": {
48
+ "@modelcontextprotocol/sdk": "^1.25.1",
47
49
  "@npmcli/run-script": "9.0.0",
48
- "@swc-node/register": "^1.10.9",
49
- "@swc/core": "1.7.26",
50
- "@swc/helpers": "^0.5.13",
51
- "@tsed/cli-core": "7.0.0-beta.1",
52
- "@tsed/core": ">=8.17.3",
53
- "@tsed/di": ">=8.17.3",
54
- "@tsed/hooks": ">=8.17.3",
50
+ "@swc-node/register": "^1.11.1",
51
+ "@swc/core": "^1.15.7",
52
+ "@swc/helpers": "^0.5.17",
53
+ "@tsed/cli-core": "7.0.0-beta.10",
54
+ "@tsed/cli-mcp": "7.0.0-beta.10",
55
+ "@tsed/core": ">=8.21.0",
56
+ "@tsed/di": ">=8.21.0",
57
+ "@tsed/hooks": ">=8.21.0",
55
58
  "@tsed/logger": ">=8.0.3",
56
59
  "@tsed/logger-std": ">=8.0.3",
57
- "@tsed/normalize-path": ">=8.17.3",
58
- "@tsed/openspec": ">=8.17.3",
59
- "@tsed/schema": ">=8.17.3",
60
+ "@tsed/normalize-path": ">=8.21.0",
61
+ "@tsed/openspec": ">=8.21.0",
62
+ "@tsed/schema": ">=8.21.0",
60
63
  "chalk": "^5.3.0",
61
64
  "change-case": "^5.4.4",
62
65
  "consolidate": "^1.0.4",
63
66
  "create-frame": "^1.0.0",
64
67
  "fs-extra": "^11.2.0",
65
68
  "globby": "^14.0.2",
69
+ "json-schema-to-zod": "2.6.1",
66
70
  "read-pkg-up": "^11.0.0",
67
71
  "rxjs": "^7.8.1",
68
72
  "semver": "^7.6.3",
69
73
  "ts-morph": "27.0.0",
70
- "tslib": "^2.7.0"
74
+ "tslib": "^2.7.0",
75
+ "zod": "3.25.76"
71
76
  },
72
77
  "devDependencies": {
73
- "@tsed/typescript": "7.0.0-beta.1",
78
+ "@tsed/typescript": "7.0.0-beta.10",
74
79
  "@types/change-case": "^2.3.1",
75
80
  "@types/consolidate": "0.14.4",
76
81
  "cross-env": "7.0.3",