@vendure/cli 3.3.6-master-202507041203 → 3.4.0-minor-202506250934
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/cli.js +3 -49
- package/dist/cli.js.map +1 -1
- package/dist/commands/add/add-operations.d.ts +24 -0
- package/dist/commands/add/add-operations.js +164 -0
- package/dist/commands/add/add-operations.js.map +1 -0
- package/dist/commands/add/add.d.ts +4 -1
- package/dist/commands/add/add.js +48 -7
- package/dist/commands/add/add.js.map +1 -1
- package/dist/commands/add/api-extension/add-api-extension.d.ts +6 -0
- package/dist/commands/add/api-extension/add-api-extension.js +90 -18
- package/dist/commands/add/api-extension/add-api-extension.js.map +1 -1
- package/dist/commands/add/codegen/add-codegen.d.ts +6 -0
- package/dist/commands/add/codegen/add-codegen.js +12 -5
- package/dist/commands/add/codegen/add-codegen.js.map +1 -1
- package/dist/commands/add/entity/add-entity.d.ts +5 -0
- package/dist/commands/add/entity/add-entity.js +52 -18
- package/dist/commands/add/entity/add-entity.js.map +1 -1
- package/dist/commands/add/job-queue/add-job-queue.d.ts +5 -0
- package/dist/commands/add/job-queue/add-job-queue.js +65 -14
- package/dist/commands/add/job-queue/add-job-queue.js.map +1 -1
- package/dist/commands/add/plugin/create-new-plugin.d.ts +2 -2
- package/dist/commands/add/plugin/create-new-plugin.js +51 -29
- package/dist/commands/add/plugin/create-new-plugin.js.map +1 -1
- package/dist/commands/add/plugin/types.d.ts +1 -0
- package/dist/commands/add/service/add-service.js +77 -41
- package/dist/commands/add/service/add-service.js.map +1 -1
- package/dist/commands/add/ui-extensions/add-ui-extensions.d.ts +3 -0
- package/dist/commands/add/ui-extensions/add-ui-extensions.js +19 -3
- package/dist/commands/add/ui-extensions/add-ui-extensions.js.map +1 -1
- package/dist/commands/command-declarations.d.ts +2 -0
- package/dist/commands/command-declarations.js +194 -0
- package/dist/commands/command-declarations.js.map +1 -0
- package/dist/commands/migrate/generate-migration/generate-migration.js +31 -24
- package/dist/commands/migrate/generate-migration/generate-migration.js.map +1 -1
- package/dist/commands/migrate/migrate.d.ts +7 -1
- package/dist/commands/migrate/migrate.js +104 -14
- package/dist/commands/migrate/migrate.js.map +1 -1
- package/dist/commands/migrate/migration-operations.d.ts +13 -0
- package/dist/commands/migrate/migration-operations.js +125 -0
- package/dist/commands/migrate/migration-operations.js.map +1 -0
- package/dist/shared/cli-command-definition.d.ts +17 -0
- package/dist/shared/cli-command-definition.js +3 -0
- package/dist/shared/cli-command-definition.js.map +1 -0
- package/dist/shared/command-registry.d.ts +3 -0
- package/dist/shared/command-registry.js +37 -0
- package/dist/shared/command-registry.js.map +1 -0
- package/dist/shared/plugin-resolution.d.ts +12 -0
- package/dist/shared/plugin-resolution.js +26 -0
- package/dist/shared/plugin-resolution.js.map +1 -0
- package/dist/shared/project-validation.d.ts +2 -0
- package/dist/shared/project-validation.js +68 -0
- package/dist/shared/project-validation.js.map +1 -0
- package/dist/shared/shared-prompts.d.ts +2 -0
- package/dist/shared/shared-prompts.js +73 -59
- package/dist/shared/shared-prompts.js.map +1 -1
- package/dist/shared/vendure-config-ref.d.ts +2 -3
- package/dist/shared/vendure-config-ref.js +28 -28
- package/dist/shared/vendure-config-ref.js.map +1 -1
- package/dist/utilities/ast-utils.d.ts +1 -1
- package/dist/utilities/ast-utils.js +6 -17
- package/dist/utilities/ast-utils.js.map +1 -1
- package/dist/utilities/utils.d.ts +1 -0
- package/dist/utilities/utils.js +32 -0
- package/dist/utilities/utils.js.map +1 -1
- package/package.json +6 -5
|
@@ -2,7 +2,13 @@ import { CliCommand, CliCommandReturnVal } from '../../../shared/cli-command';
|
|
|
2
2
|
import { VendurePluginRef } from '../../../shared/vendure-plugin-ref';
|
|
3
3
|
export interface AddCodegenOptions {
|
|
4
4
|
plugin?: VendurePluginRef;
|
|
5
|
+
pluginName?: string;
|
|
6
|
+
config?: string;
|
|
7
|
+
isNonInteractive?: boolean;
|
|
5
8
|
}
|
|
6
9
|
export declare const addCodegenCommand: CliCommand<{
|
|
7
10
|
plugin: VendurePluginRef;
|
|
11
|
+
pluginName: string;
|
|
12
|
+
config: string;
|
|
13
|
+
isNonInteractive: boolean;
|
|
8
14
|
}, CliCommandReturnVal>;
|
|
@@ -9,6 +9,7 @@ const path_1 = __importDefault(require("path"));
|
|
|
9
9
|
const ts_morph_1 = require("ts-morph");
|
|
10
10
|
const cli_command_1 = require("../../../shared/cli-command");
|
|
11
11
|
const package_json_ref_1 = require("../../../shared/package-json-ref");
|
|
12
|
+
const plugin_resolution_1 = require("../../../shared/plugin-resolution");
|
|
12
13
|
const shared_prompts_1 = require("../../../shared/shared-prompts");
|
|
13
14
|
const ast_utils_1 = require("../../../utilities/ast-utils");
|
|
14
15
|
const utils_1 = require("../../../utilities/utils");
|
|
@@ -24,9 +25,15 @@ async function addCodegen(options) {
|
|
|
24
25
|
const { project } = await (0, shared_prompts_1.analyzeProject)({
|
|
25
26
|
providedVendurePlugin,
|
|
26
27
|
cancelledMessage: 'Add codegen cancelled',
|
|
28
|
+
config: options === null || options === void 0 ? void 0 : options.config,
|
|
27
29
|
});
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
+
const { plugin: resolvedPlugin, shouldPromptForSelection } = (0, plugin_resolution_1.resolvePluginFromOptions)(project, {
|
|
31
|
+
providedPlugin: providedVendurePlugin,
|
|
32
|
+
pluginName: options === null || options === void 0 ? void 0 : options.pluginName,
|
|
33
|
+
isNonInteractive: (options === null || options === void 0 ? void 0 : options.isNonInteractive) === true,
|
|
34
|
+
});
|
|
35
|
+
const plugins = resolvedPlugin
|
|
36
|
+
? [resolvedPlugin]
|
|
30
37
|
: await (0, shared_prompts_1.selectMultiplePluginClasses)(project, 'Add codegen cancelled');
|
|
31
38
|
const packageJson = new package_json_ref_1.PackageJson(project);
|
|
32
39
|
const installSpinner = (0, prompts_1.spinner)();
|
|
@@ -70,10 +77,10 @@ async function addCodegen(options) {
|
|
|
70
77
|
if (!rootDir) {
|
|
71
78
|
throw new Error('Could not find the root directory of the project');
|
|
72
79
|
}
|
|
73
|
-
for (const
|
|
80
|
+
for (const pluginRef of plugins) {
|
|
74
81
|
const relativePluginPath = (0, ast_utils_1.getRelativeImportPath)({
|
|
75
82
|
from: rootDir,
|
|
76
|
-
to:
|
|
83
|
+
to: pluginRef.classDeclaration.getSourceFile(),
|
|
77
84
|
});
|
|
78
85
|
const generatedTypesPath = `${path_1.default.dirname(relativePluginPath)}/gql/generated.ts`;
|
|
79
86
|
codegenFile.addEntryToGeneratesObject({
|
|
@@ -81,7 +88,7 @@ async function addCodegen(options) {
|
|
|
81
88
|
kind: ts_morph_1.StructureKind.PropertyAssignment,
|
|
82
89
|
initializer: `{ plugins: ['typescript'] }`,
|
|
83
90
|
});
|
|
84
|
-
if (
|
|
91
|
+
if (pluginRef.hasUiExtensions()) {
|
|
85
92
|
const uiExtensionsPath = `${path_1.default.dirname(relativePluginPath)}/ui`;
|
|
86
93
|
codegenFile.addEntryToGeneratesObject({
|
|
87
94
|
name: `'${uiExtensionsPath}/gql/'`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-codegen.js","sourceRoot":"","sources":["../../../../src/commands/add/codegen/add-codegen.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"add-codegen.js","sourceRoot":"","sources":["../../../../src/commands/add/codegen/add-codegen.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,11 @@ export interface AddEntityOptions {
|
|
|
10
10
|
customFields: boolean;
|
|
11
11
|
translatable: boolean;
|
|
12
12
|
};
|
|
13
|
+
config?: string;
|
|
14
|
+
isNonInteractive?: boolean;
|
|
15
|
+
pluginName?: string;
|
|
16
|
+
customFields?: boolean;
|
|
17
|
+
translatable?: boolean;
|
|
13
18
|
}
|
|
14
19
|
export declare const addEntityCommand: CliCommand<Record<string, any>, CliCommandReturnVal<{
|
|
15
20
|
entityRef: EntityRef;
|
|
@@ -12,6 +12,7 @@ const constants_1 = require("../../../constants");
|
|
|
12
12
|
const cli_command_1 = require("../../../shared/cli-command");
|
|
13
13
|
const entity_ref_1 = require("../../../shared/entity-ref");
|
|
14
14
|
const shared_prompts_1 = require("../../../shared/shared-prompts");
|
|
15
|
+
const vendure_plugin_ref_1 = require("../../../shared/vendure-plugin-ref");
|
|
15
16
|
const ast_utils_1 = require("../../../utilities/ast-utils");
|
|
16
17
|
const utils_1 = require("../../../utilities/utils");
|
|
17
18
|
const add_entity_to_plugin_1 = require("./codemods/add-entity-to-plugin/add-entity-to-plugin");
|
|
@@ -25,8 +26,25 @@ exports.addEntityCommand = new cli_command_1.CliCommand({
|
|
|
25
26
|
async function addEntity(options) {
|
|
26
27
|
var _a;
|
|
27
28
|
const providedVendurePlugin = options === null || options === void 0 ? void 0 : options.plugin;
|
|
28
|
-
const { project } = await (0, shared_prompts_1.analyzeProject)({
|
|
29
|
-
|
|
29
|
+
const { project } = await (0, shared_prompts_1.analyzeProject)({
|
|
30
|
+
providedVendurePlugin,
|
|
31
|
+
cancelledMessage,
|
|
32
|
+
config: options === null || options === void 0 ? void 0 : options.config,
|
|
33
|
+
});
|
|
34
|
+
let vendurePlugin = providedVendurePlugin;
|
|
35
|
+
if ((options === null || options === void 0 ? void 0 : options.pluginName) && !vendurePlugin) {
|
|
36
|
+
const pluginClasses = (0, ast_utils_1.getPluginClasses)(project);
|
|
37
|
+
const pluginClass = pluginClasses.find((p) => p.getName() === options.pluginName);
|
|
38
|
+
if (!pluginClass) {
|
|
39
|
+
const availablePlugins = pluginClasses.map((p) => p.getName()).join(', ');
|
|
40
|
+
throw new Error(`Plugin "${options.pluginName}" not found. Available plugins: ${availablePlugins}`);
|
|
41
|
+
}
|
|
42
|
+
vendurePlugin = new vendure_plugin_ref_1.VendurePluginRef(pluginClass);
|
|
43
|
+
}
|
|
44
|
+
if ((options === null || options === void 0 ? void 0 : options.isNonInteractive) && !vendurePlugin) {
|
|
45
|
+
throw new Error('Plugin must be specified when running in non-interactive mode. Usage: vendure add -e <entity-name> --selected-plugin <plugin-name>');
|
|
46
|
+
}
|
|
47
|
+
vendurePlugin = vendurePlugin !== null && vendurePlugin !== void 0 ? vendurePlugin : (await (0, shared_prompts_1.selectPlugin)(project, cancelledMessage));
|
|
30
48
|
const modifiedSourceFiles = [];
|
|
31
49
|
const customEntityName = (_a = options === null || options === void 0 ? void 0 : options.className) !== null && _a !== void 0 ? _a : (await getCustomEntityName(cancelledMessage));
|
|
32
50
|
const context = {
|
|
@@ -34,6 +52,7 @@ async function addEntity(options) {
|
|
|
34
52
|
fileName: (0, change_case_1.paramCase)(customEntityName) + '.entity',
|
|
35
53
|
translationFileName: (0, change_case_1.paramCase)(customEntityName) + '-translation.entity',
|
|
36
54
|
features: await getFeatures(options),
|
|
55
|
+
config: options === null || options === void 0 ? void 0 : options.config,
|
|
37
56
|
};
|
|
38
57
|
const entitySpinner = (0, prompts_1.spinner)();
|
|
39
58
|
entitySpinner.start('Creating entity...');
|
|
@@ -54,25 +73,40 @@ async function addEntity(options) {
|
|
|
54
73
|
};
|
|
55
74
|
}
|
|
56
75
|
async function getFeatures(options) {
|
|
76
|
+
var _a, _b;
|
|
57
77
|
if (options === null || options === void 0 ? void 0 : options.features) {
|
|
58
78
|
return options === null || options === void 0 ? void 0 : options.features;
|
|
59
79
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
80
|
+
if (options === null || options === void 0 ? void 0 : options.isNonInteractive) {
|
|
81
|
+
return {
|
|
82
|
+
customFields: (_a = options === null || options === void 0 ? void 0 : options.customFields) !== null && _a !== void 0 ? _a : false,
|
|
83
|
+
translatable: (_b = options === null || options === void 0 ? void 0 : options.translatable) !== null && _b !== void 0 ? _b : false,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
if ((options === null || options === void 0 ? void 0 : options.className) && !(options === null || options === void 0 ? void 0 : options.features)) {
|
|
87
|
+
return {
|
|
88
|
+
customFields: true,
|
|
89
|
+
translatable: false,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const features = await (0, utils_1.withInteractiveTimeout)(async () => {
|
|
93
|
+
return await (0, prompts_1.multiselect)({
|
|
94
|
+
message: 'Entity features (use ↑, ↓, space to select)',
|
|
95
|
+
required: false,
|
|
96
|
+
initialValues: ['customFields'],
|
|
97
|
+
options: [
|
|
98
|
+
{
|
|
99
|
+
label: 'Custom fields',
|
|
100
|
+
value: 'customFields',
|
|
101
|
+
hint: 'Adds support for custom fields on this entity',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
label: 'Translatable',
|
|
105
|
+
value: 'translatable',
|
|
106
|
+
hint: 'Adds support for localized properties on this entity',
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
});
|
|
76
110
|
});
|
|
77
111
|
if ((0, prompts_1.isCancel)(features)) {
|
|
78
112
|
(0, prompts_1.cancel)(cancelledMessage);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-entity.js","sourceRoot":"","sources":["../../../../src/commands/add/entity/add-entity.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"add-entity.js","sourceRoot":"","sources":["../../../../src/commands/add/entity/add-entity.ts"],"names":[],"mappings":";;;;;;AAoOA,kDAkBC;AAtPD,4CAA8E;AAC9E,6CAAoD;AACpD,gDAAwB;AAGxB,kDAAqD;AACrD,6DAA8E;AAC9E,2DAAuD;AACvD,mEAA8E;AAC9E,2EAAsE;AACtE,4DAA4E;AAC5E,oDAAyF;AAEzF,+FAAyF;AAEzF,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAkBnC,QAAA,gBAAgB,GAAG,IAAI,wBAAU,CAAC;IAC3C,EAAE,EAAE,YAAY;IAChB,QAAQ,EAAE,gBAAgB;IAC1B,WAAW,EAAE,8BAA8B;IAC3C,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;CACrC,CAAC,CAAC;AAEH,KAAK,UAAU,SAAS,CACpB,OAAmC;;IAEnC,MAAM,qBAAqB,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC;IAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,+BAAc,EAAC;QACrC,qBAAqB;QACrB,gBAAgB;QAChB,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;KAC1B,CAAC,CAAC;IAEH,IAAI,aAAa,GAAG,qBAAqB,CAAC;IAG1C,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,KAAI,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,aAAa,GAAG,IAAA,4BAAgB,EAAC,OAAO,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;QACpG,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,gBAAgB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5F,MAAM,IAAI,KAAK,CACX,WAAW,OAAO,CAAC,UAAU,mCAAmC,gBAAgB,EAAE,CACrF,CAAC;QACN,CAAC;QACD,aAAa,GAAG,IAAI,qCAAgB,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAGD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,KAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACX,oIAAoI,CACvI,CAAC;IACN,CAAC;IAED,aAAa,GAAG,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,CAAC,MAAM,IAAA,6BAAY,EAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACjF,MAAM,mBAAmB,GAAiB,EAAE,CAAC;IAE7C,MAAM,gBAAgB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,CAAC,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAE7F,MAAM,OAAO,GAAqB;QAC9B,SAAS,EAAE,gBAAgB;QAC3B,QAAQ,EAAE,IAAA,uBAAS,EAAC,gBAAgB,CAAC,GAAG,SAAS;QACjD,mBAAmB,EAAE,IAAA,uBAAS,EAAC,gBAAgB,CAAC,GAAG,qBAAqB;QACxE,QAAQ,EAAE,MAAM,WAAW,CAAC,OAAO,CAAC;QACpC,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;KAC1B,CAAC;IAEF,MAAM,aAAa,GAAG,IAAA,iBAAO,GAAE,CAAC;IAChC,aAAa,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC1C,MAAM,IAAA,6BAAqB,GAAE,CAAC;IAE9B,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC/E,IAAA,wCAAiB,EAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC9C,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAChC,IAAA,wCAAiB,EAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACnD,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAErC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IAErB,OAAO;QACH,OAAO;QACP,mBAAmB;QACnB,SAAS,EAAE,IAAI,sBAAS,CAAC,WAAW,CAAC;KACxC,CAAC;AACN,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAmC;;IAC1D,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAE,CAAC;QACpB,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC;IAC7B,CAAC;IAGD,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,EAAE,CAAC;QAC5B,OAAO;YACH,YAAY,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,mCAAI,KAAK;YAC5C,YAAY,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,mCAAI,KAAK;SAC/C,CAAC;IACN,CAAC;IAGD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,KAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAA,EAAE,CAAC;QAC3C,OAAO;YACH,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,KAAK;SACtB,CAAC;IACN,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAsB,EAAC,KAAK,IAAI,EAAE;QACrD,OAAO,MAAM,IAAA,qBAAW,EAAC;YACrB,OAAO,EAAE,6CAA6C;YACtD,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,CAAC,cAAc,CAAC;YAC/B,OAAO,EAAE;gBACL;oBACI,KAAK,EAAE,eAAe;oBACtB,KAAK,EAAE,cAAc;oBACrB,IAAI,EAAE,+CAA+C;iBACxD;gBACD;oBACI,KAAK,EAAE,cAAc;oBACrB,KAAK,EAAE,cAAc;oBACrB,IAAI,EAAE,sDAAsD;iBAC/D;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAI,IAAA,kBAAQ,EAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,IAAA,gBAAM,EAAC,gBAAgB,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,OAAO;QACH,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC/C,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;KAClD,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,MAAwB,EAAE,OAAyB;;IACrE,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,IAAA,sBAAU,EACzB,MAAM,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,EACnC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,EACpD,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,QAAQ,KAAK,CAAC,CACnD,CAAC;IACF,MAAM,eAAe,GAAG,IAAA,sBAAU,EAC9B,MAAM,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,EACnC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0CAA0C,CAAC,EAChE,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,mBAAmB,KAAK,CAAC,CAC9D,CAAC;IAEF,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;IAC5E,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACzE,MAAM,4BAA4B,GAAG,eAAe,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC;IAEvG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAEjC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,EAAE,CAAC;QAC5B,4BAA4B,aAA5B,4BAA4B,uBAA5B,4BAA4B,CAAE,MAAM,EAAE,CAAC;QACvC,2BAA2B,CAAC,WAAW,CAAC,CAAC;QACzC,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAEjC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,EAAE,CAAC;QAC3B,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,CAAC,eAAe,CAAC,0CAAE,MAAM,EAAE,CAAC;QACpD,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,CAAC,cAAc,CAAC,0CAAE,MAAM,EAAE,CAAC;QACnD,yBAAyB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACvD,eAAe,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;SAAM,CAAC;QACJ,MAAA,UAAU;aACL,oBAAoB,CAAC,+BAA+B,CAAC,0CACpD,kBAAkB,CAAC,KAAK,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC7D,MAAA,eAAe;aACV,oBAAoB,CAAC,mBAAmB,CAAC,0CACxC,kBAAkB,CAAC,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAGD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,YAAY,EAAE,CAAA,EAAE,CAAC;QACrC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,cAAc,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,YAAY,EAAE,CAAA,EAAE,CAAC;QACpC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,aAAa,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,CAAA,4BAA4B,aAA5B,4BAA4B,uBAA5B,4BAA4B,CAAE,YAAY,EAAE,CAAA,EAAE,CAAC;QAChD,4BAA4B,aAA5B,4BAA4B,uBAA5B,4BAA4B,CAAE,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,yBAAyB,CAAC,CAAC;IACxF,CAAC;IAGD,OAAO,EAAE,WAAW,EAAE,WAAY,EAAE,gBAAgB,EAAE,gBAAiB,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,2BAA2B,CAAC,WAA8B;;IAC/D,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,CAAC,cAAc,CAAC,0CAAE,MAAM,EAAE,CAAC;IACnD,yBAAyB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,yBAAyB,CAAC,cAAsB,EAAE,WAA8B;;IACrF,MAAM,KAAK,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,cAAc,CAAC,mCAAI,CAAC,CAAC,CAAC;IAChG,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QACb,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,iBAAyB;IAC/D,MAAM,UAAU,GAAG,MAAM,IAAA,cAAI,EAAC;QAC1B,OAAO,EAAE,wCAAwC;QACjD,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,KAAK,CAAC,EAAE;YACd,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,OAAO,wCAAwC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,2BAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,oEAAoE,CAAC;YAChF,CAAC;QACL,CAAC;KACJ,CAAC,CAAC;IACH,IAAI,IAAA,kBAAQ,EAAC,UAAU,CAAC,EAAE,CAAC;QACvB,IAAA,gBAAM,EAAC,iBAAiB,CAAC,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,IAAA,wBAAU,EAAC,UAAU,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -3,6 +3,11 @@ import { ServiceRef } from '../../../shared/service-ref';
|
|
|
3
3
|
import { VendurePluginRef } from '../../../shared/vendure-plugin-ref';
|
|
4
4
|
export interface AddJobQueueOptions {
|
|
5
5
|
plugin?: VendurePluginRef;
|
|
6
|
+
pluginName?: string;
|
|
7
|
+
name?: string;
|
|
8
|
+
selectedService?: string;
|
|
9
|
+
config?: string;
|
|
10
|
+
isNonInteractive?: boolean;
|
|
6
11
|
}
|
|
7
12
|
export declare const addJobQueueCommand: CliCommand<Record<string, any>, CliCommandReturnVal<{
|
|
8
13
|
serviceRef: ServiceRef;
|
|
@@ -5,8 +5,10 @@ const prompts_1 = require("@clack/prompts");
|
|
|
5
5
|
const change_case_1 = require("change-case");
|
|
6
6
|
const ts_morph_1 = require("ts-morph");
|
|
7
7
|
const cli_command_1 = require("../../../shared/cli-command");
|
|
8
|
+
const plugin_resolution_1 = require("../../../shared/plugin-resolution");
|
|
8
9
|
const shared_prompts_1 = require("../../../shared/shared-prompts");
|
|
9
10
|
const ast_utils_1 = require("../../../utilities/ast-utils");
|
|
11
|
+
const utils_1 = require("../../../utilities/utils");
|
|
10
12
|
const cancelledMessage = 'Add API extension cancelled';
|
|
11
13
|
exports.addJobQueueCommand = new cli_command_1.CliCommand({
|
|
12
14
|
id: 'add-job-queue',
|
|
@@ -15,21 +17,70 @@ exports.addJobQueueCommand = new cli_command_1.CliCommand({
|
|
|
15
17
|
run: options => addJobQueue(options),
|
|
16
18
|
});
|
|
17
19
|
async function addJobQueue(options) {
|
|
18
|
-
var _a;
|
|
20
|
+
var _a, _b;
|
|
19
21
|
const providedVendurePlugin = options === null || options === void 0 ? void 0 : options.plugin;
|
|
20
|
-
const { project } = await (0, shared_prompts_1.analyzeProject)({
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
},
|
|
22
|
+
const { project } = await (0, shared_prompts_1.analyzeProject)({
|
|
23
|
+
providedVendurePlugin,
|
|
24
|
+
cancelledMessage,
|
|
25
|
+
config: options === null || options === void 0 ? void 0 : options.config,
|
|
26
|
+
});
|
|
27
|
+
const { plugin: resolvedPlugin, shouldPromptForSelection } = (0, plugin_resolution_1.resolvePluginFromOptions)(project, {
|
|
28
|
+
providedPlugin: providedVendurePlugin,
|
|
29
|
+
pluginName: options === null || options === void 0 ? void 0 : options.pluginName,
|
|
30
|
+
isNonInteractive: (options === null || options === void 0 ? void 0 : options.isNonInteractive) === true,
|
|
31
31
|
});
|
|
32
|
-
if (
|
|
32
|
+
if (options === null || options === void 0 ? void 0 : options.isNonInteractive) {
|
|
33
|
+
if (!(options === null || options === void 0 ? void 0 : options.name)) {
|
|
34
|
+
throw new Error('Job queue name must be specified in non-interactive mode.\n' +
|
|
35
|
+
'Usage: npx vendure add -j <PluginName> --name <job-queue-name> --selected-service <service-name>');
|
|
36
|
+
}
|
|
37
|
+
if (!(options === null || options === void 0 ? void 0 : options.selectedService)) {
|
|
38
|
+
throw new Error('Service must be specified in non-interactive mode.\n' +
|
|
39
|
+
'Usage: npx vendure add -j <PluginName> --name <job-queue-name> --selected-service <service-name>');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const plugin = resolvedPlugin !== null && resolvedPlugin !== void 0 ? resolvedPlugin : (await (0, shared_prompts_1.selectPlugin)(project, cancelledMessage));
|
|
43
|
+
let serviceRef;
|
|
44
|
+
if (options === null || options === void 0 ? void 0 : options.isNonInteractive) {
|
|
45
|
+
const existingServices = (0, shared_prompts_1.getServices)(project).filter(sr => {
|
|
46
|
+
return sr.classDeclaration
|
|
47
|
+
.getSourceFile()
|
|
48
|
+
.getDirectoryPath()
|
|
49
|
+
.includes(plugin.getSourceFile().getDirectoryPath());
|
|
50
|
+
});
|
|
51
|
+
const selectedService = existingServices.find(sr => sr.name === options.selectedService);
|
|
52
|
+
if (!selectedService) {
|
|
53
|
+
const availableServices = existingServices.map(sr => sr.name);
|
|
54
|
+
if (availableServices.length === 0) {
|
|
55
|
+
throw new Error(`No services found in plugin "${plugin.name}".\n` +
|
|
56
|
+
'Please first create a service using: npx vendure add -s <ServiceName>');
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
throw new Error(`Service "${options.selectedService}" not found in plugin "${plugin.name}". Available services:\n` +
|
|
60
|
+
availableServices.map(name => ` - ${name}`).join('\n'));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
serviceRef = selectedService;
|
|
64
|
+
prompts_1.log.info(`Using service: ${serviceRef.name}`);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
serviceRef = await (0, shared_prompts_1.selectServiceRef)(project, plugin);
|
|
68
|
+
}
|
|
69
|
+
if (!serviceRef) {
|
|
70
|
+
throw new Error('Service is required for job queue');
|
|
71
|
+
}
|
|
72
|
+
const jobQueueName = (_a = options === null || options === void 0 ? void 0 : options.name) !== null && _a !== void 0 ? _a : (await (0, utils_1.withInteractiveTimeout)(async () => {
|
|
73
|
+
return await (0, prompts_1.text)({
|
|
74
|
+
message: 'What is the name of the job queue?',
|
|
75
|
+
initialValue: 'my-background-task',
|
|
76
|
+
validate: input => {
|
|
77
|
+
if (!/^[a-z][a-z-0-9]+$/.test(input)) {
|
|
78
|
+
return 'The job queue name must be lowercase and contain only letters, numbers and dashes';
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
}));
|
|
83
|
+
if (!(options === null || options === void 0 ? void 0 : options.isNonInteractive) && (0, prompts_1.isCancel)(jobQueueName)) {
|
|
33
84
|
(0, prompts_1.cancel)(cancelledMessage);
|
|
34
85
|
process.exit(0);
|
|
35
86
|
}
|
|
@@ -59,7 +110,7 @@ async function addJobQueue(options) {
|
|
|
59
110
|
let onModuleInitMethod = serviceRef.classDeclaration.getMethod('onModuleInit');
|
|
60
111
|
if (!onModuleInitMethod) {
|
|
61
112
|
const constructor = serviceRef.classDeclaration.getConstructors()[0];
|
|
62
|
-
const constructorChildIndex = (
|
|
113
|
+
const constructorChildIndex = (_b = constructor === null || constructor === void 0 ? void 0 : constructor.getChildIndex()) !== null && _b !== void 0 ? _b : 0;
|
|
63
114
|
onModuleInitMethod = serviceRef.classDeclaration.insertMethod(constructorChildIndex + 1, {
|
|
64
115
|
name: 'onModuleInit',
|
|
65
116
|
isAsync: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-job-queue.js","sourceRoot":"","sources":["../../../../src/commands/add/job-queue/add-job-queue.ts"],"names":[],"mappings":";;;AAAA,4CAA6D;AAC7D,6CAAoD;AACpD,uCAAuC;AAEvC,6DAA8E;
|
|
1
|
+
{"version":3,"file":"add-job-queue.js","sourceRoot":"","sources":["../../../../src/commands/add/job-queue/add-job-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { Project, SourceFile } from 'ts-morph';
|
|
|
2
2
|
import { CliCommand, CliCommandReturnVal } from '../../../shared/cli-command';
|
|
3
3
|
import { VendurePluginRef } from '../../../shared/vendure-plugin-ref';
|
|
4
4
|
import { GeneratePluginOptions } from './types';
|
|
5
|
-
export declare const createNewPluginCommand: CliCommand<
|
|
6
|
-
export declare function createNewPlugin(): Promise<CliCommandReturnVal>;
|
|
5
|
+
export declare const createNewPluginCommand: CliCommand<GeneratePluginOptions, CliCommandReturnVal>;
|
|
6
|
+
export declare function createNewPlugin(options?: Partial<GeneratePluginOptions>): Promise<CliCommandReturnVal>;
|
|
7
7
|
export declare function generatePlugin(project: Project, options: GeneratePluginOptions): Promise<{
|
|
8
8
|
plugin: VendurePluginRef;
|
|
9
9
|
modifiedSourceFiles: SourceFile[];
|
|
@@ -59,13 +59,18 @@ exports.createNewPluginCommand = new cli_command_1.CliCommand({
|
|
|
59
59
|
id: 'create-new-plugin',
|
|
60
60
|
category: 'Plugin',
|
|
61
61
|
description: 'Create a new Vendure plugin',
|
|
62
|
-
run: createNewPlugin,
|
|
62
|
+
run: (options) => createNewPlugin(options),
|
|
63
63
|
});
|
|
64
64
|
const cancelledMessage = 'Plugin setup cancelled.';
|
|
65
|
-
async function createNewPlugin() {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
async function createNewPlugin(options = {}) {
|
|
66
|
+
if (options.name !== undefined && (typeof options.name !== 'string' || !options.name.trim())) {
|
|
67
|
+
throw new Error('Plugin name is required. Usage: vendure add -p <plugin-name>');
|
|
68
|
+
}
|
|
69
|
+
const isNonInteractive = !!options.name;
|
|
70
|
+
if (!isNonInteractive) {
|
|
71
|
+
(0, prompts_1.intro)('Adding a new Vendure plugin!');
|
|
72
|
+
}
|
|
73
|
+
const { project, config } = await (0, shared_prompts_1.analyzeProject)({ cancelledMessage, config: options.config });
|
|
69
74
|
if (!options.name) {
|
|
70
75
|
const name = await (0, prompts_1.text)({
|
|
71
76
|
message: 'What is the name of the plugin?',
|
|
@@ -86,26 +91,34 @@ async function createNewPlugin() {
|
|
|
86
91
|
}
|
|
87
92
|
const existingPluginDir = findExistingPluginsDir(project);
|
|
88
93
|
const pluginDir = getPluginDirName(options.name, existingPluginDir);
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
94
|
+
if (isNonInteractive) {
|
|
95
|
+
options.pluginDir = pluginDir;
|
|
96
|
+
if (fs.existsSync(options.pluginDir)) {
|
|
97
|
+
throw new Error(`A directory named "${options.pluginDir}" already exists.`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
const confirmation = await (0, prompts_1.text)({
|
|
102
|
+
message: 'Plugin location',
|
|
103
|
+
initialValue: pluginDir,
|
|
104
|
+
placeholder: '',
|
|
105
|
+
validate: input => {
|
|
106
|
+
if (fs.existsSync(input)) {
|
|
107
|
+
return `A directory named "${input}" already exists. Please specify a different directory.`;
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
if ((0, prompts_1.isCancel)(confirmation)) {
|
|
112
|
+
(0, prompts_1.cancel)(cancelledMessage);
|
|
113
|
+
process.exit(0);
|
|
114
|
+
}
|
|
115
|
+
options.pluginDir = confirmation;
|
|
102
116
|
}
|
|
103
|
-
options.pluginDir = confirmation;
|
|
104
117
|
const { plugin, modifiedSourceFiles } = await generatePlugin(project, options);
|
|
105
118
|
const configSpinner = (0, prompts_1.spinner)();
|
|
106
119
|
configSpinner.start('Updating VendureConfig...');
|
|
107
120
|
await (0, utils_1.pauseForPromptDisplay)();
|
|
108
|
-
const vendureConfig = new vendure_config_ref_1.VendureConfigRef(project);
|
|
121
|
+
const vendureConfig = new vendure_config_ref_1.VendureConfigRef(project, config);
|
|
109
122
|
vendureConfig.addToPluginsArray(`${plugin.name}.init({})`);
|
|
110
123
|
(0, ast_utils_1.addImportsToFile)(vendureConfig.sourceFile, {
|
|
111
124
|
moduleSpecifier: plugin.getSourceFile(),
|
|
@@ -113,6 +126,12 @@ async function createNewPlugin() {
|
|
|
113
126
|
});
|
|
114
127
|
await vendureConfig.sourceFile.getProject().save();
|
|
115
128
|
configSpinner.stop('Updated VendureConfig');
|
|
129
|
+
if (isNonInteractive) {
|
|
130
|
+
return {
|
|
131
|
+
project,
|
|
132
|
+
modifiedSourceFiles: [],
|
|
133
|
+
};
|
|
134
|
+
}
|
|
116
135
|
let done = false;
|
|
117
136
|
const followUpCommands = [
|
|
118
137
|
add_entity_1.addEntityCommand,
|
|
@@ -124,15 +143,18 @@ async function createNewPlugin() {
|
|
|
124
143
|
];
|
|
125
144
|
let allModifiedSourceFiles = [...modifiedSourceFiles];
|
|
126
145
|
while (!done) {
|
|
127
|
-
const featureType = await (0,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
{
|
|
131
|
-
|
|
132
|
-
value:
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
146
|
+
const featureType = await (0, utils_1.withInteractiveTimeout)(async () => {
|
|
147
|
+
var _a;
|
|
148
|
+
return await (0, prompts_1.select)({
|
|
149
|
+
message: `Add features to ${(_a = options.name) !== null && _a !== void 0 ? _a : 'plugin'}?`,
|
|
150
|
+
options: [
|
|
151
|
+
{ value: 'no', label: "[Finish] No, I'm done!" },
|
|
152
|
+
...followUpCommands.map(c => ({
|
|
153
|
+
value: c.id,
|
|
154
|
+
label: `[${c.category}] ${c.description}`,
|
|
155
|
+
})),
|
|
156
|
+
],
|
|
157
|
+
});
|
|
136
158
|
});
|
|
137
159
|
if ((0, prompts_1.isCancel)(featureType)) {
|
|
138
160
|
done = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-new-plugin.js","sourceRoot":"","sources":["../../../../src/commands/add/plugin/create-new-plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,
|
|
1
|
+
{"version":3,"file":"create-new-plugin.js","sourceRoot":"","sources":["../../../../src/commands/add/plugin/create-new-plugin.ts"],"names":[],"mappings":"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"}
|