motia 0.6.3-beta.130-601955 → 0.6.3-beta.130-426307

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 (141) hide show
  1. package/dist/cjs/cli.js +16 -40
  2. package/dist/cjs/create/index.d.ts +2 -2
  3. package/dist/cjs/create/index.js +3 -5
  4. package/dist/cjs/create/interactive.d.ts +2 -0
  5. package/dist/cjs/create/interactive.js +28 -19
  6. package/dist/cjs/create/pull-rules.d.ts +7 -0
  7. package/dist/cjs/create/pull-rules.js +28 -0
  8. package/dist/cjs/create/setup-template.js +5 -3
  9. package/dist/cjs/create/templates/index.js +1 -1
  10. package/dist/cjs/create/templates/index.ts +1 -1
  11. package/dist/cjs/cursor-rules/dot-files/.claude/CLAUDE.md +467 -0
  12. package/dist/cjs/cursor-rules/dot-files/.claude/README.md +97 -0
  13. package/dist/cjs/cursor-rules/dot-files/.claude/agents/code-reviewer.md +153 -0
  14. package/dist/cjs/cursor-rules/dot-files/.claude/agents/debugger.md +259 -0
  15. package/dist/cjs/cursor-rules/dot-files/.claude/agents/test-runner.md +268 -0
  16. package/dist/cjs/cursor-rules/dot-files/.claude/commands/add-authentication.md +491 -0
  17. package/dist/cjs/cursor-rules/dot-files/.claude/commands/ai-ml-patterns.md +748 -0
  18. package/dist/cjs/cursor-rules/dot-files/.claude/commands/authentication.md +515 -0
  19. package/dist/cjs/cursor-rules/dot-files/.claude/commands/backend-types.md +719 -0
  20. package/dist/cjs/cursor-rules/dot-files/.claude/commands/build-api.md +407 -0
  21. package/dist/cjs/cursor-rules/dot-files/.claude/commands/claude-workflows.md +1032 -0
  22. package/dist/cjs/cursor-rules/dot-files/.claude/commands/complete-backend.md +345 -0
  23. package/dist/cjs/cursor-rules/dot-files/.claude/commands/create-api.md +96 -0
  24. package/dist/cjs/cursor-rules/dot-files/.claude/commands/data-processing.md +977 -0
  25. package/dist/cjs/cursor-rules/dot-files/.claude/commands/integrate-ai.md +852 -0
  26. package/dist/cjs/cursor-rules/dot-files/.claude/commands/javascript-patterns.md +678 -0
  27. package/dist/cjs/cursor-rules/dot-files/.claude/commands/multi-language-workflow.md +756 -0
  28. package/dist/cjs/cursor-rules/dot-files/.claude/commands/multi-language.md +141 -0
  29. package/dist/cjs/cursor-rules/dot-files/.claude/commands/process-background-jobs.md +587 -0
  30. package/dist/cjs/cursor-rules/dot-files/.claude/commands/process-events.md +89 -0
  31. package/dist/cjs/cursor-rules/dot-files/.claude/hooks/pre-commit.sh +84 -0
  32. package/dist/cjs/cursor-rules/dot-files/.claude/settings.json +37 -0
  33. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/ai-agent-patterns.mdc +725 -0
  34. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/api-design-patterns.mdc +740 -0
  35. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/api-steps.mdc +230 -0
  36. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/architecture.mdc +189 -0
  37. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/authentication-patterns.mdc +620 -0
  38. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/background-job-patterns.mdc +628 -0
  39. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/complete-application-patterns.mdc +433 -0
  40. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/complete-backend-generator.mdc +415 -0
  41. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/cron-steps.mdc +257 -0
  42. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/event-steps.mdc +504 -0
  43. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/instructions.mdc +15 -0
  44. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/multi-language-workflows.mdc +1059 -0
  45. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/noop-steps.mdc +57 -0
  46. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/production-deployment.mdc +668 -0
  47. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/realtime-streaming.mdc +656 -0
  48. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/state-management.mdc +371 -0
  49. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/steps.mdc +373 -0
  50. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/testing.mdc +329 -0
  51. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/typescript.mdc +409 -0
  52. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/ui-steps.mdc +90 -0
  53. package/dist/cjs/cursor-rules/dot-files/.cursor/rules/workflow-patterns.mdc +938 -0
  54. package/dist/cjs/cursor-rules/dot-files/AGENTS.md +397 -0
  55. package/dist/cjs/cursor-rules/dot-files/README.md +58 -0
  56. package/dist/esm/cli.js +16 -40
  57. package/dist/esm/create/index.d.ts +2 -2
  58. package/dist/esm/create/index.js +3 -5
  59. package/dist/esm/create/interactive.d.ts +2 -0
  60. package/dist/esm/create/interactive.js +28 -19
  61. package/dist/esm/create/pull-rules.d.ts +7 -0
  62. package/dist/esm/create/pull-rules.js +21 -0
  63. package/dist/esm/create/setup-template.js +5 -3
  64. package/dist/esm/create/templates/index.js +1 -1
  65. package/dist/esm/create/templates/index.ts +1 -1
  66. package/dist/esm/cursor-rules/dot-files/.claude/CLAUDE.md +467 -0
  67. package/dist/esm/cursor-rules/dot-files/.claude/README.md +97 -0
  68. package/dist/esm/cursor-rules/dot-files/.claude/agents/code-reviewer.md +153 -0
  69. package/dist/esm/cursor-rules/dot-files/.claude/agents/debugger.md +259 -0
  70. package/dist/esm/cursor-rules/dot-files/.claude/agents/test-runner.md +268 -0
  71. package/dist/esm/cursor-rules/dot-files/.claude/commands/add-authentication.md +491 -0
  72. package/dist/esm/cursor-rules/dot-files/.claude/commands/ai-ml-patterns.md +748 -0
  73. package/dist/esm/cursor-rules/dot-files/.claude/commands/authentication.md +515 -0
  74. package/dist/esm/cursor-rules/dot-files/.claude/commands/backend-types.md +719 -0
  75. package/dist/esm/cursor-rules/dot-files/.claude/commands/build-api.md +407 -0
  76. package/dist/esm/cursor-rules/dot-files/.claude/commands/claude-workflows.md +1032 -0
  77. package/dist/esm/cursor-rules/dot-files/.claude/commands/complete-backend.md +345 -0
  78. package/dist/esm/cursor-rules/dot-files/.claude/commands/create-api.md +96 -0
  79. package/dist/esm/cursor-rules/dot-files/.claude/commands/data-processing.md +977 -0
  80. package/dist/esm/cursor-rules/dot-files/.claude/commands/integrate-ai.md +852 -0
  81. package/dist/esm/cursor-rules/dot-files/.claude/commands/javascript-patterns.md +678 -0
  82. package/dist/esm/cursor-rules/dot-files/.claude/commands/multi-language-workflow.md +756 -0
  83. package/dist/esm/cursor-rules/dot-files/.claude/commands/multi-language.md +141 -0
  84. package/dist/esm/cursor-rules/dot-files/.claude/commands/process-background-jobs.md +587 -0
  85. package/dist/esm/cursor-rules/dot-files/.claude/commands/process-events.md +89 -0
  86. package/dist/esm/cursor-rules/dot-files/.claude/hooks/pre-commit.sh +84 -0
  87. package/dist/esm/cursor-rules/dot-files/.claude/settings.json +37 -0
  88. package/dist/esm/cursor-rules/dot-files/.cursor/rules/ai-agent-patterns.mdc +725 -0
  89. package/dist/esm/cursor-rules/dot-files/.cursor/rules/api-design-patterns.mdc +740 -0
  90. package/dist/esm/cursor-rules/dot-files/.cursor/rules/api-steps.mdc +230 -0
  91. package/dist/esm/cursor-rules/dot-files/.cursor/rules/architecture.mdc +189 -0
  92. package/dist/esm/cursor-rules/dot-files/.cursor/rules/authentication-patterns.mdc +620 -0
  93. package/dist/esm/cursor-rules/dot-files/.cursor/rules/background-job-patterns.mdc +628 -0
  94. package/dist/esm/cursor-rules/dot-files/.cursor/rules/complete-application-patterns.mdc +433 -0
  95. package/dist/esm/cursor-rules/dot-files/.cursor/rules/complete-backend-generator.mdc +415 -0
  96. package/dist/esm/cursor-rules/dot-files/.cursor/rules/cron-steps.mdc +257 -0
  97. package/dist/esm/cursor-rules/dot-files/.cursor/rules/event-steps.mdc +504 -0
  98. package/dist/esm/cursor-rules/dot-files/.cursor/rules/instructions.mdc +15 -0
  99. package/dist/esm/cursor-rules/dot-files/.cursor/rules/multi-language-workflows.mdc +1059 -0
  100. package/dist/esm/cursor-rules/dot-files/.cursor/rules/noop-steps.mdc +57 -0
  101. package/dist/esm/cursor-rules/dot-files/.cursor/rules/production-deployment.mdc +668 -0
  102. package/dist/esm/cursor-rules/dot-files/.cursor/rules/realtime-streaming.mdc +656 -0
  103. package/dist/esm/cursor-rules/dot-files/.cursor/rules/state-management.mdc +371 -0
  104. package/dist/esm/cursor-rules/dot-files/.cursor/rules/steps.mdc +373 -0
  105. package/dist/esm/cursor-rules/dot-files/.cursor/rules/testing.mdc +329 -0
  106. package/dist/esm/cursor-rules/dot-files/.cursor/rules/typescript.mdc +409 -0
  107. package/dist/esm/cursor-rules/dot-files/.cursor/rules/ui-steps.mdc +90 -0
  108. package/dist/esm/cursor-rules/dot-files/.cursor/rules/workflow-patterns.mdc +938 -0
  109. package/dist/esm/cursor-rules/dot-files/AGENTS.md +397 -0
  110. package/dist/esm/cursor-rules/dot-files/README.md +58 -0
  111. package/dist/types/create/index.d.ts +2 -2
  112. package/dist/types/create/interactive.d.ts +2 -0
  113. package/dist/types/create/pull-rules.d.ts +7 -0
  114. package/package.json +4 -4
  115. package/dist/cjs/cursor-rules/index.d.ts +0 -8
  116. package/dist/cjs/cursor-rules/index.js +0 -269
  117. package/dist/esm/cursor-rules/index.d.ts +0 -8
  118. package/dist/esm/cursor-rules/index.js +0 -263
  119. package/dist/types/cursor-rules/index.d.ts +0 -8
  120. /package/dist/cjs/create/templates/{typescript → nodejs}/motia-workbench.json +0 -0
  121. /package/dist/cjs/create/templates/{typescript → nodejs}/services/pet-store.ts.txt +0 -0
  122. /package/dist/cjs/create/templates/{typescript → nodejs}/services/types.ts.txt +0 -0
  123. /package/dist/cjs/create/templates/{typescript → nodejs}/steps/api.step.ts-features.json.txt +0 -0
  124. /package/dist/cjs/create/templates/{typescript → nodejs}/steps/api.step.ts.txt +0 -0
  125. /package/dist/cjs/create/templates/{typescript → nodejs}/steps/notification.step.ts.txt +0 -0
  126. /package/dist/cjs/create/templates/{typescript → nodejs}/steps/process-food-order.step.ts-features.json.txt +0 -0
  127. /package/dist/cjs/create/templates/{typescript → nodejs}/steps/process-food-order.step.ts.txt +0 -0
  128. /package/dist/cjs/create/templates/{typescript → nodejs}/steps/state-audit-cron.step.ts-features.json.txt +0 -0
  129. /package/dist/cjs/create/templates/{typescript → nodejs}/steps/state-audit-cron.step.ts.txt +0 -0
  130. /package/dist/cjs/create/templates/{typescript → nodejs}/tutorial.tsx.txt +0 -0
  131. /package/dist/esm/create/templates/{typescript → nodejs}/motia-workbench.json +0 -0
  132. /package/dist/esm/create/templates/{typescript → nodejs}/services/pet-store.ts.txt +0 -0
  133. /package/dist/esm/create/templates/{typescript → nodejs}/services/types.ts.txt +0 -0
  134. /package/dist/esm/create/templates/{typescript → nodejs}/steps/api.step.ts-features.json.txt +0 -0
  135. /package/dist/esm/create/templates/{typescript → nodejs}/steps/api.step.ts.txt +0 -0
  136. /package/dist/esm/create/templates/{typescript → nodejs}/steps/notification.step.ts.txt +0 -0
  137. /package/dist/esm/create/templates/{typescript → nodejs}/steps/process-food-order.step.ts-features.json.txt +0 -0
  138. /package/dist/esm/create/templates/{typescript → nodejs}/steps/process-food-order.step.ts.txt +0 -0
  139. /package/dist/esm/create/templates/{typescript → nodejs}/steps/state-audit-cron.step.ts-features.json.txt +0 -0
  140. /package/dist/esm/create/templates/{typescript → nodejs}/steps/state-audit-cron.step.ts.txt +0 -0
  141. /package/dist/esm/create/templates/{typescript → nodejs}/tutorial.tsx.txt +0 -0
