@geekmidas/cli 0.6.2 → 0.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 (271) hide show
  1. package/dist/config.d.cts +1 -1
  2. package/dist/config.d.mts +1 -1
  3. package/dist/index.cjs +2561 -34
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.mjs +2556 -29
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/openapi-Mwy2_R4W.mjs +957 -0
  8. package/dist/openapi-Mwy2_R4W.mjs.map +1 -0
  9. package/dist/{openapi-react-query-_-B3s8v_.mjs → openapi-react-query-CcciaVu5.mjs} +1 -1
  10. package/dist/{openapi-react-query-_-B3s8v_.mjs.map → openapi-react-query-CcciaVu5.mjs.map} +1 -1
  11. package/dist/{openapi-react-query-Cp-w8_05.cjs → openapi-react-query-o5iMi8tz.cjs} +1 -1
  12. package/dist/{openapi-react-query-Cp-w8_05.cjs.map → openapi-react-query-o5iMi8tz.cjs.map} +1 -1
  13. package/dist/openapi-react-query.cjs +1 -1
  14. package/dist/openapi-react-query.mjs +1 -1
  15. package/dist/openapi-tAIbJJU_.cjs +993 -0
  16. package/dist/openapi-tAIbJJU_.cjs.map +1 -0
  17. package/dist/openapi.cjs +1 -4
  18. package/dist/openapi.d.cts +1 -1
  19. package/dist/openapi.d.mts +1 -1
  20. package/dist/openapi.mjs +1 -4
  21. package/dist/{types-Bi7VzDUZ.d.mts → types-B3TXoj7v.d.mts} +21 -53
  22. package/dist/{types-KmjzMgu8.d.cts → types-C0hwnSjm.d.cts} +21 -53
  23. package/package.json +5 -5
  24. package/src/build/types.ts +13 -0
  25. package/src/dev/index.ts +71 -8
  26. package/src/generators/EndpointGenerator.ts +46 -5
  27. package/src/generators/__tests__/EndpointGenerator.spec.ts +1 -1
  28. package/src/init/generators/config.ts +6 -1
  29. package/src/init/generators/package.ts +5 -1
  30. package/src/init/index.ts +9 -1
  31. package/src/init/templates/api.ts +31 -0
  32. package/src/init/templates/index.ts +1 -0
  33. package/src/init/templates/minimal.ts +83 -0
  34. package/src/types.ts +19 -0
  35. package/tsdown.config.ts +6 -0
  36. package/dist/CronGenerator-CCRYptuT.mjs +0 -55
  37. package/dist/CronGenerator-CCRYptuT.mjs.map +0 -1
  38. package/dist/CronGenerator-D4TWXQbh.cjs +0 -61
  39. package/dist/CronGenerator-D4TWXQbh.cjs.map +0 -1
  40. package/dist/CronGenerator-DWS3CCZt.d.cts +0 -14
  41. package/dist/CronGenerator-DZjdkEjI.d.mts +0 -14
  42. package/dist/EndpointGenerator-DGivkPLT.mjs +0 -335
  43. package/dist/EndpointGenerator-DGivkPLT.mjs.map +0 -1
  44. package/dist/EndpointGenerator-Dh7kMtuL.d.mts +0 -19
  45. package/dist/EndpointGenerator-npWEDoK2.cjs +0 -341
  46. package/dist/EndpointGenerator-npWEDoK2.cjs.map +0 -1
  47. package/dist/EndpointGenerator-zBsie_7s.d.cts +0 -19
  48. package/dist/FunctionGenerator-BmDHo27U.d.mts +0 -14
  49. package/dist/FunctionGenerator-CVk0h8tO.mjs +0 -54
  50. package/dist/FunctionGenerator-CVk0h8tO.mjs.map +0 -1
  51. package/dist/FunctionGenerator-DXjXBxUd.d.cts +0 -14
  52. package/dist/FunctionGenerator-DYTnyr4c.cjs +0 -60
  53. package/dist/FunctionGenerator-DYTnyr4c.cjs.map +0 -1
  54. package/dist/Generator-BGY-2dgI.d.cts +0 -27
  55. package/dist/Generator-CDt4pB3W.mjs +0 -41
  56. package/dist/Generator-CDt4pB3W.mjs.map +0 -1
  57. package/dist/Generator-CLVplqm2.cjs +0 -47
  58. package/dist/Generator-CLVplqm2.cjs.map +0 -1
  59. package/dist/Generator-yi9DH5TN.d.mts +0 -27
  60. package/dist/OpenApiTsGenerator-BVS4pOH7.mjs +0 -495
  61. package/dist/OpenApiTsGenerator-BVS4pOH7.mjs.map +0 -1
  62. package/dist/OpenApiTsGenerator-gPIIyppX.cjs +0 -501
  63. package/dist/OpenApiTsGenerator-gPIIyppX.cjs.map +0 -1
  64. package/dist/SubscriberGenerator-Bb-z3Kvx.d.cts +0 -15
  65. package/dist/SubscriberGenerator-CwsXqCpS.d.mts +0 -15
  66. package/dist/SubscriberGenerator-DABaJXML.mjs +0 -200
  67. package/dist/SubscriberGenerator-DABaJXML.mjs.map +0 -1
  68. package/dist/SubscriberGenerator-D_zpNGFr.cjs +0 -206
  69. package/dist/SubscriberGenerator-D_zpNGFr.cjs.map +0 -1
  70. package/dist/api-Bp5TIl1R.mjs +0 -167
  71. package/dist/api-Bp5TIl1R.mjs.map +0 -1
  72. package/dist/api-D4W9-tdZ.cjs +0 -173
  73. package/dist/api-D4W9-tdZ.cjs.map +0 -1
  74. package/dist/build/index.cjs +0 -15
  75. package/dist/build/index.d.cts +0 -7
  76. package/dist/build/index.d.mts +0 -7
  77. package/dist/build/index.mjs +0 -15
  78. package/dist/build/manifests.cjs +0 -4
  79. package/dist/build/manifests.d.cts +0 -13
  80. package/dist/build/manifests.d.mts +0 -13
  81. package/dist/build/manifests.mjs +0 -3
  82. package/dist/build/providerResolver.cjs +0 -5
  83. package/dist/build/providerResolver.d.cts +0 -23
  84. package/dist/build/providerResolver.d.mts +0 -23
  85. package/dist/build/providerResolver.mjs +0 -3
  86. package/dist/build/types.cjs +0 -0
  87. package/dist/build/types.d.cts +0 -3
  88. package/dist/build/types.d.mts +0 -3
  89. package/dist/build/types.mjs +0 -0
  90. package/dist/build-Cu6Mi0Lf.mjs +0 -87
  91. package/dist/build-Cu6Mi0Lf.mjs.map +0 -1
  92. package/dist/build-wmt8ZcmA.cjs +0 -93
  93. package/dist/build-wmt8ZcmA.cjs.map +0 -1
  94. package/dist/config-BP1IZynR.cjs +0 -168
  95. package/dist/config-BP1IZynR.cjs.map +0 -1
  96. package/dist/config-CIzRhm_D.d.mts +0 -11
  97. package/dist/config-CvehIYsb.d.cts +0 -11
  98. package/dist/config-UCK12Lrr.mjs +0 -162
  99. package/dist/config-UCK12Lrr.mjs.map +0 -1
  100. package/dist/dev/index.cjs +0 -17
  101. package/dist/dev/index.d.cts +0 -36
  102. package/dist/dev/index.d.mts +0 -36
  103. package/dist/dev/index.mjs +0 -13
  104. package/dist/dev-BBPWSllq.mjs +0 -348
  105. package/dist/dev-BBPWSllq.mjs.map +0 -1
  106. package/dist/dev-C2lCgE53.cjs +0 -378
  107. package/dist/dev-C2lCgE53.cjs.map +0 -1
  108. package/dist/docker-2-ipZDOJ.cjs +0 -119
  109. package/dist/docker-2-ipZDOJ.cjs.map +0 -1
  110. package/dist/docker-31GNwU3F.mjs +0 -113
  111. package/dist/docker-31GNwU3F.mjs.map +0 -1
  112. package/dist/env-CQ3hXAAW.d.mts +0 -11
  113. package/dist/env-CS0jvg7k.cjs +0 -144
  114. package/dist/env-CS0jvg7k.cjs.map +0 -1
  115. package/dist/env-D4YFgMqo.d.cts +0 -11
  116. package/dist/env-DEeVOvVu.mjs +0 -138
  117. package/dist/env-DEeVOvVu.mjs.map +0 -1
  118. package/dist/generators/CronGenerator.cjs +0 -4
  119. package/dist/generators/CronGenerator.d.cts +0 -5
  120. package/dist/generators/CronGenerator.d.mts +0 -5
  121. package/dist/generators/CronGenerator.mjs +0 -4
  122. package/dist/generators/EndpointGenerator.cjs +0 -4
  123. package/dist/generators/EndpointGenerator.d.cts +0 -5
  124. package/dist/generators/EndpointGenerator.d.mts +0 -5
  125. package/dist/generators/EndpointGenerator.mjs +0 -4
  126. package/dist/generators/FunctionGenerator.cjs +0 -4
  127. package/dist/generators/FunctionGenerator.d.cts +0 -5
  128. package/dist/generators/FunctionGenerator.d.mts +0 -5
  129. package/dist/generators/FunctionGenerator.mjs +0 -4
  130. package/dist/generators/Generator.cjs +0 -3
  131. package/dist/generators/Generator.d.cts +0 -4
  132. package/dist/generators/Generator.d.mts +0 -4
  133. package/dist/generators/Generator.mjs +0 -3
  134. package/dist/generators/OpenApiTsGenerator.cjs +0 -3
  135. package/dist/generators/OpenApiTsGenerator.d.cts +0 -44
  136. package/dist/generators/OpenApiTsGenerator.d.mts +0 -44
  137. package/dist/generators/OpenApiTsGenerator.mjs +0 -3
  138. package/dist/generators/SubscriberGenerator.cjs +0 -4
  139. package/dist/generators/SubscriberGenerator.d.cts +0 -5
  140. package/dist/generators/SubscriberGenerator.d.mts +0 -5
  141. package/dist/generators/SubscriberGenerator.mjs +0 -4
  142. package/dist/generators/index.cjs +0 -12
  143. package/dist/generators/index.d.cts +0 -8
  144. package/dist/generators/index.d.mts +0 -8
  145. package/dist/generators/index.mjs +0 -8
  146. package/dist/generators-3IemvCLk.cjs +0 -0
  147. package/dist/generators-FNpdfN6J.mjs +0 -0
  148. package/dist/index-DG6xNQMH.d.cts +0 -81
  149. package/dist/index-DZgrOOOW.d.mts +0 -81
  150. package/dist/init/generators/config.cjs +0 -3
  151. package/dist/init/generators/config.d.cts +0 -3
  152. package/dist/init/generators/config.d.mts +0 -3
  153. package/dist/init/generators/config.mjs +0 -3
  154. package/dist/init/generators/docker.cjs +0 -3
  155. package/dist/init/generators/docker.d.cts +0 -11
  156. package/dist/init/generators/docker.d.mts +0 -11
  157. package/dist/init/generators/docker.mjs +0 -3
  158. package/dist/init/generators/env.cjs +0 -3
  159. package/dist/init/generators/env.d.cts +0 -3
  160. package/dist/init/generators/env.d.mts +0 -3
  161. package/dist/init/generators/env.mjs +0 -3
  162. package/dist/init/generators/index.cjs +0 -14
  163. package/dist/init/generators/index.d.cts +0 -6
  164. package/dist/init/generators/index.d.mts +0 -6
  165. package/dist/init/generators/index.mjs +0 -11
  166. package/dist/init/generators/models.cjs +0 -3
  167. package/dist/init/generators/models.d.cts +0 -11
  168. package/dist/init/generators/models.d.mts +0 -11
  169. package/dist/init/generators/models.mjs +0 -3
  170. package/dist/init/generators/monorepo.cjs +0 -3
  171. package/dist/init/generators/monorepo.d.cts +0 -11
  172. package/dist/init/generators/monorepo.d.mts +0 -11
  173. package/dist/init/generators/monorepo.mjs +0 -3
  174. package/dist/init/generators/package.cjs +0 -8
  175. package/dist/init/generators/package.d.cts +0 -3
  176. package/dist/init/generators/package.d.mts +0 -3
  177. package/dist/init/generators/package.mjs +0 -8
  178. package/dist/init/generators/source.cjs +0 -3
  179. package/dist/init/generators/source.d.cts +0 -3
  180. package/dist/init/generators/source.d.mts +0 -3
  181. package/dist/init/generators/source.mjs +0 -3
  182. package/dist/init/index.cjs +0 -16
  183. package/dist/init/index.d.cts +0 -17
  184. package/dist/init/index.d.mts +0 -17
  185. package/dist/init/index.mjs +0 -16
  186. package/dist/init/templates/api.cjs +0 -3
  187. package/dist/init/templates/api.d.cts +0 -7
  188. package/dist/init/templates/api.d.mts +0 -7
  189. package/dist/init/templates/api.mjs +0 -3
  190. package/dist/init/templates/index.cjs +0 -12
  191. package/dist/init/templates/index.d.cts +0 -2
  192. package/dist/init/templates/index.d.mts +0 -2
  193. package/dist/init/templates/index.mjs +0 -7
  194. package/dist/init/templates/minimal.cjs +0 -3
  195. package/dist/init/templates/minimal.d.cts +0 -7
  196. package/dist/init/templates/minimal.d.mts +0 -7
  197. package/dist/init/templates/minimal.mjs +0 -3
  198. package/dist/init/templates/serverless.cjs +0 -3
  199. package/dist/init/templates/serverless.d.cts +0 -7
  200. package/dist/init/templates/serverless.d.mts +0 -7
  201. package/dist/init/templates/serverless.mjs +0 -3
  202. package/dist/init/templates/worker.cjs +0 -3
  203. package/dist/init/templates/worker.d.cts +0 -7
  204. package/dist/init/templates/worker.d.mts +0 -7
  205. package/dist/init/templates/worker.mjs +0 -3
  206. package/dist/init/utils.cjs +0 -7
  207. package/dist/init/utils.d.cts +0 -25
  208. package/dist/init/utils.d.mts +0 -25
  209. package/dist/init/utils.mjs +0 -3
  210. package/dist/init-BMA7xi8r.mjs +0 -161
  211. package/dist/init-BMA7xi8r.mjs.map +0 -1
  212. package/dist/init-D-7WEk-b.cjs +0 -167
  213. package/dist/init-D-7WEk-b.cjs.map +0 -1
  214. package/dist/manifests-BNKG6AXf.mjs +0 -68
  215. package/dist/manifests-BNKG6AXf.mjs.map +0 -1
  216. package/dist/manifests-D13Ej8AE.cjs +0 -80
  217. package/dist/manifests-D13Ej8AE.cjs.map +0 -1
  218. package/dist/minimal-BkyASH_C.mjs +0 -93
  219. package/dist/minimal-BkyASH_C.mjs.map +0 -1
  220. package/dist/minimal-CSFggzdH.cjs +0 -99
  221. package/dist/minimal-CSFggzdH.cjs.map +0 -1
  222. package/dist/models-BWlDfviw.mjs +0 -115
  223. package/dist/models-BWlDfviw.mjs.map +0 -1
  224. package/dist/models-BapGSoHC.cjs +0 -121
  225. package/dist/models-BapGSoHC.cjs.map +0 -1
  226. package/dist/monorepo-BBOWhkcd.mjs +0 -184
  227. package/dist/monorepo-BBOWhkcd.mjs.map +0 -1
  228. package/dist/monorepo-CFtxHeDh.cjs +0 -190
  229. package/dist/monorepo-CFtxHeDh.cjs.map +0 -1
  230. package/dist/openapi-DA9RkPJl.mjs +0 -74
  231. package/dist/openapi-DA9RkPJl.mjs.map +0 -1
  232. package/dist/openapi-DZH6RQHk.cjs +0 -98
  233. package/dist/openapi-DZH6RQHk.cjs.map +0 -1
  234. package/dist/package-6h-7QfJZ.d.cts +0 -11
  235. package/dist/package-BCe_KvGv.d.mts +0 -11
  236. package/dist/package-C3If80n1.mjs +0 -57
  237. package/dist/package-C3If80n1.mjs.map +0 -1
  238. package/dist/package-Dk8IMBOB.cjs +0 -62
  239. package/dist/package-Dk8IMBOB.cjs.map +0 -1
  240. package/dist/providerResolver-DEVKngbC.mjs +0 -96
  241. package/dist/providerResolver-DEVKngbC.mjs.map +0 -1
  242. package/dist/providerResolver-DOTbN9jo.cjs +0 -114
  243. package/dist/providerResolver-DOTbN9jo.cjs.map +0 -1
  244. package/dist/serverless-AGOS-l3G.cjs +0 -119
  245. package/dist/serverless-AGOS-l3G.cjs.map +0 -1
  246. package/dist/serverless-D5HjJByU.mjs +0 -113
  247. package/dist/serverless-D5HjJByU.mjs.map +0 -1
  248. package/dist/source-C1cyfHcF.cjs +0 -17
  249. package/dist/source-C1cyfHcF.cjs.map +0 -1
  250. package/dist/source-C3LiNUV9.d.mts +0 -11
  251. package/dist/source-CkQHBpwu.mjs +0 -11
  252. package/dist/source-CkQHBpwu.mjs.map +0 -1
  253. package/dist/source-Dtcjbokc.d.cts +0 -11
  254. package/dist/templates-C0EMmhwb.mjs +0 -88
  255. package/dist/templates-C0EMmhwb.mjs.map +0 -1
  256. package/dist/templates-CbgQ9dw0.cjs +0 -123
  257. package/dist/templates-CbgQ9dw0.cjs.map +0 -1
  258. package/dist/types-D2xYkOal.d.mts +0 -51
  259. package/dist/types-DA-r8HWZ.d.cts +0 -51
  260. package/dist/types.cjs +0 -0
  261. package/dist/types.d.cts +0 -2
  262. package/dist/types.d.mts +0 -2
  263. package/dist/types.mjs +0 -0
  264. package/dist/utils-CKEzCxc1.mjs +0 -69
  265. package/dist/utils-CKEzCxc1.mjs.map +0 -1
  266. package/dist/utils-DSdN2MTt.cjs +0 -99
  267. package/dist/utils-DSdN2MTt.cjs.map +0 -1
  268. package/dist/worker-CGhlqNH-.cjs +0 -156
  269. package/dist/worker-CGhlqNH-.cjs.map +0 -1
  270. package/dist/worker-CiP420As.mjs +0 -150
  271. package/dist/worker-CiP420As.mjs.map +0 -1
