@veloxts/cli 0.4.1 → 0.4.3

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 (71) hide show
  1. package/README.md +23 -144
  2. package/dist/cli.js +4 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/db.d.ts +12 -0
  5. package/dist/commands/db.d.ts.map +1 -0
  6. package/dist/commands/db.js +18 -0
  7. package/dist/commands/db.js.map +1 -0
  8. package/dist/commands/procedures.d.ts +12 -0
  9. package/dist/commands/procedures.d.ts.map +1 -0
  10. package/dist/commands/procedures.js +153 -0
  11. package/dist/commands/procedures.js.map +1 -0
  12. package/dist/generators/generators/factory.d.ts +36 -0
  13. package/dist/generators/generators/factory.d.ts.map +1 -0
  14. package/dist/generators/generators/factory.js +85 -0
  15. package/dist/generators/generators/factory.js.map +1 -0
  16. package/dist/generators/generators/index.d.ts +2 -0
  17. package/dist/generators/generators/index.d.ts.map +1 -1
  18. package/dist/generators/generators/index.js +8 -0
  19. package/dist/generators/generators/index.js.map +1 -1
  20. package/dist/generators/generators/seeder.d.ts +36 -0
  21. package/dist/generators/generators/seeder.d.ts.map +1 -0
  22. package/dist/generators/generators/seeder.js +99 -0
  23. package/dist/generators/generators/seeder.js.map +1 -0
  24. package/dist/generators/templates/factory.d.ts +26 -0
  25. package/dist/generators/templates/factory.d.ts.map +1 -0
  26. package/dist/generators/templates/factory.js +125 -0
  27. package/dist/generators/templates/factory.js.map +1 -0
  28. package/dist/generators/templates/seeder.d.ts +34 -0
  29. package/dist/generators/templates/seeder.d.ts.map +1 -0
  30. package/dist/generators/templates/seeder.js +129 -0
  31. package/dist/generators/templates/seeder.js.map +1 -0
  32. package/dist/index.d.ts +5 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +5 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/migrations/rollback-runner.d.ts.map +1 -1
  37. package/dist/migrations/rollback-runner.js +13 -1
  38. package/dist/migrations/rollback-runner.js.map +1 -1
  39. package/dist/seeding/commands/seed.d.ts +11 -0
  40. package/dist/seeding/commands/seed.d.ts.map +1 -0
  41. package/dist/seeding/commands/seed.js +268 -0
  42. package/dist/seeding/commands/seed.js.map +1 -0
  43. package/dist/seeding/errors.d.ts +119 -0
  44. package/dist/seeding/errors.d.ts.map +1 -0
  45. package/dist/seeding/errors.js +191 -0
  46. package/dist/seeding/errors.js.map +1 -0
  47. package/dist/seeding/factory.d.ts +162 -0
  48. package/dist/seeding/factory.d.ts.map +1 -0
  49. package/dist/seeding/factory.js +250 -0
  50. package/dist/seeding/factory.js.map +1 -0
  51. package/dist/seeding/index.d.ts +31 -0
  52. package/dist/seeding/index.d.ts.map +1 -0
  53. package/dist/seeding/index.js +41 -0
  54. package/dist/seeding/index.js.map +1 -0
  55. package/dist/seeding/loader.d.ts +41 -0
  56. package/dist/seeding/loader.d.ts.map +1 -0
  57. package/dist/seeding/loader.js +210 -0
  58. package/dist/seeding/loader.js.map +1 -0
  59. package/dist/seeding/registry.d.ts +116 -0
  60. package/dist/seeding/registry.d.ts.map +1 -0
  61. package/dist/seeding/registry.js +298 -0
  62. package/dist/seeding/registry.js.map +1 -0
  63. package/dist/seeding/runner.d.ts +88 -0
  64. package/dist/seeding/runner.d.ts.map +1 -0
  65. package/dist/seeding/runner.js +254 -0
  66. package/dist/seeding/runner.js.map +1 -0
  67. package/dist/seeding/types.d.ts +247 -0
  68. package/dist/seeding/types.d.ts.map +1 -0
  69. package/dist/seeding/types.js +7 -0
  70. package/dist/seeding/types.js.map +1 -0
  71. package/package.json +6 -6
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Seeder Generator
3
+ *
4
+ * Generates seeder files for VeloxTS applications.
5
+ *
6
+ * Usage:
7
+ * velox generate seeder <name> [options]
8
+ * velox g s <name> [options]
9
+ *
10
+ * Examples:
11
+ * velox generate seeder user # Creates UserSeeder
12
+ * velox generate seeder post --factory # Also creates PostFactory
13
+ */
14
+ import { BaseGenerator } from '../base.js';
15
+ import { type SeederOptions } from '../templates/seeder.js';
16
+ import type { GeneratorConfig, GeneratorMetadata, GeneratorOption, GeneratorOutput } from '../types.js';
17
+ /**
18
+ * Seeder generator - creates seeder files for database seeding
19
+ */
20
+ export declare class SeederGenerator extends BaseGenerator<SeederOptions> {
21
+ readonly metadata: GeneratorMetadata;
22
+ readonly options: ReadonlyArray<GeneratorOption>;
23
+ /**
24
+ * Validate and transform raw options
25
+ */
26
+ validateOptions(raw: Record<string, unknown>): SeederOptions;
27
+ /**
28
+ * Generate seeder files
29
+ */
30
+ generate(config: GeneratorConfig<SeederOptions>): Promise<GeneratorOutput>;
31
+ }
32
+ /**
33
+ * Create a new seeder generator instance
34
+ */
35
+ export declare function createSeederGenerator(): SeederGenerator;
36
+ //# sourceMappingURL=seeder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seeder.d.ts","sourceRoot":"","sources":["../../../src/generators/generators/seeder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAEV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,aAAa,CAAC;AAMrB;;GAEG;AACH,qBAAa,eAAgB,SAAQ,aAAa,CAAC,aAAa,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAelC;IAEF,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAQ9C;IAEF;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa;IAM5D;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;CAiCjF;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Seeder Generator
3
+ *
4
+ * Generates seeder files for VeloxTS applications.
5
+ *
6
+ * Usage:
7
+ * velox generate seeder <name> [options]
8
+ * velox g s <name> [options]
9
+ *
10
+ * Examples:
11
+ * velox generate seeder user # Creates UserSeeder
12
+ * velox generate seeder post --factory # Also creates PostFactory
13
+ */
14
+ import { BaseGenerator } from '../base.js';
15
+ import { factoryTemplate, getFactoryPath } from '../templates/factory.js';
16
+ import { getSeederInstructions, getSeederPath, seederTemplate, } from '../templates/seeder.js';
17
+ // ============================================================================
18
+ // Generator Implementation
19
+ // ============================================================================
20
+ /**
21
+ * Seeder generator - creates seeder files for database seeding
22
+ */
23
+ export class SeederGenerator extends BaseGenerator {
24
+ metadata = {
25
+ name: 'seeder',
26
+ description: 'Generate a database seeder file',
27
+ longDescription: `
28
+ Generate a VeloxTS seeder file for populating the database with initial or test data.
29
+
30
+ Seeders are stored in src/database/seeders/ and implement the Seeder interface.
31
+ They can have dependencies on other seeders and are executed in the correct order.
32
+
33
+ Examples:
34
+ velox generate seeder user # Creates UserSeeder.ts
35
+ velox generate seeder post --factory # Creates PostSeeder.ts and PostFactory.ts
36
+ `,
37
+ aliases: ['s', 'seed'],
38
+ category: 'database',
39
+ };
40
+ options = [
41
+ {
42
+ name: 'factory',
43
+ short: 'f',
44
+ description: 'Also generate a factory for this model',
45
+ type: 'boolean',
46
+ default: false,
47
+ },
48
+ ];
49
+ /**
50
+ * Validate and transform raw options
51
+ */
52
+ validateOptions(raw) {
53
+ return {
54
+ factory: Boolean(raw.factory ?? false),
55
+ };
56
+ }
57
+ /**
58
+ * Generate seeder files
59
+ */
60
+ async generate(config) {
61
+ const context = this.createContext(config);
62
+ const { entity, options } = context;
63
+ const files = [];
64
+ // Generate seeder file
65
+ const seederContent = seederTemplate(context);
66
+ files.push({
67
+ path: getSeederPath(entity.pascal),
68
+ content: seederContent,
69
+ });
70
+ // Generate factory if requested
71
+ if (options.factory) {
72
+ const factoryContent = factoryTemplate({
73
+ entity: context.entity,
74
+ project: context.project,
75
+ options: {},
76
+ });
77
+ files.push({
78
+ path: getFactoryPath(entity.pascal),
79
+ content: factoryContent,
80
+ });
81
+ }
82
+ // Generate post-creation instructions
83
+ const postInstructions = getSeederInstructions(entity.pascal, Boolean(options.factory));
84
+ return {
85
+ files,
86
+ postInstructions,
87
+ };
88
+ }
89
+ }
90
+ // ============================================================================
91
+ // Export
92
+ // ============================================================================
93
+ /**
94
+ * Create a new seeder generator instance
95
+ */
96
+ export function createSeederGenerator() {
97
+ return new SeederGenerator();
98
+ }
99
+ //# sourceMappingURL=seeder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seeder.js","sourceRoot":"","sources":["../../../src/generators/generators/seeder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,aAAa,EAEb,cAAc,GACf,MAAM,wBAAwB,CAAC;AAShC,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,aAA4B;IACtD,QAAQ,GAAsB;QACrC,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,iCAAiC;QAC9C,eAAe,EAAE;;;;;;;;;CASpB;QACG,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,UAAU;KACrB,CAAC;IAEO,OAAO,GAAmC;QACjD;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,wCAAwC;YACrD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;KACF,CAAC;IAEF;;OAEG;IACH,eAAe,CAAC,GAA4B;QAC1C,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC;SACvC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAsC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QACpC,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,uBAAuB;QACvB,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;YAClC,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,gCAAgC;QAChC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,cAAc,GAAG,eAAe,CAAC;gBACrC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;gBACnC,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;QACL,CAAC;QAED,sCAAsC;QACtC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAExF,OAAO;YACL,KAAK;YACL,gBAAgB;SACjB,CAAC;IACJ,CAAC;CACF;AAED,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,eAAe,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Factory Templates
3
+ *
4
+ * Template functions for generating factory files.
5
+ */
6
+ import type { TemplateContext } from '../types.js';
7
+ /**
8
+ * Options for factory generation
9
+ */
10
+ export interface FactoryOptions {
11
+ /** Include a model type import hint */
12
+ model?: string;
13
+ }
14
+ /**
15
+ * Get the path for a factory file
16
+ */
17
+ export declare function getFactoryPath(pascalName: string): string;
18
+ /**
19
+ * Generate factory file content
20
+ */
21
+ export declare function factoryTemplate(context: TemplateContext<FactoryOptions>): string;
22
+ /**
23
+ * Get post-generation instructions
24
+ */
25
+ export declare function getFactoryInstructions(pascalName: string): string;
26
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/generators/templates/factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAMnD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEzD;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,cAAc,CAAC,GAAG,MAAM,CAgFhF;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAiBjE"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Factory Templates
3
+ *
4
+ * Template functions for generating factory files.
5
+ */
6
+ // ============================================================================
7
+ // Path Helpers
8
+ // ============================================================================
9
+ /**
10
+ * Get the path for a factory file
11
+ */
12
+ export function getFactoryPath(pascalName) {
13
+ return `src/database/factories/${pascalName}Factory.ts`;
14
+ }
15
+ // ============================================================================
16
+ // Templates
17
+ // ============================================================================
18
+ /**
19
+ * Generate factory file content
20
+ */
21
+ export function factoryTemplate(context) {
22
+ const { entity } = context;
23
+ return `/**
24
+ * ${entity.pascal}Factory
25
+ *
26
+ * Factory for generating ${entity.pascal} model instances with fake data.
27
+ *
28
+ * Usage:
29
+ * const user = await factory.get(${entity.pascal}Factory).create();
30
+ * const users = await factory.get(${entity.pascal}Factory).createMany(10);
31
+ * const admin = await factory.get(${entity.pascal}Factory).state('admin').create();
32
+ */
33
+
34
+ import { BaseFactory, type PrismaClientLike } from '@veloxts/cli';
35
+ import { faker } from '@faker-js/faker';
36
+
37
+ // ============================================================================
38
+ // Types
39
+ // ============================================================================
40
+
41
+ /**
42
+ * Input type for creating a ${entity.pascal}.
43
+ * Adjust these fields to match your Prisma model.
44
+ */
45
+ export interface ${entity.pascal}Input {
46
+ // TODO: Add fields that match your Prisma ${entity.pascal} model
47
+ // Example fields:
48
+ // id?: string;
49
+ // name: string;
50
+ // email: string;
51
+ // createdAt?: Date;
52
+ }
53
+
54
+ // ============================================================================
55
+ // Factory
56
+ // ============================================================================
57
+
58
+ export class ${entity.pascal}Factory extends BaseFactory<${entity.pascal}Input> {
59
+ readonly modelName = '${entity.camel}';
60
+
61
+ constructor(prisma: PrismaClientLike) {
62
+ super(prisma);
63
+
64
+ // Register named states for variations
65
+ // Example: admin state
66
+ // this.registerState('admin', (attrs) => ({
67
+ // ...attrs,
68
+ // role: 'admin',
69
+ // }));
70
+ }
71
+
72
+ /**
73
+ * Define default attributes for a ${entity.pascal}.
74
+ * Uses faker to generate realistic fake data.
75
+ */
76
+ definition(): ${entity.pascal}Input {
77
+ return {
78
+ // TODO: Generate fake data for your model
79
+ // Example:
80
+ // name: faker.person.fullName(),
81
+ // email: faker.internet.email(),
82
+ };
83
+ }
84
+
85
+ // ============================================================================
86
+ // Named States (Convenience Methods)
87
+ // ============================================================================
88
+
89
+ // Example: Create an admin ${entity.camel}
90
+ // admin(): this {
91
+ // return this.state('admin') as this;
92
+ // }
93
+
94
+ // Example: Create a verified ${entity.camel}
95
+ // verified(): this {
96
+ // return this.state('verified') as this;
97
+ // }
98
+ }
99
+ `;
100
+ }
101
+ // ============================================================================
102
+ // Instructions
103
+ // ============================================================================
104
+ /**
105
+ * Get post-generation instructions
106
+ */
107
+ export function getFactoryInstructions(pascalName) {
108
+ return `
109
+ ${pascalName}Factory created successfully!
110
+
111
+ Next steps:
112
+ 1. Update ${pascalName}Input interface to match your Prisma model
113
+ 2. Fill in the definition() method with faker data
114
+ 3. Add named states for common variations (admin, verified, etc.)
115
+
116
+ Usage in seeders:
117
+ await ctx.factory.get(${pascalName}Factory).create();
118
+ await ctx.factory.get(${pascalName}Factory).createMany(10);
119
+ await ctx.factory.get(${pascalName}Factory).state('admin').create();
120
+
121
+ Note: Make sure @faker-js/faker is installed:
122
+ npm install @faker-js/faker
123
+ `;
124
+ }
125
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/generators/templates/factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,OAAO,0BAA0B,UAAU,YAAY,CAAC;AAC1D,CAAC;AAED,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAwC;IACtE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,OAAO;KACJ,MAAM,CAAC,MAAM;;4BAEU,MAAM,CAAC,MAAM;;;sCAGH,MAAM,CAAC,MAAM;uCACZ,MAAM,CAAC,MAAM;uCACb,MAAM,CAAC,MAAM;;;;;;;;;;;+BAWrB,MAAM,CAAC,MAAM;;;mBAGzB,MAAM,CAAC,MAAM;+CACe,MAAM,CAAC,MAAM;;;;;;;;;;;;eAY7C,MAAM,CAAC,MAAM,+BAA+B,MAAM,CAAC,MAAM;0BAC9C,MAAM,CAAC,KAAK;;;;;;;;;;;;;;uCAcC,MAAM,CAAC,MAAM;;;kBAGlC,MAAM,CAAC,MAAM;;;;;;;;;;;;;gCAaC,MAAM,CAAC,KAAK;;;;;kCAKV,MAAM,CAAC,KAAK;;;;;CAK7C,CAAC;AACF,CAAC;AAED,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,OAAO;EACP,UAAU;;;cAGE,UAAU;;;;;0BAKE,UAAU;0BACV,UAAU;0BACV,UAAU;;;;CAInC,CAAC;AACF,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Seeder Templates
3
+ *
4
+ * Template functions for generating seeder files.
5
+ */
6
+ import type { TemplateContext } from '../types.js';
7
+ /**
8
+ * Options for seeder generation
9
+ */
10
+ export interface SeederOptions {
11
+ /** Also generate a factory for this model */
12
+ factory?: boolean;
13
+ }
14
+ /**
15
+ * Get the path for a seeder file
16
+ */
17
+ export declare function getSeederPath(pascalName: string): string;
18
+ /**
19
+ * Get the path for the DatabaseSeeder entry point
20
+ */
21
+ export declare function getDatabaseSeederPath(): string;
22
+ /**
23
+ * Generate seeder file content
24
+ */
25
+ export declare function seederTemplate(context: TemplateContext<SeederOptions>): string;
26
+ /**
27
+ * Generate DatabaseSeeder entry point
28
+ */
29
+ export declare function databaseSeederTemplate(seederNames: string[]): string;
30
+ /**
31
+ * Get post-generation instructions
32
+ */
33
+ export declare function getSeederInstructions(pascalName: string, hasFactory: boolean): string;
34
+ //# sourceMappingURL=seeder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seeder.d.ts","sourceRoot":"","sources":["../../../src/generators/templates/seeder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAMnD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,GAAG,MAAM,CAmD9E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CA0BpE;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAoBrF"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Seeder Templates
3
+ *
4
+ * Template functions for generating seeder files.
5
+ */
6
+ // ============================================================================
7
+ // Path Helpers
8
+ // ============================================================================
9
+ /**
10
+ * Get the path for a seeder file
11
+ */
12
+ export function getSeederPath(pascalName) {
13
+ return `src/database/seeders/${pascalName}Seeder.ts`;
14
+ }
15
+ /**
16
+ * Get the path for the DatabaseSeeder entry point
17
+ */
18
+ export function getDatabaseSeederPath() {
19
+ return 'src/database/seeders/DatabaseSeeder.ts';
20
+ }
21
+ // ============================================================================
22
+ // Templates
23
+ // ============================================================================
24
+ /**
25
+ * Generate seeder file content
26
+ */
27
+ export function seederTemplate(context) {
28
+ const { entity, options } = context;
29
+ const factoryImport = options.factory
30
+ ? `import { ${entity.pascal}Factory } from '../factories/${entity.pascal}Factory.js';\n`
31
+ : '';
32
+ const factoryUsage = options.factory
33
+ ? ` // Create records using factory
34
+ await ctx.factory.get(${entity.pascal}Factory).createMany(10);
35
+ ctx.log.success('Created 10 ${entity.plural}');`
36
+ : ` // Create records directly via Prisma
37
+ await ctx.db.${entity.camel}.createMany({
38
+ data: [
39
+ // Add your seed data here
40
+ // { name: 'Example', ... },
41
+ ],
42
+ });
43
+ ctx.log.success('Created ${entity.plural}');`;
44
+ const truncateMethod = `
45
+
46
+ async truncate(ctx: SeederContext): Promise<void> {
47
+ ctx.log.info('Truncating ${entity.plural} table...');
48
+ await ctx.db.${entity.camel}.deleteMany();
49
+ },`;
50
+ return `/**
51
+ * ${entity.pascal}Seeder
52
+ *
53
+ * Seeds the ${entity.plural} table with initial/test data.
54
+ */
55
+
56
+ import type { Seeder, SeederContext } from '@veloxts/cli';
57
+ ${factoryImport}
58
+ export const ${entity.pascal}Seeder: Seeder = {
59
+ name: '${entity.pascal}Seeder',
60
+
61
+ // Seeders that must run before this one
62
+ dependencies: [],
63
+
64
+ // Only run in these environments (empty = all)
65
+ // environments: ['development', 'test'],
66
+
67
+ async run(ctx: SeederContext): Promise<void> {
68
+ ctx.log.info('Seeding ${entity.plural}...');
69
+
70
+ ${factoryUsage}
71
+ },${truncateMethod}
72
+ };
73
+ `;
74
+ }
75
+ /**
76
+ * Generate DatabaseSeeder entry point
77
+ */
78
+ export function databaseSeederTemplate(seederNames) {
79
+ const imports = seederNames
80
+ .map((name) => `import { ${name}Seeder } from './${name}Seeder.js';`)
81
+ .join('\n');
82
+ const runs = seederNames.map((name) => ` await ctx.runSeeder(${name}Seeder);`).join('\n');
83
+ return `/**
84
+ * DatabaseSeeder
85
+ *
86
+ * Main entry point for database seeding.
87
+ * Orchestrates the execution of all seeders.
88
+ */
89
+
90
+ import type { Seeder, SeederContext } from '@veloxts/cli';
91
+ ${imports}
92
+
93
+ export const DatabaseSeeder: Seeder = {
94
+ name: 'DatabaseSeeder',
95
+
96
+ async run(ctx: SeederContext): Promise<void> {
97
+ // Run seeders in order (dependencies handled automatically)
98
+ ${runs}
99
+ },
100
+ };
101
+ `;
102
+ }
103
+ // ============================================================================
104
+ // Instructions
105
+ // ============================================================================
106
+ /**
107
+ * Get post-generation instructions
108
+ */
109
+ export function getSeederInstructions(pascalName, hasFactory) {
110
+ const factoryNote = hasFactory
111
+ ? `
112
+ Your factory has also been created. You can customize the fake data
113
+ generation in src/database/factories/${pascalName}Factory.ts`
114
+ : '';
115
+ return `
116
+ ${pascalName}Seeder created successfully!
117
+
118
+ Next steps:
119
+ 1. Add your seed data to src/database/seeders/${pascalName}Seeder.ts
120
+ 2. Run seeders with: velox db:seed
121
+
122
+ To run only this seeder:
123
+ velox db:seed ${pascalName}Seeder
124
+
125
+ To truncate and re-seed:
126
+ velox db:seed --fresh${factoryNote}
127
+ `;
128
+ }
129
+ //# sourceMappingURL=seeder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seeder.js","sourceRoot":"","sources":["../../../src/generators/templates/seeder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,OAAO,wBAAwB,UAAU,WAAW,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,wCAAwC,CAAC;AAClD,CAAC;AAED,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAuC;IACpE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAEpC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO;QACnC,CAAC,CAAC,YAAY,MAAM,CAAC,MAAM,gCAAgC,MAAM,CAAC,MAAM,gBAAgB;QACxF,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO;QAClC,CAAC,CAAC;4BACsB,MAAM,CAAC,MAAM;kCACP,MAAM,CAAC,MAAM,KAAK;QAChD,CAAC,CAAC;mBACa,MAAM,CAAC,KAAK;;;;;;+BAMA,MAAM,CAAC,MAAM,KAAK,CAAC;IAEhD,MAAM,cAAc,GAAG;;;+BAGM,MAAM,CAAC,MAAM;mBACzB,MAAM,CAAC,KAAK;KAC1B,CAAC;IAEJ,OAAO;KACJ,MAAM,CAAC,MAAM;;eAEH,MAAM,CAAC,MAAM;;;;EAI1B,aAAa;eACA,MAAM,CAAC,MAAM;WACjB,MAAM,CAAC,MAAM;;;;;;;;;4BASI,MAAM,CAAC,MAAM;;EAEvC,YAAY;MACR,cAAc;;CAEnB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAqB;IAC1D,MAAM,OAAO,GAAG,WAAW;SACxB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,IAAI,oBAAoB,IAAI,aAAa,CAAC;SACpE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,2BAA2B,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7F,OAAO;;;;;;;;EAQP,OAAO;;;;;;;EAOP,IAAI;;;CAGL,CAAC;AACF,CAAC;AAED,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAkB,EAAE,UAAmB;IAC3E,MAAM,WAAW,GAAG,UAAU;QAC5B,CAAC,CAAC;;uCAEiC,UAAU,YAAY;QACzD,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;EACP,UAAU;;;kDAGsC,UAAU;;;;kBAI1C,UAAU;;;yBAGH,WAAW;CACnC,CAAC;AACF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -21,12 +21,17 @@ export declare const CLI_VERSION: string;
21
21
  /**
22
22
  * Export command functions for programmatic usage
23
23
  */
