@forinda/kickjs-cli 2.0.0 → 2.1.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 (116) hide show
  1. package/bin.js +8 -0
  2. package/dist/cli.mjs +5351 -0
  3. package/dist/index.d.mts +246 -0
  4. package/dist/index.d.mts.map +1 -0
  5. package/dist/index.mjs +3532 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/package.json +31 -13
  8. package/dist/cli.d.ts +0 -2
  9. package/dist/cli.d.ts.map +0 -1
  10. package/dist/cli.js +0 -1552
  11. package/dist/commands/add.d.ts +0 -5
  12. package/dist/commands/add.d.ts.map +0 -1
  13. package/dist/commands/custom.d.ts +0 -56
  14. package/dist/commands/custom.d.ts.map +0 -1
  15. package/dist/commands/generate.d.ts +0 -3
  16. package/dist/commands/generate.d.ts.map +0 -1
  17. package/dist/commands/info.d.ts +0 -3
  18. package/dist/commands/info.d.ts.map +0 -1
  19. package/dist/commands/init.d.ts +0 -3
  20. package/dist/commands/init.d.ts.map +0 -1
  21. package/dist/commands/inspect.d.ts +0 -3
  22. package/dist/commands/inspect.d.ts.map +0 -1
  23. package/dist/commands/remove.d.ts +0 -3
  24. package/dist/commands/remove.d.ts.map +0 -1
  25. package/dist/commands/run.d.ts +0 -3
  26. package/dist/commands/run.d.ts.map +0 -1
  27. package/dist/commands/tinker.d.ts +0 -3
  28. package/dist/commands/tinker.d.ts.map +0 -1
  29. package/dist/config-D9faxBLQ.js +0 -3108
  30. package/dist/config.d.ts +0 -131
  31. package/dist/config.d.ts.map +0 -1
  32. package/dist/generators/adapter.d.ts +0 -7
  33. package/dist/generators/adapter.d.ts.map +0 -1
  34. package/dist/generators/config.d.ts +0 -9
  35. package/dist/generators/config.d.ts.map +0 -1
  36. package/dist/generators/controller.d.ts +0 -11
  37. package/dist/generators/controller.d.ts.map +0 -1
  38. package/dist/generators/dto.d.ts +0 -11
  39. package/dist/generators/dto.d.ts.map +0 -1
  40. package/dist/generators/guard.d.ts +0 -11
  41. package/dist/generators/guard.d.ts.map +0 -1
  42. package/dist/generators/job.d.ts +0 -8
  43. package/dist/generators/job.d.ts.map +0 -1
  44. package/dist/generators/middleware.d.ts +0 -11
  45. package/dist/generators/middleware.d.ts.map +0 -1
  46. package/dist/generators/module.d.ts +0 -33
  47. package/dist/generators/module.d.ts.map +0 -1
  48. package/dist/generators/patterns/cqrs.d.ts +0 -3
  49. package/dist/generators/patterns/cqrs.d.ts.map +0 -1
  50. package/dist/generators/patterns/ddd.d.ts +0 -3
  51. package/dist/generators/patterns/ddd.d.ts.map +0 -1
  52. package/dist/generators/patterns/index.d.ts +0 -6
  53. package/dist/generators/patterns/index.d.ts.map +0 -1
  54. package/dist/generators/patterns/minimal.d.ts +0 -3
  55. package/dist/generators/patterns/minimal.d.ts.map +0 -1
  56. package/dist/generators/patterns/rest.d.ts +0 -3
  57. package/dist/generators/patterns/rest.d.ts.map +0 -1
  58. package/dist/generators/patterns/types.d.ts +0 -15
  59. package/dist/generators/patterns/types.d.ts.map +0 -1
  60. package/dist/generators/project.d.ts +0 -14
  61. package/dist/generators/project.d.ts.map +0 -1
  62. package/dist/generators/remove-module.d.ts +0 -12
  63. package/dist/generators/remove-module.d.ts.map +0 -1
  64. package/dist/generators/resolver.d.ts +0 -7
  65. package/dist/generators/resolver.d.ts.map +0 -1
  66. package/dist/generators/scaffold.d.ts +0 -20
  67. package/dist/generators/scaffold.d.ts.map +0 -1
  68. package/dist/generators/service.d.ts +0 -11
  69. package/dist/generators/service.d.ts.map +0 -1
  70. package/dist/generators/templates/constants.d.ts +0 -3
  71. package/dist/generators/templates/constants.d.ts.map +0 -1
  72. package/dist/generators/templates/controller.d.ts +0 -6
  73. package/dist/generators/templates/controller.d.ts.map +0 -1
  74. package/dist/generators/templates/cqrs.d.ts +0 -23
  75. package/dist/generators/templates/cqrs.d.ts.map +0 -1
  76. package/dist/generators/templates/domain.d.ts +0 -5
  77. package/dist/generators/templates/domain.d.ts.map +0 -1
  78. package/dist/generators/templates/drizzle/index.d.ts +0 -4
  79. package/dist/generators/templates/drizzle/index.d.ts.map +0 -1
  80. package/dist/generators/templates/dtos.d.ts +0 -5
  81. package/dist/generators/templates/dtos.d.ts.map +0 -1
  82. package/dist/generators/templates/index.d.ts +0 -14
  83. package/dist/generators/templates/index.d.ts.map +0 -1
  84. package/dist/generators/templates/module-index.d.ts +0 -13
  85. package/dist/generators/templates/module-index.d.ts.map +0 -1
  86. package/dist/generators/templates/prisma/index.d.ts +0 -3
  87. package/dist/generators/templates/prisma/index.d.ts.map +0 -1
  88. package/dist/generators/templates/project-app.d.ts +0 -9
  89. package/dist/generators/templates/project-app.d.ts.map +0 -1
  90. package/dist/generators/templates/project-config.d.ts +0 -23
  91. package/dist/generators/templates/project-config.d.ts.map +0 -1
  92. package/dist/generators/templates/project-docs.d.ts +0 -9
  93. package/dist/generators/templates/project-docs.d.ts.map +0 -1
  94. package/dist/generators/templates/repository.d.ts +0 -5
  95. package/dist/generators/templates/repository.d.ts.map +0 -1
  96. package/dist/generators/templates/rest-service.d.ts +0 -6
  97. package/dist/generators/templates/rest-service.d.ts.map +0 -1
  98. package/dist/generators/templates/tests.d.ts +0 -4
  99. package/dist/generators/templates/tests.d.ts.map +0 -1
  100. package/dist/generators/templates/types.d.ts +0 -20
  101. package/dist/generators/templates/types.d.ts.map +0 -1
  102. package/dist/generators/templates/use-cases.d.ts +0 -6
  103. package/dist/generators/templates/use-cases.d.ts.map +0 -1
  104. package/dist/generators/test.d.ts +0 -9
  105. package/dist/generators/test.d.ts.map +0 -1
  106. package/dist/index.d.ts +0 -12
  107. package/dist/index.d.ts.map +0 -1
  108. package/dist/index.js +0 -17
  109. package/dist/utils/fs.d.ts +0 -11
  110. package/dist/utils/fs.d.ts.map +0 -1
  111. package/dist/utils/naming.d.ts +0 -18
  112. package/dist/utils/naming.d.ts.map +0 -1
  113. package/dist/utils/resolve-out-dir.d.ts +0 -25
  114. package/dist/utils/resolve-out-dir.d.ts.map +0 -1
  115. package/dist/utils/shell.d.ts +0 -3
  116. package/dist/utils/shell.d.ts.map +0 -1