package/dist/cjs/cli.js CHANGED
@@ -24,10 +24,25 @@ commander_1.program
24
24
  .command('create')
25
25
  .description('Create a new motia project')
26
26
  .option('-n, --name <project name>', 'The name for your project, used to create a directory, use ./ or . to create it under the existing directory')
27
+ .option('-t, --template <template>', 'The template to use for your project')
27
28
  .option('-i, --interactive', 'Use interactive prompts to create project') // it's default
29
+ .option('-c, --confirm', 'Confirm the project creation', false)
28
30
  .action((0, config_utils_1.handler)(async (arg, context) => {
29
31
  const { createInteractive } = require('./create/interactive');
30
- await createInteractive({ name: arg.name }, context);
32
+ await createInteractive({
33
+ name: arg.name,
34
+ template: arg.template,
35
+ confirm: !!arg.confirm,
36
+ }, context);
37
+ }));
38
+ commander_1.program
39
+ .command('rules')
40
+ .command('pull')
41
+ .description('Install essential AI development guides (AGENTS.md, CLAUDE.md) and optional Cursor IDE rules')
42
+ .option('-f, --force', 'Overwrite existing files')
43
+ .action((0, config_utils_1.handler)(async (arg, context) => {
44
+ const { pullRules } = require('./create/pull-rules');
45
+ await pullRules({ force: arg.force, rootDir: process.cwd() }, context);
31
46
  }));
