@choiceopen/automation-plugin-cli 0.1.2 → 0.2.0
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/README.md +164 -3
- package/dist/commands/auth/index.d.ts +11 -0
- package/dist/commands/auth/index.js +15 -0
- package/dist/commands/auth/login.d.ts +16 -0
- package/dist/commands/auth/status.d.ts +11 -0
- package/dist/commands/auth/status.js +61 -0
- package/dist/commands/plugin/checksum.d.ts +13 -0
- package/dist/commands/plugin/checksum.js +22 -0
- package/dist/commands/plugin/index.d.ts +11 -0
- package/dist/commands/plugin/init.d.ts +31 -0
- package/dist/commands/plugin/init.js +284 -0
- package/dist/commands/plugin/pack.d.ts +13 -0
- package/dist/commands/plugin/pack.js +22 -0
- package/dist/commands/plugin/permission.d.ts +13 -0
- package/dist/commands/plugin/permission.js +22 -0
- package/dist/commands/plugin/refresh-key.d.ts +9 -0
- package/dist/commands/plugin/run.d.ts +13 -0
- package/dist/commands/plugin/run.js +22 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/utils/generator.d.ts +20 -0
- package/dist/utils/generator.js +68 -0
- package/dist/utils/theme.d.ts +13 -0
- package/dist/utils/theme.js +13 -0
- package/dist/utils/views.d.ts +2 -0
- package/dist/utils/views.js +8 -0
- package/oclif.manifest.json +363 -1
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
export default class PluginPack extends Command {
|
|
3
|
+
static args: {
|
|
4
|
+
file: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
5
|
+
};
|
|
6
|
+
static description: string;
|
|
7
|
+
static examples: string[];
|
|
8
|
+
static flags: {
|
|
9
|
+
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Args, Command, Flags } from "@oclif/core";
|
|
2
|
+
export default class PluginPack extends Command {
|
|
3
|
+
static args = {
|
|
4
|
+
file: Args.string({ description: "file to read" }),
|
|
5
|
+
};
|
|
6
|
+
static description = "describe the command here";
|
|
7
|
+
static examples = ["<%= config.bin %> <%= command.id %>"];
|
|
8
|
+
static flags = {
|
|
9
|
+
// flag with no value (-f, --force)
|
|
10
|
+
force: Flags.boolean({ char: "f" }),
|
|
11
|
+
// flag with a value (-n, --name=VALUE)
|
|
12
|
+
name: Flags.string({ char: "n", description: "name to print" }),
|
|
13
|
+
};
|
|
14
|
+
async run() {
|
|
15
|
+
const { args, flags } = await this.parse(PluginPack);
|
|
16
|
+
const name = flags.name ?? "world";
|
|
17
|
+
this.log(`hello ${name} from /Users/nightire/Code/github.com/choice-open/automation-plugin-cli/src/commands/plugin/pack.ts`);
|
|
18
|
+
if (args.file && flags.force) {
|
|
19
|
+
this.log(`you input --force and --file: ${args.file}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
export default class PluginPermission extends Command {
|
|
3
|
+
static args: {
|
|
4
|
+
file: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
5
|
+
};
|
|
6
|
+
static description: string;
|
|
7
|
+
static examples: string[];
|
|
8
|
+
static flags: {
|
|
9
|
+
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Args, Command, Flags } from "@oclif/core";
|
|
2
|
+
export default class PluginPermission extends Command {
|
|
3
|
+
static args = {
|
|
4
|
+
file: Args.string({ description: "file to read" }),
|
|
5
|
+
};
|
|
6
|
+
static description = "describe the command here";
|
|
7
|
+
static examples = ["<%= config.bin %> <%= command.id %>"];
|
|
8
|
+
static flags = {
|
|
9
|
+
// flag with no value (-f, --force)
|
|
10
|
+
force: Flags.boolean({ char: "f" }),
|
|
11
|
+
// flag with a value (-n, --name=VALUE)
|
|
12
|
+
name: Flags.string({ char: "n", description: "name to print" }),
|
|
13
|
+
};
|
|
14
|
+
async run() {
|
|
15
|
+
const { args, flags } = await this.parse(PluginPermission);
|
|
16
|
+
const name = flags.name ?? "world";
|
|
17
|
+
this.log(`hello ${name} from /Users/nightire/Code/github.com/choice-open/automation-plugin-cli/src/commands/plugin/permission.ts`);
|
|
18
|
+
if (args.file && flags.force) {
|
|
19
|
+
this.log(`you input --force and --file: ${args.file}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
export default class PluginRun extends Command {
|
|
3
|
+
static args: {
|
|
4
|
+
file: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
5
|
+
};
|
|
6
|
+
static description: string;
|
|
7
|
+
static examples: string[];
|
|
8
|
+
static flags: {
|
|
9
|
+
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Args, Command, Flags } from "@oclif/core";
|
|
2
|
+
export default class PluginRun extends Command {
|
|
3
|
+
static args = {
|
|
4
|
+
file: Args.string({ description: "file to read" }),
|
|
5
|
+
};
|
|
6
|
+
static description = "describe the command here";
|
|
7
|
+
static examples = ["<%= config.bin %> <%= command.id %>"];
|
|
8
|
+
static flags = {
|
|
9
|
+
// flag with no value (-f, --force)
|
|
10
|
+
force: Flags.boolean({ char: "f" }),
|
|
11
|
+
// flag with a value (-n, --name=VALUE)
|
|
12
|
+
name: Flags.string({ char: "n", description: "name to print" }),
|
|
13
|
+
};
|
|
14
|
+
async run() {
|
|
15
|
+
const { args, flags } = await this.parse(PluginRun);
|
|
16
|
+
const name = flags.name ?? "world";
|
|
17
|
+
this.log(`hello ${name} from /Users/nightire/Code/github.com/choice-open/automation-plugin-cli/src/commands/plugin/run.ts`);
|
|
18
|
+
if (args.file && flags.force) {
|
|
19
|
+
this.log(`you input --force and --file: ${args.file}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { run } from "@oclif/core";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { run } from "@oclif/core";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Eta } from "eta";
|
|
2
|
+
export interface PluginGenerator {
|
|
3
|
+
context: {
|
|
4
|
+
props: Record<string, unknown>;
|
|
5
|
+
target: string;
|
|
6
|
+
};
|
|
7
|
+
renderer: Eta;
|
|
8
|
+
type: string;
|
|
9
|
+
generate(): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
export declare function createPluginGenerator(type: PluginGenerator["type"], context: PluginGenerator["context"]): PluginGenerator;
|
|
12
|
+
export declare class TypeScriptPluginGenerator implements PluginGenerator {
|
|
13
|
+
#private;
|
|
14
|
+
context: PluginGenerator["context"];
|
|
15
|
+
type: "typescript";
|
|
16
|
+
renderer: Eta;
|
|
17
|
+
constructor(context: PluginGenerator["context"]);
|
|
18
|
+
generate(): Promise<void>;
|
|
19
|
+
private groupPermissions;
|
|
20
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { copyFile, mkdir, readdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import { basename, extname, join } from "node:path";
|
|
3
|
+
import { Eta } from "eta";
|
|
4
|
+
export function createPluginGenerator(type, context) {
|
|
5
|
+
switch (type) {
|
|
6
|
+
case "typescript":
|
|
7
|
+
return new TypeScriptPluginGenerator(context);
|
|
8
|
+
default:
|
|
9
|
+
throw new Error(`Plugin generator type "${type}" is not implemented.`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export class TypeScriptPluginGenerator {
|
|
13
|
+
context;
|
|
14
|
+
type = "typescript";
|
|
15
|
+
renderer = new Eta({
|
|
16
|
+
autoTrim: false,
|
|
17
|
+
autoEscape: false,
|
|
18
|
+
varName: "props",
|
|
19
|
+
views: join(import.meta.dirname, "../templates"),
|
|
20
|
+
});
|
|
21
|
+
constructor(context) {
|
|
22
|
+
this.context = context;
|
|
23
|
+
this.context.props.permissions = this.groupPermissions(this.context.props.permissions ?? []);
|
|
24
|
+
}
|
|
25
|
+
async generate() {
|
|
26
|
+
await Promise.all([
|
|
27
|
+
this.#generateFiles(join(import.meta.dirname, "../templates/common")),
|
|
28
|
+
this.#generateFiles(join(import.meta.dirname, `../templates/${this.context.props.language}`)),
|
|
29
|
+
]);
|
|
30
|
+
}
|
|
31
|
+
async #generateFiles(source, target = this.context.target) {
|
|
32
|
+
await mkdir(target, { recursive: true });
|
|
33
|
+
for (const entry of await readdir(source, { withFileTypes: true })) {
|
|
34
|
+
const sourcePath = join(source, entry.name);
|
|
35
|
+
if (entry.isDirectory()) {
|
|
36
|
+
await this.#generateFiles(sourcePath, join(target, entry.name));
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
if (extname(sourcePath).toLowerCase() === ".eta") {
|
|
40
|
+
console.info(sourcePath, entry, this.renderer);
|
|
41
|
+
const fileName = basename(sourcePath, extname(sourcePath));
|
|
42
|
+
const templatePath = sourcePath.replace(this.renderer.config.views ?? "", "");
|
|
43
|
+
const content = this.renderer.render(templatePath, this.context.props);
|
|
44
|
+
const targetPath = join(target, fileName);
|
|
45
|
+
await writeFile(targetPath, content, "utf-8");
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
await copyFile(sourcePath, join(target, entry.name));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
groupPermissions(permissions) {
|
|
54
|
+
return permissions
|
|
55
|
+
.reduce((finale, permission) => {
|
|
56
|
+
const [scope, entry] = permission.split(":");
|
|
57
|
+
const existing = finale.find((item) => item.scope === scope);
|
|
58
|
+
if (existing) {
|
|
59
|
+
existing.entries.push(entry);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
finale.push({ scope, entries: [entry] });
|
|
63
|
+
}
|
|
64
|
+
return finale;
|
|
65
|
+
}, [])
|
|
66
|
+
.sort((a, b) => a.scope.localeCompare(b.scope, "en"));
|
|
67
|
+
}
|
|
68
|
+
}
|
package/oclif.manifest.json
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
{
|
|
2
2
|
"commands": {
|
|
3
|
+
"auth": {
|
|
4
|
+
"aliases": [],
|
|
5
|
+
"args": {},
|
|
6
|
+
"description": "Manages your plugin via subcommands",
|
|
7
|
+
"examples": [
|
|
8
|
+
{
|
|
9
|
+
"command": "<%= config.bin %> help <%= command.id %> [COMMAND]",
|
|
10
|
+
"description": "Check help for each individual sub-command"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"flags": {
|
|
14
|
+
"json": {
|
|
15
|
+
"description": "Format output as json.",
|
|
16
|
+
"helpGroup": "GLOBAL",
|
|
17
|
+
"name": "json",
|
|
18
|
+
"allowNo": false,
|
|
19
|
+
"type": "boolean"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"hasDynamicHelp": false,
|
|
23
|
+
"hidden": true,
|
|
24
|
+
"hiddenAliases": [],
|
|
25
|
+
"id": "auth",
|
|
26
|
+
"pluginAlias": "@choiceopen/automation-plugin-cli",
|
|
27
|
+
"pluginName": "@choiceopen/automation-plugin-cli",
|
|
28
|
+
"pluginType": "core",
|
|
29
|
+
"strict": true,
|
|
30
|
+
"enableJsonFlag": true,
|
|
31
|
+
"isESM": true,
|
|
32
|
+
"relativePath": [
|
|
33
|
+
"dist",
|
|
34
|
+
"commands",
|
|
35
|
+
"auth",
|
|
36
|
+
"index.js"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
3
39
|
"auth:login": {
|
|
4
40
|
"aliases": [],
|
|
5
41
|
"args": {},
|
|
@@ -27,6 +63,77 @@
|
|
|
27
63
|
"login.js"
|
|
28
64
|
]
|
|
29
65
|
},
|
|
66
|
+
"auth:status": {
|
|
67
|
+
"aliases": [],
|
|
68
|
+
"args": {},
|
|
69
|
+
"description": "Display the current authentication status.\n\nShows user information and session details if authenticated,\nor prompts to login if not yet authenticated.",
|
|
70
|
+
"examples": [
|
|
71
|
+
{
|
|
72
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
73
|
+
"description": "Check current authentication status"
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"flags": {},
|
|
77
|
+
"hasDynamicHelp": false,
|
|
78
|
+
"hiddenAliases": [],
|
|
79
|
+
"id": "auth:status",
|
|
80
|
+
"pluginAlias": "@choiceopen/automation-plugin-cli",
|
|
81
|
+
"pluginName": "@choiceopen/automation-plugin-cli",
|
|
82
|
+
"pluginType": "core",
|
|
83
|
+
"strict": true,
|
|
84
|
+
"enableJsonFlag": false,
|
|
85
|
+
"isESM": true,
|
|
86
|
+
"relativePath": [
|
|
87
|
+
"dist",
|
|
88
|
+
"commands",
|
|
89
|
+
"auth",
|
|
90
|
+
"status.js"
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
"plugin:checksum": {
|
|
94
|
+
"aliases": [],
|
|
95
|
+
"args": {
|
|
96
|
+
"file": {
|
|
97
|
+
"description": "file to read",
|
|
98
|
+
"name": "file"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"description": "describe the command here",
|
|
102
|
+
"examples": [
|
|
103
|
+
"<%= config.bin %> <%= command.id %>"
|
|
104
|
+
],
|
|
105
|
+
"flags": {
|
|
106
|
+
"force": {
|
|
107
|
+
"char": "f",
|
|
108
|
+
"name": "force",
|
|
109
|
+
"allowNo": false,
|
|
110
|
+
"type": "boolean"
|
|
111
|
+
},
|
|
112
|
+
"name": {
|
|
113
|
+
"char": "n",
|
|
114
|
+
"description": "name to print",
|
|
115
|
+
"name": "name",
|
|
116
|
+
"hasDynamicHelp": false,
|
|
117
|
+
"multiple": false,
|
|
118
|
+
"type": "option"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"hasDynamicHelp": false,
|
|
122
|
+
"hiddenAliases": [],
|
|
123
|
+
"id": "plugin:checksum",
|
|
124
|
+
"pluginAlias": "@choiceopen/automation-plugin-cli",
|
|
125
|
+
"pluginName": "@choiceopen/automation-plugin-cli",
|
|
126
|
+
"pluginType": "core",
|
|
127
|
+
"strict": true,
|
|
128
|
+
"enableJsonFlag": false,
|
|
129
|
+
"isESM": true,
|
|
130
|
+
"relativePath": [
|
|
131
|
+
"dist",
|
|
132
|
+
"commands",
|
|
133
|
+
"plugin",
|
|
134
|
+
"checksum.js"
|
|
135
|
+
]
|
|
136
|
+
},
|
|
30
137
|
"plugin": {
|
|
31
138
|
"aliases": [],
|
|
32
139
|
"args": {},
|
|
@@ -63,6 +170,217 @@
|
|
|
63
170
|
"index.js"
|
|
64
171
|
]
|
|
65
172
|
},
|
|
173
|
+
"plugin:init": {
|
|
174
|
+
"aliases": [],
|
|
175
|
+
"args": {},
|
|
176
|
+
"description": "Initialize a new plugin with step-by-step interactive instructions.\n\nProviding required flags skips interactive flow and completes initialization in one go.",
|
|
177
|
+
"examples": [
|
|
178
|
+
{
|
|
179
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
180
|
+
"description": "Start with interactive initialization:"
|
|
181
|
+
}
|
|
182
|
+
],
|
|
183
|
+
"flags": {
|
|
184
|
+
"interactive": {
|
|
185
|
+
"char": "i",
|
|
186
|
+
"name": "interactive",
|
|
187
|
+
"summary": "Use interactive mode (by default)",
|
|
188
|
+
"allowNo": true,
|
|
189
|
+
"type": "boolean"
|
|
190
|
+
},
|
|
191
|
+
"name": {
|
|
192
|
+
"char": "n",
|
|
193
|
+
"name": "name",
|
|
194
|
+
"summary": "Plugin name",
|
|
195
|
+
"hasDynamicHelp": false,
|
|
196
|
+
"helpValue": "my-awesome-plugin",
|
|
197
|
+
"multiple": false,
|
|
198
|
+
"type": "option"
|
|
199
|
+
},
|
|
200
|
+
"description": {
|
|
201
|
+
"char": "d",
|
|
202
|
+
"name": "description",
|
|
203
|
+
"summary": "Short description",
|
|
204
|
+
"default": "",
|
|
205
|
+
"hasDynamicHelp": false,
|
|
206
|
+
"helpValue": "Descriptive text...",
|
|
207
|
+
"multiple": false,
|
|
208
|
+
"type": "option"
|
|
209
|
+
},
|
|
210
|
+
"author": {
|
|
211
|
+
"char": "a",
|
|
212
|
+
"name": "author",
|
|
213
|
+
"summary": "Author name",
|
|
214
|
+
"default": "",
|
|
215
|
+
"hasDynamicHelp": false,
|
|
216
|
+
"helpValue": "John Doe",
|
|
217
|
+
"multiple": false,
|
|
218
|
+
"type": "option"
|
|
219
|
+
},
|
|
220
|
+
"email": {
|
|
221
|
+
"char": "e",
|
|
222
|
+
"name": "email",
|
|
223
|
+
"summary": "Author email address",
|
|
224
|
+
"default": "",
|
|
225
|
+
"hasDynamicHelp": false,
|
|
226
|
+
"helpValue": "john.doe@example.com",
|
|
227
|
+
"multiple": false,
|
|
228
|
+
"type": "option"
|
|
229
|
+
},
|
|
230
|
+
"url": {
|
|
231
|
+
"char": "u",
|
|
232
|
+
"name": "url",
|
|
233
|
+
"summary": "Repository URL",
|
|
234
|
+
"default": "",
|
|
235
|
+
"hasDynamicHelp": false,
|
|
236
|
+
"multiple": false,
|
|
237
|
+
"type": "option"
|
|
238
|
+
},
|
|
239
|
+
"locales": {
|
|
240
|
+
"name": "locales",
|
|
241
|
+
"summary": "Provide READMEs in which languages",
|
|
242
|
+
"delimiter": ",",
|
|
243
|
+
"hasDynamicHelp": false,
|
|
244
|
+
"multiple": true,
|
|
245
|
+
"options": [
|
|
246
|
+
"en_US",
|
|
247
|
+
"zh_Hans",
|
|
248
|
+
"ja_JP"
|
|
249
|
+
],
|
|
250
|
+
"type": "option"
|
|
251
|
+
},
|
|
252
|
+
"language": {
|
|
253
|
+
"char": "l",
|
|
254
|
+
"name": "language",
|
|
255
|
+
"summary": "Programming language to use for plugin development",
|
|
256
|
+
"hasDynamicHelp": false,
|
|
257
|
+
"multiple": false,
|
|
258
|
+
"options": [
|
|
259
|
+
"elixir",
|
|
260
|
+
"python",
|
|
261
|
+
"typescript"
|
|
262
|
+
],
|
|
263
|
+
"type": "option"
|
|
264
|
+
},
|
|
265
|
+
"type": {
|
|
266
|
+
"char": "t",
|
|
267
|
+
"name": "type",
|
|
268
|
+
"summary": "Plugin type",
|
|
269
|
+
"hasDynamicHelp": false,
|
|
270
|
+
"multiple": false,
|
|
271
|
+
"options": [
|
|
272
|
+
"extension",
|
|
273
|
+
"llm",
|
|
274
|
+
"tool",
|
|
275
|
+
"trigger"
|
|
276
|
+
],
|
|
277
|
+
"type": "option"
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
"hasDynamicHelp": false,
|
|
281
|
+
"hiddenAliases": [],
|
|
282
|
+
"id": "plugin:init",
|
|
283
|
+
"pluginAlias": "@choiceopen/automation-plugin-cli",
|
|
284
|
+
"pluginName": "@choiceopen/automation-plugin-cli",
|
|
285
|
+
"pluginType": "core",
|
|
286
|
+
"strict": true,
|
|
287
|
+
"enableJsonFlag": false,
|
|
288
|
+
"isESM": true,
|
|
289
|
+
"relativePath": [
|
|
290
|
+
"dist",
|
|
291
|
+
"commands",
|
|
292
|
+
"plugin",
|
|
293
|
+
"init.js"
|
|
294
|
+
]
|
|
295
|
+
},
|
|
296
|
+
"plugin:pack": {
|
|
297
|
+
"aliases": [],
|
|
298
|
+
"args": {
|
|
299
|
+
"file": {
|
|
300
|
+
"description": "file to read",
|
|
301
|
+
"name": "file"
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
"description": "describe the command here",
|
|
305
|
+
"examples": [
|
|
306
|
+
"<%= config.bin %> <%= command.id %>"
|
|
307
|
+
],
|
|
308
|
+
"flags": {
|
|
309
|
+
"force": {
|
|
310
|
+
"char": "f",
|
|
311
|
+
"name": "force",
|
|
312
|
+
"allowNo": false,
|
|
313
|
+
"type": "boolean"
|
|
314
|
+
},
|
|
315
|
+
"name": {
|
|
316
|
+
"char": "n",
|
|
317
|
+
"description": "name to print",
|
|
318
|
+
"name": "name",
|
|
319
|
+
"hasDynamicHelp": false,
|
|
320
|
+
"multiple": false,
|
|
321
|
+
"type": "option"
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
"hasDynamicHelp": false,
|
|
325
|
+
"hiddenAliases": [],
|
|
326
|
+
"id": "plugin:pack",
|
|
327
|
+
"pluginAlias": "@choiceopen/automation-plugin-cli",
|
|
328
|
+
"pluginName": "@choiceopen/automation-plugin-cli",
|
|
329
|
+
"pluginType": "core",
|
|
330
|
+
"strict": true,
|
|
331
|
+
"enableJsonFlag": false,
|
|
332
|
+
"isESM": true,
|
|
333
|
+
"relativePath": [
|
|
334
|
+
"dist",
|
|
335
|
+
"commands",
|
|
336
|
+
"plugin",
|
|
337
|
+
"pack.js"
|
|
338
|
+
]
|
|
339
|
+
},
|
|
340
|
+
"plugin:permission": {
|
|
341
|
+
"aliases": [],
|
|
342
|
+
"args": {
|
|
343
|
+
"file": {
|
|
344
|
+
"description": "file to read",
|
|
345
|
+
"name": "file"
|
|
346
|
+
}
|
|
347
|
+
},
|
|
348
|
+
"description": "describe the command here",
|
|
349
|
+
"examples": [
|
|
350
|
+
"<%= config.bin %> <%= command.id %>"
|
|
351
|
+
],
|
|
352
|
+
"flags": {
|
|
353
|
+
"force": {
|
|
354
|
+
"char": "f",
|
|
355
|
+
"name": "force",
|
|
356
|
+
"allowNo": false,
|
|
357
|
+
"type": "boolean"
|
|
358
|
+
},
|
|
359
|
+
"name": {
|
|
360
|
+
"char": "n",
|
|
361
|
+
"description": "name to print",
|
|
362
|
+
"name": "name",
|
|
363
|
+
"hasDynamicHelp": false,
|
|
364
|
+
"multiple": false,
|
|
365
|
+
"type": "option"
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
"hasDynamicHelp": false,
|
|
369
|
+
"hiddenAliases": [],
|
|
370
|
+
"id": "plugin:permission",
|
|
371
|
+
"pluginAlias": "@choiceopen/automation-plugin-cli",
|
|
372
|
+
"pluginName": "@choiceopen/automation-plugin-cli",
|
|
373
|
+
"pluginType": "core",
|
|
374
|
+
"strict": true,
|
|
375
|
+
"enableJsonFlag": false,
|
|
376
|
+
"isESM": true,
|
|
377
|
+
"relativePath": [
|
|
378
|
+
"dist",
|
|
379
|
+
"commands",
|
|
380
|
+
"plugin",
|
|
381
|
+
"permission.js"
|
|
382
|
+
]
|
|
383
|
+
},
|
|
66
384
|
"plugin:refresh-key": {
|
|
67
385
|
"aliases": [],
|
|
68
386
|
"args": {},
|
|
@@ -86,7 +404,51 @@
|
|
|
86
404
|
"plugin",
|
|
87
405
|
"refresh-key.js"
|
|
88
406
|
]
|
|
407
|
+
},
|
|
408
|
+
"plugin:run": {
|
|
409
|
+
"aliases": [],
|
|
410
|
+
"args": {
|
|
411
|
+
"file": {
|
|
412
|
+
"description": "file to read",
|
|
413
|
+
"name": "file"
|
|
414
|
+
}
|
|
415
|
+
},
|
|
416
|
+
"description": "describe the command here",
|
|
417
|
+
"examples": [
|
|
418
|
+
"<%= config.bin %> <%= command.id %>"
|
|
419
|
+
],
|
|
420
|
+
"flags": {
|
|
421
|
+
"force": {
|
|
422
|
+
"char": "f",
|
|
423
|
+
"name": "force",
|
|
424
|
+
"allowNo": false,
|
|
425
|
+
"type": "boolean"
|
|
426
|
+
},
|
|
427
|
+
"name": {
|
|
428
|
+
"char": "n",
|
|
429
|
+
"description": "name to print",
|
|
430
|
+
"name": "name",
|
|
431
|
+
"hasDynamicHelp": false,
|
|
432
|
+
"multiple": false,
|
|
433
|
+
"type": "option"
|
|
434
|
+
}
|
|
435
|
+
},
|
|
436
|
+
"hasDynamicHelp": false,
|
|
437
|
+
"hiddenAliases": [],
|
|
438
|
+
"id": "plugin:run",
|
|
439
|
+
"pluginAlias": "@choiceopen/automation-plugin-cli",
|
|
440
|
+
"pluginName": "@choiceopen/automation-plugin-cli",
|
|
441
|
+
"pluginType": "core",
|
|
442
|
+
"strict": true,
|
|
443
|
+
"enableJsonFlag": false,
|
|
444
|
+
"isESM": true,
|
|
445
|
+
"relativePath": [
|
|
446
|
+
"dist",
|
|
447
|
+
"commands",
|
|
448
|
+
"plugin",
|
|
449
|
+
"run.js"
|
|
450
|
+
]
|
|
89
451
|
}
|
|
90
452
|
},
|
|
91
|
-
"version": "0.
|
|
453
|
+
"version": "0.2.0"
|
|
92
454
|
}
|