@acmekit/acmekit 2.13.40 → 2.13.41
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.
- package/dist/api/admin/views/[entity]/configurations/validators.d.ts +8 -8
- package/dist/commands/develop.d.ts.map +1 -1
- package/dist/commands/develop.js +1 -0
- package/dist/commands/develop.js.map +1 -1
- package/dist/commands/generate/crud.d.ts +8 -0
- package/dist/commands/generate/crud.d.ts.map +1 -0
- package/dist/commands/generate/crud.js +223 -0
- package/dist/commands/generate/crud.js.map +1 -0
- package/dist/commands/generate/index.d.ts +2 -0
- package/dist/commands/generate/index.d.ts.map +1 -0
- package/dist/commands/generate/index.js +10 -0
- package/dist/commands/generate/index.js.map +1 -0
- package/dist/commands/generate/job.d.ts +7 -0
- package/dist/commands/generate/job.d.ts.map +1 -0
- package/dist/commands/generate/job.js +38 -0
- package/dist/commands/generate/job.js.map +1 -0
- package/dist/commands/generate/link.d.ts +7 -0
- package/dist/commands/generate/link.d.ts.map +1 -0
- package/dist/commands/generate/link.js +63 -0
- package/dist/commands/generate/link.js.map +1 -0
- package/dist/commands/generate/module.d.ts +8 -0
- package/dist/commands/generate/module.d.ts.map +1 -0
- package/dist/commands/generate/module.js +78 -0
- package/dist/commands/generate/module.js.map +1 -0
- package/dist/commands/generate/route.d.ts +7 -0
- package/dist/commands/generate/route.d.ts.map +1 -0
- package/dist/commands/generate/route.js +54 -0
- package/dist/commands/generate/route.js.map +1 -0
- package/dist/commands/generate/subscriber.d.ts +7 -0
- package/dist/commands/generate/subscriber.d.ts.map +1 -0
- package/dist/commands/generate/subscriber.js +41 -0
- package/dist/commands/generate/subscriber.js.map +1 -0
- package/dist/commands/generate/types.d.ts +7 -0
- package/dist/commands/generate/types.d.ts.map +1 -0
- package/dist/commands/generate/types.js +243 -0
- package/dist/commands/generate/types.js.map +1 -0
- package/dist/commands/generate/utils/config-updater.d.ts +12 -0
- package/dist/commands/generate/utils/config-updater.d.ts.map +1 -0
- package/dist/commands/generate/utils/config-updater.js +37 -0
- package/dist/commands/generate/utils/config-updater.js.map +1 -0
- package/dist/commands/generate/utils/file-writer.d.ts +17 -0
- package/dist/commands/generate/utils/file-writer.d.ts.map +1 -0
- package/dist/commands/generate/utils/file-writer.js +31 -0
- package/dist/commands/generate/utils/file-writer.js.map +1 -0
- package/dist/commands/generate/utils/log.d.ts +13 -0
- package/dist/commands/generate/utils/log.d.ts.map +1 -0
- package/dist/commands/generate/utils/log.js +37 -0
- package/dist/commands/generate/utils/log.js.map +1 -0
- package/dist/commands/generate/utils/model-introspector.d.ts +22 -0
- package/dist/commands/generate/utils/model-introspector.d.ts.map +1 -0
- package/dist/commands/generate/utils/model-introspector.js +93 -0
- package/dist/commands/generate/utils/model-introspector.js.map +1 -0
- package/dist/commands/generate/utils/naming.d.ts +21 -0
- package/dist/commands/generate/utils/naming.d.ts.map +1 -0
- package/dist/commands/generate/utils/naming.js +74 -0
- package/dist/commands/generate/utils/naming.js.map +1 -0
- package/dist/commands/generate/workflow.d.ts +7 -0
- package/dist/commands/generate/workflow.d.ts.map +1 -0
- package/dist/commands/generate/workflow.js +66 -0
- package/dist/commands/generate/workflow.js.map +1 -0
- package/dist/loaders/docs.d.ts +10 -0
- package/dist/loaders/docs.d.ts.map +1 -0
- package/dist/loaders/docs.js +129 -0
- package/dist/loaders/docs.js.map +1 -0
- package/dist/loaders/index.d.ts.map +1 -1
- package/dist/loaders/index.js +2 -0
- package/dist/loaders/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +41 -37
|
@@ -359,36 +359,36 @@ export declare const AdminCreateViewConfiguration: z.ZodObject<{
|
|
|
359
359
|
}, "strip", z.ZodTypeAny, {
|
|
360
360
|
visible_columns: string[];
|
|
361
361
|
column_order: string[];
|
|
362
|
+
search?: string | undefined;
|
|
362
363
|
column_widths?: Record<string, number> | undefined;
|
|
363
364
|
filters?: Record<string, any> | undefined;
|
|
364
365
|
sorting?: {
|
|
365
366
|
id: string;
|
|
366
367
|
desc: boolean;
|
|
367
368
|
} | null | undefined;
|
|
368
|
-
search?: string | undefined;
|
|
369
369
|
}, {
|
|
370
370
|
visible_columns: string[];
|
|
371
371
|
column_order: string[];
|
|
372
|
+
search?: string | undefined;
|
|
372
373
|
column_widths?: Record<string, number> | undefined;
|
|
373
374
|
filters?: Record<string, any> | undefined;
|
|
374
375
|
sorting?: {
|
|
375
376
|
id: string;
|
|
376
377
|
desc: boolean;
|
|
377
378
|
} | null | undefined;
|
|
378
|
-
search?: string | undefined;
|
|
379
379
|
}>;
|
|
380
380
|
}, "strip", z.ZodTypeAny, {
|
|
381
381
|
is_system_default: boolean;
|
|
382
382
|
configuration: {
|
|
383
383
|
visible_columns: string[];
|
|
384
384
|
column_order: string[];
|
|
385
|
+
search?: string | undefined;
|
|
385
386
|
column_widths?: Record<string, number> | undefined;
|
|
386
387
|
filters?: Record<string, any> | undefined;
|
|
387
388
|
sorting?: {
|
|
388
389
|
id: string;
|
|
389
390
|
desc: boolean;
|
|
390
391
|
} | null | undefined;
|
|
391
|
-
search?: string | undefined;
|
|
392
392
|
};
|
|
393
393
|
set_active: boolean;
|
|
394
394
|
name?: string | undefined;
|
|
@@ -396,13 +396,13 @@ export declare const AdminCreateViewConfiguration: z.ZodObject<{
|
|
|
396
396
|
configuration: {
|
|
397
397
|
visible_columns: string[];
|
|
398
398
|
column_order: string[];
|
|
399
|
+
search?: string | undefined;
|
|
399
400
|
column_widths?: Record<string, number> | undefined;
|
|
400
401
|
filters?: Record<string, any> | undefined;
|
|
401
402
|
sorting?: {
|
|
402
403
|
id: string;
|
|
403
404
|
desc: boolean;
|
|
404
405
|
} | null | undefined;
|
|
405
|
-
search?: string | undefined;
|
|
406
406
|
};
|
|
407
407
|
name?: string | undefined;
|
|
408
408
|
is_system_default?: boolean | undefined;
|
|
@@ -430,6 +430,7 @@ export declare const AdminUpdateViewConfiguration: z.ZodObject<{
|
|
|
430
430
|
}>>>;
|
|
431
431
|
search: z.ZodOptional<z.ZodString>;
|
|
432
432
|
}, "strip", z.ZodTypeAny, {
|
|
433
|
+
search?: string | undefined;
|
|
433
434
|
visible_columns?: string[] | undefined;
|
|
434
435
|
column_order?: string[] | undefined;
|
|
435
436
|
column_widths?: Record<string, number> | undefined;
|
|
@@ -438,8 +439,8 @@ export declare const AdminUpdateViewConfiguration: z.ZodObject<{
|
|
|
438
439
|
id: string;
|
|
439
440
|
desc: boolean;
|
|
440
441
|
} | null | undefined;
|
|
441
|
-
search?: string | undefined;
|
|
442
442
|
}, {
|
|
443
|
+
search?: string | undefined;
|
|
443
444
|
visible_columns?: string[] | undefined;
|
|
444
445
|
column_order?: string[] | undefined;
|
|
445
446
|
column_widths?: Record<string, number> | undefined;
|
|
@@ -448,13 +449,13 @@ export declare const AdminUpdateViewConfiguration: z.ZodObject<{
|
|
|
448
449
|
id: string;
|
|
449
450
|
desc: boolean;
|
|
450
451
|
} | null | undefined;
|
|
451
|
-
search?: string | undefined;
|
|
452
452
|
}>>;
|
|
453
453
|
}, "strip", z.ZodTypeAny, {
|
|
454
454
|
set_active: boolean;
|
|
455
455
|
name?: string | undefined;
|
|
456
456
|
is_system_default?: boolean | undefined;
|
|
457
457
|
configuration?: {
|
|
458
|
+
search?: string | undefined;
|
|
458
459
|
visible_columns?: string[] | undefined;
|
|
459
460
|
column_order?: string[] | undefined;
|
|
460
461
|
column_widths?: Record<string, number> | undefined;
|
|
@@ -463,12 +464,12 @@ export declare const AdminUpdateViewConfiguration: z.ZodObject<{
|
|
|
463
464
|
id: string;
|
|
464
465
|
desc: boolean;
|
|
465
466
|
} | null | undefined;
|
|
466
|
-
search?: string | undefined;
|
|
467
467
|
} | undefined;
|
|
468
468
|
}, {
|
|
469
469
|
name?: string | undefined;
|
|
470
470
|
is_system_default?: boolean | undefined;
|
|
471
471
|
configuration?: {
|
|
472
|
+
search?: string | undefined;
|
|
472
473
|
visible_columns?: string[] | undefined;
|
|
473
474
|
column_order?: string[] | undefined;
|
|
474
475
|
column_widths?: Record<string, number> | undefined;
|
|
@@ -477,7 +478,6 @@ export declare const AdminUpdateViewConfiguration: z.ZodObject<{
|
|
|
477
478
|
id: string;
|
|
478
479
|
desc: boolean;
|
|
479
480
|
} | null | undefined;
|
|
480
|
-
search?: string | undefined;
|
|
481
481
|
} | undefined;
|
|
482
482
|
set_active?: boolean | undefined;
|
|
483
483
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../src/commands/develop.ts"],"names":[],"mappings":"AAoBA,yBAA+B,EAAE,KAAK,EAAE,SAAS,EAAE;;;CAAA,
|
|
1
|
+
{"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../src/commands/develop.ts"],"names":[],"mappings":"AAoBA,yBAA+B,EAAE,KAAK,EAAE,SAAS,EAAE;;;CAAA,iBA2OlD"}
|
package/dist/commands/develop.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"develop.js","sourceRoot":"","sources":["../../src/commands/develop.ts"],"names":[],"mappings":";;;;;AAoBA,
|
|
1
|
+
{"version":3,"file":"develop.js","sourceRoot":"","sources":["../../src/commands/develop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../../src/commands/generate/crud.ts"],"names":[],"mappings":"AAcA,KAAK,OAAO,GAAG;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,wBAA8B,YAAY,CAAC,EACzC,MAAM,EACN,MAAM,EACN,SAAS,GACV,EAAE,OAAO,iBA6NT"}
|
|
@@ -0,0 +1,223 @@
|
|
|
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.default = generateCrud;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const file_writer_1 = require("./utils/file-writer");
|
|
10
|
+
const naming_1 = require("./utils/naming");
|
|
11
|
+
const log_1 = require("./utils/log");
|
|
12
|
+
const types_1 = __importDefault(require("./types"));
|
|
13
|
+
async function generateCrud({ entity, module, directory, }) {
|
|
14
|
+
const moduleName = (0, naming_1.toKebabCase)(module);
|
|
15
|
+
const moduleDir = (0, path_1.join)(directory, "src", "modules", moduleName);
|
|
16
|
+
if (!(0, fs_1.existsSync)(moduleDir)) {
|
|
17
|
+
console.error(`Module "${moduleName}" not found at src/modules/${moduleName}/`);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
const entityName = (0, naming_1.toPascalCase)(entity);
|
|
21
|
+
const entityCamel = (0, naming_1.toCamelCase)(entity);
|
|
22
|
+
const entitySnake = (0, naming_1.toSnakeCase)(entity);
|
|
23
|
+
const entityPlural = (0, naming_1.pluralize)(entityName);
|
|
24
|
+
const entityPluralCamel = (0, naming_1.toCamelCase)(entityPlural);
|
|
25
|
+
const resourcePath = (0, naming_1.toResourcePath)(entity);
|
|
26
|
+
// Run types generator first to ensure generated types exist
|
|
27
|
+
await (0, types_1.default)({ module: moduleName, directory });
|
|
28
|
+
const routeDir = (0, path_1.join)(directory, "src", "api", "admin", resourcePath);
|
|
29
|
+
const typesImportPath = `../../types/generated/${moduleName}`;
|
|
30
|
+
const typesImportPathFromId = `../../../types/generated/${moduleName}`;
|
|
31
|
+
// Collection route (GET list + POST create)
|
|
32
|
+
const collectionRouteContent = `import {
|
|
33
|
+
defineRouteConfig,
|
|
34
|
+
type AuthenticatedAcmeKitTypedRequest,
|
|
35
|
+
type AcmeKitTypedResponse,
|
|
36
|
+
} from "@acmekit/framework/http"
|
|
37
|
+
import {
|
|
38
|
+
ContainerRegistrationKeys,
|
|
39
|
+
remoteQueryObjectFromString,
|
|
40
|
+
} from "@acmekit/framework/utils"
|
|
41
|
+
import {
|
|
42
|
+
Create${entityName}Schema,
|
|
43
|
+
List${entityPlural}Params,
|
|
44
|
+
} from "${typesImportPath}"
|
|
45
|
+
import * as QueryConfig from "./query-config"
|
|
46
|
+
|
|
47
|
+
export const config = defineRouteConfig({
|
|
48
|
+
GET: {
|
|
49
|
+
query: List${entityPlural}Params,
|
|
50
|
+
queryConfig: QueryConfig.listTransformQueryConfig,
|
|
51
|
+
},
|
|
52
|
+
POST: {
|
|
53
|
+
body: Create${entityName}Schema,
|
|
54
|
+
},
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
export const GET = async (
|
|
58
|
+
req: AuthenticatedAcmeKitTypedRequest<typeof config, "GET">,
|
|
59
|
+
res: AcmeKitTypedResponse<typeof config, "GET">
|
|
60
|
+
) => {
|
|
61
|
+
const remoteQuery = req.scope.resolve(
|
|
62
|
+
ContainerRegistrationKeys.REMOTE_QUERY
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
const query = remoteQueryObjectFromString({
|
|
66
|
+
entryPoint: "${entitySnake}",
|
|
67
|
+
variables: {
|
|
68
|
+
filters: req.filterableFields,
|
|
69
|
+
...req.queryConfig.pagination,
|
|
70
|
+
},
|
|
71
|
+
fields: req.queryConfig.fields,
|
|
72
|
+
})
|
|
73
|
+
|
|
74
|
+
const { rows: ${entityPluralCamel}, metadata } = await remoteQuery(query)
|
|
75
|
+
|
|
76
|
+
res.json({
|
|
77
|
+
${entityPluralCamel},
|
|
78
|
+
count: metadata.count,
|
|
79
|
+
offset: metadata.skip,
|
|
80
|
+
limit: metadata.take,
|
|
81
|
+
})
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export const POST = async (
|
|
85
|
+
req: AuthenticatedAcmeKitTypedRequest<typeof config, "POST">,
|
|
86
|
+
res: AcmeKitTypedResponse<typeof config, "POST">
|
|
87
|
+
) => {
|
|
88
|
+
// TODO: use a workflow or module service to create
|
|
89
|
+
// const result = await create${entityName}Workflow(req.scope).run({
|
|
90
|
+
// input: req.validatedBody,
|
|
91
|
+
// })
|
|
92
|
+
|
|
93
|
+
res.status(201).json({ ${entityCamel}: {} })
|
|
94
|
+
}
|
|
95
|
+
`;
|
|
96
|
+
// Single item route (GET retrieve + POST update + DELETE)
|
|
97
|
+
const itemRouteContent = `import {
|
|
98
|
+
defineRouteConfig,
|
|
99
|
+
type AuthenticatedAcmeKitTypedRequest,
|
|
100
|
+
type AcmeKitTypedResponse,
|
|
101
|
+
} from "@acmekit/framework/http"
|
|
102
|
+
import {
|
|
103
|
+
Update${entityName}Schema,
|
|
104
|
+
Get${entityName}Params,
|
|
105
|
+
} from "${typesImportPathFromId}"
|
|
106
|
+
import * as QueryConfig from "../query-config"
|
|
107
|
+
import { refetch${entityName} } from "../helpers"
|
|
108
|
+
|
|
109
|
+
export const config = defineRouteConfig({
|
|
110
|
+
GET: {
|
|
111
|
+
query: Get${entityName}Params,
|
|
112
|
+
queryConfig: QueryConfig.retrieveTransformQueryConfig,
|
|
113
|
+
},
|
|
114
|
+
POST: {
|
|
115
|
+
body: Update${entityName}Schema,
|
|
116
|
+
query: Get${entityName}Params,
|
|
117
|
+
queryConfig: QueryConfig.retrieveTransformQueryConfig,
|
|
118
|
+
},
|
|
119
|
+
DELETE: {},
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
export const GET = async (
|
|
123
|
+
req: AuthenticatedAcmeKitTypedRequest<typeof config, "GET">,
|
|
124
|
+
res: AcmeKitTypedResponse<typeof config, "GET">
|
|
125
|
+
) => {
|
|
126
|
+
const ${entityCamel} = await refetch${entityName}(
|
|
127
|
+
req.params.id,
|
|
128
|
+
req.scope,
|
|
129
|
+
req.queryConfig.fields
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
res.json({ ${entityCamel} })
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export const POST = async (
|
|
136
|
+
req: AuthenticatedAcmeKitTypedRequest<typeof config, "POST">,
|
|
137
|
+
res: AcmeKitTypedResponse<typeof config, "POST">
|
|
138
|
+
) => {
|
|
139
|
+
// TODO: use a workflow or module service to update
|
|
140
|
+
|
|
141
|
+
const ${entityCamel} = await refetch${entityName}(
|
|
142
|
+
req.params.id,
|
|
143
|
+
req.scope,
|
|
144
|
+
req.queryConfig.fields
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
res.json({ ${entityCamel} })
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export const DELETE = async (
|
|
151
|
+
req: AuthenticatedAcmeKitTypedRequest<typeof config, "DELETE">,
|
|
152
|
+
res: AcmeKitTypedResponse<typeof config, "DELETE">
|
|
153
|
+
) => {
|
|
154
|
+
const { id } = req.params
|
|
155
|
+
|
|
156
|
+
// TODO: use a workflow or module service to delete
|
|
157
|
+
|
|
158
|
+
res.status(200).json({ id, object: "${entitySnake}", deleted: true })
|
|
159
|
+
}
|
|
160
|
+
`;
|
|
161
|
+
// Query config
|
|
162
|
+
const queryConfigContent = `import { default${entityName}Fields } from "${typesImportPath}"
|
|
163
|
+
|
|
164
|
+
export const retrieveTransformQueryConfig = {
|
|
165
|
+
defaults: default${entityName}Fields,
|
|
166
|
+
isList: false,
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export const listTransformQueryConfig = {
|
|
170
|
+
...retrieveTransformQueryConfig,
|
|
171
|
+
isList: true,
|
|
172
|
+
}
|
|
173
|
+
`;
|
|
174
|
+
// Helpers
|
|
175
|
+
const helpersContent = `import {
|
|
176
|
+
ContainerRegistrationKeys,
|
|
177
|
+
remoteQueryObjectFromString,
|
|
178
|
+
} from "@acmekit/framework/utils"
|
|
179
|
+
|
|
180
|
+
export const refetch${entityName} = async (
|
|
181
|
+
id: string,
|
|
182
|
+
scope: any,
|
|
183
|
+
fields: string[]
|
|
184
|
+
) => {
|
|
185
|
+
const remoteQuery = scope.resolve(
|
|
186
|
+
ContainerRegistrationKeys.REMOTE_QUERY
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
const query = remoteQueryObjectFromString({
|
|
190
|
+
entryPoint: "${entitySnake}",
|
|
191
|
+
variables: { filters: { id } },
|
|
192
|
+
fields,
|
|
193
|
+
})
|
|
194
|
+
|
|
195
|
+
const { rows } = await remoteQuery(query)
|
|
196
|
+
return rows[0]
|
|
197
|
+
}
|
|
198
|
+
`;
|
|
199
|
+
const result = (0, file_writer_1.writeFiles)([
|
|
200
|
+
{ path: (0, path_1.join)(routeDir, "route.ts"), content: collectionRouteContent },
|
|
201
|
+
{
|
|
202
|
+
path: (0, path_1.join)(routeDir, "[id]", "route.ts"),
|
|
203
|
+
content: itemRouteContent,
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
path: (0, path_1.join)(routeDir, "query-config.ts"),
|
|
207
|
+
content: queryConfigContent,
|
|
208
|
+
},
|
|
209
|
+
{ path: (0, path_1.join)(routeDir, "helpers.ts"), content: helpersContent },
|
|
210
|
+
]);
|
|
211
|
+
(0, log_1.printSummary)({
|
|
212
|
+
type: "crud",
|
|
213
|
+
name: entityName,
|
|
214
|
+
...result,
|
|
215
|
+
nextSteps: [
|
|
216
|
+
`Implement create/update/delete workflows for ${entityName}`,
|
|
217
|
+
`Routes available at /admin/${resourcePath} and /admin/${resourcePath}/:id`,
|
|
218
|
+
`Re-run \`npx acmekit generate types ${moduleName}\` after model changes`,
|
|
219
|
+
],
|
|
220
|
+
directory,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=crud.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crud.js","sourceRoot":"","sources":["../../../src/commands/generate/crud.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/generate/index.ts"],"names":[],"mappings":"AAGA,yBAA+B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAE5D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = default_1;
|
|
4
|
+
// This file exists so that resolveCwd("@acmekit/acmekit/commands/generate") resolves.
|
|
5
|
+
// Individual generators are at generate/module, generate/workflow, etc.
|
|
6
|
+
// The yargs subcommand routing handles dispatch.
|
|
7
|
+
async function default_1(_args) {
|
|
8
|
+
// yargs .demandCommand(1) prevents reaching here
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/generate/index.ts"],"names":[],"mappings":";;AAGA,4BAEC;AALD,sFAAsF;AACtF,wEAAwE;AACxE,iDAAiD;AAClC,KAAK,oBAAW,KAA8B;IAC3D,iDAAiD;AACnD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../../src/commands/generate/job.ts"],"names":[],"mappings":"AAKA,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,wBAA8B,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,iBAiCrE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = generateJob;
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const file_writer_1 = require("./utils/file-writer");
|
|
6
|
+
const naming_1 = require("./utils/naming");
|
|
7
|
+
const log_1 = require("./utils/log");
|
|
8
|
+
async function generateJob({ name, directory }) {
|
|
9
|
+
const kebabName = (0, naming_1.toKebabCase)(name);
|
|
10
|
+
const camelName = (0, naming_1.toCamelCase)(name);
|
|
11
|
+
const filePath = (0, path_1.join)(directory, "src", "jobs", `${kebabName}.ts`);
|
|
12
|
+
const content = `import type { AcmeKitContainer } from "@acmekit/framework/types"
|
|
13
|
+
|
|
14
|
+
export default async function ${camelName}Handler(
|
|
15
|
+
container: AcmeKitContainer
|
|
16
|
+
) {
|
|
17
|
+
// TODO: implement job logic
|
|
18
|
+
console.log("Running job: ${kebabName}")
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const config = {
|
|
22
|
+
name: "${kebabName}",
|
|
23
|
+
schedule: "0 * * * *", // Every hour
|
|
24
|
+
}
|
|
25
|
+
`;
|
|
26
|
+
const result = (0, file_writer_1.writeFiles)([{ path: filePath, content }]);
|
|
27
|
+
(0, log_1.printSummary)({
|
|
28
|
+
type: "job",
|
|
29
|
+
name: kebabName,
|
|
30
|
+
...result,
|
|
31
|
+
nextSteps: [
|
|
32
|
+
`Update the cron schedule in src/jobs/${kebabName}.ts`,
|
|
33
|
+
"Add your job logic in the handler function",
|
|
34
|
+
],
|
|
35
|
+
directory,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=job.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job.js","sourceRoot":"","sources":["../../../src/commands/generate/job.ts"],"names":[],"mappings":";;AAUA,8BAiCC;AA3CD,+BAA2B;AAC3B,qDAAgD;AAChD,2CAAyD;AACzD,qCAA0C;AAO3B,KAAK,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAW;IACpE,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAA;IAEnC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,KAAK,CAAC,CAAA;IAElE,MAAM,OAAO,GAAG;;gCAEc,SAAS;;;;8BAIX,SAAS;;;;WAI5B,SAAS;;;CAGnB,CAAA;IAEC,MAAM,MAAM,GAAG,IAAA,wBAAU,EAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IAExD,IAAA,kBAAY,EAAC;QACX,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,SAAS;QACf,GAAG,MAAM;QACT,SAAS,EAAE;YACT,wCAAwC,SAAS,KAAK;YACtD,4CAA4C;SAC7C;QACD,SAAS;KACV,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/commands/generate/link.ts"],"names":[],"mappings":"AAMA,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,wBAA8B,YAAY,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,iBA0EtE"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = generateLink;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const file_writer_1 = require("./utils/file-writer");
|
|
7
|
+
const naming_1 = require("./utils/naming");
|
|
8
|
+
const log_1 = require("./utils/log");
|
|
9
|
+
async function generateLink({ args, directory }) {
|
|
10
|
+
if (!args || args.length < 2) {
|
|
11
|
+
console.error("Please provide two module.entity pairs (e.g., blog.post user.user)");
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
const [left, right] = args;
|
|
15
|
+
const leftParts = left.split(".");
|
|
16
|
+
const rightParts = right.split(".");
|
|
17
|
+
if (leftParts.length !== 2 || rightParts.length !== 2) {
|
|
18
|
+
console.error("Each argument must be in module.entity format (e.g., blog.post)");
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
const [leftModule, leftEntity] = leftParts;
|
|
22
|
+
const [rightModule, rightEntity] = rightParts;
|
|
23
|
+
const leftModuleName = (0, naming_1.toKebabCase)(leftModule);
|
|
24
|
+
const rightModuleName = (0, naming_1.toKebabCase)(rightModule);
|
|
25
|
+
const leftEntityName = (0, naming_1.toKebabCase)(leftEntity);
|
|
26
|
+
const rightEntityName = (0, naming_1.toKebabCase)(rightEntity);
|
|
27
|
+
const leftModulePascal = (0, naming_1.toPascalCase)(leftModule);
|
|
28
|
+
const rightModulePascal = (0, naming_1.toPascalCase)(rightModule);
|
|
29
|
+
// Validate modules exist
|
|
30
|
+
const leftModuleDir = (0, path_1.join)(directory, "src", "modules", leftModuleName);
|
|
31
|
+
const rightModuleDir = (0, path_1.join)(directory, "src", "modules", rightModuleName);
|
|
32
|
+
if (!(0, fs_1.existsSync)(leftModuleDir)) {
|
|
33
|
+
console.error(`Module "${leftModuleName}" not found at src/modules/${leftModuleName}/`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
if (!(0, fs_1.existsSync)(rightModuleDir)) {
|
|
37
|
+
console.error(`Module "${rightModuleName}" not found at src/modules/${rightModuleName}/`);
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
const linkFileName = `${leftModuleName}-${leftEntityName}-${rightModuleName}-${rightEntityName}`;
|
|
41
|
+
const filePath = (0, path_1.join)(directory, "src", "links", `${linkFileName}.ts`);
|
|
42
|
+
const content = `import ${leftModulePascal}Module from "../modules/${leftModuleName}"
|
|
43
|
+
import ${rightModulePascal}Module from "../modules/${rightModuleName}"
|
|
44
|
+
import { defineLink } from "@acmekit/framework/utils"
|
|
45
|
+
|
|
46
|
+
export default defineLink(
|
|
47
|
+
${leftModulePascal}Module.linkable.${leftEntityName},
|
|
48
|
+
${rightModulePascal}Module.linkable.${rightEntityName}
|
|
49
|
+
)
|
|
50
|
+
`;
|
|
51
|
+
const result = (0, file_writer_1.writeFiles)([{ path: filePath, content }]);
|
|
52
|
+
(0, log_1.printSummary)({
|
|
53
|
+
type: "link",
|
|
54
|
+
name: `${left} ↔ ${right}`,
|
|
55
|
+
...result,
|
|
56
|
+
nextSteps: [
|
|
57
|
+
"Generate a migration: npx acmekit db:generate",
|
|
58
|
+
"Run the migration: npx acmekit db:migrate",
|
|
59
|
+
],
|
|
60
|
+
directory,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/commands/generate/link.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/commands/generate/module.ts"],"names":[],"mappings":"AAMA,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,wBAA8B,cAAc,CAAC,EAC3C,IAAI,EACJ,MAAM,EACN,SAAS,GACV,EAAE,OAAO,iBA+ET"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = generateModule;
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const file_writer_1 = require("./utils/file-writer");
|
|
6
|
+
const config_updater_1 = require("./utils/config-updater");
|
|
7
|
+
const naming_1 = require("./utils/naming");
|
|
8
|
+
const log_1 = require("./utils/log");
|
|
9
|
+
async function generateModule({ name, entity, directory, }) {
|
|
10
|
+
const moduleName = (0, naming_1.toKebabCase)(name);
|
|
11
|
+
const moduleKey = (0, naming_1.toSnakeCase)(name);
|
|
12
|
+
const moduleConst = moduleKey.toUpperCase() + "_MODULE";
|
|
13
|
+
const pascalModule = (0, naming_1.toPascalCase)(name);
|
|
14
|
+
const entityName = entity ? (0, naming_1.toPascalCase)(entity) : (0, naming_1.toPascalCase)(name);
|
|
15
|
+
const entityFile = (0, naming_1.toKebabCase)(entityName);
|
|
16
|
+
const serviceName = `${pascalModule}ModuleService`;
|
|
17
|
+
const moduleDir = (0, path_1.join)(directory, "src", "modules", moduleName);
|
|
18
|
+
const modelContent = `import { model } from "@acmekit/framework/utils"
|
|
19
|
+
|
|
20
|
+
const ${entityName} = model.define("${entityName}", {
|
|
21
|
+
id: model.id().primaryKey(),
|
|
22
|
+
// TODO: add fields
|
|
23
|
+
// name: model.text(),
|
|
24
|
+
// description: model.text().nullable(),
|
|
25
|
+
// metadata: model.json().nullable(),
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
export default ${entityName}
|
|
29
|
+
`;
|
|
30
|
+
const modelsIndexContent = `export { default as ${entityName} } from "./${entityFile}"
|
|
31
|
+
`;
|
|
32
|
+
const serviceContent = `import { AcmeKitService } from "@acmekit/framework/utils"
|
|
33
|
+
import { ${entityName} } from "./models"
|
|
34
|
+
|
|
35
|
+
class ${serviceName} extends AcmeKitService({ ${entityName} }) {}
|
|
36
|
+
|
|
37
|
+
export default ${serviceName}
|
|
38
|
+
`;
|
|
39
|
+
const indexContent = `import { Module } from "@acmekit/framework/utils"
|
|
40
|
+
import ${serviceName} from "./service"
|
|
41
|
+
|
|
42
|
+
export const ${moduleConst} = "${moduleKey}"
|
|
43
|
+
|
|
44
|
+
export default Module(${moduleConst}, {
|
|
45
|
+
service: ${serviceName},
|
|
46
|
+
})
|
|
47
|
+
`;
|
|
48
|
+
const result = (0, file_writer_1.writeFiles)([
|
|
49
|
+
{ path: (0, path_1.join)(moduleDir, "models", `${entityFile}.ts`), content: modelContent },
|
|
50
|
+
{ path: (0, path_1.join)(moduleDir, "models", "index.ts"), content: modelsIndexContent },
|
|
51
|
+
{ path: (0, path_1.join)(moduleDir, "service.ts"), content: serviceContent },
|
|
52
|
+
{ path: (0, path_1.join)(moduleDir, "index.ts"), content: indexContent },
|
|
53
|
+
]);
|
|
54
|
+
// Auto-update acmekit-config.ts
|
|
55
|
+
let configUpdated;
|
|
56
|
+
try {
|
|
57
|
+
const configResult = (0, config_updater_1.addModuleToConfig)(directory, `./src/modules/${moduleName}`);
|
|
58
|
+
if (configResult.updated) {
|
|
59
|
+
configUpdated = { path: configResult.configPath };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// Config file may not exist (e.g., in tests)
|
|
64
|
+
}
|
|
65
|
+
(0, log_1.printSummary)({
|
|
66
|
+
type: "module",
|
|
67
|
+
name: moduleName,
|
|
68
|
+
...result,
|
|
69
|
+
configUpdated,
|
|
70
|
+
nextSteps: [
|
|
71
|
+
`Add fields to the model in src/modules/${moduleName}/models/${entityFile}.ts`,
|
|
72
|
+
`Generate a migration: npx acmekit db:generate ${moduleKey}`,
|
|
73
|
+
"Run the migration: npx acmekit db:migrate",
|
|
74
|
+
],
|
|
75
|
+
directory,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/commands/generate/module.ts"],"names":[],"mappings":";;AAYA,iCAmFC;AA/FD,+BAA2B;AAC3B,qDAAgD;AAChD,2DAA0D;AAC1D,2CAAuE;AACvE,qCAA0C;AAQ3B,KAAK,UAAU,cAAc,CAAC,EAC3C,IAAI,EACJ,MAAM,EACN,SAAS,GACD;IACR,MAAM,UAAU,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAA;IACpC,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAA;IACnC,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,EAAE,GAAG,SAAS,CAAA;IACvD,MAAM,YAAY,GAAG,IAAA,qBAAY,EAAC,IAAI,CAAC,CAAA;IAEvC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAY,EAAC,IAAI,CAAC,CAAA;IACrE,MAAM,UAAU,GAAG,IAAA,oBAAW,EAAC,UAAU,CAAC,CAAA;IAC1C,MAAM,WAAW,GAAG,GAAG,YAAY,eAAe,CAAA;IAElD,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IAE/D,MAAM,YAAY,GAAG;;QAEf,UAAU,oBAAoB,UAAU;;;;;;;;iBAQ/B,UAAU;CAC1B,CAAA;IAEC,MAAM,kBAAkB,GAAG,uBAAuB,UAAU,cAAc,UAAU;CACrF,CAAA;IAEC,MAAM,cAAc,GAAG;WACd,UAAU;;QAEb,WAAW,6BAA6B,UAAU;;iBAEzC,WAAW;CAC3B,CAAA;IAEC,MAAM,YAAY,GAAG;SACd,WAAW;;eAEL,WAAW,OAAO,SAAS;;wBAElB,WAAW;aACtB,WAAW;;CAEvB,CAAA;IAEC,MAAM,MAAM,GAAG,IAAA,wBAAU,EAAC;QACxB,EAAE,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,KAAK,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE;QAC9E,EAAE,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE;QAC5E,EAAE,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE;QAChE,EAAE,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE;KAC7D,CAAC,CAAA;IAEF,gCAAgC;IAChC,IAAI,aAA2C,CAAA;IAC/C,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAA,kCAAiB,EACpC,SAAS,EACT,iBAAiB,UAAU,EAAE,CAC9B,CAAA;QACD,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,aAAa,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,UAAU,EAAE,CAAA;QACnD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6CAA6C;IAC/C,CAAC;IAED,IAAA,kBAAY,EAAC;QACX,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,GAAG,MAAM;QACT,aAAa;QACb,SAAS,EAAE;YACT,0CAA0C,UAAU,WAAW,UAAU,KAAK;YAC9E,iDAAiD,SAAS,EAAE;YAC5D,2CAA2C;SAC5C;QACD,SAAS;KACV,CAAC,CAAA;AACJ,CAAC"}
|