@nexical/cli 0.1.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/.github/workflows/deploy.yml +34 -0
- package/LICENSE +201 -0
- package/README.md +183 -0
- package/dist/chunk-FDJVHO4O.js +41 -0
- package/dist/chunk-FDJVHO4O.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/src/commands/admin/create-user.d.ts +15 -0
- package/dist/src/commands/admin/create-user.js +49 -0
- package/dist/src/commands/admin/create-user.js.map +1 -0
- package/dist/src/commands/branch/create.d.ts +19 -0
- package/dist/src/commands/branch/create.js +59 -0
- package/dist/src/commands/branch/create.js.map +1 -0
- package/dist/src/commands/branch/delete.d.ts +15 -0
- package/dist/src/commands/branch/delete.js +50 -0
- package/dist/src/commands/branch/delete.js.map +1 -0
- package/dist/src/commands/branch/get.d.ts +15 -0
- package/dist/src/commands/branch/get.js +53 -0
- package/dist/src/commands/branch/get.js.map +1 -0
- package/dist/src/commands/branch/list.d.ts +15 -0
- package/dist/src/commands/branch/list.js +51 -0
- package/dist/src/commands/branch/list.js.map +1 -0
- package/dist/src/commands/job/get.d.ts +15 -0
- package/dist/src/commands/job/get.js +62 -0
- package/dist/src/commands/job/get.js.map +1 -0
- package/dist/src/commands/job/list.d.ts +15 -0
- package/dist/src/commands/job/list.js +57 -0
- package/dist/src/commands/job/list.js.map +1 -0
- package/dist/src/commands/job/logs.d.ts +15 -0
- package/dist/src/commands/job/logs.js +67 -0
- package/dist/src/commands/job/logs.js.map +1 -0
- package/dist/src/commands/job/trigger.d.ts +19 -0
- package/dist/src/commands/job/trigger.js +74 -0
- package/dist/src/commands/job/trigger.js.map +1 -0
- package/dist/src/commands/login.d.ts +8 -0
- package/dist/src/commands/login.js +31 -0
- package/dist/src/commands/login.js.map +1 -0
- package/dist/src/commands/project/create.d.ts +24 -0
- package/dist/src/commands/project/create.js +63 -0
- package/dist/src/commands/project/create.js.map +1 -0
- package/dist/src/commands/project/delete.d.ts +20 -0
- package/dist/src/commands/project/delete.js +58 -0
- package/dist/src/commands/project/delete.js.map +1 -0
- package/dist/src/commands/project/get.d.ts +15 -0
- package/dist/src/commands/project/get.js +49 -0
- package/dist/src/commands/project/get.js.map +1 -0
- package/dist/src/commands/project/list.d.ts +15 -0
- package/dist/src/commands/project/list.js +45 -0
- package/dist/src/commands/project/list.js.map +1 -0
- package/dist/src/commands/project/update.d.ts +19 -0
- package/dist/src/commands/project/update.js +66 -0
- package/dist/src/commands/project/update.js.map +1 -0
- package/dist/src/commands/team/create.d.ts +19 -0
- package/dist/src/commands/team/create.js +45 -0
- package/dist/src/commands/team/create.js.map +1 -0
- package/dist/src/commands/team/delete.d.ts +20 -0
- package/dist/src/commands/team/delete.js +52 -0
- package/dist/src/commands/team/delete.js.map +1 -0
- package/dist/src/commands/team/get.d.ts +15 -0
- package/dist/src/commands/team/get.js +42 -0
- package/dist/src/commands/team/get.js.map +1 -0
- package/dist/src/commands/team/list.d.ts +8 -0
- package/dist/src/commands/team/list.js +30 -0
- package/dist/src/commands/team/list.js.map +1 -0
- package/dist/src/commands/team/member/invite.d.ts +20 -0
- package/dist/src/commands/team/member/invite.js +54 -0
- package/dist/src/commands/team/member/invite.js.map +1 -0
- package/dist/src/commands/team/member/remove.d.ts +15 -0
- package/dist/src/commands/team/member/remove.js +43 -0
- package/dist/src/commands/team/member/remove.js.map +1 -0
- package/dist/src/commands/team/update.d.ts +19 -0
- package/dist/src/commands/team/update.js +55 -0
- package/dist/src/commands/team/update.js.map +1 -0
- package/dist/src/commands/token/generate.d.ts +19 -0
- package/dist/src/commands/token/generate.js +48 -0
- package/dist/src/commands/token/generate.js.map +1 -0
- package/dist/src/commands/token/list.d.ts +8 -0
- package/dist/src/commands/token/list.js +31 -0
- package/dist/src/commands/token/list.js.map +1 -0
- package/dist/src/commands/token/revoke.d.ts +15 -0
- package/dist/src/commands/token/revoke.js +38 -0
- package/dist/src/commands/token/revoke.js.map +1 -0
- package/dist/src/commands/whoami.d.ts +8 -0
- package/dist/src/commands/whoami.js +26 -0
- package/dist/src/commands/whoami.js.map +1 -0
- package/dist/src/utils/nexical-client.d.ts +10 -0
- package/dist/src/utils/nexical-client.js +12 -0
- package/dist/src/utils/nexical-client.js.map +1 -0
- package/index.ts +14 -0
- package/package.json +32 -0
- package/src/commands/admin/create-user.ts +46 -0
- package/src/commands/branch/create.ts +57 -0
- package/src/commands/branch/delete.ts +47 -0
- package/src/commands/branch/get.ts +50 -0
- package/src/commands/branch/list.ts +50 -0
- package/src/commands/job/get.ts +59 -0
- package/src/commands/job/list.ts +56 -0
- package/src/commands/job/logs.ts +67 -0
- package/src/commands/job/trigger.ts +73 -0
- package/src/commands/login.ts +31 -0
- package/src/commands/project/create.ts +61 -0
- package/src/commands/project/delete.ts +56 -0
- package/src/commands/project/get.ts +46 -0
- package/src/commands/project/list.ts +44 -0
- package/src/commands/project/update.ts +63 -0
- package/src/commands/team/create.ts +43 -0
- package/src/commands/team/delete.ts +50 -0
- package/src/commands/team/get.ts +39 -0
- package/src/commands/team/list.ts +26 -0
- package/src/commands/team/member/invite.ts +56 -0
- package/src/commands/team/member/remove.ts +40 -0
- package/src/commands/team/update.ts +53 -0
- package/src/commands/token/generate.ts +45 -0
- package/src/commands/token/list.ts +27 -0
- package/src/commands/token/revoke.ts +35 -0
- package/src/commands/whoami.ts +21 -0
- package/src/utils/nexical-client.ts +40 -0
- package/test/e2e/.gitkeep +0 -0
- package/test/integration/commands/admin/create-user.test.ts +51 -0
- package/test/integration/commands/branch/create.test.ts +51 -0
- package/test/integration/commands/branch/delete.test.ts +43 -0
- package/test/integration/commands/branch/get.test.ts +49 -0
- package/test/integration/commands/branch/list.test.ts +47 -0
- package/test/integration/commands/job/get.test.ts +54 -0
- package/test/integration/commands/job/list.test.ts +47 -0
- package/test/integration/commands/job/logs.test.ts +47 -0
- package/test/integration/commands/job/trigger.test.ts +57 -0
- package/test/integration/commands/login.test.ts +62 -0
- package/test/integration/commands/project/create.test.ts +53 -0
- package/test/integration/commands/project/delete.test.ts +43 -0
- package/test/integration/commands/project/get.test.ts +51 -0
- package/test/integration/commands/project/list.test.ts +47 -0
- package/test/integration/commands/project/update.test.ts +53 -0
- package/test/integration/commands/team/create.test.ts +53 -0
- package/test/integration/commands/team/delete.test.ts +43 -0
- package/test/integration/commands/team/get.test.ts +50 -0
- package/test/integration/commands/team/list.test.ts +47 -0
- package/test/integration/commands/team/member/invite.test.ts +46 -0
- package/test/integration/commands/team/member/remove.test.ts +43 -0
- package/test/integration/commands/team/update.test.ts +50 -0
- package/test/integration/commands/token/generate.test.ts +51 -0
- package/test/integration/commands/token/list.test.ts +47 -0
- package/test/integration/commands/token/revoke.test.ts +43 -0
- package/test/integration/commands/whoami.test.ts +49 -0
- package/test/unit/commands/admin/create-user.test.ts +51 -0
- package/test/unit/commands/branch/create.test.ts +57 -0
- package/test/unit/commands/branch/delete.test.ts +49 -0
- package/test/unit/commands/branch/get.test.ts +67 -0
- package/test/unit/commands/branch/list.test.ts +62 -0
- package/test/unit/commands/job/get.test.ts +76 -0
- package/test/unit/commands/job/list.test.ts +62 -0
- package/test/unit/commands/job/logs.test.ts +60 -0
- package/test/unit/commands/job/trigger.test.ts +75 -0
- package/test/unit/commands/login.test.ts +64 -0
- package/test/unit/commands/project/create.test.ts +64 -0
- package/test/unit/commands/project/delete.test.ts +72 -0
- package/test/unit/commands/project/get.test.ts +73 -0
- package/test/unit/commands/project/list.test.ts +62 -0
- package/test/unit/commands/project/update.test.ts +58 -0
- package/test/unit/commands/team/create.test.ts +68 -0
- package/test/unit/commands/team/delete.test.ts +71 -0
- package/test/unit/commands/team/get.test.ts +70 -0
- package/test/unit/commands/team/list.test.ts +56 -0
- package/test/unit/commands/team/member/invite.test.ts +52 -0
- package/test/unit/commands/team/member/remove.test.ts +49 -0
- package/test/unit/commands/team/update.test.ts +63 -0
- package/test/unit/commands/token/generate.test.ts +65 -0
- package/test/unit/commands/token/list.test.ts +58 -0
- package/test/unit/commands/token/revoke.test.ts +49 -0
- package/test/unit/commands/whoami.test.ts +49 -0
- package/test/unit/utils/nexical-client.test.ts +98 -0
- package/test/utils/integration-helpers.ts +22 -0
- package/tsconfig.json +26 -0
- package/tsup.config.ts +18 -0
- package/vitest.config.ts +15 -0
- package/vitest.e2e.config.ts +10 -0
- package/vitest.integration.config.ts +22 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { createRequire } from "module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
getClient
|
|
4
|
+
} from "../../../chunk-FDJVHO4O.js";
|
|
5
|
+
|
|
6
|
+
// src/commands/project/create.ts
|
|
7
|
+
import { BaseCommand } from "@nexical/cli-core";
|
|
8
|
+
var ProjectsCreateCommand = class extends BaseCommand {
|
|
9
|
+
static description = "Create a new project";
|
|
10
|
+
static args = {
|
|
11
|
+
args: [
|
|
12
|
+
{
|
|
13
|
+
name: "teamId",
|
|
14
|
+
required: true,
|
|
15
|
+
description: "ID of the team"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "name",
|
|
19
|
+
required: true,
|
|
20
|
+
description: "Name of the project"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
options: [
|
|
24
|
+
{
|
|
25
|
+
name: "--repo <url>",
|
|
26
|
+
description: "Repository URL"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "--prod <url>",
|
|
30
|
+
description: "Production URL"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "--mode <mode>",
|
|
34
|
+
description: "Mode (managed, self_hosted)",
|
|
35
|
+
default: "managed"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
};
|
|
39
|
+
async run(options) {
|
|
40
|
+
const client = getClient();
|
|
41
|
+
const { teamId, name, repo, prod, mode } = options;
|
|
42
|
+
const tid = parseInt(teamId, 10);
|
|
43
|
+
if (isNaN(tid)) {
|
|
44
|
+
this.error("Team ID must be a number.");
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
const project = await client.projects.create(tid, {
|
|
49
|
+
name,
|
|
50
|
+
repoUrl: repo,
|
|
51
|
+
productionUrl: prod
|
|
52
|
+
});
|
|
53
|
+
this.success(`Project "${project.name}" set up successfully!`);
|
|
54
|
+
this.info(`ID: ${project.id}`);
|
|
55
|
+
} catch (error) {
|
|
56
|
+
this.error(`Failed to create project: ${error.message}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
export {
|
|
61
|
+
ProjectsCreateCommand as default
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/project/create.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class ProjectsCreateCommand extends BaseCommand {\n static description = 'Create a new project';\n\n static args = {\n args: [\n {\n name: 'teamId',\n required: true,\n description: 'ID of the team',\n },\n {\n name: 'name',\n required: true,\n description: 'Name of the project',\n },\n ],\n options: [\n {\n name: '--repo <url>',\n description: 'Repository URL',\n },\n {\n name: '--prod <url>',\n description: 'Production URL',\n },\n {\n name: '--mode <mode>',\n description: 'Mode (managed, self_hosted)',\n default: 'managed',\n },\n ],\n };\n\n async run(options: any) {\n const client = getClient();\n const { teamId, name, repo, prod, mode } = options;\n const tid = parseInt(teamId, 10);\n\n if (isNaN(tid)) {\n this.error('Team ID must be a number.');\n return;\n }\n\n try {\n const project = await client.projects.create(tid, {\n name,\n repoUrl: repo,\n productionUrl: prod\n });\n\n this.success(`Project \"${project.name}\" set up successfully!`);\n this.info(`ID: ${project.id}`);\n } catch (error: any) {\n this.error(`Failed to create project: ${error.message}`);\n }\n }\n}\n"],"mappings":";;;;;;AACA,SAAS,mBAAmB;AAG5B,IAAqB,wBAArB,cAAmD,YAAY;AAAA,EAC3D,OAAO,cAAc;AAAA,EAErB,OAAO,OAAO;AAAA,IACV,MAAM;AAAA,MACF;AAAA,QACI,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,MACL;AAAA,QACI,MAAM;AAAA,QACN,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,aAAa;AAAA,QACb,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,IAAI,SAAc;AACpB,UAAM,SAAS,UAAU;AACzB,UAAM,EAAE,QAAQ,MAAM,MAAM,MAAM,KAAK,IAAI;AAC3C,UAAM,MAAM,SAAS,QAAQ,EAAE;AAE/B,QAAI,MAAM,GAAG,GAAG;AACZ,WAAK,MAAM,2BAA2B;AACtC;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,UAAU,MAAM,OAAO,SAAS,OAAO,KAAK;AAAA,QAC9C;AAAA,QACA,SAAS;AAAA,QACT,eAAe;AAAA,MACnB,CAAC;AAED,WAAK,QAAQ,YAAY,QAAQ,IAAI,wBAAwB;AAC7D,WAAK,KAAK,OAAO,QAAQ,EAAE,EAAE;AAAA,IACjC,SAAS,OAAY;AACjB,WAAK,MAAM,6BAA6B,MAAM,OAAO,EAAE;AAAA,IAC3D;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseCommand } from '@nexical/cli-core';
|
|
2
|
+
|
|
3
|
+
declare class ProjectsDeleteCommand extends BaseCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
static args: {
|
|
6
|
+
args: {
|
|
7
|
+
name: string;
|
|
8
|
+
required: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
}[];
|
|
11
|
+
options: {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
default: boolean;
|
|
15
|
+
}[];
|
|
16
|
+
};
|
|
17
|
+
run(options: any): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { ProjectsDeleteCommand as default };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { createRequire } from "module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
getClient
|
|
4
|
+
} from "../../../chunk-FDJVHO4O.js";
|
|
5
|
+
|
|
6
|
+
// src/commands/project/delete.ts
|
|
7
|
+
import { BaseCommand } from "@nexical/cli-core";
|
|
8
|
+
var ProjectsDeleteCommand = class extends BaseCommand {
|
|
9
|
+
static description = "Delete a project";
|
|
10
|
+
static args = {
|
|
11
|
+
args: [
|
|
12
|
+
{
|
|
13
|
+
name: "teamId",
|
|
14
|
+
required: true,
|
|
15
|
+
description: "Team ID"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "projectId",
|
|
19
|
+
required: true,
|
|
20
|
+
description: "Project ID"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
options: [
|
|
24
|
+
{
|
|
25
|
+
name: "--confirm",
|
|
26
|
+
description: "Skip confirmation",
|
|
27
|
+
default: false
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
};
|
|
31
|
+
async run(options) {
|
|
32
|
+
const client = getClient();
|
|
33
|
+
const { teamId, projectId, confirm } = options;
|
|
34
|
+
const tid = parseInt(teamId, 10);
|
|
35
|
+
const pid = parseInt(projectId, 10);
|
|
36
|
+
if (isNaN(tid) || isNaN(pid)) {
|
|
37
|
+
this.error("IDs must be numbers.");
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (!confirm) {
|
|
41
|
+
const answer = await this.prompt(`Are you sure you want to delete project ${pid}? (yes/no)`);
|
|
42
|
+
if (answer.toLowerCase() !== "yes") {
|
|
43
|
+
this.info("Aborted.");
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
await client.projects.delete(tid, pid);
|
|
49
|
+
this.success(`Project ${pid} deleted.`);
|
|
50
|
+
} catch (error) {
|
|
51
|
+
this.error(`Failed to delete project: ${error.message}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
export {
|
|
56
|
+
ProjectsDeleteCommand as default
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/project/delete.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class ProjectsDeleteCommand extends BaseCommand {\n static description = 'Delete a project';\n\n static args = {\n args: [\n {\n name: 'teamId',\n required: true,\n description: 'Team ID',\n },\n {\n name: 'projectId',\n required: true,\n description: 'Project ID',\n },\n ],\n options: [\n {\n name: '--confirm',\n description: 'Skip confirmation',\n default: false,\n },\n ],\n };\n\n async run(options: any) {\n const client = getClient();\n const { teamId, projectId, confirm } = options;\n const tid = parseInt(teamId, 10);\n const pid = parseInt(projectId, 10);\n\n if (isNaN(tid) || isNaN(pid)) {\n this.error('IDs must be numbers.');\n return;\n }\n\n if (!confirm) {\n const answer = await this.prompt(`Are you sure you want to delete project ${pid}? (yes/no)`);\n if (answer.toLowerCase() !== 'yes') {\n this.info('Aborted.');\n return;\n }\n }\n\n try {\n await client.projects.delete(tid, pid);\n this.success(`Project ${pid} deleted.`);\n } catch (error: any) {\n this.error(`Failed to delete project: ${error.message}`);\n }\n }\n}\n"],"mappings":";;;;;;AACA,SAAS,mBAAmB;AAG5B,IAAqB,wBAArB,cAAmD,YAAY;AAAA,EAC3D,OAAO,cAAc;AAAA,EAErB,OAAO,OAAO;AAAA,IACV,MAAM;AAAA,MACF;AAAA,QACI,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,MACL;AAAA,QACI,MAAM;AAAA,QACN,aAAa;AAAA,QACb,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,IAAI,SAAc;AACpB,UAAM,SAAS,UAAU;AACzB,UAAM,EAAE,QAAQ,WAAW,QAAQ,IAAI;AACvC,UAAM,MAAM,SAAS,QAAQ,EAAE;AAC/B,UAAM,MAAM,SAAS,WAAW,EAAE;AAElC,QAAI,MAAM,GAAG,KAAK,MAAM,GAAG,GAAG;AAC1B,WAAK,MAAM,sBAAsB;AACjC;AAAA,IACJ;AAEA,QAAI,CAAC,SAAS;AACV,YAAM,SAAS,MAAM,KAAK,OAAO,2CAA2C,GAAG,YAAY;AAC3F,UAAI,OAAO,YAAY,MAAM,OAAO;AAChC,aAAK,KAAK,UAAU;AACpB;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,OAAO,SAAS,OAAO,KAAK,GAAG;AACrC,WAAK,QAAQ,WAAW,GAAG,WAAW;AAAA,IAC1C,SAAS,OAAY;AACjB,WAAK,MAAM,6BAA6B,MAAM,OAAO,EAAE;AAAA,IAC3D;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseCommand } from '@nexical/cli-core';
|
|
2
|
+
|
|
3
|
+
declare class ProjectsGetCommand extends BaseCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
static args: {
|
|
6
|
+
args: {
|
|
7
|
+
name: string;
|
|
8
|
+
required: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
}[];
|
|
11
|
+
};
|
|
12
|
+
run(options: any): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { ProjectsGetCommand as default };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { createRequire } from "module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
getClient
|
|
4
|
+
} from "../../../chunk-FDJVHO4O.js";
|
|
5
|
+
|
|
6
|
+
// src/commands/project/get.ts
|
|
7
|
+
import { BaseCommand } from "@nexical/cli-core";
|
|
8
|
+
var ProjectsGetCommand = class extends BaseCommand {
|
|
9
|
+
static description = "Get project details";
|
|
10
|
+
static args = {
|
|
11
|
+
args: [
|
|
12
|
+
{
|
|
13
|
+
name: "teamId",
|
|
14
|
+
required: true,
|
|
15
|
+
description: "Team ID"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "projectId",
|
|
19
|
+
required: true,
|
|
20
|
+
description: "Project ID"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
};
|
|
24
|
+
async run(options) {
|
|
25
|
+
const client = getClient();
|
|
26
|
+
const { teamId, projectId } = options;
|
|
27
|
+
const tid = parseInt(teamId, 10);
|
|
28
|
+
const pid = parseInt(projectId, 10);
|
|
29
|
+
if (isNaN(tid) || isNaN(pid)) {
|
|
30
|
+
this.error("IDs must be numbers.");
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
const project = await client.projects.get(tid, pid);
|
|
35
|
+
this.info(`Project Details:`);
|
|
36
|
+
this.info(` ID: ${project.id}`);
|
|
37
|
+
this.info(` Name: ${project.name}`);
|
|
38
|
+
this.info(` Repo: ${project.repoUrl || "N/A"}`);
|
|
39
|
+
this.info(` Prod: ${project.productionUrl || "N/A"}`);
|
|
40
|
+
this.info(` Mode: ${project.mode}`);
|
|
41
|
+
} catch (error) {
|
|
42
|
+
this.error(`Failed to get project: ${error.message}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
export {
|
|
47
|
+
ProjectsGetCommand as default
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/project/get.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class ProjectsGetCommand extends BaseCommand {\n static description = 'Get project details';\n\n static args = {\n args: [\n {\n name: 'teamId',\n required: true,\n description: 'Team ID',\n },\n {\n name: 'projectId',\n required: true,\n description: 'Project ID',\n },\n ],\n };\n\n async run(options: any) {\n const client = getClient();\n const { teamId, projectId } = options;\n const tid = parseInt(teamId, 10);\n const pid = parseInt(projectId, 10);\n\n if (isNaN(tid) || isNaN(pid)) {\n this.error('IDs must be numbers.');\n return;\n }\n\n try {\n const project = await client.projects.get(tid, pid);\n this.info(`Project Details:`);\n this.info(` ID: ${project.id}`);\n this.info(` Name: ${project.name}`);\n this.info(` Repo: ${project.repoUrl || 'N/A'}`);\n this.info(` Prod: ${project.productionUrl || 'N/A'}`);\n this.info(` Mode: ${project.mode}`);\n } catch (error: any) {\n this.error(`Failed to get project: ${error.message}`);\n }\n }\n}\n"],"mappings":";;;;;;AACA,SAAS,mBAAmB;AAG5B,IAAqB,qBAArB,cAAgD,YAAY;AAAA,EACxD,OAAO,cAAc;AAAA,EAErB,OAAO,OAAO;AAAA,IACV,MAAM;AAAA,MACF;AAAA,QACI,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,IAAI,SAAc;AACpB,UAAM,SAAS,UAAU;AACzB,UAAM,EAAE,QAAQ,UAAU,IAAI;AAC9B,UAAM,MAAM,SAAS,QAAQ,EAAE;AAC/B,UAAM,MAAM,SAAS,WAAW,EAAE;AAElC,QAAI,MAAM,GAAG,KAAK,MAAM,GAAG,GAAG;AAC1B,WAAK,MAAM,sBAAsB;AACjC;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,UAAU,MAAM,OAAO,SAAS,IAAI,KAAK,GAAG;AAClD,WAAK,KAAK,kBAAkB;AAC5B,WAAK,KAAK,WAAW,QAAQ,EAAE,EAAE;AACjC,WAAK,KAAK,WAAW,QAAQ,IAAI,EAAE;AACnC,WAAK,KAAK,WAAW,QAAQ,WAAW,KAAK,EAAE;AAC/C,WAAK,KAAK,WAAW,QAAQ,iBAAiB,KAAK,EAAE;AACrD,WAAK,KAAK,WAAW,QAAQ,IAAI,EAAE;AAAA,IACvC,SAAS,OAAY;AACjB,WAAK,MAAM,0BAA0B,MAAM,OAAO,EAAE;AAAA,IACxD;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseCommand } from '@nexical/cli-core';
|
|
2
|
+
|
|
3
|
+
declare class ProjectsListCommand extends BaseCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
static args: {
|
|
6
|
+
args: {
|
|
7
|
+
name: string;
|
|
8
|
+
required: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
}[];
|
|
11
|
+
};
|
|
12
|
+
run(options: any): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { ProjectsListCommand as default };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createRequire } from "module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
getClient
|
|
4
|
+
} from "../../../chunk-FDJVHO4O.js";
|
|
5
|
+
|
|
6
|
+
// src/commands/project/list.ts
|
|
7
|
+
import { BaseCommand } from "@nexical/cli-core";
|
|
8
|
+
var ProjectsListCommand = class extends BaseCommand {
|
|
9
|
+
static description = "List projects in a team";
|
|
10
|
+
static args = {
|
|
11
|
+
args: [
|
|
12
|
+
{
|
|
13
|
+
name: "teamId",
|
|
14
|
+
required: true,
|
|
15
|
+
description: "ID of the team"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
};
|
|
19
|
+
async run(options) {
|
|
20
|
+
const client = getClient();
|
|
21
|
+
const { teamId } = options;
|
|
22
|
+
const tid = parseInt(teamId, 10);
|
|
23
|
+
if (isNaN(tid)) {
|
|
24
|
+
this.error("Team ID must be a number.");
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
const projects = await client.projects.list(tid);
|
|
29
|
+
if (projects.length === 0) {
|
|
30
|
+
this.info(`No projects found in team ${tid}.`);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
this.info(`Projects in Team ${tid}:`);
|
|
34
|
+
for (const project of projects) {
|
|
35
|
+
this.info(`- ${project.name} (ID: ${project.id}) [${project.repoUrl || "No Repo"}]`);
|
|
36
|
+
}
|
|
37
|
+
} catch (error) {
|
|
38
|
+
this.error(`Failed to list projects: ${error.message}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
export {
|
|
43
|
+
ProjectsListCommand as default
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/project/list.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class ProjectsListCommand extends BaseCommand {\n static description = 'List projects in a team';\n\n static args = {\n args: [\n {\n name: 'teamId',\n required: true,\n description: 'ID of the team',\n },\n ],\n };\n\n async run(options: any) {\n const client = getClient();\n const { teamId } = options;\n const tid = parseInt(teamId, 10);\n\n if (isNaN(tid)) {\n this.error('Team ID must be a number.');\n return;\n }\n\n try {\n const projects = await client.projects.list(tid);\n\n if (projects.length === 0) {\n this.info(`No projects found in team ${tid}.`);\n return;\n }\n\n this.info(`Projects in Team ${tid}:`);\n for (const project of projects) {\n this.info(`- ${project.name} (ID: ${project.id}) [${project.repoUrl || 'No Repo'}]`);\n }\n } catch (error: any) {\n this.error(`Failed to list projects: ${error.message}`);\n }\n }\n}\n"],"mappings":";;;;;;AACA,SAAS,mBAAmB;AAG5B,IAAqB,sBAArB,cAAiD,YAAY;AAAA,EACzD,OAAO,cAAc;AAAA,EAErB,OAAO,OAAO;AAAA,IACV,MAAM;AAAA,MACF;AAAA,QACI,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,IAAI,SAAc;AACpB,UAAM,SAAS,UAAU;AACzB,UAAM,EAAE,OAAO,IAAI;AACnB,UAAM,MAAM,SAAS,QAAQ,EAAE;AAE/B,QAAI,MAAM,GAAG,GAAG;AACZ,WAAK,MAAM,2BAA2B;AACtC;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,WAAW,MAAM,OAAO,SAAS,KAAK,GAAG;AAE/C,UAAI,SAAS,WAAW,GAAG;AACvB,aAAK,KAAK,6BAA6B,GAAG,GAAG;AAC7C;AAAA,MACJ;AAEA,WAAK,KAAK,oBAAoB,GAAG,GAAG;AACpC,iBAAW,WAAW,UAAU;AAC5B,aAAK,KAAK,KAAK,QAAQ,IAAI,SAAS,QAAQ,EAAE,MAAM,QAAQ,WAAW,SAAS,GAAG;AAAA,MACvF;AAAA,IACJ,SAAS,OAAY;AACjB,WAAK,MAAM,4BAA4B,MAAM,OAAO,EAAE;AAAA,IAC1D;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BaseCommand } from '@nexical/cli-core';
|
|
2
|
+
|
|
3
|
+
declare class ProjectsUpdateCommand extends BaseCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
static args: {
|
|
6
|
+
args: {
|
|
7
|
+
name: string;
|
|
8
|
+
required: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
}[];
|
|
11
|
+
options: {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
}[];
|
|
15
|
+
};
|
|
16
|
+
run(options: any): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { ProjectsUpdateCommand as default };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { createRequire } from "module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
getClient
|
|
4
|
+
} from "../../../chunk-FDJVHO4O.js";
|
|
5
|
+
|
|
6
|
+
// src/commands/project/update.ts
|
|
7
|
+
import { BaseCommand } from "@nexical/cli-core";
|
|
8
|
+
var ProjectsUpdateCommand = class extends BaseCommand {
|
|
9
|
+
static description = "Update project details";
|
|
10
|
+
static args = {
|
|
11
|
+
args: [
|
|
12
|
+
{
|
|
13
|
+
name: "teamId",
|
|
14
|
+
required: true,
|
|
15
|
+
description: "Team ID"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "projectId",
|
|
19
|
+
required: true,
|
|
20
|
+
description: "Project ID"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
options: [
|
|
24
|
+
{
|
|
25
|
+
name: "--name <name>",
|
|
26
|
+
description: "New name"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "--repo <url>",
|
|
30
|
+
description: "New repo URL"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "--prod <url>",
|
|
34
|
+
description: "New production URL"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: "--mode <mode>",
|
|
38
|
+
description: "New mode"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
};
|
|
42
|
+
async run(options) {
|
|
43
|
+
const client = getClient();
|
|
44
|
+
const { teamId, projectId, name, repo, prod, mode } = options;
|
|
45
|
+
const tid = parseInt(teamId, 10);
|
|
46
|
+
const pid = parseInt(projectId, 10);
|
|
47
|
+
if (isNaN(tid) || isNaN(pid)) {
|
|
48
|
+
this.error("IDs must be numbers.");
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
const project = await client.projects.update(tid, pid, {
|
|
53
|
+
name,
|
|
54
|
+
repoUrl: repo,
|
|
55
|
+
productionUrl: prod
|
|
56
|
+
});
|
|
57
|
+
this.success(`Project ${project.id} updated!`);
|
|
58
|
+
} catch (error) {
|
|
59
|
+
this.error(`Failed to update project: ${error.message}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
export {
|
|
64
|
+
ProjectsUpdateCommand as default
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/project/update.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class ProjectsUpdateCommand extends BaseCommand {\n static description = 'Update project details';\n\n static args = {\n args: [\n {\n name: 'teamId',\n required: true,\n description: 'Team ID',\n },\n {\n name: 'projectId',\n required: true,\n description: 'Project ID',\n },\n ],\n options: [\n {\n name: '--name <name>',\n description: 'New name',\n },\n {\n name: '--repo <url>',\n description: 'New repo URL',\n },\n {\n name: '--prod <url>',\n description: 'New production URL',\n },\n {\n name: '--mode <mode>',\n description: 'New mode',\n },\n ],\n };\n\n async run(options: any) {\n const client = getClient();\n const { teamId, projectId, name, repo, prod, mode } = options;\n const tid = parseInt(teamId, 10);\n const pid = parseInt(projectId, 10);\n\n if (isNaN(tid) || isNaN(pid)) {\n this.error('IDs must be numbers.');\n return;\n }\n\n try {\n const project = await client.projects.update(tid, pid, {\n name,\n repoUrl: repo,\n productionUrl: prod,\n });\n this.success(`Project ${project.id} updated!`);\n } catch (error: any) {\n this.error(`Failed to update project: ${error.message}`);\n }\n }\n}\n"],"mappings":";;;;;;AACA,SAAS,mBAAmB;AAG5B,IAAqB,wBAArB,cAAmD,YAAY;AAAA,EAC3D,OAAO,cAAc;AAAA,EAErB,OAAO,OAAO;AAAA,IACV,MAAM;AAAA,MACF;AAAA,QACI,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,MACL;AAAA,QACI,MAAM;AAAA,QACN,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,IAAI,SAAc;AACpB,UAAM,SAAS,UAAU;AACzB,UAAM,EAAE,QAAQ,WAAW,MAAM,MAAM,MAAM,KAAK,IAAI;AACtD,UAAM,MAAM,SAAS,QAAQ,EAAE;AAC/B,UAAM,MAAM,SAAS,WAAW,EAAE;AAElC,QAAI,MAAM,GAAG,KAAK,MAAM,GAAG,GAAG;AAC1B,WAAK,MAAM,sBAAsB;AACjC;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,UAAU,MAAM,OAAO,SAAS,OAAO,KAAK,KAAK;AAAA,QACnD;AAAA,QACA,SAAS;AAAA,QACT,eAAe;AAAA,MACnB,CAAC;AACD,WAAK,QAAQ,WAAW,QAAQ,EAAE,WAAW;AAAA,IACjD,SAAS,OAAY;AACjB,WAAK,MAAM,6BAA6B,MAAM,OAAO,EAAE;AAAA,IAC3D;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BaseCommand } from '@nexical/cli-core';
|
|
2
|
+
|
|
3
|
+
declare class TeamsCreateCommand extends BaseCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
static args: {
|
|
6
|
+
args: {
|
|
7
|
+
name: string;
|
|
8
|
+
required: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
}[];
|
|
11
|
+
options: {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
}[];
|
|
15
|
+
};
|
|
16
|
+
run(options: any): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { TeamsCreateCommand as default };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createRequire } from "module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
getClient
|
|
4
|
+
} from "../../../chunk-FDJVHO4O.js";
|
|
5
|
+
|
|
6
|
+
// src/commands/team/create.ts
|
|
7
|
+
import { BaseCommand } from "@nexical/cli-core";
|
|
8
|
+
var TeamsCreateCommand = class extends BaseCommand {
|
|
9
|
+
static description = "Create a new team";
|
|
10
|
+
static args = {
|
|
11
|
+
args: [
|
|
12
|
+
{
|
|
13
|
+
name: "name",
|
|
14
|
+
required: true,
|
|
15
|
+
description: "Name of the team"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
options: [
|
|
19
|
+
{
|
|
20
|
+
name: "--slug <slug>",
|
|
21
|
+
description: "Custom URL slug for the team"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
};
|
|
25
|
+
async run(options) {
|
|
26
|
+
const client = getClient();
|
|
27
|
+
const { name, slug } = options;
|
|
28
|
+
const finalSlug = slug || name.toLowerCase().replace(/[^a-z0-9]+/g, "-");
|
|
29
|
+
try {
|
|
30
|
+
const team = await client.teams.create({
|
|
31
|
+
name,
|
|
32
|
+
slug: finalSlug
|
|
33
|
+
});
|
|
34
|
+
this.success(`Team "${team.name}" created successfully!`);
|
|
35
|
+
this.info(`ID: ${team.id}`);
|
|
36
|
+
this.info(`Slug: ${team.slug}`);
|
|
37
|
+
} catch (error) {
|
|
38
|
+
this.error(`Failed to create team: ${error.message}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
export {
|
|
43
|
+
TeamsCreateCommand as default
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/team/create.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class TeamsCreateCommand extends BaseCommand {\n static description = 'Create a new team';\n\n static args = {\n args: [\n {\n name: 'name',\n required: true,\n description: 'Name of the team',\n },\n ],\n options: [\n {\n name: '--slug <slug>',\n description: 'Custom URL slug for the team',\n },\n ],\n };\n\n async run(options: any) {\n const client = getClient();\n const { name, slug } = options;\n // Generate slug from name if not provided (simple version)\n const finalSlug = slug || name.toLowerCase().replace(/[^a-z0-9]+/g, '-');\n\n try {\n const team = await client.teams.create({\n name,\n slug: finalSlug,\n });\n\n this.success(`Team \"${team.name}\" created successfully!`);\n this.info(`ID: ${team.id}`);\n this.info(`Slug: ${team.slug}`);\n } catch (error: any) {\n this.error(`Failed to create team: ${error.message}`);\n }\n }\n}\n"],"mappings":";;;;;;AACA,SAAS,mBAAmB;AAG5B,IAAqB,qBAArB,cAAgD,YAAY;AAAA,EACxD,OAAO,cAAc;AAAA,EAErB,OAAO,OAAO;AAAA,IACV,MAAM;AAAA,MACF;AAAA,QACI,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,MACL;AAAA,QACI,MAAM;AAAA,QACN,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,IAAI,SAAc;AACpB,UAAM,SAAS,UAAU;AACzB,UAAM,EAAE,MAAM,KAAK,IAAI;AAEvB,UAAM,YAAY,QAAQ,KAAK,YAAY,EAAE,QAAQ,eAAe,GAAG;AAEvE,QAAI;AACA,YAAM,OAAO,MAAM,OAAO,MAAM,OAAO;AAAA,QACnC;AAAA,QACA,MAAM;AAAA,MACV,CAAC;AAED,WAAK,QAAQ,SAAS,KAAK,IAAI,yBAAyB;AACxD,WAAK,KAAK,OAAO,KAAK,EAAE,EAAE;AAC1B,WAAK,KAAK,SAAS,KAAK,IAAI,EAAE;AAAA,IAClC,SAAS,OAAY;AACjB,WAAK,MAAM,0BAA0B,MAAM,OAAO,EAAE;AAAA,IACxD;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseCommand } from '@nexical/cli-core';
|
|
2
|
+
|
|
3
|
+
declare class TeamsDeleteCommand extends BaseCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
static args: {
|
|
6
|
+
args: {
|
|
7
|
+
name: string;
|
|
8
|
+
required: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
}[];
|
|
11
|
+
options: {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
default: boolean;
|
|
15
|
+
}[];
|
|
16
|
+
};
|
|
17
|
+
run(options: any): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { TeamsDeleteCommand as default };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { createRequire } from "module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
getClient
|
|
4
|
+
} from "../../../chunk-FDJVHO4O.js";
|
|
5
|
+
|
|
6
|
+
// src/commands/team/delete.ts
|
|
7
|
+
import { BaseCommand } from "@nexical/cli-core";
|
|
8
|
+
var TeamsDeleteCommand = class extends BaseCommand {
|
|
9
|
+
static description = "Delete a team";
|
|
10
|
+
static args = {
|
|
11
|
+
args: [
|
|
12
|
+
{
|
|
13
|
+
name: "teamId",
|
|
14
|
+
required: true,
|
|
15
|
+
description: "Team ID"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
options: [
|
|
19
|
+
{
|
|
20
|
+
name: "--confirm",
|
|
21
|
+
description: "Skip confirmation",
|
|
22
|
+
default: false
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
};
|
|
26
|
+
async run(options) {
|
|
27
|
+
const client = getClient();
|
|
28
|
+
const { teamId, confirm } = options;
|
|
29
|
+
const tid = parseInt(teamId, 10);
|
|
30
|
+
if (isNaN(tid)) {
|
|
31
|
+
this.error("Team ID must be a number.");
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (!confirm) {
|
|
35
|
+
const answer = await this.prompt(`Are you sure you want to delete team ${tid}? (yes/no)`);
|
|
36
|
+
if (answer.toLowerCase() !== "yes") {
|
|
37
|
+
this.info("Aborted.");
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
await client.teams.delete(tid);
|
|
43
|
+
this.success(`Team ${tid} deleted.`);
|
|
44
|
+
} catch (error) {
|
|
45
|
+
this.error(`Failed to delete team: ${error.message}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
export {
|
|
50
|
+
TeamsDeleteCommand as default
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/team/delete.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class TeamsDeleteCommand extends BaseCommand {\n static description = 'Delete a team';\n\n static args = {\n args: [\n {\n name: 'teamId',\n required: true,\n description: 'Team ID',\n },\n ],\n options: [\n {\n name: '--confirm',\n description: 'Skip confirmation',\n default: false,\n },\n ],\n };\n\n async run(options: any) {\n const client = getClient();\n const { teamId, confirm } = options;\n const tid = parseInt(teamId, 10);\n\n if (isNaN(tid)) {\n this.error('Team ID must be a number.');\n return;\n }\n\n if (!confirm) {\n const answer = await this.prompt(`Are you sure you want to delete team ${tid}? (yes/no)`);\n if (answer.toLowerCase() !== 'yes') {\n this.info('Aborted.');\n return;\n }\n }\n\n try {\n await client.teams.delete(tid);\n this.success(`Team ${tid} deleted.`);\n } catch (error: any) {\n this.error(`Failed to delete team: ${error.message}`);\n }\n }\n}\n"],"mappings":";;;;;;AACA,SAAS,mBAAmB;AAG5B,IAAqB,qBAArB,cAAgD,YAAY;AAAA,EACxD,OAAO,cAAc;AAAA,EAErB,OAAO,OAAO;AAAA,IACV,MAAM;AAAA,MACF;AAAA,QACI,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,MACL;AAAA,QACI,MAAM;AAAA,QACN,aAAa;AAAA,QACb,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,IAAI,SAAc;AACpB,UAAM,SAAS,UAAU;AACzB,UAAM,EAAE,QAAQ,QAAQ,IAAI;AAC5B,UAAM,MAAM,SAAS,QAAQ,EAAE;AAE/B,QAAI,MAAM,GAAG,GAAG;AACZ,WAAK,MAAM,2BAA2B;AACtC;AAAA,IACJ;AAEA,QAAI,CAAC,SAAS;AACV,YAAM,SAAS,MAAM,KAAK,OAAO,wCAAwC,GAAG,YAAY;AACxF,UAAI,OAAO,YAAY,MAAM,OAAO;AAChC,aAAK,KAAK,UAAU;AACpB;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,OAAO,MAAM,OAAO,GAAG;AAC7B,WAAK,QAAQ,QAAQ,GAAG,WAAW;AAAA,IACvC,SAAS,OAAY;AACjB,WAAK,MAAM,0BAA0B,MAAM,OAAO,EAAE;AAAA,IACxD;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseCommand } from '@nexical/cli-core';
|
|
2
|
+
|
|
3
|
+
declare class TeamsGetCommand extends BaseCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
static args: {
|
|
6
|
+
args: {
|
|
7
|
+
name: string;
|
|
8
|
+
required: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
}[];
|
|
11
|
+
};
|
|
12
|
+
run(options: any): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { TeamsGetCommand as default };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { createRequire } from "module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
getClient
|
|
4
|
+
} from "../../../chunk-FDJVHO4O.js";
|
|
5
|
+
|
|
6
|
+
// src/commands/team/get.ts
|
|
7
|
+
import { BaseCommand } from "@nexical/cli-core";
|
|
8
|
+
var TeamsGetCommand = class extends BaseCommand {
|
|
9
|
+
static description = "Get team details";
|
|
10
|
+
static args = {
|
|
11
|
+
args: [
|
|
12
|
+
{
|
|
13
|
+
name: "teamId",
|
|
14
|
+
required: true,
|
|
15
|
+
description: "Team ID"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
};
|
|
19
|
+
async run(options) {
|
|
20
|
+
const client = getClient();
|
|
21
|
+
const { teamId } = options;
|
|
22
|
+
const tid = parseInt(teamId, 10);
|
|
23
|
+
if (isNaN(tid)) {
|
|
24
|
+
this.error("Team ID must be a number.");
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
const team = await client.teams.get(tid);
|
|
29
|
+
this.info(`Team Details:`);
|
|
30
|
+
this.info(` ID: ${team.id}`);
|
|
31
|
+
this.info(` Name: ${team.name}`);
|
|
32
|
+
this.info(` Slug: ${team.slug}`);
|
|
33
|
+
this.info(` Role: ${team.role || "member"}`);
|
|
34
|
+
} catch (error) {
|
|
35
|
+
this.error(`Failed to get team: ${error.message}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
export {
|
|
40
|
+
TeamsGetCommand as default
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/team/get.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class TeamsGetCommand extends BaseCommand {\n static description = 'Get team details';\n\n static args = {\n args: [\n {\n name: 'teamId',\n required: true,\n description: 'Team ID',\n },\n ],\n };\n\n async run(options: any) {\n const client = getClient();\n const { teamId } = options;\n const tid = parseInt(teamId, 10);\n\n if (isNaN(tid)) {\n this.error('Team ID must be a number.');\n return;\n }\n\n try {\n const team = await client.teams.get(tid);\n this.info(`Team Details:`);\n this.info(` ID: ${team.id}`);\n this.info(` Name: ${team.name}`);\n this.info(` Slug: ${team.slug}`);\n this.info(` Role: ${team.role || 'member'}`);\n } catch (error: any) {\n this.error(`Failed to get team: ${error.message}`);\n }\n }\n}\n"],"mappings":";;;;;;AACA,SAAS,mBAAmB;AAG5B,IAAqB,kBAArB,cAA6C,YAAY;AAAA,EACrD,OAAO,cAAc;AAAA,EAErB,OAAO,OAAO;AAAA,IACV,MAAM;AAAA,MACF;AAAA,QACI,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,IAAI,SAAc;AACpB,UAAM,SAAS,UAAU;AACzB,UAAM,EAAE,OAAO,IAAI;AACnB,UAAM,MAAM,SAAS,QAAQ,EAAE;AAE/B,QAAI,MAAM,GAAG,GAAG;AACZ,WAAK,MAAM,2BAA2B;AACtC;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,OAAO,MAAM,OAAO,MAAM,IAAI,GAAG;AACvC,WAAK,KAAK,eAAe;AACzB,WAAK,KAAK,WAAW,KAAK,EAAE,EAAE;AAC9B,WAAK,KAAK,WAAW,KAAK,IAAI,EAAE;AAChC,WAAK,KAAK,WAAW,KAAK,IAAI,EAAE;AAChC,WAAK,KAAK,WAAW,KAAK,QAAQ,QAAQ,EAAE;AAAA,IAChD,SAAS,OAAY;AACjB,WAAK,MAAM,uBAAuB,MAAM,OAAO,EAAE;AAAA,IACrD;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createRequire } from "module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
getClient
|
|
4
|
+
} from "../../../chunk-FDJVHO4O.js";
|
|
5
|
+
|
|
6
|
+
// src/commands/team/list.ts
|
|
7
|
+
import { BaseCommand } from "@nexical/cli-core";
|
|
8
|
+
var TeamsListCommand = class extends BaseCommand {
|
|
9
|
+
static description = "List all teams you belong to";
|
|
10
|
+
async run() {
|
|
11
|
+
const client = getClient();
|
|
12
|
+
try {
|
|
13
|
+
const teams = await client.teams.list();
|
|
14
|
+
if (teams.length === 0) {
|
|
15
|
+
this.info("You are not a member of any teams.");
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
this.info("Your Teams:");
|
|
19
|
+
for (const team of teams) {
|
|
20
|
+
this.info(`- ${team.name} (${team.slug}) [${team.role || "member"}]`);
|
|
21
|
+
}
|
|
22
|
+
} catch (error) {
|
|
23
|
+
this.error(`Failed to list teams: ${error.message}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
export {
|
|
28
|
+
TeamsListCommand as default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/team/list.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class TeamsListCommand extends BaseCommand {\n static description = 'List all teams you belong to';\n\n async run() {\n const client = getClient();\n try {\n const teams = await client.teams.list();\n\n if (teams.length === 0) {\n this.info('You are not a member of any teams.');\n return;\n }\n\n this.info('Your Teams:');\n for (const team of teams) {\n this.info(`- ${team.name} (${team.slug}) [${team.role || 'member'}]`);\n }\n } catch (error: any) {\n this.error(`Failed to list teams: ${error.message}`);\n }\n }\n}\n"],"mappings":";;;;;;AACA,SAAS,mBAAmB;AAG5B,IAAqB,mBAArB,cAA8C,YAAY;AAAA,EACtD,OAAO,cAAc;AAAA,EAErB,MAAM,MAAM;AACR,UAAM,SAAS,UAAU;AACzB,QAAI;AACA,YAAM,QAAQ,MAAM,OAAO,MAAM,KAAK;AAEtC,UAAI,MAAM,WAAW,GAAG;AACpB,aAAK,KAAK,oCAAoC;AAC9C;AAAA,MACJ;AAEA,WAAK,KAAK,aAAa;AACvB,iBAAW,QAAQ,OAAO;AACtB,aAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,QAAQ,GAAG;AAAA,MACxE;AAAA,IACJ,SAAS,OAAY;AACjB,WAAK,MAAM,yBAAyB,MAAM,OAAO,EAAE;AAAA,IACvD;AAAA,EACJ;AACJ;","names":[]}
|