@@ -0,0 +1,246 @@
1
+
2
+ //#region src/config.d.ts
3
+ /** A custom command that developers can register via kick.config.ts */
4
+ interface KickCommandDefinition {
5
+ /** The command name (e.g. 'db:migrate', 'seed', 'proto:gen') */
6
+ name: string;
7
+ /** Description shown in --help */
8
+ description: string;
9
+ /**
10
+ * Shell command(s) to run. Can be a single string or an array of
11
+ * sequential steps. Use {args} as a placeholder for CLI arguments.
12
+ *
13
+ * @example
14
+ * 'npx drizzle-kit migrate'
15
+ * ['npx drizzle-kit generate', 'npx drizzle-kit migrate']
16
+ */
17
+ steps: string | string[];
18
+ /** Optional aliases (e.g. ['migrate'] for 'db:migrate') */
19
+ aliases?: string[];
20
+ }
21
+ /** Project pattern — controls what generators produce and which deps are installed */
22
+ type ProjectPattern = 'rest' | 'graphql' | 'ddd' | 'cqrs' | 'minimal';
23
+ /** Built-in repository types with first-class code generation support */
24
+ type BuiltinRepoType$1 = 'drizzle' | 'inmemory' | 'prisma';
25
+ /** Custom repository type — generates a stub with TODO markers */
26
+ interface CustomRepoType {
27
+ name: string;
28
+ }
29
+ /** Repository type — built-in string or custom object */
30
+ type RepoTypeConfig = BuiltinRepoType$1 | CustomRepoType;
31
+ /** Module generation settings — controls how `kick g module` produces code */
32
+ interface ModuleConfig {
33
+ /** Where modules live (default: 'src/modules') */
34
+ dir?: string;
35
+ /**
36
+ * Default repository implementation for generators.
37
+ *
38
+ * Built-in types (string): `'drizzle'`, `'inmemory'`, `'prisma'`
39
+ * — generate fully working repository code.
40
+ *
41
+ * Custom types (object): `{ name: 'typeorm' }`
42
+ * — generate a stub repository with TODO markers.
43
+ *
44
+ * @example
45
+ * repo: 'prisma' // built-in
46
+ * repo: { name: 'typeorm' } // custom
47
+ */
48
+ repo?: RepoTypeConfig;
49
+ /** Schema output directory (e.g. 'src/db/schema' for Drizzle, 'prisma/' for Prisma) */
50
+ schemaDir?: string;
51
+ /**
52
+ * Whether to pluralize module names in generated code.
53
+ * When true (default), `kick g module user` creates `src/modules/users/`.
54
+ * When false, it creates `src/modules/user/` and uses singular names throughout.
55
+ */
56
+ pluralize?: boolean;
57
+ /**
58
+ * Import path for the Prisma generated client in `--repo prisma` templates.
59
+ * Must resolve within `src/` for path alias compatibility.
60
+ *
61
+ * @default '@prisma/client' (Prisma 5/6)
62
+ * @example
63
+ * prismaClientPath: '@/generated/prisma/client' // Prisma 7+
64
+ * prismaClientPath: './generated/prisma/client' // relative
65
+ */
66
+ prismaClientPath?: string;
67
+ }
68
+ /** Configuration for the kick.config.ts file */
69
+ interface KickConfig {
70
+ /**
71
+ * Project pattern — controls default generator behavior.
72
+ * - 'rest' — Express + Swagger (default)
73
+ * - 'graphql' — GraphQL + GraphiQL
74
+ * - 'ddd' — Full DDD modules with use cases, entities, value objects
75
+ * - 'cqrs' — CQRS with commands, queries, events, WebSocket + queue
76
+ * - 'minimal' — Bare Express with no scaffolding
77
+ */
78
+ pattern?: ProjectPattern;
79
+ /**
80
+ * Module generation settings — directory, repo type, pluralization, schema dir.
81
+ *
82
+ * @example
83
+ * modules: {
84
+ * dir: 'src/modules',
85
+ * repo: 'prisma',
86
+ * pluralize: false,
87
+ * schemaDir: 'prisma/',
88
+ * }
89
+ */
90
+ modules?: ModuleConfig;
91
+ /** @deprecated Use `modules.dir` instead */
92
+ modulesDir?: string;
93
+ /** @deprecated Use `modules.repo` instead */
94
+ defaultRepo?: RepoTypeConfig;
95
+ /** @deprecated Use `modules.schemaDir` instead */
96
+ schemaDir?: string;
97
+ /** @deprecated Use `modules.pluralize` instead */
98
+ pluralize?: boolean;
99
+ /**
100
+ * Directories to copy to dist/ after build.
101
+ * Useful for EJS templates, email templates, static assets, etc.
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * copyDirs: [
106
+ * 'src/views', // copies to dist/src/views
107
+ * { src: 'src/views', dest: 'dist/views' }, // custom dest
108
+ * 'src/emails',
109
+ * ]
110
+ * ```
111
+ */
112
+ copyDirs?: Array<string | {
113
+ src: string;
114
+ dest?: string;
115
+ }>;
116
+ /** Custom commands that extend the CLI */
117
+ commands?: KickCommandDefinition[];
118
+ /** Code style overrides (auto-detected from prettier when possible) */
119
+ style?: {
120
+ semicolons?: boolean;
121
+ quotes?: 'single' | 'double';
122
+ trailingComma?: 'all' | 'es5' | 'none';
123
+ indent?: number;
124
+ };
125
+ }
126
+ /** Helper to define a type-safe kick.config.ts */
127
+ declare function defineConfig(config: KickConfig): KickConfig;
128
+ /** Load kick.config.* from the project root */
129
+ declare function loadKickConfig(cwd: string): Promise<KickConfig | null>;
130
+ //#endregion
131
+ //#region src/generators/module.d.ts
132
+ type BuiltinRepoType = 'drizzle' | 'inmemory' | 'prisma';
133
+ type RepoType = BuiltinRepoType | (string & {});
134
+ interface GenerateModuleOptions {
135
+ name: string;
136
+ modulesDir: string;
137
+ noEntity?: boolean;
138
+ noTests?: boolean;
139
+ repo?: RepoType;
140
+ minimal?: boolean;
141
+ force?: boolean;
142
+ pattern?: ProjectPattern;
143
+ dryRun?: boolean;
144
+ /** When false, skip pluralization — use singular names for folders, routes, and classes */
145
+ pluralize?: boolean;
146
+ /** Prisma client import path (default: '@prisma/client', Prisma 7+: '@/generated/prisma/client') */
147
+ prismaClientPath?: string;
148
+ }
149
+ /**
150
+ * Generate a module — structure depends on the project pattern.
151
+ *
152
+ * Patterns:
153
+ * rest — flat folder: controller + service + DTOs + repo
154
+ * ddd — nested DDD: presentation/ application/ domain/ infrastructure/
155
+ * graphql — flat folder: resolver + service + DTOs + repo (future)
156
+ * cqrs — commands, queries, events with WS/queue integration
157
+ * minimal — just controller + module index
158
+ */
159
+ declare function generateModule(options: GenerateModuleOptions): Promise<string[]>;
160
+ //#endregion
161
+ //#region src/generators/adapter.d.ts
162
+ interface GenerateAdapterOptions {
163
+ name: string;
164
+ outDir: string;
165
+ }
166
+ declare function generateAdapter(options: GenerateAdapterOptions): Promise<string[]>;
167
+ //#endregion
168
+ //#region src/generators/middleware.d.ts
169
+ interface GenerateMiddlewareOptions {
170
+ name: string;
171
+ outDir?: string;
172
+ moduleName?: string;
173
+ modulesDir?: string;
174
+ pattern?: ProjectPattern;
175
+ }
176
+ declare function generateMiddleware(options: GenerateMiddlewareOptions): Promise<string[]>;
177
+ //#endregion
178
+ //#region src/generators/guard.d.ts
179
+ interface GenerateGuardOptions {
180
+ name: string;
181
+ outDir?: string;
182
+ moduleName?: string;
183
+ modulesDir?: string;
184
+ pattern?: ProjectPattern;
185
+ }
186
+ declare function generateGuard(options: GenerateGuardOptions): Promise<string[]>;
187
+ //#endregion
188
+ //#region src/generators/service.d.ts
189
+ interface GenerateServiceOptions {
190
+ name: string;
191
+ outDir?: string;
192
+ moduleName?: string;
193
+ modulesDir?: string;
194
+ pattern?: ProjectPattern;
195
+ }
196
+ declare function generateService(options: GenerateServiceOptions): Promise<string[]>;
197
+ //#endregion
198
+ //#region src/generators/controller.d.ts
199
+ interface GenerateControllerOptions {
200
+ name: string;
201
+ outDir?: string;
202
+ moduleName?: string;
203
+ modulesDir?: string;
204
+ pattern?: ProjectPattern;
205
+ }
206
+ declare function generateController(options: GenerateControllerOptions): Promise<string[]>;
207
+ //#endregion
208
+ //#region src/generators/dto.d.ts
209
+ interface GenerateDtoOptions {
210
+ name: string;
211
+ outDir?: string;
212
+ moduleName?: string;
213
+ modulesDir?: string;
214
+ pattern?: ProjectPattern;
215
+ }
216
+ declare function generateDto(options: GenerateDtoOptions): Promise<string[]>;
217
+ //#endregion
218
+ //#region src/generators/project.d.ts
219
+ type ProjectTemplate = 'rest' | 'graphql' | 'ddd' | 'cqrs' | 'minimal';
220
+ interface InitProjectOptions {
221
+ name: string;
222
+ directory: string;
223
+ packageManager?: 'pnpm' | 'npm' | 'yarn';
224
+ initGit?: boolean;
225
+ installDeps?: boolean;
226
+ template?: ProjectTemplate;
227
+ defaultRepo?: string;
228
+ }
229
+ /** Scaffold a new KickJS project */
230
+ declare function initProject(options: InitProjectOptions): Promise<void>;
231
+ //#endregion
232
+ //#region src/utils/naming.d.ts
233
+ /** Convert a name to PascalCase */
234
+ declare function toPascalCase(name: string): string;
235
+ /** Convert a name to camelCase */
236
+ declare function toCamelCase(name: string): string;
237
+ /** Convert a name to kebab-case */
238
+ declare function toKebabCase(name: string): string;
239
+ /**
240
+ * Pluralize a kebab-case name for directory/file names.
241
+ * If already plural (ends in 's'), returns as-is.
242
+ */
243
+ declare function pluralize(name: string): string;
244
+ //#endregion
245
+ export { type KickCommandDefinition, type KickConfig, defineConfig, generateAdapter, generateController, generateDto, generateGuard, generateMiddleware, generateModule, generateService, initProject, loadKickConfig, pluralize, toCamelCase, toKebabCase, toPascalCase };
246
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/config.ts","../src/generators/module.ts","../src/generators/adapter.ts","../src/generators/middleware.ts","../src/generators/guard.ts","../src/generators/service.ts","../src/generators/controller.ts","../src/generators/dto.ts","../src/generators/project.ts","../src/utils/naming.ts"],"mappings":";;;UAIiB,qBAAA;EAAqB;EAEpC,IAAA;EAFoC;EAIpC,WAAA;EAAA;;;;;AAeF;;;EANE,KAAA;EAMwB;EAJxB,OAAA;AAAA;;KAIU,cAAA;;KAGA,iBAAA;;UAKK,cAAA;EACf,IAAA;AAAA;;KAIU,cAAA,GAAiB,iBAAA,GAAkB,cAAA;;UAG9B,YAAA;EAAA;EAEf,GAAA;;;;;;;;;;;AAoCF;;;EAtBE,IAAA,GAAO,cAAA;EA2CG;EAzCV,SAAA;EAiEW;;;;;EA3DX,SAAA;EAmCA;;;;;;;;;EAzBA,gBAAA;AAAA;;UAIe,UAAA;EAiDf;;;;;;;AASF;EAjDE,OAAA,GAAU,cAAA;;;;;;;;AA8EZ;;;;EAlEE,OAAA,GAAU,YAAA;EAkEuC;EA9DjD,UAAA;EA8DmE;EA5DnE,WAAA,GAAc,cAAA;;EAEd,SAAA;;EAEA,SAAA;EC9FyB;;;;AAC3B;;;;;AAOC;;;;EDoGC,QAAA,GAAW,KAAA;IAAiB,GAAA;IAAa,IAAA;EAAA;EC7FzC;ED+FA,QAAA,GAAW,qBAAA;EC9FX;EDgGA,KAAA;IACE,UAAA;IACA,MAAA;IACA,aAAA;IACA,MAAA;EAAA;AAAA;;iBAKY,YAAA,CAAa,MAAA,EAAQ,UAAA,GAAa,UAAA;;iBA6B5B,cAAA,CAAe,GAAA,WAAc,OAAA,CAAQ,UAAA;;;KCtJ/C,eAAA;AAAA,KACA,QAAA,GAAW,eAAA;AAAA,UASb,qBAAA;EACR,IAAA;EACA,UAAA;EACA,QAAA;EACA,OAAA;EACA,IAAA,GAAO,QAAA;EACP,OAAA;EACA,KAAA;EACA,OAAA,GAAU,cAAA;EACV,MAAA;EDVwB;ECYxB,SAAA;EDTyB;ECWzB,gBAAA;AAAA;;ADNF;;;;;AAKA;;;;iBCyBsB,cAAA,CAAe,OAAA,EAAS,qBAAA,GAAwB,OAAA;;;UCzD5D,sBAAA;EACR,IAAA;EACA,MAAA;AAAA;AAAA,iBAGoB,eAAA,CAAgB,OAAA,EAAS,sBAAA,GAAyB,OAAA;;;UCH9D,yBAAA;EACR,IAAA;EACA,MAAA;EACA,UAAA;EACA,UAAA;EACA,OAAA,GAAU,cAAA;AAAA;AAAA,iBAGU,kBAAA,CAAmB,OAAA,EAAS,yBAAA,GAA4B,OAAA;;;UCRpE,oBAAA;EACR,IAAA;EACA,MAAA;EACA,UAAA;EACA,UAAA;EACA,OAAA,GAAU,cAAA;AAAA;AAAA,iBAGU,aAAA,CAAc,OAAA,EAAS,oBAAA,GAAuB,OAAA;;;UCR1D,sBAAA;EACR,IAAA;EACA,MAAA;EACA,UAAA;EACA,UAAA;EACA,OAAA,GAAU,cAAA;AAAA;AAAA,iBAGU,eAAA,CAAgB,OAAA,EAAS,sBAAA,GAAyB,OAAA;;;UCR9D,yBAAA;EACR,IAAA;EACA,MAAA;EACA,UAAA;EACA,UAAA;EACA,OAAA,GAAU,cAAA;AAAA;AAAA,iBAGU,kBAAA,CAAmB,OAAA,EAAS,yBAAA,GAA4B,OAAA;;;UCRpE,kBAAA;EACR,IAAA;EACA,MAAA;EACA,UAAA;EACA,UAAA;EACA,OAAA,GAAU,cAAA;AAAA;AAAA,iBAGU,WAAA,CAAY,OAAA,EAAS,kBAAA,GAAqB,OAAA;;;KCiB3D,eAAA;AAAA,UAEK,kBAAA;EACR,IAAA;EACA,SAAA;EACA,cAAA;EACA,OAAA;EACA,WAAA;EACA,QAAA,GAAW,eAAA;EACX,WAAA;AAAA;;iBAIoB,WAAA,CAAY,OAAA,EAAS,kBAAA,GAAqB,OAAA;;;;iBC3ChD,YAAA,CAAa,IAAA;;iBAOb,WAAA,CAAY,IAAA;;iBAMZ,WAAA,CAAY,IAAA;;;;;iBAWZ,SAAA,CAAU,IAAA"}