24
+ export { createDbCommand } from './commands/db.js';
24
25
  export { createDevCommand } from './commands/dev.js';
25
26
  export { createMigrateCommand } from './commands/migrate.js';
26
27
  /**
27
28
  * Export migration runner
28
29
  */
29
30
  export * from './migrations/index.js';
31
+ /**
32
+ * Export seeding system
33
+ */
34
+ export * from './seeding/index.js';
30
35
  /**
31
36
  * Export utilities for reuse in other packages
32
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,0BAA0B;AAC1B,eAAO,MAAM,WAAW,EAAE,MAA+C,CAAC;AAE1E;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D;;GAEG;AACH,cAAc,uBAAuB,CAAC;AACtC;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,0BAA0B;AAC1B,eAAO,MAAM,WAAW,EAAE,MAA+C,CAAC;AAE1E;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D;;GAEG;AACH,cAAc,uBAAuB,CAAC;AACtC;;GAEG;AACH,cAAc,oBAAoB,CAAC;AACnC;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -25,12 +25,17 @@ export const CLI_VERSION = packageJson.version ?? '0.0.0-unknown';
25
25
  /**
26
26
  * Export command functions for programmatic usage
27
27
  */
28
+ export { createDbCommand } from './commands/db.js';
28
29
  export { createDevCommand } from './commands/dev.js';
