@idealyst/cli 1.1.9 → 1.2.1

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 (324) hide show
  1. package/dist/commands/add.js +233 -0
  2. package/dist/commands/add.js.map +1 -0
  3. package/dist/commands/index.js +13 -0
  4. package/dist/commands/index.js.map +1 -0
  5. package/dist/commands/info.js +193 -0
  6. package/dist/commands/info.js.map +1 -0
  7. package/dist/commands/init.js +155 -0
  8. package/dist/commands/init.js.map +1 -0
  9. package/dist/constants.js +119 -0
  10. package/dist/constants.js.map +1 -0
  11. package/dist/generators/core/index.js +23 -0
  12. package/dist/generators/core/index.js.map +1 -0
  13. package/dist/generators/core/mobile.js +286 -0
  14. package/dist/generators/core/mobile.js.map +1 -0
  15. package/dist/generators/core/shared.js +207 -0
  16. package/dist/generators/core/shared.js.map +1 -0
  17. package/dist/generators/core/web.js +377 -0
  18. package/dist/generators/core/web.js.map +1 -0
  19. package/dist/generators/extensions/api.js +223 -0
  20. package/dist/generators/extensions/api.js.map +1 -0
  21. package/dist/generators/extensions/devcontainer.js +510 -0
  22. package/dist/generators/extensions/devcontainer.js.map +1 -0
  23. package/dist/generators/extensions/graphql.js +202 -0
  24. package/dist/generators/extensions/graphql.js.map +1 -0
  25. package/dist/generators/extensions/index.js +17 -0
  26. package/dist/generators/extensions/index.js.map +1 -0
  27. package/dist/generators/extensions/prisma.js +249 -0
  28. package/dist/generators/extensions/prisma.js.map +1 -0
  29. package/dist/generators/extensions/trpc.js +258 -0
  30. package/dist/generators/extensions/trpc.js.map +1 -0
  31. package/dist/generators/index.js +106 -4
  32. package/dist/generators/index.js.map +1 -1
  33. package/dist/generators/reactNative.js +177 -0
  34. package/dist/generators/reactNative.js.map +1 -0
  35. package/dist/generators/workspace.js +272 -0
  36. package/dist/generators/workspace.js.map +1 -0
  37. package/dist/identifiers/android.js +75 -0
  38. package/dist/identifiers/android.js.map +1 -0
  39. package/dist/identifiers/index.js +35 -0
  40. package/dist/identifiers/index.js.map +1 -0
  41. package/dist/identifiers/ios.js +65 -0
  42. package/dist/identifiers/ios.js.map +1 -0
  43. package/dist/index.js +41 -319
  44. package/dist/index.js.map +1 -1
  45. package/dist/templates/copier.js +135 -0
  46. package/dist/templates/copier.js.map +1 -0
  47. package/dist/templates/index.js +23 -0
  48. package/dist/templates/index.js.map +1 -0
  49. package/dist/templates/merger.js +113 -0
  50. package/dist/templates/merger.js.map +1 -0
  51. package/dist/templates/processor.js +142 -0
  52. package/dist/templates/processor.js.map +1 -0
  53. package/dist/types/commands/add.d.ts +14 -0
  54. package/dist/types/commands/index.d.ts +6 -0
  55. package/dist/types/commands/info.d.ts +10 -0
  56. package/dist/types/commands/init.d.ts +19 -0
  57. package/dist/types/constants.d.ts +76 -0
  58. package/dist/types/generators/core/index.d.ts +6 -0
  59. package/dist/types/generators/core/mobile.d.ts +13 -0
  60. package/dist/types/generators/core/shared.d.ts +8 -0
  61. package/dist/types/generators/core/web.d.ts +8 -0
  62. package/dist/types/generators/extensions/api.d.ts +8 -0
  63. package/dist/types/generators/extensions/devcontainer.d.ts +15 -0
  64. package/dist/types/generators/extensions/graphql.d.ts +8 -0
  65. package/dist/types/generators/extensions/index.d.ts +8 -0
  66. package/dist/types/generators/extensions/prisma.d.ts +8 -0
  67. package/dist/types/generators/extensions/trpc.d.ts +9 -0
  68. package/dist/types/generators/index.d.ts +11 -3
  69. package/dist/types/generators/reactNative.d.ts +19 -0
  70. package/dist/types/generators/workspace.d.ts +8 -0
  71. package/dist/types/identifiers/android.d.ts +26 -0
  72. package/dist/types/identifiers/index.d.ts +26 -0
  73. package/dist/types/identifiers/ios.d.ts +21 -0
  74. package/dist/types/index.d.ts +3 -0
  75. package/dist/types/templates/copier.d.ts +24 -0
  76. package/dist/types/templates/index.d.ts +6 -0
  77. package/dist/types/templates/merger.d.ts +43 -0
  78. package/dist/types/templates/processor.d.ts +39 -0
  79. package/dist/types/types.d.ts +153 -5
  80. package/dist/types/utils/filesystem.d.ts +56 -0
  81. package/dist/types/utils/index.d.ts +7 -0
  82. package/dist/types/utils/logger.d.ts +58 -0
  83. package/dist/types/utils/shell.d.ts +35 -0
  84. package/dist/types/utils/validation.d.ts +32 -0
  85. package/dist/types/wizard/index.d.ts +20 -0
  86. package/dist/types/wizard/steps/apiExtension.d.ts +5 -0
  87. package/dist/types/wizard/steps/appDisplayName.d.ts +5 -0
  88. package/dist/types/wizard/steps/devcontainerExtension.d.ts +5 -0
  89. package/dist/types/wizard/steps/graphqlExtension.d.ts +5 -0
  90. package/dist/types/wizard/steps/index.d.ts +12 -0
  91. package/dist/types/wizard/steps/orgDomain.d.ts +5 -0
  92. package/dist/types/wizard/steps/prismaExtension.d.ts +5 -0
  93. package/dist/types/wizard/steps/projectName.d.ts +5 -0
  94. package/dist/types/wizard/steps/summary.d.ts +5 -0
  95. package/dist/types/wizard/steps/trpcExtension.d.ts +5 -0
  96. package/dist/types/wizard/validators.d.ts +17 -0
  97. package/dist/types.js +41 -0
  98. package/dist/types.js.map +1 -1
  99. package/dist/utils/filesystem.js +173 -0
  100. package/dist/utils/filesystem.js.map +1 -0
  101. package/dist/utils/index.js +24 -0
  102. package/dist/utils/index.js.map +1 -0
  103. package/dist/utils/logger.js +95 -0
  104. package/dist/utils/logger.js.map +1 -0
  105. package/dist/utils/shell.js +113 -0
  106. package/dist/utils/shell.js.map +1 -0
  107. package/dist/utils/validation.js +196 -0
  108. package/dist/utils/validation.js.map +1 -0
  109. package/dist/wizard/index.js +177 -0
  110. package/dist/wizard/index.js.map +1 -0
  111. package/dist/wizard/steps/apiExtension.js +33 -0
  112. package/dist/wizard/steps/apiExtension.js.map +1 -0
  113. package/dist/wizard/steps/appDisplayName.js +53 -0
  114. package/dist/wizard/steps/appDisplayName.js.map +1 -0
  115. package/dist/wizard/steps/devcontainerExtension.js +78 -0
  116. package/dist/wizard/steps/devcontainerExtension.js.map +1 -0
  117. package/dist/wizard/steps/graphqlExtension.js +37 -0
  118. package/dist/wizard/steps/graphqlExtension.js.map +1 -0
  119. package/dist/wizard/steps/index.js +25 -0
  120. package/dist/wizard/steps/index.js.map +1 -0
  121. package/dist/wizard/steps/orgDomain.js +40 -0
  122. package/dist/wizard/steps/orgDomain.js.map +1 -0
  123. package/dist/wizard/steps/prismaExtension.js +33 -0
  124. package/dist/wizard/steps/prismaExtension.js.map +1 -0
  125. package/dist/wizard/steps/projectName.js +40 -0
  126. package/dist/wizard/steps/projectName.js.map +1 -0
  127. package/dist/wizard/steps/summary.js +107 -0
  128. package/dist/wizard/steps/summary.js.map +1 -0
  129. package/dist/wizard/steps/trpcExtension.js +37 -0
  130. package/dist/wizard/steps/trpcExtension.js.map +1 -0
  131. package/dist/wizard/validators.js +35 -0
  132. package/dist/wizard/validators.js.map +1 -0
  133. package/package.json +6 -19
  134. package/README.md +0 -110
  135. package/dist/generators/init.js +0 -268
  136. package/dist/generators/init.js.map +0 -1
  137. package/dist/generators/utils.js +0 -682
  138. package/dist/generators/utils.js.map +0 -1
  139. package/dist/scripts/configure-react-native-monorepo.js +0 -144
  140. package/dist/scripts/configure-react-native-monorepo.js.map +0 -1
  141. package/dist/template/.devcontainer/Dockerfile +0 -26
  142. package/dist/template/.devcontainer/devcontainer.json +0 -113
  143. package/dist/template/.devcontainer/docker-compose.yml +0 -59
  144. package/dist/template/.devcontainer/figma-mcp.sh +0 -32
  145. package/dist/template/.devcontainer/gitignore.template +0 -2
  146. package/dist/template/.devcontainer/setup.sh +0 -45
  147. package/dist/template/DOCKER.md +0 -0
  148. package/dist/template/Dockerfile +0 -111
  149. package/dist/template/README.md +0 -233
  150. package/dist/template/docker/nginx/prod.conf +0 -238
  151. package/dist/template/docker/nginx.conf +0 -131
  152. package/dist/template/docker/postgres/init.sql +0 -41
  153. package/dist/template/docker/prometheus/prometheus.yml +0 -52
  154. package/dist/template/docker-compose.prod.yml +0 -146
  155. package/dist/template/docker-compose.yml +0 -143
  156. package/dist/template/dockerignore.template +0 -151
  157. package/dist/template/env.example.template +0 -36
  158. package/dist/template/gitignore.template +0 -56
  159. package/dist/template/jest.config.js +0 -20
  160. package/dist/template/mcp.json.template +0 -8
  161. package/dist/template/package.json +0 -45
  162. package/dist/template/packages/api/README.md +0 -510
  163. package/dist/template/packages/api/__tests__/api.test.ts +0 -26
  164. package/dist/template/packages/api/env.example.template +0 -6
  165. package/dist/template/packages/api/gitignore.template +0 -35
  166. package/dist/template/packages/api/jest.config.js +0 -23
  167. package/dist/template/packages/api/jest.setup.js +0 -9
  168. package/dist/template/packages/api/package.json +0 -66
  169. package/dist/template/packages/api/src/context.ts +0 -52
  170. package/dist/template/packages/api/src/controllers/TestController.ts +0 -0
  171. package/dist/template/packages/api/src/graphql/builder.ts +0 -75
  172. package/dist/template/packages/api/src/graphql/generated.ts +0 -64
  173. package/dist/template/packages/api/src/graphql/index.ts +0 -75
  174. package/dist/template/packages/api/src/graphql/types/index.ts +0 -44
  175. package/dist/template/packages/api/src/graphql/types/test.ts +0 -245
  176. package/dist/template/packages/api/src/index.ts +0 -26
  177. package/dist/template/packages/api/src/lib/database.ts +0 -23
  178. package/dist/template/packages/api/src/router/index.ts +0 -163
  179. package/dist/template/packages/api/src/routers/test.ts +0 -161
  180. package/dist/template/packages/api/src/server.ts +0 -68
  181. package/dist/template/packages/api/src/trpc.ts +0 -28
  182. package/dist/template/packages/api/tsconfig.json +0 -44
  183. package/dist/template/packages/database/README.md +0 -162
  184. package/dist/template/packages/database/gitignore.template +0 -41
  185. package/dist/template/packages/database/package.json +0 -49
  186. package/dist/template/packages/database/prisma/seed.ts +0 -64
  187. package/dist/template/packages/database/schema.prisma +0 -107
  188. package/dist/template/packages/database/src/index.ts +0 -15
  189. package/dist/template/packages/database/src/validators.ts +0 -10
  190. package/dist/template/packages/database/tsconfig.json +0 -18
  191. package/dist/template/packages/mobile/README.md +0 -86
  192. package/dist/template/packages/mobile/__tests__/App.test.tsx +0 -156
  193. package/dist/template/packages/mobile/__tests__/components.test.tsx +0 -300
  194. package/dist/template/packages/mobile/app.json +0 -5
  195. package/dist/template/packages/mobile/babel.config.js +0 -10
  196. package/dist/template/packages/mobile/gitignore.template +0 -73
  197. package/dist/template/packages/mobile/index.js +0 -6
  198. package/dist/template/packages/mobile/jest.config.js +0 -21
  199. package/dist/template/packages/mobile/jest.setup.js +0 -12
  200. package/dist/template/packages/mobile/metro.config.js +0 -36
  201. package/dist/template/packages/mobile/package.json +0 -60
  202. package/dist/template/packages/mobile/src/App.tsx +0 -8
  203. package/dist/template/packages/mobile/src/utils/trpc.ts +0 -7
  204. package/dist/template/packages/mobile/tsconfig.json +0 -28
  205. package/dist/template/packages/shared/README.md +0 -135
  206. package/dist/template/packages/shared/__tests__/shared.test.ts +0 -51
  207. package/dist/template/packages/shared/gitignore.template +0 -35
  208. package/dist/template/packages/shared/jest.config.js +0 -22
  209. package/dist/template/packages/shared/package.json +0 -68
  210. package/dist/template/packages/shared/src/components/App.tsx +0 -57
  211. package/dist/template/packages/shared/src/components/HelloWorld.tsx +0 -531
  212. package/dist/template/packages/shared/src/components/index.ts +0 -1
  213. package/dist/template/packages/shared/src/graphql/client.ts +0 -34
  214. package/dist/template/packages/shared/src/index.ts +0 -22
  215. package/dist/template/packages/shared/src/navigation/AppRouter.tsx +0 -565
  216. package/dist/template/packages/shared/src/trpc/client.ts +0 -44
  217. package/dist/template/packages/shared/tsconfig.json +0 -22
  218. package/dist/template/packages/web/README.md +0 -131
  219. package/dist/template/packages/web/__tests__/App.test.tsx +0 -342
  220. package/dist/template/packages/web/__tests__/components.test.tsx +0 -564
  221. package/dist/template/packages/web/gitignore.template +0 -35
  222. package/dist/template/packages/web/index.html +0 -13
  223. package/dist/template/packages/web/jest.config.js +0 -27
  224. package/dist/template/packages/web/jest.setup.js +0 -24
  225. package/dist/template/packages/web/package.json +0 -69
  226. package/dist/template/packages/web/src/App.tsx +0 -14
  227. package/dist/template/packages/web/src/components/TestDemo.tsx +0 -164
  228. package/dist/template/packages/web/src/main.tsx +0 -25
  229. package/dist/template/packages/web/src/utils/trpc.ts +0 -7
  230. package/dist/template/packages/web/tsconfig.json +0 -26
  231. package/dist/template/packages/web/vite.config.ts +0 -98
  232. package/dist/template/setup.sh +0 -30
  233. package/dist/template/tsconfig.json +0 -22
  234. package/dist/template/yarnrc.yml.template +0 -4
  235. package/dist/types/generators/init.d.ts +0 -5
  236. package/dist/types/generators/utils.d.ts +0 -45
  237. package/dist/types/scripts/configure-react-native-monorepo.d.ts +0 -23
  238. package/template/.devcontainer/Dockerfile +0 -26
  239. package/template/.devcontainer/devcontainer.json +0 -113
  240. package/template/.devcontainer/docker-compose.yml +0 -59
  241. package/template/.devcontainer/figma-mcp.sh +0 -32
  242. package/template/.devcontainer/setup.sh +0 -45
  243. package/template/.dockerignore +0 -151
  244. package/template/.env.example +0 -36
  245. package/template/.env.production +0 -56
  246. package/template/DOCKER.md +0 -0
  247. package/template/Dockerfile +0 -111
  248. package/template/README.md +0 -233
  249. package/template/docker/nginx/prod.conf +0 -238
  250. package/template/docker/nginx.conf +0 -131
  251. package/template/docker/postgres/init.sql +0 -41
  252. package/template/docker/prometheus/prometheus.yml +0 -52
  253. package/template/docker-compose.prod.yml +0 -146
  254. package/template/docker-compose.yml +0 -143
  255. package/template/jest.config.js +0 -20
  256. package/template/package.json +0 -45
  257. package/template/packages/api/.env.example +0 -6
  258. package/template/packages/api/README.md +0 -510
  259. package/template/packages/api/__tests__/api.test.ts +0 -26
  260. package/template/packages/api/jest.config.js +0 -23
  261. package/template/packages/api/jest.setup.js +0 -9
  262. package/template/packages/api/package.json +0 -66
  263. package/template/packages/api/src/context.ts +0 -52
  264. package/template/packages/api/src/controllers/TestController.ts +0 -0
  265. package/template/packages/api/src/graphql/builder.ts +0 -75
  266. package/template/packages/api/src/graphql/generated.ts +0 -64
  267. package/template/packages/api/src/graphql/index.ts +0 -75
  268. package/template/packages/api/src/graphql/types/index.ts +0 -44
  269. package/template/packages/api/src/graphql/types/test.ts +0 -245
  270. package/template/packages/api/src/index.ts +0 -26
  271. package/template/packages/api/src/lib/database.ts +0 -23
  272. package/template/packages/api/src/router/index.ts +0 -163
  273. package/template/packages/api/src/routers/test.ts +0 -161
  274. package/template/packages/api/src/server.ts +0 -68
  275. package/template/packages/api/src/trpc.ts +0 -28
  276. package/template/packages/api/tsconfig.json +0 -44
  277. package/template/packages/database/README.md +0 -162
  278. package/template/packages/database/package.json +0 -49
  279. package/template/packages/database/prisma/seed.ts +0 -64
  280. package/template/packages/database/schema.prisma +0 -107
  281. package/template/packages/database/src/index.ts +0 -15
  282. package/template/packages/database/src/validators.ts +0 -10
  283. package/template/packages/database/tsconfig.json +0 -18
  284. package/template/packages/mobile/README.md +0 -86
  285. package/template/packages/mobile/__tests__/App.test.tsx +0 -156
  286. package/template/packages/mobile/__tests__/components.test.tsx +0 -300
  287. package/template/packages/mobile/app.json +0 -5
  288. package/template/packages/mobile/babel.config.js +0 -26
  289. package/template/packages/mobile/index.js +0 -8
  290. package/template/packages/mobile/jest.config.js +0 -21
  291. package/template/packages/mobile/jest.setup.js +0 -12
  292. package/template/packages/mobile/metro.config.js +0 -36
  293. package/template/packages/mobile/package.json +0 -60
  294. package/template/packages/mobile/src/App.tsx +0 -8
  295. package/template/packages/mobile/src/utils/trpc.ts +0 -7
  296. package/template/packages/mobile/tsconfig.json +0 -28
  297. package/template/packages/shared/README.md +0 -135
  298. package/template/packages/shared/__tests__/shared.test.ts +0 -51
  299. package/template/packages/shared/jest.config.js +0 -22
  300. package/template/packages/shared/package.json +0 -68
  301. package/template/packages/shared/src/components/App.tsx +0 -57
  302. package/template/packages/shared/src/components/HelloWorld.tsx +0 -531
  303. package/template/packages/shared/src/components/index.ts +0 -1
  304. package/template/packages/shared/src/graphql/client.ts +0 -34
  305. package/template/packages/shared/src/index.ts +0 -25
  306. package/template/packages/shared/src/navigation/AppRouter.tsx +0 -565
  307. package/template/packages/shared/src/trpc/client.ts +0 -44
  308. package/template/packages/shared/src/unistyles.ts +0 -50
  309. package/template/packages/shared/tsconfig.json +0 -22
  310. package/template/packages/web/README.md +0 -131
  311. package/template/packages/web/__tests__/App.test.tsx +0 -342
  312. package/template/packages/web/__tests__/components.test.tsx +0 -564
  313. package/template/packages/web/index.html +0 -13
  314. package/template/packages/web/jest.config.js +0 -27
  315. package/template/packages/web/jest.setup.js +0 -24
  316. package/template/packages/web/package.json +0 -69
  317. package/template/packages/web/src/App.tsx +0 -14
  318. package/template/packages/web/src/components/TestDemo.tsx +0 -164
  319. package/template/packages/web/src/main.tsx +0 -27
  320. package/template/packages/web/src/utils/trpc.ts +0 -7
  321. package/template/packages/web/tsconfig.json +0 -26
  322. package/template/packages/web/vite.config.ts +0 -114
  323. package/template/setup.sh +0 -30
  324. package/template/tsconfig.json +0 -22
