popeye-cli 1.0.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 (209) hide show
  1. package/.env.example +25 -0
  2. package/.prettierrc +8 -0
  3. package/README.md +320 -0
  4. package/dist/adapters/claude.d.ts +82 -0
  5. package/dist/adapters/claude.d.ts.map +1 -0
  6. package/dist/adapters/claude.js +230 -0
  7. package/dist/adapters/claude.js.map +1 -0
  8. package/dist/adapters/openai.d.ts +48 -0
  9. package/dist/adapters/openai.d.ts.map +1 -0
  10. package/dist/adapters/openai.js +257 -0
  11. package/dist/adapters/openai.js.map +1 -0
  12. package/dist/auth/claude.d.ts +44 -0
  13. package/dist/auth/claude.d.ts.map +1 -0
  14. package/dist/auth/claude.js +139 -0
  15. package/dist/auth/claude.js.map +1 -0
  16. package/dist/auth/index.d.ts +61 -0
  17. package/dist/auth/index.d.ts.map +1 -0
  18. package/dist/auth/index.js +141 -0
  19. package/dist/auth/index.js.map +1 -0
  20. package/dist/auth/keychain.d.ts +66 -0
  21. package/dist/auth/keychain.d.ts.map +1 -0
  22. package/dist/auth/keychain.js +125 -0
  23. package/dist/auth/keychain.js.map +1 -0
  24. package/dist/auth/openai-entry.d.ts +9 -0
  25. package/dist/auth/openai-entry.d.ts.map +1 -0
  26. package/dist/auth/openai-entry.js +410 -0
  27. package/dist/auth/openai-entry.js.map +1 -0
  28. package/dist/auth/openai.d.ts +71 -0
  29. package/dist/auth/openai.d.ts.map +1 -0
  30. package/dist/auth/openai.js +212 -0
  31. package/dist/auth/openai.js.map +1 -0
  32. package/dist/auth/server.d.ts +32 -0
  33. package/dist/auth/server.d.ts.map +1 -0
  34. package/dist/auth/server.js +213 -0
  35. package/dist/auth/server.js.map +1 -0
  36. package/dist/cli/commands/auth.d.ts +10 -0
  37. package/dist/cli/commands/auth.d.ts.map +1 -0
  38. package/dist/cli/commands/auth.js +162 -0
  39. package/dist/cli/commands/auth.js.map +1 -0
  40. package/dist/cli/commands/config.d.ts +10 -0
  41. package/dist/cli/commands/config.d.ts.map +1 -0
  42. package/dist/cli/commands/config.js +215 -0
  43. package/dist/cli/commands/config.js.map +1 -0
  44. package/dist/cli/commands/create.d.ts +10 -0
  45. package/dist/cli/commands/create.d.ts.map +1 -0
  46. package/dist/cli/commands/create.js +240 -0
  47. package/dist/cli/commands/create.js.map +1 -0
  48. package/dist/cli/commands/index.d.ts +10 -0
  49. package/dist/cli/commands/index.d.ts.map +1 -0
  50. package/dist/cli/commands/index.js +10 -0
  51. package/dist/cli/commands/index.js.map +1 -0
  52. package/dist/cli/commands/resume.d.ts +18 -0
  53. package/dist/cli/commands/resume.d.ts.map +1 -0
  54. package/dist/cli/commands/resume.js +241 -0
  55. package/dist/cli/commands/resume.js.map +1 -0
  56. package/dist/cli/commands/status.d.ts +18 -0
  57. package/dist/cli/commands/status.d.ts.map +1 -0
  58. package/dist/cli/commands/status.js +154 -0
  59. package/dist/cli/commands/status.js.map +1 -0
  60. package/dist/cli/index.d.ts +17 -0
  61. package/dist/cli/index.d.ts.map +1 -0
  62. package/dist/cli/index.js +71 -0
  63. package/dist/cli/index.js.map +1 -0
  64. package/dist/cli/interactive.d.ts +9 -0
  65. package/dist/cli/interactive.d.ts.map +1 -0
  66. package/dist/cli/interactive.js +330 -0
  67. package/dist/cli/interactive.js.map +1 -0
  68. package/dist/cli/output.d.ts +182 -0
  69. package/dist/cli/output.d.ts.map +1 -0
  70. package/dist/cli/output.js +355 -0
  71. package/dist/cli/output.js.map +1 -0
  72. package/dist/config/defaults.d.ts +57 -0
  73. package/dist/config/defaults.d.ts.map +1 -0
  74. package/dist/config/defaults.js +103 -0
  75. package/dist/config/defaults.js.map +1 -0
  76. package/dist/config/index.d.ts +138 -0
  77. package/dist/config/index.d.ts.map +1 -0
  78. package/dist/config/index.js +244 -0
  79. package/dist/config/index.js.map +1 -0
  80. package/dist/config/schema.d.ts +220 -0
  81. package/dist/config/schema.d.ts.map +1 -0
  82. package/dist/config/schema.js +141 -0
  83. package/dist/config/schema.js.map +1 -0
  84. package/dist/generators/index.d.ts +101 -0
  85. package/dist/generators/index.d.ts.map +1 -0
  86. package/dist/generators/index.js +200 -0
  87. package/dist/generators/index.js.map +1 -0
  88. package/dist/generators/python.d.ts +48 -0
  89. package/dist/generators/python.d.ts.map +1 -0
  90. package/dist/generators/python.js +262 -0
  91. package/dist/generators/python.js.map +1 -0
  92. package/dist/generators/templates/index.d.ts +6 -0
  93. package/dist/generators/templates/index.d.ts.map +1 -0
  94. package/dist/generators/templates/index.js +6 -0
  95. package/dist/generators/templates/index.js.map +1 -0
  96. package/dist/generators/templates/python.d.ts +53 -0
  97. package/dist/generators/templates/python.d.ts.map +1 -0
  98. package/dist/generators/templates/python.js +454 -0
  99. package/dist/generators/templates/python.js.map +1 -0
  100. package/dist/generators/templates/typescript.d.ts +53 -0
  101. package/dist/generators/templates/typescript.d.ts.map +1 -0
  102. package/dist/generators/templates/typescript.js +394 -0
  103. package/dist/generators/templates/typescript.js.map +1 -0
  104. package/dist/generators/typescript.d.ts +64 -0
  105. package/dist/generators/typescript.d.ts.map +1 -0
  106. package/dist/generators/typescript.js +271 -0
  107. package/dist/generators/typescript.js.map +1 -0
  108. package/dist/index.d.ts +7 -0
  109. package/dist/index.d.ts.map +1 -0
  110. package/dist/index.js +12 -0
  111. package/dist/index.js.map +1 -0
  112. package/dist/state/index.d.ts +168 -0
  113. package/dist/state/index.d.ts.map +1 -0
  114. package/dist/state/index.js +338 -0
  115. package/dist/state/index.js.map +1 -0
  116. package/dist/state/persistence.d.ts +91 -0
  117. package/dist/state/persistence.d.ts.map +1 -0
  118. package/dist/state/persistence.js +201 -0
  119. package/dist/state/persistence.js.map +1 -0
  120. package/dist/types/cli.d.ts +132 -0
  121. package/dist/types/cli.d.ts.map +1 -0
  122. package/dist/types/cli.js +17 -0
  123. package/dist/types/cli.js.map +1 -0
  124. package/dist/types/consensus.d.ts +111 -0
  125. package/dist/types/consensus.d.ts.map +1 -0
  126. package/dist/types/consensus.js +29 -0
  127. package/dist/types/consensus.js.map +1 -0
  128. package/dist/types/index.d.ts +9 -0
  129. package/dist/types/index.d.ts.map +1 -0
  130. package/dist/types/index.js +13 -0
  131. package/dist/types/index.js.map +1 -0
  132. package/dist/types/project.d.ts +73 -0
  133. package/dist/types/project.d.ts.map +1 -0
  134. package/dist/types/project.js +55 -0
  135. package/dist/types/project.js.map +1 -0
  136. package/dist/types/workflow.d.ts +236 -0
  137. package/dist/types/workflow.d.ts.map +1 -0
  138. package/dist/types/workflow.js +74 -0
  139. package/dist/types/workflow.js.map +1 -0
  140. package/dist/workflow/consensus.d.ts +89 -0
  141. package/dist/workflow/consensus.d.ts.map +1 -0
  142. package/dist/workflow/consensus.js +220 -0
  143. package/dist/workflow/consensus.js.map +1 -0
  144. package/dist/workflow/execution-mode.d.ts +82 -0
  145. package/dist/workflow/execution-mode.d.ts.map +1 -0
  146. package/dist/workflow/execution-mode.js +346 -0
  147. package/dist/workflow/execution-mode.js.map +1 -0
  148. package/dist/workflow/index.d.ts +110 -0
  149. package/dist/workflow/index.d.ts.map +1 -0
  150. package/dist/workflow/index.js +283 -0
  151. package/dist/workflow/index.js.map +1 -0
  152. package/dist/workflow/plan-mode.d.ts +83 -0
  153. package/dist/workflow/plan-mode.d.ts.map +1 -0
  154. package/dist/workflow/plan-mode.js +241 -0
  155. package/dist/workflow/plan-mode.js.map +1 -0
  156. package/dist/workflow/test-runner.d.ts +87 -0
  157. package/dist/workflow/test-runner.d.ts.map +1 -0
  158. package/dist/workflow/test-runner.js +273 -0
  159. package/dist/workflow/test-runner.js.map +1 -0
  160. package/eslint.config.js +25 -0
  161. package/package.json +66 -0
  162. package/src/adapters/claude.ts +298 -0
  163. package/src/adapters/openai.ts +300 -0
  164. package/src/auth/claude.ts +166 -0
  165. package/src/auth/index.ts +171 -0
  166. package/src/auth/keychain.ts +138 -0
  167. package/src/auth/openai-entry.ts +410 -0
  168. package/src/auth/openai.ts +260 -0
  169. package/src/auth/server.ts +252 -0
  170. package/src/cli/commands/auth.ts +194 -0
  171. package/src/cli/commands/config.ts +241 -0
  172. package/src/cli/commands/create.ts +308 -0
  173. package/src/cli/commands/index.ts +10 -0
  174. package/src/cli/commands/resume.ts +304 -0
  175. package/src/cli/commands/status.ts +189 -0
  176. package/src/cli/index.ts +90 -0
  177. package/src/cli/interactive.ts +418 -0
  178. package/src/cli/output.ts +410 -0
  179. package/src/config/defaults.ts +114 -0
  180. package/src/config/index.ts +315 -0
  181. package/src/config/schema.ts +164 -0
  182. package/src/generators/index.ts +251 -0
  183. package/src/generators/python.ts +318 -0
  184. package/src/generators/templates/index.ts +6 -0
  185. package/src/generators/templates/python.ts +465 -0
  186. package/src/generators/templates/typescript.ts +417 -0
  187. package/src/generators/typescript.ts +340 -0
  188. package/src/index.ts +13 -0
  189. package/src/state/index.ts +454 -0
  190. package/src/state/persistence.ts +230 -0
  191. package/src/types/cli.ts +146 -0
  192. package/src/types/consensus.ts +116 -0
  193. package/src/types/index.ts +64 -0
  194. package/src/types/project.ts +85 -0
  195. package/src/types/workflow.ts +149 -0
  196. package/src/workflow/consensus.ts +299 -0
  197. package/src/workflow/execution-mode.ts +517 -0
  198. package/src/workflow/index.ts +396 -0
  199. package/src/workflow/plan-mode.ts +356 -0
  200. package/src/workflow/test-runner.ts +345 -0
  201. package/tests/adapters/openai.test.ts +145 -0
  202. package/tests/config/config.test.ts +208 -0
  203. package/tests/generators/generators.test.ts +185 -0
  204. package/tests/types/consensus.test.ts +152 -0
  205. package/tests/types/project.test.ts +134 -0
  206. package/tests/workflow/consensus.test.ts +221 -0
  207. package/tests/workflow/test-runner.test.ts +214 -0
  208. package/tsconfig.json +25 -0
  209. package/vitest.config.ts +22 -0