29
30
  export { createMigrateCommand } from './commands/migrate.js';
30
31
  /**
31
32
  * Export migration runner
32
33
  */
33
34
  export * from './migrations/index.js';
35
+ /**
36
+ * Export seeding system
37
+ */
38
+ export * from './seeding/index.js';
34
39
  /**
35
40
  * Export utilities for reuse in other packages
36
41
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,6CAA6C;AAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,0BAA0B;AAC1B,MAAM,CAAC,MAAM,WAAW,GAAW,WAAW,CAAC,OAAO,IAAI,eAAe,CAAC;AAE1E;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D;;GAEG;AACH,cAAc,uBAAuB,CAAC;AACtC;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,6CAA6C;AAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,0BAA0B;AAC1B,MAAM,CAAC,MAAM,WAAW,GAAW,WAAW,CAAC,OAAO,IAAI,eAAe,CAAC;AAE1E;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D;;GAEG;AACH,cAAc,uBAAuB,CAAC;AACtC;;GAEG;AACH,cAAc,oBAAoB,CAAC;AACnC;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rollback-runner.d.ts","sourceRoot":"","sources":["../../src/migrations/rollback-runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,EACf,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAMD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,aAAa,EACxB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA+CzB;AAMD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,aAAa,EAAE,EAC3B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAoC9B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,aAAa,EAAE,EAC3B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAMD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,EAAE,CAAC,CAcnF;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,gBAAgB,EACxB,QAAQ,GAAE,YAA2B,GACpC,OAAO,CAAC,OAAO,CAAC,CAsBlB"}
1
+ {"version":3,"file":"rollback-runner.d.ts","sourceRoot":"","sources":["../../src/migrations/rollback-runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,EACf,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAMD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,aAAa,EACxB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA6CzB;AAMD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,aAAa,EAAE,EAC3B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAoC9B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,aAAa,EAAE,EAC3B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAMD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,EAAE,CAAC,CAcnF;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,gBAAgB,EACxB,QAAQ,GAAE,YAA2B,GACpC,OAAO,CAAC,OAAO,CAAC,CAsBlB"}
@@ -38,7 +38,8 @@ export async function rollbackMigration(prisma, migration, options = {}) {
38
38
  }
39
39
  }
40
40
  // Remove migration record from _prisma_migrations using parameterized query
41
- await prisma.$executeRawUnsafe(`DELETE FROM "_prisma_migrations" WHERE "migration_name" = $1`, migration.name);
41
+ // Use database-specific placeholder syntax ($1 for PostgreSQL, ? for SQLite/MySQL)
42
+ await prisma.$executeRawUnsafe(getDeleteMigrationQuery(options.database), migration.name);
42
43
  return {
43
44
  migration: migration.name,
44
45
  success: true,
@@ -145,6 +146,17 @@ export async function checkMigrationsTableExists(prisma, database = 'postgresql'
145
146
  // ============================================================================
146
147
  // SQL Helpers
147
148
  // ============================================================================
149
+ /**
150
+ * Get the DELETE query for removing a migration record, with correct
151
+ * parameter placeholder syntax for the target database.
152
+ *
153
+ * - PostgreSQL uses `$1`, `$2`, etc.
154
+ * - SQLite and MySQL use `?`
155
+ */
156
+ function getDeleteMigrationQuery(database = 'postgresql') {
157
+ const placeholder = database === 'postgresql' ? '$1' : '?';
158
+ return `DELETE FROM "_prisma_migrations" WHERE "migration_name" = ${placeholder}`;
159
+ }
148
160
  /**
149
161
  * Split SQL into individual statements
150
162
  * Handles basic cases - not a full SQL parser
@@ -1 +1 @@
1
- {"version":3,"file":"rollback-runner.js","sourceRoot":"","sources":["../../src/migrations/rollback-runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAuB5E,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAwB,EACxB,SAAwB,EACxB,UAA2B,EAAE;IAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,iCAAiC;IACjC,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAClD,MAAM,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,uCAAuC;IACvC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,IAAI;YACzB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,CAAC;SACZ,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE/D,iDAAiD;QACjD,8CAA8C;QAC9C,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE/C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,MAAM,MAAM,CAAC,iBAAiB,CAC5B,8DAA8D,EAC9D,SAAS,CAAC,IAAI,CACf,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,IAAI;YACzB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACjC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,MAAM,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAwB,EACxB,UAA2B,EAC3B,UAA2B,EAAE;IAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,uDAAuD;IACvD,MAAM,iBAAiB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAEjG,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2CAA2C;YAC3C,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,SAAS,CAAC,IAAI;gBACzB,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,GAAG,CAAC,OAAO;aACnB,CAAC,CAAC;YACH,MAAM,EAAE,CAAC;YACT,wBAAwB;YACxB,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,KAAK,EAAE,iBAAiB,CAAC,MAAM;QAC/B,UAAU;QACV,MAAM;QACN,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;KACjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAwB,EACxB,UAA2B,EAC3B,UAA2B,EAAE;IAE7B,OAAO,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAwB;IAExB,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,SAAS,CAE5B;;;;;KAKA,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,MAAM,aAAa,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAwB,EACxB,WAAyB,YAAY;IAErC,IAAI,CAAC;QACH,IAAI,KAAa,CAAC;QAElB,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,KAAK,GAAG,iFAAiF,CAAC;gBAC1F,MAAM;YACR,KAAK,OAAO;gBACV,KAAK,GAAG,0FAA0F,CAAC;gBACnG,MAAM;YACR,qBAAqB;YACrB;gBACE,KAAK,GAAG,wEAAwE,CAAC;gBACjF,MAAM;QACV,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,+DAA+D;IAC/D,+CAA+C;IAC/C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5B,yBAAyB;QACzB,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,GAAG,IAAI,CAAC;gBAChB,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,OAAO,EAAE,CAAC;gBACZ,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,EAAE,CAAC;QACZ,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"rollback-runner.js","sourceRoot":"","sources":["../../src/migrations/rollback-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * db:seed Command
3
+ *
4
+ * Run database seeders.
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Create the db:seed command
9
+ */
10
+ export declare function createSeedCommand(): Command;
11
+ //# sourceMappingURL=seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../../src/seeding/commands/seed.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAa3C"}