@@ -1,93 +0,0 @@
1
- //#region src/init/templates/minimal.ts
2
- const minimalTemplate = {
3
- name: "minimal",
4
- description: "Basic health endpoint",
5
- dependencies: {
6
- "@geekmidas/constructs": "workspace:*",
7
- "@geekmidas/envkit": "workspace:*",
8
- "@geekmidas/logger": "workspace:*",
9
- hono: "~4.8.2",
10
- pino: "~9.6.0"
11
- },
12
- devDependencies: {
13
- "@biomejs/biome": "~1.9.4",
14
- "@geekmidas/cli": "workspace:*",
15
- "@types/node": "~22.0.0",
16
- tsx: "~4.20.0",
17
- turbo: "~2.3.0",
18
- typescript: "~5.8.2",
19
- vitest: "~4.0.0"
20
- },
21
- scripts: {
22
- dev: "gkm dev",
23
- build: "gkm build",
24
- test: "vitest",
25
- "test:once": "vitest run",
26
- typecheck: "tsc --noEmit",
27
- lint: "biome lint .",
28
- fmt: "biome format . --write",
29
- "fmt:check": "biome format ."
30
- },
31
- files: (options) => {
32
- const { loggerType, routesStructure } = options;
33
- const loggerContent = `import { createLogger } from '@geekmidas/logger/${loggerType}';
34
-
35
- export const logger = createLogger();
36
- `;
37
- const getRoutePath = (file) => {
38
- switch (routesStructure) {
39
- case "centralized-endpoints": return `src/endpoints/${file}`;
40
- case "centralized-routes": return `src/routes/${file}`;
41
- case "domain-based": return `src/${file.replace(".ts", "")}/routes/index.ts`;
42
- }
43
- };
44
- const files = [
45
- {
46
- path: "src/config/env.ts",
47
- content: `import { EnvironmentParser } from '@geekmidas/envkit';
48
-
49
- export const envParser = new EnvironmentParser(process.env);
50
-
51
- export const config = envParser
52
- .create((get) => ({
53
- port: get('PORT').string().transform(Number).default(3000),
54
- nodeEnv: get('NODE_ENV').string().default('development'),
55
- }))
56
- .parse();
57
- `
58
- },
59
- {
60
- path: "src/config/logger.ts",
61
- content: loggerContent
62
- },
63
- {
64
- path: getRoutePath("health.ts"),
65
- content: `import { e } from '@geekmidas/constructs/endpoints';
66
-
67
- export default e
68
- .get('/health')
69
- .handle(async () => ({
70
- status: 'ok',
71
- timestamp: new Date().toISOString(),
72
- }));
73
- `
74
- }
75
- ];
76
- if (options.telescope) files.push({
77
- path: "src/config/telescope.ts",
78
- content: `import { Telescope } from '@geekmidas/telescope';
79
- import { InMemoryStorage } from '@geekmidas/telescope/storage/memory';
80
-
81
- export const telescope = new Telescope({
82
- storage: new InMemoryStorage({ maxEntries: 100 }),
83
- enabled: process.env.NODE_ENV === 'development',
84
- });
85
- `
86
- });
87
- return files;
88
- }
89
- };
90
-
91
- //#endregion
92
- export { minimalTemplate };
93
- //# sourceMappingURL=minimal-BkyASH_C.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"minimal-BkyASH_C.mjs","names":["minimalTemplate: TemplateConfig","options: TemplateOptions","file: string","files: GeneratedFile[]"],"sources":["../src/init/templates/minimal.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from './index.js';\n\nexport const minimalTemplate: TemplateConfig = {\n name: 'minimal',\n description: 'Basic health endpoint',\n\n dependencies: {\n '@geekmidas/constructs': 'workspace:*',\n '@geekmidas/envkit': 'workspace:*',\n '@geekmidas/logger': 'workspace:*',\n hono: '~4.8.2',\n pino: '~9.6.0',\n },\n\n devDependencies: {\n '@biomejs/biome': '~1.9.4',\n '@geekmidas/cli': 'workspace:*',\n '@types/node': '~22.0.0',\n tsx: '~4.20.0',\n turbo: '~2.3.0',\n typescript: '~5.8.2',\n vitest: '~4.0.0',\n },\n\n scripts: {\n dev: 'gkm dev',\n build: 'gkm build',\n test: 'vitest',\n 'test:once': 'vitest run',\n typecheck: 'tsc --noEmit',\n lint: 'biome lint .',\n fmt: 'biome format . --write',\n 'fmt:check': 'biome format .',\n },\n\n files: (options: TemplateOptions): GeneratedFile[] => {\n const { loggerType, routesStructure } = options;\n\n const loggerContent = `import { createLogger } from '@geekmidas/logger/${loggerType}';\n\nexport const logger = createLogger();\n`;\n\n // Get route path based on structure\n const getRoutePath = (file: string) => {\n switch (routesStructure) {\n case 'centralized-endpoints':\n return `src/endpoints/${file}`;\n case 'centralized-routes':\n return `src/routes/${file}`;\n case 'domain-based':\n return `src/${file.replace('.ts', '')}/routes/index.ts`;\n }\n };\n\n const files: GeneratedFile[] = [\n // src/config/env.ts\n {\n path: 'src/config/env.ts',\n content: `import { EnvironmentParser } from '@geekmidas/envkit';\n\nexport const envParser = new EnvironmentParser(process.env);\n\nexport const config = envParser\n .create((get) => ({\n port: get('PORT').string().transform(Number).default(3000),\n nodeEnv: get('NODE_ENV').string().default('development'),\n }))\n .parse();\n`,\n },\n\n // src/config/logger.ts\n {\n path: 'src/config/logger.ts',\n content: loggerContent,\n },\n\n // health endpoint\n {\n path: getRoutePath('health.ts'),\n content: `import { e } from '@geekmidas/constructs/endpoints';\n\nexport default e\n .get('/health')\n .handle(async () => ({\n status: 'ok',\n timestamp: new Date().toISOString(),\n }));\n`,\n },\n ];\n\n // Add Telescope config if enabled\n if (options.telescope) {\n files.push({\n path: 'src/config/telescope.ts',\n content: `import { Telescope } from '@geekmidas/telescope';\nimport { InMemoryStorage } from '@geekmidas/telescope/storage/memory';\n\nexport const telescope = new Telescope({\n storage: new InMemoryStorage({ maxEntries: 100 }),\n enabled: process.env.NODE_ENV === 'development',\n});\n`,\n });\n }\n\n return files;\n },\n};\n"],"mappings":";AAMA,MAAaA,kBAAkC;CAC7C,MAAM;CACN,aAAa;CAEb,cAAc;EACZ,yBAAyB;EACzB,qBAAqB;EACrB,qBAAqB;EACrB,MAAM;EACN,MAAM;CACP;CAED,iBAAiB;EACf,kBAAkB;EAClB,kBAAkB;EAClB,eAAe;EACf,KAAK;EACL,OAAO;EACP,YAAY;EACZ,QAAQ;CACT;CAED,SAAS;EACP,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;EACb,WAAW;EACX,MAAM;EACN,KAAK;EACL,aAAa;CACd;CAED,OAAO,CAACC,YAA8C;EACpD,MAAM,EAAE,YAAY,iBAAiB,GAAG;EAExC,MAAM,iBAAiB,kDAAkD,WAAW;;;;EAMpF,MAAM,eAAe,CAACC,SAAiB;AACrC,WAAQ,iBAAR;IACE,KAAK,wBACH,SAAQ,gBAAgB,KAAK;IAC/B,KAAK,qBACH,SAAQ,aAAa,KAAK;IAC5B,KAAK,eACH,SAAQ,MAAM,KAAK,QAAQ,OAAO,GAAG,CAAC;GACzC;EACF;EAED,MAAMC,QAAyB;GAE7B;IACE,MAAM;IACN,UAAU;;;;;;;;;;;GAWX;GAGD;IACE,MAAM;IACN,SAAS;GACV;GAGD;IACE,MAAM,aAAa,YAAY;IAC/B,UAAU;;;;;;;;;GASX;EACF;AAGD,MAAI,QAAQ,UACV,OAAM,KAAK;GACT,MAAM;GACN,UAAU;;;;;;;;EAQX,EAAC;AAGJ,SAAO;CACR;AACF"}
@@ -1,99 +0,0 @@
1
-
2
- //#region src/init/templates/minimal.ts
3
- const minimalTemplate = {
4
- name: "minimal",
5
- description: "Basic health endpoint",
6
- dependencies: {
7
- "@geekmidas/constructs": "workspace:*",
8
- "@geekmidas/envkit": "workspace:*",
9
- "@geekmidas/logger": "workspace:*",
10
- hono: "~4.8.2",
11
- pino: "~9.6.0"
12
- },
13
- devDependencies: {
14
- "@biomejs/biome": "~1.9.4",
15
- "@geekmidas/cli": "workspace:*",
16
- "@types/node": "~22.0.0",
17
- tsx: "~4.20.0",
18
- turbo: "~2.3.0",
19
- typescript: "~5.8.2",
20
- vitest: "~4.0.0"
21
- },
22
- scripts: {
23
- dev: "gkm dev",
24
- build: "gkm build",
25
- test: "vitest",
26
- "test:once": "vitest run",
27
- typecheck: "tsc --noEmit",
28
- lint: "biome lint .",
29
- fmt: "biome format . --write",
30
- "fmt:check": "biome format ."
31
- },
32
- files: (options) => {
33
- const { loggerType, routesStructure } = options;
34
- const loggerContent = `import { createLogger } from '@geekmidas/logger/${loggerType}';
35
-
36
- export const logger = createLogger();
37
- `;
38
- const getRoutePath = (file) => {
39
- switch (routesStructure) {
40
- case "centralized-endpoints": return `src/endpoints/${file}`;
41
- case "centralized-routes": return `src/routes/${file}`;
42
- case "domain-based": return `src/${file.replace(".ts", "")}/routes/index.ts`;
43
- }
44
- };
45
- const files = [
46
- {
47
- path: "src/config/env.ts",
48
- content: `import { EnvironmentParser } from '@geekmidas/envkit';
49
-
50
- export const envParser = new EnvironmentParser(process.env);
51
-
52
- export const config = envParser
53
- .create((get) => ({
54
- port: get('PORT').string().transform(Number).default(3000),
55
- nodeEnv: get('NODE_ENV').string().default('development'),
56
- }))
57
- .parse();
58
- `
59
- },
60
- {
61
- path: "src/config/logger.ts",
62
- content: loggerContent
63
- },
64
- {
65
- path: getRoutePath("health.ts"),
66
- content: `import { e } from '@geekmidas/constructs/endpoints';
67
-
68
- export default e
69
- .get('/health')
70
- .handle(async () => ({
71
- status: 'ok',
72
- timestamp: new Date().toISOString(),
73
- }));
74
- `
75
- }
76
- ];
77
- if (options.telescope) files.push({
78
- path: "src/config/telescope.ts",
79
- content: `import { Telescope } from '@geekmidas/telescope';
80
- import { InMemoryStorage } from '@geekmidas/telescope/storage/memory';
81
-
82
- export const telescope = new Telescope({
83
- storage: new InMemoryStorage({ maxEntries: 100 }),
84
- enabled: process.env.NODE_ENV === 'development',
85
- });
86
- `
87
- });
88
- return files;
89
- }
90
- };
91
-
92
- //#endregion
93
- Object.defineProperty(exports, 'minimalTemplate', {
94
- enumerable: true,
95
- get: function () {
96
- return minimalTemplate;
97
- }
98
- });
99
- //# sourceMappingURL=minimal-CSFggzdH.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"minimal-CSFggzdH.cjs","names":["minimalTemplate: TemplateConfig","options: TemplateOptions","file: string","files: GeneratedFile[]"],"sources":["../src/init/templates/minimal.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from './index.js';\n\nexport const minimalTemplate: TemplateConfig = {\n name: 'minimal',\n description: 'Basic health endpoint',\n\n dependencies: {\n '@geekmidas/constructs': 'workspace:*',\n '@geekmidas/envkit': 'workspace:*',\n '@geekmidas/logger': 'workspace:*',\n hono: '~4.8.2',\n pino: '~9.6.0',\n },\n\n devDependencies: {\n '@biomejs/biome': '~1.9.4',\n '@geekmidas/cli': 'workspace:*',\n '@types/node': '~22.0.0',\n tsx: '~4.20.0',\n turbo: '~2.3.0',\n typescript: '~5.8.2',\n vitest: '~4.0.0',\n },\n\n scripts: {\n dev: 'gkm dev',\n build: 'gkm build',\n test: 'vitest',\n 'test:once': 'vitest run',\n typecheck: 'tsc --noEmit',\n lint: 'biome lint .',\n fmt: 'biome format . --write',\n 'fmt:check': 'biome format .',\n },\n\n files: (options: TemplateOptions): GeneratedFile[] => {\n const { loggerType, routesStructure } = options;\n\n const loggerContent = `import { createLogger } from '@geekmidas/logger/${loggerType}';\n\nexport const logger = createLogger();\n`;\n\n // Get route path based on structure\n const getRoutePath = (file: string) => {\n switch (routesStructure) {\n case 'centralized-endpoints':\n return `src/endpoints/${file}`;\n case 'centralized-routes':\n return `src/routes/${file}`;\n case 'domain-based':\n return `src/${file.replace('.ts', '')}/routes/index.ts`;\n }\n };\n\n const files: GeneratedFile[] = [\n // src/config/env.ts\n {\n path: 'src/config/env.ts',\n content: `import { EnvironmentParser } from '@geekmidas/envkit';\n\nexport const envParser = new EnvironmentParser(process.env);\n\nexport const config = envParser\n .create((get) => ({\n port: get('PORT').string().transform(Number).default(3000),\n nodeEnv: get('NODE_ENV').string().default('development'),\n }))\n .parse();\n`,\n },\n\n // src/config/logger.ts\n {\n path: 'src/config/logger.ts',\n content: loggerContent,\n },\n\n // health endpoint\n {\n path: getRoutePath('health.ts'),\n content: `import { e } from '@geekmidas/constructs/endpoints';\n\nexport default e\n .get('/health')\n .handle(async () => ({\n status: 'ok',\n timestamp: new Date().toISOString(),\n }));\n`,\n },\n ];\n\n // Add Telescope config if enabled\n if (options.telescope) {\n files.push({\n path: 'src/config/telescope.ts',\n content: `import { Telescope } from '@geekmidas/telescope';\nimport { InMemoryStorage } from '@geekmidas/telescope/storage/memory';\n\nexport const telescope = new Telescope({\n storage: new InMemoryStorage({ maxEntries: 100 }),\n enabled: process.env.NODE_ENV === 'development',\n});\n`,\n });\n }\n\n return files;\n },\n};\n"],"mappings":";;AAMA,MAAaA,kBAAkC;CAC7C,MAAM;CACN,aAAa;CAEb,cAAc;EACZ,yBAAyB;EACzB,qBAAqB;EACrB,qBAAqB;EACrB,MAAM;EACN,MAAM;CACP;CAED,iBAAiB;EACf,kBAAkB;EAClB,kBAAkB;EAClB,eAAe;EACf,KAAK;EACL,OAAO;EACP,YAAY;EACZ,QAAQ;CACT;CAED,SAAS;EACP,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;EACb,WAAW;EACX,MAAM;EACN,KAAK;EACL,aAAa;CACd;CAED,OAAO,CAACC,YAA8C;EACpD,MAAM,EAAE,YAAY,iBAAiB,GAAG;EAExC,MAAM,iBAAiB,kDAAkD,WAAW;;;;EAMpF,MAAM,eAAe,CAACC,SAAiB;AACrC,WAAQ,iBAAR;IACE,KAAK,wBACH,SAAQ,gBAAgB,KAAK;IAC/B,KAAK,qBACH,SAAQ,aAAa,KAAK;IAC5B,KAAK,eACH,SAAQ,MAAM,KAAK,QAAQ,OAAO,GAAG,CAAC;GACzC;EACF;EAED,MAAMC,QAAyB;GAE7B;IACE,MAAM;IACN,UAAU;;;;;;;;;;;GAWX;GAGD;IACE,MAAM;IACN,SAAS;GACV;GAGD;IACE,MAAM,aAAa,YAAY;IAC/B,UAAU;;;;;;;;;GASX;EACF;AAGD,MAAI,QAAQ,UACV,OAAM,KAAK;GACT,MAAM;GACN,UAAU;;;;;;;;EAQX,EAAC;AAGJ,SAAO;CACR;AACF"}
@@ -1,115 +0,0 @@
1
- //#region src/init/generators/models.ts
2
- /**
3
- * Generate packages/models for shared Zod schemas (monorepo only)
4
- */
5
- function generateModelsPackage(options) {
6
- if (!options.monorepo) return [];
7
- const packageName = `@${options.name}/models`;
8
- const packageJson = {
9
- name: packageName,
10
- version: "0.0.1",
11
- private: true,
12
- type: "module",
13
- exports: {
14
- ".": {
15
- types: "./dist/index.d.ts",
16
- import: "./dist/index.js"
17
- },
18
- "./*": {
19
- types: "./dist/*.d.ts",
20
- import: "./dist/*.js"
21
- }
22
- },
23
- scripts: {
24
- build: "tsc",
25
- "build:watch": "tsc --watch",
26
- typecheck: "tsc --noEmit"
27
- },
28
- dependencies: { zod: "~4.1.0" },
29
- devDependencies: { typescript: "~5.8.2" }
30
- };
31
- const tsConfig = {
32
- extends: "../../tsconfig.json",
33
- compilerOptions: {
34
- outDir: "./dist",
35
- rootDir: "./src"
36
- },
37
- include: ["src/**/*.ts"],
38
- exclude: ["node_modules", "dist"]
39
- };
40
- const indexTs = `import { z } from 'zod';
41
-
42
- // ============================================
43
- // Common Schemas
44
- // ============================================
45
-
46
- export const idSchema = z.string().uuid();
47
-
48
- export const timestampsSchema = z.object({
49
- createdAt: z.coerce.date(),
50
- updatedAt: z.coerce.date(),
51
- });
52
-
53
- export const paginationSchema = z.object({
54
- page: z.coerce.number().int().positive().default(1),
55
- limit: z.coerce.number().int().positive().max(100).default(20),
56
- });
57
-
58
- export const paginatedResponseSchema = <T extends z.ZodTypeAny>(itemSchema: T) =>
59
- z.object({
60
- items: z.array(itemSchema),
61
- total: z.number(),
62
- page: z.number(),
63
- limit: z.number(),
64
- totalPages: z.number(),
65
- });
66
-
67
- // ============================================
68
- // User Schemas
69
- // ============================================
70
-
71
- export const userSchema = z.object({
72
- id: idSchema,
73
- email: z.string().email(),
74
- name: z.string().min(1).max(100),
75
- ...timestampsSchema.shape,
76
- });
77
-
78
- export const createUserSchema = userSchema.omit({
79
- id: true,
80
- createdAt: true,
81
- updatedAt: true,
82
- });
83
-
84
- export const updateUserSchema = createUserSchema.partial();
85
-
86
- // ============================================
87
- // Type Exports
88
- // ============================================
89
-
90
- export type Id = z.infer<typeof idSchema>;
91
- export type Timestamps = z.infer<typeof timestampsSchema>;
92
- export type Pagination = z.infer<typeof paginationSchema>;
93
- export type User = z.infer<typeof userSchema>;
94
- export type CreateUser = z.infer<typeof createUserSchema>;
95
- export type UpdateUser = z.infer<typeof updateUserSchema>;
96
- `;
97
- return [
98
- {
99
- path: "packages/models/package.json",
100
- content: JSON.stringify(packageJson, null, 2) + "\n"
101
- },
102
- {
103
- path: "packages/models/tsconfig.json",
104
- content: JSON.stringify(tsConfig, null, 2) + "\n"
105
- },
106
- {
107
- path: "packages/models/src/index.ts",
108
- content: indexTs
109
- }
110
- ];
111
- }
112
-
113
- //#endregion
114
- export { generateModelsPackage };
115
- //# sourceMappingURL=models-BWlDfviw.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"models-BWlDfviw.mjs","names":["options: TemplateOptions"],"sources":["../src/init/generators/models.ts"],"sourcesContent":["import type { GeneratedFile, TemplateOptions } from '../templates/index.js';\n\n/**\n * Generate packages/models for shared Zod schemas (monorepo only)\n */\nexport function generateModelsPackage(\n options: TemplateOptions,\n): GeneratedFile[] {\n if (!options.monorepo) {\n return [];\n }\n\n // Package name based on project name\n const packageName = `@${options.name}/models`;\n\n // package.json for models\n const packageJson = {\n name: packageName,\n version: '0.0.1',\n private: true,\n type: 'module',\n exports: {\n '.': {\n types: './dist/index.d.ts',\n import: './dist/index.js',\n },\n './*': {\n types: './dist/*.d.ts',\n import: './dist/*.js',\n },\n },\n scripts: {\n build: 'tsc',\n 'build:watch': 'tsc --watch',\n typecheck: 'tsc --noEmit',\n },\n dependencies: {\n zod: '~4.1.0',\n },\n devDependencies: {\n typescript: '~5.8.2',\n },\n };\n\n // tsconfig.json for models - extends root\n const tsConfig = {\n extends: '../../tsconfig.json',\n compilerOptions: {\n outDir: './dist',\n rootDir: './src',\n },\n include: ['src/**/*.ts'],\n exclude: ['node_modules', 'dist'],\n };\n\n // Main index.ts with example schemas\n const indexTs = `import { z } from 'zod';\n\n// ============================================\n// Common Schemas\n// ============================================\n\nexport const idSchema = z.string().uuid();\n\nexport const timestampsSchema = z.object({\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\nexport const paginationSchema = z.object({\n page: z.coerce.number().int().positive().default(1),\n limit: z.coerce.number().int().positive().max(100).default(20),\n});\n\nexport const paginatedResponseSchema = <T extends z.ZodTypeAny>(itemSchema: T) =>\n z.object({\n items: z.array(itemSchema),\n total: z.number(),\n page: z.number(),\n limit: z.number(),\n totalPages: z.number(),\n });\n\n// ============================================\n// User Schemas\n// ============================================\n\nexport const userSchema = z.object({\n id: idSchema,\n email: z.string().email(),\n name: z.string().min(1).max(100),\n ...timestampsSchema.shape,\n});\n\nexport const createUserSchema = userSchema.omit({\n id: true,\n createdAt: true,\n updatedAt: true,\n});\n\nexport const updateUserSchema = createUserSchema.partial();\n\n// ============================================\n// Type Exports\n// ============================================\n\nexport type Id = z.infer<typeof idSchema>;\nexport type Timestamps = z.infer<typeof timestampsSchema>;\nexport type Pagination = z.infer<typeof paginationSchema>;\nexport type User = z.infer<typeof userSchema>;\nexport type CreateUser = z.infer<typeof createUserSchema>;\nexport type UpdateUser = z.infer<typeof updateUserSchema>;\n`;\n\n return [\n {\n path: 'packages/models/package.json',\n content: JSON.stringify(packageJson, null, 2) + '\\n',\n },\n {\n path: 'packages/models/tsconfig.json',\n content: JSON.stringify(tsConfig, null, 2) + '\\n',\n },\n {\n path: 'packages/models/src/index.ts',\n content: indexTs,\n },\n ];\n}\n"],"mappings":";;;;AAKA,SAAgB,sBACdA,SACiB;AACjB,MAAK,QAAQ,SACX,QAAO,CAAE;CAIX,MAAM,eAAe,GAAG,QAAQ,KAAK;CAGrC,MAAM,cAAc;EAClB,MAAM;EACN,SAAS;EACT,SAAS;EACT,MAAM;EACN,SAAS;GACP,KAAK;IACH,OAAO;IACP,QAAQ;GACT;GACD,OAAO;IACL,OAAO;IACP,QAAQ;GACT;EACF;EACD,SAAS;GACP,OAAO;GACP,eAAe;GACf,WAAW;EACZ;EACD,cAAc,EACZ,KAAK,SACN;EACD,iBAAiB,EACf,YAAY,SACb;CACF;CAGD,MAAM,WAAW;EACf,SAAS;EACT,iBAAiB;GACf,QAAQ;GACR,SAAS;EACV;EACD,SAAS,CAAC,aAAc;EACxB,SAAS,CAAC,gBAAgB,MAAO;CAClC;CAGD,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DjB,QAAO;EACL;GACE,MAAM;GACN,SAAS,KAAK,UAAU,aAAa,MAAM,EAAE,GAAG;EACjD;EACD;GACE,MAAM;GACN,SAAS,KAAK,UAAU,UAAU,MAAM,EAAE,GAAG;EAC9C;EACD;GACE,MAAM;GACN,SAAS;EACV;CACF;AACF"}
@@ -1,121 +0,0 @@
1
-
2
- //#region src/init/generators/models.ts
3
- /**
4
- * Generate packages/models for shared Zod schemas (monorepo only)
5
- */
6
- function generateModelsPackage(options) {
7
- if (!options.monorepo) return [];
8
- const packageName = `@${options.name}/models`;
9
- const packageJson = {
10
- name: packageName,
11
- version: "0.0.1",
12
- private: true,
13
- type: "module",
14
- exports: {
15
- ".": {
16
- types: "./dist/index.d.ts",
17
- import: "./dist/index.js"
18
- },
19
- "./*": {
20
- types: "./dist/*.d.ts",
21
- import: "./dist/*.js"
22
- }
23
- },
24
- scripts: {
25
- build: "tsc",
26
- "build:watch": "tsc --watch",
27
- typecheck: "tsc --noEmit"
28
- },
29
- dependencies: { zod: "~4.1.0" },
30
- devDependencies: { typescript: "~5.8.2" }
31
- };
32
- const tsConfig = {
33
- extends: "../../tsconfig.json",
34
- compilerOptions: {
35
- outDir: "./dist",
36
- rootDir: "./src"
37
- },
38
- include: ["src/**/*.ts"],
39
- exclude: ["node_modules", "dist"]
40
- };
41
- const indexTs = `import { z } from 'zod';
42
-
43
- // ============================================
44
- // Common Schemas
45
- // ============================================
46
-
47
- export const idSchema = z.string().uuid();
48
-
49
- export const timestampsSchema = z.object({
50
- createdAt: z.coerce.date(),
51
- updatedAt: z.coerce.date(),
52
- });
53
-
54
- export const paginationSchema = z.object({
55
- page: z.coerce.number().int().positive().default(1),
56
- limit: z.coerce.number().int().positive().max(100).default(20),
57
- });
58
-
59
- export const paginatedResponseSchema = <T extends z.ZodTypeAny>(itemSchema: T) =>
60
- z.object({
61
- items: z.array(itemSchema),
62
- total: z.number(),
63
- page: z.number(),
64
- limit: z.number(),
65
- totalPages: z.number(),
66
- });
67
-
68
- // ============================================
69
- // User Schemas
70
- // ============================================
71
-
72
- export const userSchema = z.object({
73
- id: idSchema,
74
- email: z.string().email(),
75
- name: z.string().min(1).max(100),
76
- ...timestampsSchema.shape,
77
- });
78
-
79
- export const createUserSchema = userSchema.omit({
80
- id: true,
81
- createdAt: true,
82
- updatedAt: true,
83
- });
84
-
85
- export const updateUserSchema = createUserSchema.partial();
86
-
87
- // ============================================
88
- // Type Exports
89
- // ============================================
90
-
91
- export type Id = z.infer<typeof idSchema>;
92
- export type Timestamps = z.infer<typeof timestampsSchema>;
93
- export type Pagination = z.infer<typeof paginationSchema>;
94
- export type User = z.infer<typeof userSchema>;
95
- export type CreateUser = z.infer<typeof createUserSchema>;
96
- export type UpdateUser = z.infer<typeof updateUserSchema>;
97
- `;
98
- return [
99
- {
100
- path: "packages/models/package.json",
101
- content: JSON.stringify(packageJson, null, 2) + "\n"
102
- },
103
- {
104
- path: "packages/models/tsconfig.json",
105
- content: JSON.stringify(tsConfig, null, 2) + "\n"
106
- },
107
- {
108
- path: "packages/models/src/index.ts",
109
- content: indexTs
110
- }
111
- ];
112
- }
113
-
114
- //#endregion
115
- Object.defineProperty(exports, 'generateModelsPackage', {
116
- enumerable: true,
117
- get: function () {
118
- return generateModelsPackage;
119
- }
120
- });
121
- //# sourceMappingURL=models-BapGSoHC.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"models-BapGSoHC.cjs","names":["options: TemplateOptions"],"sources":["../src/init/generators/models.ts"],"sourcesContent":["import type { GeneratedFile, TemplateOptions } from '../templates/index.js';\n\n/**\n * Generate packages/models for shared Zod schemas (monorepo only)\n */\nexport function generateModelsPackage(\n options: TemplateOptions,\n): GeneratedFile[] {\n if (!options.monorepo) {\n return [];\n }\n\n // Package name based on project name\n const packageName = `@${options.name}/models`;\n\n // package.json for models\n const packageJson = {\n name: packageName,\n version: '0.0.1',\n private: true,\n type: 'module',\n exports: {\n '.': {\n types: './dist/index.d.ts',\n import: './dist/index.js',\n },\n './*': {\n types: './dist/*.d.ts',\n import: './dist/*.js',\n },\n },\n scripts: {\n build: 'tsc',\n 'build:watch': 'tsc --watch',\n typecheck: 'tsc --noEmit',\n },\n dependencies: {\n zod: '~4.1.0',\n },\n devDependencies: {\n typescript: '~5.8.2',\n },\n };\n\n // tsconfig.json for models - extends root\n const tsConfig = {\n extends: '../../tsconfig.json',\n compilerOptions: {\n outDir: './dist',\n rootDir: './src',\n },\n include: ['src/**/*.ts'],\n exclude: ['node_modules', 'dist'],\n };\n\n // Main index.ts with example schemas\n const indexTs = `import { z } from 'zod';\n\n// ============================================\n// Common Schemas\n// ============================================\n\nexport const idSchema = z.string().uuid();\n\nexport const timestampsSchema = z.object({\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\nexport const paginationSchema = z.object({\n page: z.coerce.number().int().positive().default(1),\n limit: z.coerce.number().int().positive().max(100).default(20),\n});\n\nexport const paginatedResponseSchema = <T extends z.ZodTypeAny>(itemSchema: T) =>\n z.object({\n items: z.array(itemSchema),\n total: z.number(),\n page: z.number(),\n limit: z.number(),\n totalPages: z.number(),\n });\n\n// ============================================\n// User Schemas\n// ============================================\n\nexport const userSchema = z.object({\n id: idSchema,\n email: z.string().email(),\n name: z.string().min(1).max(100),\n ...timestampsSchema.shape,\n});\n\nexport const createUserSchema = userSchema.omit({\n id: true,\n createdAt: true,\n updatedAt: true,\n});\n\nexport const updateUserSchema = createUserSchema.partial();\n\n// ============================================\n// Type Exports\n// ============================================\n\nexport type Id = z.infer<typeof idSchema>;\nexport type Timestamps = z.infer<typeof timestampsSchema>;\nexport type Pagination = z.infer<typeof paginationSchema>;\nexport type User = z.infer<typeof userSchema>;\nexport type CreateUser = z.infer<typeof createUserSchema>;\nexport type UpdateUser = z.infer<typeof updateUserSchema>;\n`;\n\n return [\n {\n path: 'packages/models/package.json',\n content: JSON.stringify(packageJson, null, 2) + '\\n',\n },\n {\n path: 'packages/models/tsconfig.json',\n content: JSON.stringify(tsConfig, null, 2) + '\\n',\n },\n {\n path: 'packages/models/src/index.ts',\n content: indexTs,\n },\n ];\n}\n"],"mappings":";;;;;AAKA,SAAgB,sBACdA,SACiB;AACjB,MAAK,QAAQ,SACX,QAAO,CAAE;CAIX,MAAM,eAAe,GAAG,QAAQ,KAAK;CAGrC,MAAM,cAAc;EAClB,MAAM;EACN,SAAS;EACT,SAAS;EACT,MAAM;EACN,SAAS;GACP,KAAK;IACH,OAAO;IACP,QAAQ;GACT;GACD,OAAO;IACL,OAAO;IACP,QAAQ;GACT;EACF;EACD,SAAS;GACP,OAAO;GACP,eAAe;GACf,WAAW;EACZ;EACD,cAAc,EACZ,KAAK,SACN;EACD,iBAAiB,EACf,YAAY,SACb;CACF;CAGD,MAAM,WAAW;EACf,SAAS;EACT,iBAAiB;GACf,QAAQ;GACR,SAAS;EACV;EACD,SAAS,CAAC,aAAc;EACxB,SAAS,CAAC,gBAAgB,MAAO;CAClC;CAGD,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DjB,QAAO;EACL;GACE,MAAM;GACN,SAAS,KAAK,UAAU,aAAa,MAAM,EAAE,GAAG;EACjD;EACD;GACE,MAAM;GACN,SAAS,KAAK,UAAU,UAAU,MAAM,EAAE,GAAG;EAC9C;EACD;GACE,MAAM;GACN,SAAS;EACV;CACF;AACF"}
@@ -1,184 +0,0 @@
1
- //#region src/init/generators/monorepo.ts
2
- /**
3
- * Generate monorepo root files (pnpm-workspace.yaml, root package.json, etc.)
4
- */
5
- function generateMonorepoFiles(options, _template) {
6
- if (!options.monorepo) return [];
7
- const rootPackageJson = {
8
- name: options.name,
9
- version: "0.0.1",
10
- private: true,
11
- type: "module",
12
- scripts: {
13
- dev: "turbo dev",
14
- build: "turbo build",
15
- test: "turbo test",
16
- "test:once": "turbo test:once",
17
- typecheck: "turbo typecheck",
18
- lint: "biome lint .",
19
- fmt: "biome format . --write",
20
- "fmt:check": "biome format ."
21
- },
22
- devDependencies: {
23
- "@biomejs/biome": "~1.9.4",
24
- turbo: "~2.3.0",
25
- typescript: "~5.8.2",
26
- vitest: "~4.0.0"
27
- }
28
- };
29
- const apiPathParts = options.apiPath.split("/");
30
- const appsFolder = apiPathParts[0] || "apps";
31
- const pnpmWorkspace = `packages:
32
- - '${appsFolder}/*'
33
- - 'packages/*'
34
- `;
35
- const biomeConfig = {
36
- $schema: "https://biomejs.dev/schemas/1.9.4/schema.json",
37
- vcs: {
38
- enabled: true,
39
- clientKind: "git",
40
- useIgnoreFile: true
41
- },
42
- organizeImports: { enabled: true },
43
- formatter: {
44
- enabled: true,
45
- indentStyle: "space",
46
- indentWidth: 2,
47
- lineWidth: 80
48
- },
49
- javascript: { formatter: {
50
- quoteStyle: "single",
51
- trailingCommas: "all",
52
- semicolons: "always",
53
- arrowParentheses: "always"
54
- } },
55
- linter: {
56
- enabled: true,
57
- rules: {
58
- recommended: true,
59
- correctness: {
60
- noUnusedImports: "error",
61
- noUnusedVariables: "error"
62
- },
63
- style: { noNonNullAssertion: "off" }
64
- }
65
- },
66
- files: { ignore: [
67
- "node_modules",
68
- "dist",
69
- ".gkm",
70
- "coverage"
71
- ] }
72
- };
73
- const turboConfig = {
74
- $schema: "https://turbo.build/schema.json",
75
- tasks: {
76
- build: {
77
- dependsOn: ["^build"],
78
- outputs: ["dist/**"]
79
- },
80
- dev: {
81
- cache: false,
82
- persistent: true
83
- },
84
- test: {
85
- dependsOn: ["^build"],
86
- cache: false
87
- },
88
- "test:once": {
89
- dependsOn: ["^build"],
90
- outputs: ["coverage/**"]
91
- },
92
- typecheck: {
93
- dependsOn: ["^build"],
94
- outputs: []
95
- },
96
- lint: { outputs: [] },
97
- fmt: { outputs: [] }
98
- }
99
- };
100
- const gitignore = `# Dependencies
101
- node_modules/
102
-
103
- # Build output
104
- dist/
105
- .gkm/
106
-
107
- # Environment
108
- .env
109
- .env.local
110
- .env.*.local
111
-
112
- # IDE
113
- .idea/
114
- .vscode/
115
- *.swp
116
- *.swo
117
-
118
- # OS
119
- .DS_Store
120
- Thumbs.db
121
-
122
- # Logs
123
- *.log
124
- npm-debug.log*
125
- yarn-debug.log*
126
- pnpm-debug.log*
127
-
128
- # Test coverage
129
- coverage/
130
-
131
- # TypeScript cache
132
- *.tsbuildinfo
133
-
134
- # Turbo
135
- .turbo/
136
- `;
137
- const tsConfig = {
138
- compilerOptions: {
139
- target: "ES2022",
140
- module: "NodeNext",
141
- moduleResolution: "NodeNext",
142
- lib: ["ES2022"],
143
- strict: true,
144
- esModuleInterop: true,
145
- skipLibCheck: true,
146
- forceConsistentCasingInFileNames: true,
147
- resolveJsonModule: true,
148
- declaration: true,
149
- declarationMap: true,
150
- composite: true
151
- },
152
- exclude: ["node_modules", "dist"]
153
- };
154
- return [
155
- {
156
- path: "package.json",
157
- content: JSON.stringify(rootPackageJson, null, 2) + "\n"
158
- },
159
- {
160
- path: "pnpm-workspace.yaml",
161
- content: pnpmWorkspace
162
- },
163
- {
164
- path: "tsconfig.json",
165
- content: JSON.stringify(tsConfig, null, 2) + "\n"
166
- },
167
- {
168
- path: "biome.json",
169
- content: JSON.stringify(biomeConfig, null, 2) + "\n"
170
- },
171
- {
172
- path: "turbo.json",
173
- content: JSON.stringify(turboConfig, null, 2) + "\n"
174
- },
175
- {
176
- path: ".gitignore",
177
- content: gitignore
178
- }
179
- ];
180
- }
181
-
182
- //#endregion
183
- export { generateMonorepoFiles };
184
- //# sourceMappingURL=monorepo-BBOWhkcd.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"monorepo-BBOWhkcd.mjs","names":["options: TemplateOptions","_template: TemplateConfig"],"sources":["../src/init/generators/monorepo.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from '../templates/index.js';\n\n/**\n * Generate monorepo root files (pnpm-workspace.yaml, root package.json, etc.)\n */\nexport function generateMonorepoFiles(\n options: TemplateOptions,\n _template: TemplateConfig,\n): GeneratedFile[] {\n if (!options.monorepo) {\n return [];\n }\n\n // Root package.json for monorepo\n const rootPackageJson = {\n name: options.name,\n version: '0.0.1',\n private: true,\n type: 'module',\n scripts: {\n dev: 'turbo dev',\n build: 'turbo build',\n test: 'turbo test',\n 'test:once': 'turbo test:once',\n typecheck: 'turbo typecheck',\n lint: 'biome lint .',\n fmt: 'biome format . --write',\n 'fmt:check': 'biome format .',\n },\n devDependencies: {\n '@biomejs/biome': '~1.9.4',\n turbo: '~2.3.0',\n typescript: '~5.8.2',\n vitest: '~4.0.0',\n },\n };\n\n // pnpm-workspace.yaml - detect folder structure from apiPath\n const apiPathParts = options.apiPath.split('/');\n const appsFolder = apiPathParts[0] || 'apps';\n\n const pnpmWorkspace = `packages:\n - '${appsFolder}/*'\n - 'packages/*'\n`;\n\n // Root biome.json\n const biomeConfig = {\n $schema: 'https://biomejs.dev/schemas/1.9.4/schema.json',\n vcs: {\n enabled: true,\n clientKind: 'git',\n useIgnoreFile: true,\n },\n organizeImports: {\n enabled: true,\n },\n formatter: {\n enabled: true,\n indentStyle: 'space',\n indentWidth: 2,\n lineWidth: 80,\n },\n javascript: {\n formatter: {\n quoteStyle: 'single',\n trailingCommas: 'all',\n semicolons: 'always',\n arrowParentheses: 'always',\n },\n },\n linter: {\n enabled: true,\n rules: {\n recommended: true,\n correctness: {\n noUnusedImports: 'error',\n noUnusedVariables: 'error',\n },\n style: {\n noNonNullAssertion: 'off',\n },\n },\n },\n files: {\n ignore: ['node_modules', 'dist', '.gkm', 'coverage'],\n },\n };\n\n // Root turbo.json\n const turboConfig = {\n $schema: 'https://turbo.build/schema.json',\n tasks: {\n build: {\n dependsOn: ['^build'],\n outputs: ['dist/**'],\n },\n dev: {\n cache: false,\n persistent: true,\n },\n test: {\n dependsOn: ['^build'],\n cache: false,\n },\n 'test:once': {\n dependsOn: ['^build'],\n outputs: ['coverage/**'],\n },\n typecheck: {\n dependsOn: ['^build'],\n outputs: [],\n },\n lint: {\n outputs: [],\n },\n fmt: {\n outputs: [],\n },\n },\n };\n\n // Root .gitignore\n const gitignore = `# Dependencies\nnode_modules/\n\n# Build output\ndist/\n.gkm/\n\n# Environment\n.env\n.env.local\n.env.*.local\n\n# IDE\n.idea/\n.vscode/\n*.swp\n*.swo\n\n# OS\n.DS_Store\nThumbs.db\n\n# Logs\n*.log\nnpm-debug.log*\nyarn-debug.log*\npnpm-debug.log*\n\n# Test coverage\ncoverage/\n\n# TypeScript cache\n*.tsbuildinfo\n\n# Turbo\n.turbo/\n`;\n\n // Root tsconfig.json - base config for all packages\n const tsConfig = {\n compilerOptions: {\n target: 'ES2022',\n module: 'NodeNext',\n moduleResolution: 'NodeNext',\n lib: ['ES2022'],\n strict: true,\n esModuleInterop: true,\n skipLibCheck: true,\n forceConsistentCasingInFileNames: true,\n resolveJsonModule: true,\n declaration: true,\n declarationMap: true,\n composite: true,\n },\n exclude: ['node_modules', 'dist'],\n };\n\n return [\n {\n path: 'package.json',\n content: JSON.stringify(rootPackageJson, null, 2) + '\\n',\n },\n {\n path: 'pnpm-workspace.yaml',\n content: pnpmWorkspace,\n },\n {\n path: 'tsconfig.json',\n content: JSON.stringify(tsConfig, null, 2) + '\\n',\n },\n {\n path: 'biome.json',\n content: JSON.stringify(biomeConfig, null, 2) + '\\n',\n },\n {\n path: 'turbo.json',\n content: JSON.stringify(turboConfig, null, 2) + '\\n',\n },\n {\n path: '.gitignore',\n content: gitignore,\n },\n ];\n}\n"],"mappings":";;;;AASA,SAAgB,sBACdA,SACAC,WACiB;AACjB,MAAK,QAAQ,SACX,QAAO,CAAE;CAIX,MAAM,kBAAkB;EACtB,MAAM,QAAQ;EACd,SAAS;EACT,SAAS;EACT,MAAM;EACN,SAAS;GACP,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,WAAW;GACX,MAAM;GACN,KAAK;GACL,aAAa;EACd;EACD,iBAAiB;GACf,kBAAkB;GAClB,OAAO;GACP,YAAY;GACZ,QAAQ;EACT;CACF;CAGD,MAAM,eAAe,QAAQ,QAAQ,MAAM,IAAI;CAC/C,MAAM,aAAa,aAAa,MAAM;CAEtC,MAAM,iBAAiB;OAClB,WAAW;;;CAKhB,MAAM,cAAc;EAClB,SAAS;EACT,KAAK;GACH,SAAS;GACT,YAAY;GACZ,eAAe;EAChB;EACD,iBAAiB,EACf,SAAS,KACV;EACD,WAAW;GACT,SAAS;GACT,aAAa;GACb,aAAa;GACb,WAAW;EACZ;EACD,YAAY,EACV,WAAW;GACT,YAAY;GACZ,gBAAgB;GAChB,YAAY;GACZ,kBAAkB;EACnB,EACF;EACD,QAAQ;GACN,SAAS;GACT,OAAO;IACL,aAAa;IACb,aAAa;KACX,iBAAiB;KACjB,mBAAmB;IACpB;IACD,OAAO,EACL,oBAAoB,MACrB;GACF;EACF;EACD,OAAO,EACL,QAAQ;GAAC;GAAgB;GAAQ;GAAQ;EAAW,EACrD;CACF;CAGD,MAAM,cAAc;EAClB,SAAS;EACT,OAAO;GACL,OAAO;IACL,WAAW,CAAC,QAAS;IACrB,SAAS,CAAC,SAAU;GACrB;GACD,KAAK;IACH,OAAO;IACP,YAAY;GACb;GACD,MAAM;IACJ,WAAW,CAAC,QAAS;IACrB,OAAO;GACR;GACD,aAAa;IACX,WAAW,CAAC,QAAS;IACrB,SAAS,CAAC,aAAc;GACzB;GACD,WAAW;IACT,WAAW,CAAC,QAAS;IACrB,SAAS,CAAE;GACZ;GACD,MAAM,EACJ,SAAS,CAAE,EACZ;GACD,KAAK,EACH,SAAS,CAAE,EACZ;EACF;CACF;CAGD,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCnB,MAAM,WAAW;EACf,iBAAiB;GACf,QAAQ;GACR,QAAQ;GACR,kBAAkB;GAClB,KAAK,CAAC,QAAS;GACf,QAAQ;GACR,iBAAiB;GACjB,cAAc;GACd,kCAAkC;GAClC,mBAAmB;GACnB,aAAa;GACb,gBAAgB;GAChB,WAAW;EACZ;EACD,SAAS,CAAC,gBAAgB,MAAO;CAClC;AAED,QAAO;EACL;GACE,MAAM;GACN,SAAS,KAAK,UAAU,iBAAiB,MAAM,EAAE,GAAG;EACrD;EACD;GACE,MAAM;GACN,SAAS;EACV;EACD;GACE,MAAM;GACN,SAAS,KAAK,UAAU,UAAU,MAAM,EAAE,GAAG;EAC9C;EACD;GACE,MAAM;GACN,SAAS,KAAK,UAAU,aAAa,MAAM,EAAE,GAAG;EACjD;EACD;GACE,MAAM;GACN,SAAS,KAAK,UAAU,aAAa,MAAM,EAAE,GAAG;EACjD;EACD;GACE,MAAM;GACN,SAAS;EACV;CACF;AACF"}