@@ -0,0 +1,394 @@
1
+ /**
2
+ * TypeScript project templates
3
+ * Provides template files for TypeScript project generation
4
+ */
5
+ /**
6
+ * Generate package.json content
7
+ */
8
+ export function generatePackageJson(projectName, description) {
9
+ return JSON.stringify({
10
+ name: projectName,
11
+ version: '1.0.0',
12
+ description: description || 'Generated by Popeye CLI',
13
+ main: './dist/index.js',
14
+ type: 'module',
15
+ scripts: {
16
+ build: 'tsc',
17
+ dev: 'tsc --watch',
18
+ start: 'node dist/index.js',
19
+ test: 'vitest run',
20
+ 'test:watch': 'vitest',
21
+ 'test:coverage': 'vitest run --coverage',
22
+ lint: 'eslint src --ext .ts',
23
+ 'lint:fix': 'eslint src --ext .ts --fix',
24
+ format: 'prettier --write "src/**/*.ts"',
25
+ typecheck: 'tsc --noEmit',
26
+ clean: 'rm -rf dist',
27
+ },
28
+ keywords: [],
29
+ author: '',
30
+ license: 'MIT',
31
+ engines: {
32
+ node: '>=18.0.0',
33
+ },
34
+ dependencies: {},
35
+ devDependencies: {
36
+ '@types/node': '^20.17.6',
37
+ '@typescript-eslint/eslint-plugin': '^8.14.0',
38
+ '@typescript-eslint/parser': '^8.14.0',
39
+ '@vitest/coverage-v8': '^2.1.4',
40
+ eslint: '^9.14.0',
41
+ prettier: '^3.3.3',
42
+ typescript: '^5.6.3',
43
+ vitest: '^2.1.4',
44
+ },
45
+ }, null, 2);
46
+ }
47
+ /**
48
+ * Generate tsconfig.json content
49
+ */
50
+ export function generateTsconfig() {
51
+ return JSON.stringify({
52
+ compilerOptions: {
53
+ target: 'ES2022',
54
+ module: 'NodeNext',
55
+ moduleResolution: 'NodeNext',
56
+ lib: ['ES2022'],
57
+ outDir: './dist',
58
+ rootDir: './src',
59
+ strict: true,
60
+ esModuleInterop: true,
61
+ skipLibCheck: true,
62
+ forceConsistentCasingInFileNames: true,
63
+ declaration: true,
64
+ declarationMap: true,
65
+ sourceMap: true,
66
+ resolveJsonModule: true,
67
+ noImplicitAny: true,
68
+ noUnusedLocals: true,
69
+ noUnusedParameters: true,
70
+ noImplicitReturns: true,
71
+ noFallthroughCasesInSwitch: true,
72
+ },
73
+ include: ['src/**/*'],
74
+ exclude: ['node_modules', 'dist', 'tests'],
75
+ }, null, 2);
76
+ }
77
+ /**
78
+ * Generate vitest.config.ts content
79
+ */
80
+ export function generateVitestConfig() {
81
+ return `import { defineConfig } from 'vitest/config';
82
+
83
+ export default defineConfig({
84
+ test: {
85
+ globals: true,
86
+ environment: 'node',
87
+ coverage: {
88
+ provider: 'v8',
89
+ reporter: ['text', 'json', 'html'],
90
+ exclude: ['node_modules/', 'dist/', 'tests/'],
91
+ },
92
+ },
93
+ });
94
+ `;
95
+ }
96
+ /**
97
+ * Generate eslint.config.js content
98
+ */
99
+ export function generateEslintConfig() {
100
+ return `import eslint from '@eslint/js';
101
+ import tseslint from '@typescript-eslint/eslint-plugin';
102
+ import tsparser from '@typescript-eslint/parser';
103
+
104
+ export default [
105
+ eslint.configs.recommended,
106
+ {
107
+ files: ['src/**/*.ts'],
108
+ languageOptions: {
109
+ parser: tsparser,
110
+ parserOptions: {
111
+ ecmaVersion: 2022,
112
+ sourceType: 'module',
113
+ },
114
+ globals: {
115
+ console: 'readonly',
116
+ process: 'readonly',
117
+ Buffer: 'readonly',
118
+ __dirname: 'readonly',
119
+ __filename: 'readonly',
120
+ setTimeout: 'readonly',
121
+ clearTimeout: 'readonly',
122
+ setInterval: 'readonly',
123
+ clearInterval: 'readonly',
124
+ },
125
+ },
126
+ plugins: {
127
+ '@typescript-eslint': tseslint,
128
+ },
129
+ rules: {
130
+ ...tseslint.configs.recommended.rules,
131
+ '@typescript-eslint/explicit-function-return-type': 'warn',
132
+ '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
133
+ '@typescript-eslint/no-explicit-any': 'warn',
134
+ },
135
+ },
136
+ ];
137
+ `;
138
+ }
139
+ /**
140
+ * Generate .prettierrc content
141
+ */
142
+ export function generatePrettierrc() {
143
+ return JSON.stringify({
144
+ semi: true,
145
+ singleQuote: true,
146
+ tabWidth: 2,
147
+ trailingComma: 'es5',
148
+ printWidth: 100,
149
+ }, null, 2);
150
+ }
151
+ /**
152
+ * Generate main index.ts content
153
+ */
154
+ export function generateIndexTs(projectName) {
155
+ return `/**
156
+ * ${projectName}
157
+ *
158
+ * Generated by Popeye CLI
159
+ */
160
+
161
+ /**
162
+ * Main function
163
+ */
164
+ export function main(): void {
165
+ console.log('Hello from ${projectName}!');
166
+ }
167
+
168
+ // Run if executed directly
169
+ main();
170
+ `;
171
+ }
172
+ /**
173
+ * Generate test file content
174
+ */
175
+ export function generateTestFile(projectName) {
176
+ return `import { describe, it, expect } from 'vitest';
177
+ import { main } from '../src/index.js';
178
+
179
+ describe('${projectName}', () => {
180
+ describe('main', () => {
181
+ it('should run without errors', () => {
182
+ expect(() => main()).not.toThrow();
183
+ });
184
+ });
185
+
186
+ describe('placeholder tests', () => {
187
+ it('should pass basic assertion', () => {
188
+ expect(true).toBe(true);
189
+ });
190
+
191
+ it('should handle sample data', () => {
192
+ const data = { key: 'value', number: 42 };
193
+ expect(data.key).toBe('value');
194
+ expect(data.number).toBe(42);
195
+ });
196
+ });
197
+ });
198
+ `;
199
+ }
200
+ /**
201
+ * Generate Dockerfile content
202
+ */
203
+ export function generateDockerfile(_projectName) {
204
+ return `# Node.js base image
205
+ FROM node:20-slim as base
206
+
207
+ WORKDIR /app
208
+
209
+ # Copy package files
210
+ COPY package*.json ./
211
+
212
+ # Install dependencies
213
+ RUN npm ci --only=production
214
+
215
+ # Copy built files
216
+ COPY dist/ ./dist/
217
+
218
+ # Production stage
219
+ FROM base as production
220
+
221
+ # Create non-root user
222
+ RUN adduser --disabled-password --gecos '' appuser
223
+ USER appuser
224
+
225
+ CMD ["node", "dist/index.js"]
226
+
227
+ # Development stage
228
+ FROM node:20-slim as development
229
+
230
+ WORKDIR /app
231
+
232
+ COPY package*.json ./
233
+ RUN npm ci
234
+
235
+ COPY . .
236
+
237
+ CMD ["npm", "run", "dev"]
238
+ `;
239
+ }
240
+ /**
241
+ * Generate docker-compose.yml content
242
+ */
243
+ export function generateDockerCompose(projectName) {
244
+ return `version: "3.8"
245
+
246
+ services:
247
+ app:
248
+ build:
249
+ context: .
250
+ target: production
251
+ container_name: ${projectName}
252
+ restart: unless-stopped
253
+ env_file:
254
+ - .env
255
+ volumes:
256
+ - ./data:/app/data
257
+
258
+ dev:
259
+ build:
260
+ context: .
261
+ target: development
262
+ container_name: ${projectName}-dev
263
+ volumes:
264
+ - ./src:/app/src
265
+ - ./tests:/app/tests
266
+ command: ["npm", "run", "dev"]
267
+ `;
268
+ }
269
+ /**
270
+ * Generate .gitignore content
271
+ */
272
+ export function generateGitignore() {
273
+ return `# Dependencies
274
+ node_modules/
275
+
276
+ # Build output
277
+ dist/
278
+ build/
279
+
280
+ # IDE
281
+ .idea/
282
+ .vscode/
283
+ *.swp
284
+ *.swo
285
+
286
+ # Environment
287
+ .env
288
+ .env.local
289
+ .env.*.local
290
+
291
+ # Logs
292
+ *.log
293
+ npm-debug.log*
294
+ yarn-debug.log*
295
+ yarn-error.log*
296
+
297
+ # Testing
298
+ coverage/
299
+ .nyc_output/
300
+
301
+ # OS files
302
+ .DS_Store
303
+ Thumbs.db
304
+
305
+ # Project specific
306
+ .popeye/
307
+ data/
308
+ `;
309
+ }
310
+ /**
311
+ * Generate .env.example content
312
+ */
313
+ export function generateEnvExample() {
314
+ return `# Environment variables
315
+ # Copy this file to .env and fill in the values
316
+
317
+ # Application settings
318
+ NODE_ENV=development
319
+ DEBUG=true
320
+ LOG_LEVEL=info
321
+
322
+ # Add your environment variables below
323
+ `;
324
+ }
325
+ /**
326
+ * Generate README.md content
327
+ */
328
+ export function generateReadme(projectName, description) {
329
+ return `# ${projectName}
330
+
331
+ ${description || 'Generated by Popeye CLI'}
332
+
333
+ ## Installation
334
+
335
+ \`\`\`bash
336
+ npm install
337
+ \`\`\`
338
+
339
+ ## Usage
340
+
341
+ \`\`\`bash
342
+ # Build
343
+ npm run build
344
+
345
+ # Run
346
+ npm start
347
+
348
+ # Development mode
349
+ npm run dev
350
+ \`\`\`
351
+
352
+ ## Development
353
+
354
+ ### Running Tests
355
+
356
+ \`\`\`bash
357
+ npm test
358
+
359
+ # With coverage
360
+ npm run test:coverage
361
+
362
+ # Watch mode
363
+ npm run test:watch
364
+ \`\`\`
365
+
366
+ ### Code Quality
367
+
368
+ \`\`\`bash
369
+ # Lint
370
+ npm run lint
371
+
372
+ # Format
373
+ npm run format
374
+
375
+ # Type check
376
+ npm run typecheck
377
+ \`\`\`
378
+
379
+ ## Docker
380
+
381
+ \`\`\`bash
382
+ # Build and run with Docker Compose
383
+ docker-compose up --build
384
+
385
+ # Run in development mode
386
+ docker-compose run dev
387
+ \`\`\`
388
+
389
+ ## License
390
+
391
+ MIT
392
+ `;
393
+ }
394
+ //# sourceMappingURL=typescript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/generators/templates/typescript.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * TypeScript project generator
3
+ * Creates complete TypeScript project scaffolding
4
+ */
5
+ import type { ProjectSpec } from '../types/project.js';
6
+ /**
7
+ * Project generation result
8
+ */
9
+ export interface GenerationResult {
10
+ success: boolean;
11
+ projectDir: string;
12
+ filesCreated: string[];
13
+ error?: string;
14
+ }
15
+ /**
16
+ * Generate a complete TypeScript project
17
+ *
18
+ * @param spec - Project specification
19
+ * @param outputDir - Output directory
20
+ * @returns Generation result
21
+ */
22
+ export declare function generateTypeScriptProject(spec: ProjectSpec, outputDir: string): Promise<GenerationResult>;
23
+ /**
24
+ * Get the list of files that would be generated
25
+ *
26
+ * @param projectName - Project name
27
+ * @returns List of relative file paths
28
+ */
29
+ export declare function getTypeScriptProjectFiles(_projectName: string): string[];
30
+ /**
31
+ * Validate a TypeScript project structure
32
+ *
33
+ * @param projectDir - Project directory
34
+ * @returns Validation result
35
+ */
36
+ export declare function validateTypeScriptProject(projectDir: string): Promise<{
37
+ valid: boolean;
38
+ missingFiles: string[];
39
+ }>;
40
+ /**
41
+ * Add a new TypeScript module to an existing project
42
+ *
43
+ * @param projectDir - Project directory
44
+ * @param moduleName - Module name
45
+ * @returns Files created
46
+ */
47
+ export declare function addTypeScriptModule(projectDir: string, moduleName: string): Promise<string[]>;
48
+ /**
49
+ * Add a dependency to package.json
50
+ *
51
+ * @param projectDir - Project directory
52
+ * @param packageName - Package name
53
+ * @param version - Package version
54
+ * @param dev - Whether it's a dev dependency
55
+ */
56
+ export declare function addDependency(projectDir: string, packageName: string, version: string, dev?: boolean): Promise<void>;
57
+ /**
58
+ * Update package.json scripts
59
+ *
60
+ * @param projectDir - Project directory
61
+ * @param scripts - Scripts to add/update
62
+ */
63
+ export declare function updateScripts(projectDir: string, scripts: Record<string, string>): Promise<void>;
64
+ //# sourceMappingURL=typescript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/generators/typescript.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAgBvD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgBD;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CA8F3B;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBxE;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3E,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC,CAwBD;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAiEnB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,OAAe,GACnB,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAWf"}