32
47
  commander_1.program
33
48
  .command('generate-types')
@@ -149,44 +164,5 @@ docker
149
164
  await build(arg.projectName);
150
165
  process.exit(0);
151
166
  });
152
- const rules = commander_1.program
153
- .command('rules')
154
- .description('Manage Motia AI development guides (AGENTS.md, CLAUDE.md) and IDE-specific rules');
155
- rules
156
- .command('pull')
157
- .description('Install essential AI development guides (AGENTS.md, CLAUDE.md) and optional Cursor IDE rules')
158
- .option('-f, --force', 'Overwrite existing files')
159
- .action(async (options) => {
160
- const { handleAIGuides } = require('./cursor-rules');
161
- await handleAIGuides({ force: options.force });
162
- });
163
- rules
164
- .command('list')
165
- .description('List available AI development guides and IDE rules')
166
- .action(async () => {
167
- const { handleAIGuides } = require('./cursor-rules');
168
- await handleAIGuides({ list: true });
169
- });
170
- rules
171
- .command('show <rule-name>')
172
- .description('Show content of a specific AI guide or IDE rule')
173
- .action(async (ruleName) => {
174
- const { handleAIGuides } = require('./cursor-rules');
175
- await handleAIGuides({ show: ruleName });
176
- });
177
- rules
178
- .command('remove')
179
- .description('Remove AI development guides and IDE rules from your project')
180
- .action(async () => {
181
- const { handleAIGuides } = require('./cursor-rules');
182
- await handleAIGuides({ remove: true });
183
- });
184
- rules
185
- .command('version')
186
- .description('Show AI development guides version')
187
- .action(async () => {
188
- const { handleAIGuides } = require('./cursor-rules');
189
- await handleAIGuides({ version: true });
190
- });
191
167
  commander_1.program.version(version_1.version, '-V, --version', 'Output the current version');
