@vendure/cli 3.5.0-minor-202510012036 → 3.5.0-minor-202510071456
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/commands/add/add.d.ts +19 -2
- package/dist/commands/add/add.js +139 -20
- package/dist/commands/add/add.js.map +1 -1
- package/dist/commands/add/api-extension/add-api-extension.d.ts +3 -0
- package/dist/commands/add/api-extension/add-api-extension.js +1 -0
- package/dist/commands/add/api-extension/add-api-extension.js.map +1 -1
- package/dist/commands/add/codegen/add-codegen.d.ts +1 -0
- package/dist/commands/add/codegen/add-codegen.js +1 -0
- package/dist/commands/add/codegen/add-codegen.js.map +1 -1
- package/dist/commands/add/dashboard/add-dashboard.d.ts +15 -0
- package/dist/commands/add/dashboard/add-dashboard.js +57 -0
- package/dist/commands/add/dashboard/add-dashboard.js.map +1 -0
- package/dist/commands/add/dashboard/templates/index.template.tsx +47 -0
- package/dist/commands/add/entity/add-entity.d.ts +3 -0
- package/dist/commands/add/entity/add-entity.js +1 -0
- package/dist/commands/add/entity/add-entity.js.map +1 -1
- package/dist/commands/add/job-queue/add-job-queue.d.ts +3 -0
- package/dist/commands/add/job-queue/add-job-queue.js +1 -0
- package/dist/commands/add/job-queue/add-job-queue.js.map +1 -1
- package/dist/commands/add/plugin/create-new-plugin.js +2 -0
- package/dist/commands/add/plugin/create-new-plugin.js.map +1 -1
- package/dist/commands/add/service/add-service.d.ts +17 -0
- package/dist/commands/add/service/add-service.js +1 -0
- package/dist/commands/add/service/add-service.js.map +1 -1
- package/dist/commands/add/ui-extensions/add-ui-extensions.d.ts +1 -0
- package/dist/commands/add/ui-extensions/add-ui-extensions.js +1 -0
- package/dist/commands/add/ui-extensions/add-ui-extensions.js.map +1 -1
- package/dist/commands/command-declarations.js +40 -6
- package/dist/commands/command-declarations.js.map +1 -1
- package/dist/shared/cli-command-definition.d.ts +3 -0
- package/dist/shared/cli-command.d.ts +1 -1
- package/dist/shared/cli-command.js.map +1 -1
- package/dist/shared/shared-prompts.js +33 -11
- package/dist/shared/shared-prompts.js.map +1 -1
- package/dist/shared/vendure-plugin-ref.d.ts +3 -0
- package/dist/shared/vendure-plugin-ref.js +38 -0
- package/dist/shared/vendure-plugin-ref.js.map +1 -1
- package/package.json +6 -6
- package/dist/commands/add/add-operations.d.ts +0 -24
- package/dist/commands/add/add-operations.js +0 -179
- package/dist/commands/add/add-operations.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vendure/cli",
|
|
3
|
-
"version": "3.5.0-minor-
|
|
3
|
+
"version": "3.5.0-minor-202510071456",
|
|
4
4
|
"description": "A modern, headless ecommerce framework",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -37,22 +37,22 @@
|
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@clack/prompts": "^0.7.0",
|
|
40
|
-
"@vendure/common": "^3.5.0-minor-
|
|
40
|
+
"@vendure/common": "^3.5.0-minor-202510071456",
|
|
41
41
|
"change-case": "^4.1.2",
|
|
42
42
|
"commander": "^11.0.0",
|
|
43
43
|
"dotenv": "^16.4.5",
|
|
44
44
|
"fs-extra": "^11.2.0",
|
|
45
45
|
"picocolors": "^1.0.0",
|
|
46
|
-
"strip-json-comments": "^5.0.
|
|
46
|
+
"strip-json-comments": "^5.0.3",
|
|
47
47
|
"ts-morph": "^21.0.1",
|
|
48
48
|
"ts-node": "^10.9.2",
|
|
49
49
|
"tsconfig-paths": "^4.2.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@vendure/core": "^3.5.0-minor-
|
|
53
|
-
"@vendure/testing": "^3.5.0-minor-
|
|
52
|
+
"@vendure/core": "^3.5.0-minor-202510071456",
|
|
53
|
+
"@vendure/testing": "^3.5.0-minor-202510071456",
|
|
54
54
|
"cross-env": "^7.0.3",
|
|
55
55
|
"typescript": "5.8.2"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "a0d7f3f10de46e0ab1825b412baf42093dbd9ebf"
|
|
58
58
|
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export interface AddOperationOptions {
|
|
2
|
-
plugin?: string;
|
|
3
|
-
entity?: string;
|
|
4
|
-
service?: string;
|
|
5
|
-
jobQueue?: string | boolean;
|
|
6
|
-
codegen?: string | boolean;
|
|
7
|
-
apiExtension?: string | boolean;
|
|
8
|
-
uiExtensions?: string | boolean;
|
|
9
|
-
config?: string;
|
|
10
|
-
name?: string;
|
|
11
|
-
queryName?: string;
|
|
12
|
-
mutationName?: string;
|
|
13
|
-
selectedService?: string;
|
|
14
|
-
selectedPlugin?: string;
|
|
15
|
-
customFields?: boolean;
|
|
16
|
-
translatable?: boolean;
|
|
17
|
-
type?: string;
|
|
18
|
-
selectedEntity?: string;
|
|
19
|
-
}
|
|
20
|
-
export interface AddOperationResult {
|
|
21
|
-
success: boolean;
|
|
22
|
-
message: string;
|
|
23
|
-
}
|
|
24
|
-
export declare function performAddOperation(options: AddOperationOptions): Promise<AddOperationResult>;
|
|
@@ -1,179 +0,0 @@
|
|
|
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.performAddOperation = performAddOperation;
|
|
7
|
-
const prompts_1 = require("@clack/prompts");
|
|
8
|
-
const picocolors_1 = __importDefault(require("picocolors"));
|
|
9
|
-
const add_api_extension_1 = require("./api-extension/add-api-extension");
|
|
10
|
-
const add_codegen_1 = require("./codegen/add-codegen");
|
|
11
|
-
const add_entity_1 = require("./entity/add-entity");
|
|
12
|
-
const add_job_queue_1 = require("./job-queue/add-job-queue");
|
|
13
|
-
const create_new_plugin_1 = require("./plugin/create-new-plugin");
|
|
14
|
-
const add_service_1 = require("./service/add-service");
|
|
15
|
-
const add_ui_extensions_1 = require("./ui-extensions/add-ui-extensions");
|
|
16
|
-
async function performAddOperation(options) {
|
|
17
|
-
try {
|
|
18
|
-
if (options.plugin) {
|
|
19
|
-
if (typeof options.plugin !== 'string' || !options.plugin.trim()) {
|
|
20
|
-
throw new Error('Plugin name is required. Usage: vendure add -p <plugin-name>');
|
|
21
|
-
}
|
|
22
|
-
await create_new_plugin_1.createNewPluginCommand.run({ name: options.plugin, config: options.config });
|
|
23
|
-
return {
|
|
24
|
-
success: true,
|
|
25
|
-
message: `Plugin "${options.plugin}" created successfully`,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
if (options.entity) {
|
|
29
|
-
if (typeof options.entity !== 'string' || !options.entity.trim()) {
|
|
30
|
-
throw new Error('Entity name is required. Usage: vendure add -e <entity-name> --selected-plugin <plugin-name>');
|
|
31
|
-
}
|
|
32
|
-
if (!options.selectedPlugin ||
|
|
33
|
-
typeof options.selectedPlugin !== 'string' ||
|
|
34
|
-
!options.selectedPlugin.trim()) {
|
|
35
|
-
throw new Error('Plugin name is required when running in non-interactive mode. Usage: vendure add -e <entity-name> --selected-plugin <plugin-name>');
|
|
36
|
-
}
|
|
37
|
-
await add_entity_1.addEntityCommand.run({
|
|
38
|
-
className: options.entity,
|
|
39
|
-
isNonInteractive: true,
|
|
40
|
-
config: options.config,
|
|
41
|
-
pluginName: options.selectedPlugin,
|
|
42
|
-
customFields: options.customFields,
|
|
43
|
-
translatable: options.translatable,
|
|
44
|
-
});
|
|
45
|
-
return {
|
|
46
|
-
success: true,
|
|
47
|
-
message: `Entity "${options.entity}" added successfully to plugin "${options.selectedPlugin}"`,
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
if (options.service) {
|
|
51
|
-
if (typeof options.service !== 'string' || !options.service.trim()) {
|
|
52
|
-
throw new Error('Service name is required. Usage: vendure add -s <service-name> --selected-plugin <plugin-name>');
|
|
53
|
-
}
|
|
54
|
-
if (!options.selectedPlugin ||
|
|
55
|
-
typeof options.selectedPlugin !== 'string' ||
|
|
56
|
-
!options.selectedPlugin.trim()) {
|
|
57
|
-
throw new Error('Plugin name is required when running in non-interactive mode. Usage: vendure add -s <service-name> --selected-plugin <plugin-name>');
|
|
58
|
-
}
|
|
59
|
-
await add_service_1.addServiceCommand.run({
|
|
60
|
-
serviceName: options.service,
|
|
61
|
-
isNonInteractive: true,
|
|
62
|
-
config: options.config,
|
|
63
|
-
pluginName: options.selectedPlugin,
|
|
64
|
-
serviceType: options.selectedEntity ? 'entity' : options.type || 'basic',
|
|
65
|
-
selectedEntityName: options.selectedEntity,
|
|
66
|
-
});
|
|
67
|
-
return {
|
|
68
|
-
success: true,
|
|
69
|
-
message: `Service "${options.service}" added successfully to plugin "${options.selectedPlugin}"`,
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
if (options.jobQueue) {
|
|
73
|
-
const pluginName = typeof options.jobQueue === 'string' ? options.jobQueue : undefined;
|
|
74
|
-
if (!options.name || typeof options.name !== 'string' || !options.name.trim()) {
|
|
75
|
-
throw new Error('Job queue name is required. Usage: vendure add -j [plugin-name] --name <job-name>');
|
|
76
|
-
}
|
|
77
|
-
if (!options.selectedService ||
|
|
78
|
-
typeof options.selectedService !== 'string' ||
|
|
79
|
-
!options.selectedService.trim()) {
|
|
80
|
-
throw new Error('Service name is required for job queue. Usage: vendure add -j [plugin-name] --name <job-name> --selected-service <service-name>');
|
|
81
|
-
}
|
|
82
|
-
await add_job_queue_1.addJobQueueCommand.run({
|
|
83
|
-
isNonInteractive: true,
|
|
84
|
-
config: options.config,
|
|
85
|
-
pluginName,
|
|
86
|
-
name: options.name,
|
|
87
|
-
selectedService: options.selectedService,
|
|
88
|
-
});
|
|
89
|
-
return {
|
|
90
|
-
success: true,
|
|
91
|
-
message: 'Job-queue feature added successfully',
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
if (options.codegen) {
|
|
95
|
-
const pluginName = typeof options.codegen === 'string' ? options.codegen : undefined;
|
|
96
|
-
if (typeof options.codegen === 'string' && !options.codegen.trim()) {
|
|
97
|
-
throw new Error('Plugin name cannot be empty when specified. Usage: vendure add --codegen [plugin-name]');
|
|
98
|
-
}
|
|
99
|
-
await add_codegen_1.addCodegenCommand.run({
|
|
100
|
-
isNonInteractive: true,
|
|
101
|
-
config: options.config,
|
|
102
|
-
pluginName,
|
|
103
|
-
});
|
|
104
|
-
return {
|
|
105
|
-
success: true,
|
|
106
|
-
message: 'Codegen configuration added successfully',
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
if (options.apiExtension) {
|
|
110
|
-
const pluginName = typeof options.apiExtension === 'string' ? options.apiExtension : undefined;
|
|
111
|
-
const hasValidQueryName = options.queryName && typeof options.queryName === 'string' && options.queryName.trim() !== '';
|
|
112
|
-
const hasValidMutationName = options.mutationName &&
|
|
113
|
-
typeof options.mutationName === 'string' &&
|
|
114
|
-
options.mutationName.trim() !== '';
|
|
115
|
-
if (!hasValidQueryName && !hasValidMutationName) {
|
|
116
|
-
throw new Error('At least one of query-name or mutation-name must be specified as a non-empty string. ' +
|
|
117
|
-
'Usage: vendure add -a [plugin-name] --query-name <name> --mutation-name <name>');
|
|
118
|
-
}
|
|
119
|
-
if (typeof options.apiExtension === 'string' && !options.apiExtension.trim()) {
|
|
120
|
-
throw new Error('Plugin name cannot be empty when specified. ' +
|
|
121
|
-
'Usage: vendure add -a [plugin-name] --query-name <name> --mutation-name <name>');
|
|
122
|
-
}
|
|
123
|
-
await add_api_extension_1.addApiExtensionCommand.run({
|
|
124
|
-
isNonInteractive: true,
|
|
125
|
-
config: options.config,
|
|
126
|
-
pluginName,
|
|
127
|
-
queryName: options.queryName,
|
|
128
|
-
mutationName: options.mutationName,
|
|
129
|
-
selectedService: options.selectedService,
|
|
130
|
-
});
|
|
131
|
-
return {
|
|
132
|
-
success: true,
|
|
133
|
-
message: 'API extension scaffold added successfully',
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
if (options.uiExtensions) {
|
|
137
|
-
const pluginName = typeof options.uiExtensions === 'string' ? options.uiExtensions : undefined;
|
|
138
|
-
if (typeof options.uiExtensions === 'string' && !options.uiExtensions.trim()) {
|
|
139
|
-
throw new Error('Plugin name cannot be empty when specified. Usage: vendure add --ui-extensions [plugin-name]');
|
|
140
|
-
}
|
|
141
|
-
await add_ui_extensions_1.addUiExtensionsCommand.run({
|
|
142
|
-
isNonInteractive: true,
|
|
143
|
-
config: options.config,
|
|
144
|
-
pluginName,
|
|
145
|
-
});
|
|
146
|
-
return {
|
|
147
|
-
success: true,
|
|
148
|
-
message: 'UI extensions added successfully',
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
return {
|
|
152
|
-
success: false,
|
|
153
|
-
message: 'No valid add operation specified',
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
catch (error) {
|
|
157
|
-
if (error.message.includes('is required') ||
|
|
158
|
-
error.message.includes('cannot be empty') ||
|
|
159
|
-
error.message.includes('must be specified')) {
|
|
160
|
-
throw error;
|
|
161
|
-
}
|
|
162
|
-
if (error.message.includes('Plugin name is required')) {
|
|
163
|
-
const errorMessage = error.message;
|
|
164
|
-
const stackLines = error.stack.split('\n');
|
|
165
|
-
const stackTrace = stackLines.slice(1).join('\n');
|
|
166
|
-
prompts_1.log.error(stackTrace);
|
|
167
|
-
prompts_1.log.error('');
|
|
168
|
-
prompts_1.log.error(picocolors_1.default.red('Error:') + ' ' + String(errorMessage));
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
prompts_1.log.error(error.message);
|
|
172
|
-
if (error.stack) {
|
|
173
|
-
prompts_1.log.error(error.stack);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
process.exit(1);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
//# sourceMappingURL=add-operations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add-operations.js","sourceRoot":"","sources":["../../../src/commands/add/add-operations.ts"],"names":[],"mappings":"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"}
|