package/dist/index.js CHANGED
@@ -1,333 +1,55 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
3
+ /**
4
+ * Idealyst CLI Beta - Main entry point
5
+ */
39
6
  Object.defineProperty(exports, "__esModule", { value: true });
40
7
  const commander_1 = require("commander");
41
- const chalk_1 = __importDefault(require("chalk"));
42
- const fs = __importStar(require("fs"));
43
- const path = __importStar(require("path"));
44
- const index_1 = require("./generators/index");
45
- const utils_1 = require("./generators/utils");
8
+ const constants_1 = require("./constants");
9
+ const init_1 = require("./commands/init");
10
+ const add_1 = require("./commands/add");
11
+ const info_1 = require("./commands/info");
46
12
  const program = new commander_1.Command();
47
13
  program
48
- .name('idealyst')
49
- .description('CLI tool for generating Idealyst Framework projects')
50
- .version('1.0.1');
14
+ .name('idealyst-beta')
15
+ .description('CLI tool for generating Idealyst Framework projects (beta)')
16
+ .version(constants_1.VERSION);
17
+ // Main init command with wizard
51
18
  program
52
19
  .command('init [project-name]')
53
- .description('Initialize a new full-stack Idealyst workspace with all packages')
54
- .option('-d, --directory <directory>', 'Output directory', '.')
55
- .option('--figma-token <token>', 'Figma personal access token for integration')
56
- .option('--skip-install', 'Skip installing dependencies')
57
- .action(async (projectName, options) => {
58
- try {
59
- // Prompt for project name if not provided
60
- if (!projectName) {
61
- projectName = await (0, utils_1.promptForProjectName)();
62
- }
63
- else {
64
- // Validate provided project name
65
- const { validateProjectName } = await Promise.resolve().then(() => __importStar(require('./generators/utils')));
66
- if (!validateProjectName(projectName.toLowerCase())) {
67
- console.error(chalk_1.default.red(`Invalid project name: ${projectName}`));
68
- console.error(chalk_1.default.yellow('Project name must be a valid npm package name (lowercase, no spaces)'));
69
- process.exit(1);
70
- }
71
- projectName = projectName.toLowerCase();
72
- }
73
- await (0, index_1.generateProject)({
74
- name: projectName,
75
- directory: options.directory,
76
- skipInstall: options.skipInstall || false,
77
- figmaToken: options.figmaToken
78
- });
79
- }
80
- catch (error) {
81
- console.error(chalk_1.default.red('❌ Failed to create project:'));
82
- console.error(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
83
- process.exit(1);
84
- }
85
- });
86
- // LLM Reference Data Structure
87
- function getLLMReference() {
88
- return {
89
- overview: {
90
- description: "The Idealyst Framework CLI generates complete full-stack TypeScript monorepo projects with React Native, React Web, API server, database layer, and shared libraries.",
91
- warning: "⚠️ CRITICAL: Always provide the project name to avoid interactive prompts!"
92
- },
93
- safeCommands: {
94
- init: {
95
- command: "idealyst init <project-name>",
96
- description: "Create a new full-stack workspace with all packages pre-integrated",
97
- example: "idealyst init my-awesome-project",
98
- options: [
99
- "--figma-token <token> - Optional Figma personal access token for MCP integration",
100
- "--skip-install - Skip installing dependencies"
101
- ]
102
- }
103
- },
104
- dangerousCommands: [
105
- {
106
- command: "idealyst init",
107
- issue: "Missing project name - will prompt interactively"
108
- }
109
- ],
110
- includes: {
111
- mobile: "React Native app with Idealyst components (packages/mobile)",
112
- web: "React web app with Vite and Idealyst components (packages/web)",
113
- api: "Express + tRPC API server (packages/api)",
114
- database: "Prisma database layer with PostgreSQL (packages/database)",
115
- shared: "Cross-platform shared components and utilities (packages/shared)"
116
- },
117
- architecture: {
118
- integration: "All packages are pre-integrated with proper dependencies",
119
- typescript: "Full end-to-end type safety from database to frontend",
120
- monorepo: "Yarn workspaces for dependency management",
121
- commands: "Unified dev commands (yarn dev starts all servers)"
122
- }
123
- };
124
- }
125
- function generateTextReference(reference) {
126
- const lines = [];
127
- lines.push('🤖 IDEALYST CLI - COMPLETE LLM REFERENCE');
128
- lines.push('='.repeat(50));
129
- lines.push('');
130
- lines.push(reference.overview.description);
131
- lines.push('');
132
- lines.push(reference.overview.warning);
133
- lines.push('');
134
- lines.push('✅ LLM-SAFE COMMANDS:');
135
- lines.push('-'.repeat(25));
136
- Object.entries(reference.safeCommands).forEach(([key, cmd]) => {
137
- lines.push(`\n${key.toUpperCase()}:`);
138
- lines.push(` Command: ${cmd.command}`);
139
- lines.push(` Description: ${cmd.description}`);
140
- if (cmd.example) {
141
- lines.push(` Example: ${cmd.example}`);
142
- }
143
- if (cmd.examples) {
144
- lines.push(` Examples:`);
145
- cmd.examples.forEach((ex) => lines.push(` ${ex}`));
146
- }
147
- });
148
- lines.push('\n❌ DANGEROUS COMMANDS (WILL HANG):');
149
- lines.push('-'.repeat(35));
150
- reference.dangerousCommands.forEach((cmd) => {
151
- lines.push(` ${cmd.command}`);
152
- lines.push(` Issue: ${cmd.issue}`);
153
- });
154
- lines.push('\n📋 PROJECT TYPES:');
155
- lines.push('-'.repeat(20));
156
- Object.entries(reference.projectTypes).forEach(([type, desc]) => {
157
- lines.push(` ${type}: ${desc}`);
158
- });
159
- lines.push('\n🏗️ ARCHITECTURE:');
160
- lines.push('-'.repeat(18));
161
- Object.entries(reference.architecture).forEach(([key, desc]) => {
162
- lines.push(` ${key}: ${desc}`);
163
- });
164
- return lines.join('\n');
165
- }
166
- function generateMarkdownReference(reference) {
167
- const lines = [];
168
- lines.push('# Idealyst CLI - LLM Reference');
169
- lines.push('');
170
- lines.push(reference.overview.description);
171
- lines.push('');
172
- lines.push(`> ${reference.overview.warning}`);
173
- lines.push('');
174
- lines.push('## ✅ LLM-Safe Commands');
175
- lines.push('');
176
- Object.entries(reference.safeCommands).forEach(([key, cmd]) => {
177
- lines.push(`### ${key.charAt(0).toUpperCase() + key.slice(1)}`);
178
- lines.push('');
179
- lines.push('```bash');
180
- lines.push(cmd.command);
181
- lines.push('```');
182
- lines.push('');
183
- lines.push(cmd.description);
184
- lines.push('');
185
- if (cmd.example) {
186
- lines.push('**Example:**');
187
- lines.push('```bash');
188
- lines.push(cmd.example);
189
- lines.push('```');
190
- lines.push('');
191
- }
192
- if (cmd.examples) {
193
- lines.push('**Examples:**');
194
- lines.push('```bash');
195
- cmd.examples.forEach((ex) => lines.push(ex));
196
- lines.push('```');
197
- lines.push('');
198
- }
199
- });
200
- lines.push('## ❌ Dangerous Commands');
201
- lines.push('');
202
- lines.push('These commands will hang by prompting for user input:');
203
- lines.push('');
204
- reference.dangerousCommands.forEach((cmd) => {
205
- lines.push(`- \`${cmd.command}\` - ${cmd.issue}`);
206
- });
207
- lines.push('');
208
- lines.push('## 📋 Project Types');
209
- lines.push('');
210
- Object.entries(reference.projectTypes).forEach(([type, desc]) => {
211
- lines.push(`- **${type}**: ${desc}`);
212
- });
213
- lines.push('');
214
- lines.push('## 🏗️ Architecture');
215
- lines.push('');
216
- Object.entries(reference.architecture).forEach(([key, desc]) => {
217
- lines.push(`- **${key}**: ${desc}`);
218
- });
219
- return lines.join('\n');
220
- }
20
+ .description('Initialize a new Idealyst workspace with interactive wizard')
21
+ .option('-d, --directory <dir>', 'Output directory', '.')
22
+ .option('--org-domain <domain>', 'Organization domain (e.g., com.company)')
23
+ .option('--app-name <name>', 'Mobile app display name')
24
+ .option('--with-api', 'Enable API server')
25
+ .option('--with-prisma', 'Enable Prisma database')
26
+ .option('--with-trpc', 'Enable tRPC (requires --with-api)')
27
+ .option('--with-graphql', 'Enable GraphQL (requires --with-api)')
28
+ .option('--with-devcontainer', 'Enable devcontainer setup (Docker, PostgreSQL, Redis, Claude Code)')
29
+ .option('--no-interactive', 'Disable interactive mode (requires all options)')
30
+ .option('--skip-install', 'Skip dependency installation')
31
+ .action(init_1.initCommand);
32
+ // Add projects to existing workspace
221
33
  program
222
- .command('llm-commands')
223
- .description('Display only safe LLM command templates')
224
- .action(() => {
225
- const reference = getLLMReference();
226
- console.log(chalk_1.default.yellow('⚠️ Always provide ALL required arguments!\n'));
227
- Object.entries(reference.safeCommands).forEach(([key, cmd]) => {
228
- console.log(chalk_1.default.cyan(cmd.command));
229
- if (cmd.examples) {
230
- cmd.examples.forEach((ex) => console.log(chalk_1.default.cyan(ex)));
231
- }
232
- });
233
- });
34
+ .command('add <name>')
35
+ .description('Add a new project to an existing workspace')
36
+ .requiredOption('-t, --type <type>', 'Project type: web, mobile, api, shared')
37
+ .option('--app-name <name>', 'Mobile app display name (for mobile type)')
38
+ .option('--with-trpc', 'Include tRPC setup')
39
+ .option('--with-graphql', 'Include GraphQL setup')
40
+ .option('--skip-install', 'Skip dependency installation')
41
+ .action(add_1.addCommand);
42
+ // Info command
234
43
  program
235
- .command('llm-info')
236
- .description('Display LLM access methods and available formats')
237
- .action(() => {
238
- console.log(chalk_1.default.blue.bold('🤖 LLM Access Methods for Idealyst CLI\n'));
239
- console.log(chalk_1.default.green('Available Commands:'));
240
- console.log(chalk_1.default.white(' idealyst llm-help ') + chalk_1.default.gray('- Quick reference with safe commands'));
241
- console.log(chalk_1.default.white(' idealyst llm-commands ') + chalk_1.default.gray('- Just the command templates'));
242
- console.log(chalk_1.default.white(' idealyst llm-reference ') + chalk_1.default.gray('- Complete reference (text format)'));
243
- console.log(chalk_1.default.white(' idealyst llm-reference --format json ') + chalk_1.default.gray('- Machine-readable JSON'));
244
- console.log(chalk_1.default.white(' idealyst llm-reference --format markdown ') + chalk_1.default.gray('- Generated markdown'));
245
- console.log(chalk_1.default.white(' idealyst llm-reference --format file ') + chalk_1.default.gray('- Full markdown documentation\n'));
246
- console.log(chalk_1.default.yellow('⚠️ Critical for LLMs:'));
247
- console.log(chalk_1.default.red(' • Never use commands without required arguments'));
248
- console.log(chalk_1.default.red(' • Always specify --type for create commands'));
249
- console.log(chalk_1.default.red(' • Always specify --app-name for native projects'));
250
- console.log(chalk_1.default.red(' • Always specify --with-trpc or --no-trpc for web/native\n'));
251
- console.log(chalk_1.default.blue('📖 Documentation:'));
252
- console.log(chalk_1.default.white(' • Built-in: Use commands above'));
253
- console.log(chalk_1.default.white(' • Files: docs/LLM-CLI-REFERENCE.md (comprehensive)'));
254
- console.log(chalk_1.default.white(' • Files: docs/LLM-CLI-QUICK-REFERENCE.md (condensed)'));
255
- });
256
- program
257
- .command('llm-reference')
258
- .description('Display complete LLM reference documentation')
259
- .option('--format <format>', 'Output format: text, json, markdown, or file', 'text')
260
- .action((options) => {
261
- const reference = getLLMReference();
262
- switch (options.format) {
263
- case 'json':
264
- console.log(JSON.stringify(reference, null, 2));
265
- break;
266
- case 'markdown':
267
- console.log(generateMarkdownReference(reference));
268
- break;
269
- case 'file':
270
- // Try to read the markdown file from docs
271
- const docsPath = path.join(__dirname, '..', 'docs', 'LLM-CLI-REFERENCE.md');
272
- try {
273
- if (fs.existsSync(docsPath)) {
274
- const content = fs.readFileSync(docsPath, 'utf8');
275
- console.log(content);
276
- }
277
- else {
278
- console.log(chalk_1.default.yellow('⚠️ Docs file not found, generating markdown instead:'));
279
- console.log(generateMarkdownReference(reference));
280
- }
281
- }
282
- catch (error) {
283
- console.log(chalk_1.default.yellow('⚠️ Error reading docs file, generating markdown instead:'));
284
- console.log(generateMarkdownReference(reference));
285
- }
286
- break;
287
- default:
288
- console.log(generateTextReference(reference));
289
- }
290
- });
44
+ .command('info')
45
+ .description('Display CLI information and usage')
46
+ .option('--format <format>', 'Output format: text, json, markdown', 'text')
47
+ .action(info_1.infoCommand);
48
+ // LLM-friendly help command
291
49
  program
292
50
  .command('llm-help')
293
- .description('Display quick LLM-friendly CLI reference')
294
- .action(() => {
295
- console.log(chalk_1.default.blue.bold('🤖 Idealyst CLI - LLM Quick Reference\n'));
296
- console.log(chalk_1.default.yellow('⚠️ CRITICAL: Always provide ALL required arguments to avoid interactive prompts!\n'));
297
- console.log(chalk_1.default.green.bold('✅ LLM-Safe Commands:\n'));
298
- console.log(chalk_1.default.white('📁 Initialize Workspace:'));
299
- console.log(chalk_1.default.cyan(' idealyst init <workspace-name>\n'));
300
- console.log(chalk_1.default.white('📦 Create Projects (No extra args needed):'));
301
- console.log(chalk_1.default.cyan(' idealyst create <name> --type database'));
302
- console.log(chalk_1.default.cyan(' idealyst create <name> --type api'));
303
- console.log(chalk_1.default.cyan(' idealyst create <name> --type shared\n'));
304
- console.log(chalk_1.default.white('🌐 Create Web Projects (tRPC choice required):'));
305
- console.log(chalk_1.default.cyan(' idealyst create <name> --type web --with-trpc'));
306
- console.log(chalk_1.default.cyan(' idealyst create <name> --type web --no-trpc\n'));
307
- console.log(chalk_1.default.white('📱 Create Native Projects (app-name + tRPC required):'));
308
- console.log(chalk_1.default.cyan(' idealyst create <name> --type native --app-name "Display Name" --with-trpc'));
309
- console.log(chalk_1.default.cyan(' idealyst create <name> --type native --app-name "Display Name" --no-trpc\n'));
310
- console.log(chalk_1.default.red.bold('❌ Commands That Will Hang LLMs:\n'));
311
- console.log(chalk_1.default.red(' idealyst init # Missing name'));
312
- console.log(chalk_1.default.red(' idealyst create my-app # Missing --type'));
313
- console.log(chalk_1.default.red(' idealyst create my-app --type web # Missing tRPC choice'));
314
- console.log(chalk_1.default.red(' idealyst create my-app --type native # Missing --app-name + tRPC\n'));
315
- console.log(chalk_1.default.blue('📋 Project Types:'));
316
- console.log(chalk_1.default.white(' • workspace - Monorepo setup with Yarn workspaces'));
317
- console.log(chalk_1.default.white(' • database - Prisma + Zod schemas (new standalone type)'));
318
- console.log(chalk_1.default.white(' • api - Express + tRPC server (no database included)'));
319
- console.log(chalk_1.default.white(' • shared - Shared utilities and types'));
320
- console.log(chalk_1.default.white(' • web - React web app with Vite'));
321
- console.log(chalk_1.default.white(' • native - React Native app\n'));
322
- console.log(chalk_1.default.magenta('🔗 Key Architecture:'));
323
- console.log(chalk_1.default.white(' • Database packages export: { db, schemas, PrismaClient, types }'));
324
- console.log(chalk_1.default.white(' • API packages consume database packages as dependencies'));
325
- console.log(chalk_1.default.white(' • All projects are TypeScript with strict type safety'));
326
- console.log(chalk_1.default.white(' • Monorepo uses Yarn workspaces for dependency management\n'));
327
- console.log(chalk_1.default.green('📖 For complete documentation:'));
328
- console.log(chalk_1.default.cyan(' idealyst llm-reference'));
329
- console.log(chalk_1.default.cyan(' idealyst llm-reference --format markdown'));
330
- console.log(chalk_1.default.cyan(' idealyst llm-reference --format json'));
331
- });
51
+ .description('Quick reference for LLM usage (non-interactive)')
52
+ .action(() => (0, info_1.infoCommand)({ format: 'llm' }));
53
+ // Parse arguments
332
54
  program.parse();
333
55
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;GAEG;;AAEH,yCAAoC;AACpC,2CAAsC;AACtC,0CAA8C;AAC9C,wCAA4C;AAC5C,0CAA8C;AAE9C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,4DAA4D,CAAC;KACzE,OAAO,CAAC,mBAAO,CAAC,CAAC;AAEpB,gCAAgC;AAChC,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,GAAG,CAAC;KACxD,MAAM,CAAC,uBAAuB,EAAE,yCAAyC,CAAC;KAC1E,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;KACtD,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC;KACzC,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;KACjD,MAAM,CAAC,aAAa,EAAE,mCAAmC,CAAC;KAC1D,MAAM,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;KAChE,MAAM,CAAC,qBAAqB,EAAE,oEAAoE,CAAC;KACnG,MAAM,CAAC,kBAAkB,EAAE,iDAAiD,CAAC;KAC7E,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;KACxD,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,qCAAqC;AACrC,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,4CAA4C,CAAC;KACzD,cAAc,CAAC,mBAAmB,EAAE,wCAAwC,CAAC;KAC7E,MAAM,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;KACxE,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAAC;KAC3C,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;KACjD,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;KACxD,MAAM,CAAC,gBAAU,CAAC,CAAC;AAEtB,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,EAAE,MAAM,CAAC;KAC1E,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,4BAA4B;AAC5B,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,kBAAW,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAEhD,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ /**
3
+ * Template file copying utilities
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.copyTemplateDirectory = copyTemplateDirectory;
10
+ exports.copyTemplateFile = copyTemplateFile;
11
+ exports.getTemplatePath = getTemplatePath;
12
+ exports.templateExists = templateExists;
13
+ exports.templateHasContent = templateHasContent;
14
+ const fs_extra_1 = __importDefault(require("fs-extra"));
15
+ const path_1 = __importDefault(require("path"));
16
+ const processor_1 = require("./processor");
17
+ const constants_1 = require("../constants");
18
+ /**
19
+ * Check if a path matches any ignore patterns
20
+ */
21
+ function shouldIgnore(filePath) {
22
+ const basename = path_1.default.basename(filePath);
23
+ for (const pattern of constants_1.IGNORE_PATTERNS) {
24
+ if (pattern.includes('*')) {
25
+ // Simple glob matching for *.ext patterns
26
+ const regex = new RegExp('^' + pattern.replace(/\*/g, '.*') + '$');
27
+ if (regex.test(basename)) {
28
+ return true;
29
+ }
30
+ }
31
+ else if (basename === pattern) {
32
+ return true;
33
+ }
34
+ }
35
+ return false;
36
+ }
37
+ /**
38
+ * Check if a file should have template variables processed
39
+ */
40
+ function shouldProcessTemplate(filePath) {
41
+ const ext = path_1.default.extname(filePath).toLowerCase();
42
+ return constants_1.TEMPLATE_EXTENSIONS.includes(ext);
43
+ }
44
+ /**
45
+ * Copy a template directory with variable replacement
46
+ */
47
+ async function copyTemplateDirectory(sourceDir, destDir, data) {
48
+ // Ensure destination exists
49
+ await fs_extra_1.default.ensureDir(destDir);
50
+ // Check if source exists
51
+ if (!await fs_extra_1.default.pathExists(sourceDir)) {
52
+ throw new Error(`Template directory not found: ${sourceDir}`);
53
+ }
54
+ const entries = await fs_extra_1.default.readdir(sourceDir, { withFileTypes: true });
55
+ for (const entry of entries) {
56
+ const sourcePath = path_1.default.join(sourceDir, entry.name);
57
+ let destName = entry.name;
58
+ // Handle .template suffix (for dotfiles)
59
+ if (destName.endsWith('.template')) {
60
+ destName = '.' + destName.replace('.template', '');
61
+ }
62
+ const destPath = path_1.default.join(destDir, destName);
63
+ // Skip ignored files/directories
64
+ if (shouldIgnore(entry.name)) {
65
+ continue;
66
+ }
67
+ if (entry.isDirectory()) {
68
+ // Recursively copy directory
69
+ await copyTemplateDirectory(sourcePath, destPath, data);
70
+ }
71
+ else {
72
+ // Copy file
73
+ if (shouldProcessTemplate(sourcePath)) {
74
+ // Read, process, and write
75
+ const content = await fs_extra_1.default.readFile(sourcePath, 'utf8');
76
+ const processed = (0, processor_1.processTemplateContent)(content, data);
77
+ await fs_extra_1.default.writeFile(destPath, processed);
78
+ }
79
+ else {
80
+ // Binary file - copy directly
81
+ await fs_extra_1.default.copy(sourcePath, destPath);
82
+ }
83
+ }
84
+ }
85
+ }
86
+ /**
87
+ * Copy a single template file with variable replacement
88
+ */
89
+ async function copyTemplateFile(sourceFile, destFile, data) {
90
+ await fs_extra_1.default.ensureDir(path_1.default.dirname(destFile));
91
+ if (shouldProcessTemplate(sourceFile)) {
92
+ const content = await fs_extra_1.default.readFile(sourceFile, 'utf8');
93
+ const processed = (0, processor_1.processTemplateContent)(content, data);
94
+ await fs_extra_1.default.writeFile(destFile, processed);
95
+ }
96
+ else {
97
+ await fs_extra_1.default.copy(sourceFile, destFile);
98
+ }
99
+ }
100
+ /**
101
+ * Get the path to a template directory
102
+ */
103
+ function getTemplatePath(...segments) {
104
+ // In production, templates are in dist/templates
105
+ // In development, they're in templates/
106
+ const distPath = path_1.default.resolve(__dirname, '..', '..', 'templates', ...segments);
107
+ const devPath = path_1.default.resolve(__dirname, '..', '..', '..', 'templates', ...segments);
108
+ if (fs_extra_1.default.existsSync(distPath)) {
109
+ return distPath;
110
+ }
111
+ return devPath;
112
+ }
113
+ /**
114
+ * Check if a template exists and has content
115
+ */
116
+ async function templateExists(...segments) {
117
+ const templatePath = getTemplatePath(...segments);
118
+ if (!await fs_extra_1.default.pathExists(templatePath)) {
119
+ return false;
120
+ }
121
+ // Check if directory has any files
122
+ const entries = await fs_extra_1.default.readdir(templatePath);
123
+ return entries.length > 0;
124
+ }
125
+ /**
126
+ * Check if a template has content (non-empty directory)
127
+ */
128
+ async function templateHasContent(templatePath) {
129
+ if (!await fs_extra_1.default.pathExists(templatePath)) {
130
+ return false;
131
+ }
132
+ const entries = await fs_extra_1.default.readdir(templatePath);
133
+ return entries.length > 0;
134
+ }
135
+ //# sourceMappingURL=copier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copier.js","sourceRoot":"","sources":["../../src/templates/copier.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAwCH,sDA+CC;AAKD,4CAcC;AAKD,0CAUC;AAKD,wCASC;AAKD,gDAOC;AAjJD,wDAA0B;AAC1B,gDAAwB;AAExB,2CAAqD;AACrD,4CAAoE;AAEpE;;GAEG;AACH,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEzC,KAAK,MAAM,OAAO,IAAI,2BAAe,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,0CAA0C;YAC1C,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACnE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,OAAO,+BAAmB,CAAC,QAAQ,CAAC,GAAyC,CAAC,CAAC;AACjF,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,qBAAqB,CACzC,SAAiB,EACjB,OAAe,EACf,IAAkB;IAElB,4BAA4B;IAC5B,MAAM,kBAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE5B,yBAAyB;IACzB,IAAI,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAErE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;QAE1B,yCAAyC;QACzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE9C,iCAAiC;QACjC,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,6BAA6B;YAC7B,MAAM,qBAAqB,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,YAAY;YACZ,IAAI,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,2BAA2B;gBAC3B,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACtD,MAAM,SAAS,GAAG,IAAA,kCAAsB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACxD,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,8BAA8B;gBAC9B,MAAM,kBAAE,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB,CACpC,UAAkB,EAClB,QAAgB,EAChB,IAAkB;IAElB,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE3C,IAAI,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,IAAA,kCAAsB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACxD,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,MAAM,kBAAE,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,GAAG,QAAkB;IACnD,iDAAiD;IACjD,wCAAwC;IACxC,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC;IAEpF,IAAI,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc,CAAC,GAAG,QAAkB;IACxD,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mCAAmC;IACnC,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CAAC,YAAoB;IAC3D,IAAI,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * Template utilities exports
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./processor"), exports);
21
+ __exportStar(require("./copier"), exports);
22
+ __exportStar(require("./merger"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,8CAA4B;AAC5B,2CAAyB;AACzB,2CAAyB"}