192
168
  commander_1.program.parse(process.argv);
@@ -1,8 +1,8 @@
1
1
  import { CliContext } from '../cloud/config-utils';
2
2
  type Args = {
3
3
  projectName: string;
4
- template?: string;
5
- cursorEnabled?: boolean;
4
+ template: string;
5
+ cursorEnabled: boolean;
6
6
  context: CliContext;
7
7
  skipTutorialTemplates?: boolean;
8
8
  };
@@ -12,6 +12,7 @@ const generate_types_1 = require("../generate-types");
12
12
  const version_1 = require("../version");
13
13
  const setup_template_1 = require("./setup-template");
14
14
  const utils_1 = require("./utils");
15
+ const pull_rules_1 = require("./pull-rules");
15
16
  // eslint-disable-next-line @typescript-eslint/no-require-imports
16
17
  require('ts-node').register({
17
18
  transpileOnly: true,
@@ -170,11 +171,8 @@ const create = async ({ projectName, template, cursorEnabled, context }) => {
170
171
  fs_1.default.writeFileSync(path_1.default.join(rootDir, '.gitignore'), gitignoreContent);
171
172
  context.log('gitignore-created', (message) => message.tag('success').append('File').append('.gitignore', 'cyan').append('has been created.'));
172
173
  }
173
- const cursorTemplateDir = path_1.default.join(__dirname, '../../dot-files/.cursor');
174
- const cursorTargetDir = path_1.default.join(rootDir, '.cursor');
175
- if (cursorEnabled && !(0, utils_1.checkIfDirectoryExists)(cursorTargetDir)) {
176
- fs_1.default.cpSync(cursorTemplateDir, cursorTargetDir, { recursive: true });
177
- context.log('cursor-folder-created', (message) => message.tag('success').append('Folder').append('.cursor', 'cyan').append('has been created.'));
174
+ if (cursorEnabled) {
175
+ await (0, pull_rules_1.pullRules)({ force: true, rootDir }, context);
178
176
  }
179
177
  if (template) {
180
178
  await (0, setup_template_1.setupTemplate)(template, rootDir, context);
@@ -1,6 +1,8 @@
1
1
  import { CliContext } from '../cloud/config-utils';
2
2
  interface CreateInteractiveArgs {
3
3
  name?: string;
4
+ template?: string;
5
+ confirm?: boolean;
4
6
  }
5
7
  export declare const createInteractive: (args: CreateInteractiveArgs, context: CliContext) => Promise<void>;
6
8
  export {};
@@ -8,27 +8,30 @@ const inquirer_1 = __importDefault(require("inquirer"));
8
8
  const colors_1 = __importDefault(require("colors"));
9
9
  const index_1 = require("./index");
10
10
  const choices = {
11
- typescript: 'Base (TypeScript)',
11
+ nodejs: 'Base (TypeScript)',
12
12
  python: 'Base (Python)',
13
13
  };
14
14
  const createInteractive = async (args, context) => {
15
15
  context.log('welcome', (message) => message.append('\nšŸš€ ' + colors_1.default.bold('Welcome to Motia Project Creator!')));
16
- const questions = [
17
- {
16
+ const questions = [];
17
+ let name = args.name;
18
+ let template = args.template;
19
+ if (!args.template) {
20
+ questions.push({
18
21
  type: 'list',
19
22
  name: 'template',
20
- message: '1. What template do you want to use? (Use arrow keys)',
23
+ message: 'What template do you want to use? (Use arrow keys)',
21
24
  choices: Object.keys(choices).map((key) => ({
22
25
  name: choices[key],
23
26
  value: key,
24
27
  })),
25
- },
26
- ];
28
+ });
29
+ }
27
30
  if (!args.name) {
28
31
  questions.push({
29
32
  type: 'input',
30
33
  name: 'projectName',
31
- message: '2. Project name (leave blank to use current folder):',
34
+ message: 'Project name (leave blank to use current folder):',
32
35
  validate: (input) => {
33
36
  if (input && input.trim().length > 0) {
34
37
  if (!/^[a-zA-Z0-9][a-zA-Z0-9-_]*$/.test(input.trim())) {
@@ -40,21 +43,27 @@ const createInteractive = async (args, context) => {
40
43
  filter: (input) => input.trim(),
41
44
  });
42
45
  }
43
- questions.push({
44
- type: 'confirm',
45
- name: 'proceed',
46
- message: '3. Proceed? [Y/n]:',
47
- default: true,
48
- });
49
- const answers = await inquirer_1.default.prompt(questions);
50
- if (!answers.proceed) {
51
- context.log('cancelled', (message) => message.tag('info').append('\nāŒ Project creation cancelled.'));
52
- return;
46
+ if (!args.confirm) {
47
+ questions.push({
48
+ type: 'confirm',
49
+ name: 'proceed',
50
+ message: 'Proceed? [Y/n]:',
51
+ default: true,
52
+ });
53
+ }
54
+ if (questions.length > 0) {
55
+ const answers = await inquirer_1.default.prompt(questions);
56
+ if (!args.confirm && !answers.proceed) {
57
+ context.log('cancelled', (message) => message.tag('info').append('\nāŒ Project creation cancelled.'));
58
+ return;
59
+ }
60
+ name = args.name || answers.projectName;
61
+ template = args.template || answers.template;
53
62
  }
54
63
  context.log('creating', (message) => message.append('\nšŸ”Ø Creating your Motia project...\n'));
55
64
  await (0, index_1.create)({
56
- projectName: args.name || answers.projectName || '.',
57
- template: answers.template,
65
+ projectName: name || '.',
66
+ template: template || 'nodejs',
58
67
  cursorEnabled: true, // Default to true for cursor rules
59
68
  context,
60
69
  });
@@ -0,0 +1,7 @@
1
+ import { CliContext } from '../cloud/config-utils';
2
+ type PullRulesArgs = {
3
+ rootDir: string;
4
+ force?: boolean;
5
+ };
6
+ export declare const pullRules: (args: PullRulesArgs, context: CliContext) => Promise<void>;
7
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.pullRules = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const pullRules = async (args, context) => {
10
+ const cursorTemplateDir = path_1.default.join(__dirname, '..', 'cursor-rules', 'dot-files');
11
+ const files = fs_1.default.readdirSync(cursorTemplateDir);
12
+ for (const file of files) {
13
+ const targetFile = path_1.default.join(args.rootDir, file);
14
+ const isFolder = fs_1.default.statSync(path_1.default.join(cursorTemplateDir, file)).isDirectory();
15
+ const type = isFolder ? 'Folder' : 'File';
16
+ if (args.force || !fs_1.default.existsSync(targetFile)) {
17
+ fs_1.default.cpSync(path_1.default.join(cursorTemplateDir, file), targetFile, {
18
+ recursive: isFolder,
19
+ force: true,
20
+ });
21
+ context.log(`${file}-created`, (message) => message.tag('success').append(type).append(file, 'cyan').append('has been created.'));
22
+ }
23
+ else {
24
+ context.log(`${file}-skipped`, (message) => message.tag('warning').append(type).append(file, 'cyan').append('already exists, skipping...'));
25
+ }
26
+ }
27
+ };
28
+ exports.pullRules = pullRules;
@@ -4,9 +4,11 @@ exports.setupTemplate = void 0;
4
4
  const templates_1 = require("./templates");
5
5
  const setupTemplate = async (template, rootDir, context) => {
6
6
  if (!template || !(template in templates_1.templates)) {
7
- context.log('template-not-found', (message) => message.tag('failed').append(`Template ${template} not found, please use one of the following:`));
8
- context.log('available-templates', (message) => message.tag('info').append(`Available templates: \n\n ${Object.keys(templates_1.templates).join('\n')}`));
9
- return;
7
+ context.log('template-not-found', (message) => message
8
+ .tag('failed')
9
+ .append(`Template ${template} not found, please use one of the following:`)
10
+ .append(Object.keys(templates_1.templates).join(', '), 'gray'));
11
+ process.exit(1);
10
12
  }
11
13
  await templates_1.templates[template](rootDir, context);
12
14
  };
@@ -3,6 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.templates = void 0;
4
4
  const generate_1 = require("./generate");
5
5
  exports.templates = {
6
- typescript: (0, generate_1.generateTemplateSteps)('typescript'),
6
+ nodejs: (0, generate_1.generateTemplateSteps)('nodejs'),
7
7
  python: (0, generate_1.generateTemplateSteps)('python'),
8
8
  };
@@ -1,6 +1,6 @@
1
1
  import { generateTemplateSteps, Generator } from './generate'
2
2
 
3
3
  export const templates: Record<string, Generator> = {
4
- typescript: generateTemplateSteps('typescript'),
4
+ nodejs: generateTemplateSteps('nodejs'),
5
5
  python: generateTemplateSteps('python'),
6
6
  }