@nexical/cli 0.1.6 → 0.10.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.
Files changed (236) hide show
  1. package/.github/workflows/deploy.yml +3 -3
  2. package/README.md +317 -104
  3. package/dist/chunk-JYASTIIW.js +42 -0
  4. package/dist/chunk-JYASTIIW.js.map +1 -0
  5. package/dist/chunk-LZ3YQWAR.js +2204 -0
  6. package/dist/chunk-LZ3YQWAR.js.map +1 -0
  7. package/dist/chunk-OKXOCNXP.js +105 -0
  8. package/dist/chunk-OKXOCNXP.js.map +1 -0
  9. package/dist/chunk-OYFWMYPG.js +52 -0
  10. package/dist/chunk-OYFWMYPG.js.map +1 -0
  11. package/dist/chunk-WKERTCM6.js +74 -0
  12. package/dist/chunk-WKERTCM6.js.map +1 -0
  13. package/dist/index.js +33 -6
  14. package/dist/index.js.map +1 -1
  15. package/dist/src/commands/init.d.ts +11 -0
  16. package/dist/src/commands/init.js +88 -0
  17. package/dist/src/commands/init.js.map +1 -0
  18. package/dist/src/commands/module/add.d.ts +14 -0
  19. package/dist/src/commands/module/add.js +136 -0
  20. package/dist/src/commands/module/add.js.map +1 -0
  21. package/dist/src/commands/module/list.d.ts +10 -0
  22. package/dist/src/commands/module/list.js +73 -0
  23. package/dist/src/commands/module/list.js.map +1 -0
  24. package/dist/src/commands/module/remove.d.ts +12 -0
  25. package/dist/src/commands/module/remove.js +71 -0
  26. package/dist/src/commands/module/remove.js.map +1 -0
  27. package/dist/src/commands/module/update.d.ts +11 -0
  28. package/dist/src/commands/module/update.js +52 -0
  29. package/dist/src/commands/module/update.js.map +1 -0
  30. package/dist/src/commands/run.d.ts +11 -0
  31. package/dist/src/commands/run.js +93 -0
  32. package/dist/src/commands/run.js.map +1 -0
  33. package/dist/src/utils/discovery.d.ts +13 -0
  34. package/dist/src/utils/discovery.js +9 -0
  35. package/dist/src/utils/git.d.ts +16 -0
  36. package/dist/src/utils/git.js +29 -0
  37. package/dist/src/utils/git.js.map +1 -0
  38. package/dist/src/utils/url-resolver.d.ts +15 -0
  39. package/dist/src/utils/url-resolver.js +9 -0
  40. package/dist/src/utils/url-resolver.js.map +1 -0
  41. package/index.ts +29 -5
  42. package/package.json +32 -30
  43. package/src/commands/init.ts +85 -0
  44. package/src/commands/module/add.ts +169 -0
  45. package/src/commands/module/list.ts +69 -0
  46. package/src/commands/module/remove.ts +74 -0
  47. package/src/commands/module/update.ts +50 -0
  48. package/src/commands/run.ts +98 -0
  49. package/src/utils/discovery.ts +134 -0
  50. package/src/utils/git.ts +65 -0
  51. package/src/utils/url-resolver.ts +57 -0
  52. package/test/e2e/lifecycle.e2e.test.ts +152 -0
  53. package/test/integration/commands/init.integration.test.ts +82 -0
  54. package/test/integration/commands/module.integration.test.ts +144 -0
  55. package/test/integration/commands/run.integration.test.ts +90 -0
  56. package/test/integration/utils/command-loading.integration.test.ts +80 -0
  57. package/test/unit/commands/init.test.ts +153 -0
  58. package/test/unit/commands/module/add.test.ts +262 -0
  59. package/test/unit/commands/module/list.test.ts +115 -0
  60. package/test/unit/commands/module/remove.test.ts +89 -0
  61. package/test/unit/commands/module/update.test.ts +91 -0
  62. package/test/unit/commands/run.test.ts +252 -0
  63. package/test/unit/utils/command-discovery.test.ts +176 -0
  64. package/test/unit/utils/git.test.ts +152 -0
  65. package/test/unit/utils/integration-helpers.test.ts +72 -0
  66. package/test/unit/utils/url-resolver.test.ts +39 -0
  67. package/test/utils/integration-helpers.ts +66 -0
  68. package/vitest.e2e.config.ts +0 -1
  69. package/dist/chunk-JDRAVUKK.js +0 -48
  70. package/dist/chunk-JDRAVUKK.js.map +0 -1
  71. package/dist/src/commands/admin/create-user.d.ts +0 -15
  72. package/dist/src/commands/admin/create-user.js +0 -49
  73. package/dist/src/commands/admin/create-user.js.map +0 -1
  74. package/dist/src/commands/branch/create.d.ts +0 -19
  75. package/dist/src/commands/branch/create.js +0 -59
  76. package/dist/src/commands/branch/create.js.map +0 -1
  77. package/dist/src/commands/branch/delete.d.ts +0 -15
  78. package/dist/src/commands/branch/delete.js +0 -50
  79. package/dist/src/commands/branch/delete.js.map +0 -1
  80. package/dist/src/commands/branch/get.d.ts +0 -15
  81. package/dist/src/commands/branch/get.js +0 -53
  82. package/dist/src/commands/branch/get.js.map +0 -1
  83. package/dist/src/commands/branch/list.d.ts +0 -15
  84. package/dist/src/commands/branch/list.js +0 -51
  85. package/dist/src/commands/branch/list.js.map +0 -1
  86. package/dist/src/commands/job/get.d.ts +0 -15
  87. package/dist/src/commands/job/get.js +0 -62
  88. package/dist/src/commands/job/get.js.map +0 -1
  89. package/dist/src/commands/job/list.d.ts +0 -15
  90. package/dist/src/commands/job/list.js +0 -57
  91. package/dist/src/commands/job/list.js.map +0 -1
  92. package/dist/src/commands/job/logs.d.ts +0 -15
  93. package/dist/src/commands/job/logs.js +0 -67
  94. package/dist/src/commands/job/logs.js.map +0 -1
  95. package/dist/src/commands/job/trigger.d.ts +0 -19
  96. package/dist/src/commands/job/trigger.js +0 -74
  97. package/dist/src/commands/job/trigger.js.map +0 -1
  98. package/dist/src/commands/login.d.ts +0 -8
  99. package/dist/src/commands/login.js +0 -31
  100. package/dist/src/commands/login.js.map +0 -1
  101. package/dist/src/commands/project/create.d.ts +0 -24
  102. package/dist/src/commands/project/create.js +0 -63
  103. package/dist/src/commands/project/create.js.map +0 -1
  104. package/dist/src/commands/project/delete.d.ts +0 -20
  105. package/dist/src/commands/project/delete.js +0 -58
  106. package/dist/src/commands/project/delete.js.map +0 -1
  107. package/dist/src/commands/project/get.d.ts +0 -15
  108. package/dist/src/commands/project/get.js +0 -49
  109. package/dist/src/commands/project/get.js.map +0 -1
  110. package/dist/src/commands/project/list.d.ts +0 -15
  111. package/dist/src/commands/project/list.js +0 -45
  112. package/dist/src/commands/project/list.js.map +0 -1
  113. package/dist/src/commands/project/update.d.ts +0 -19
  114. package/dist/src/commands/project/update.js +0 -66
  115. package/dist/src/commands/project/update.js.map +0 -1
  116. package/dist/src/commands/team/create.d.ts +0 -19
  117. package/dist/src/commands/team/create.js +0 -45
  118. package/dist/src/commands/team/create.js.map +0 -1
  119. package/dist/src/commands/team/delete.d.ts +0 -20
  120. package/dist/src/commands/team/delete.js +0 -52
  121. package/dist/src/commands/team/delete.js.map +0 -1
  122. package/dist/src/commands/team/get.d.ts +0 -15
  123. package/dist/src/commands/team/get.js +0 -42
  124. package/dist/src/commands/team/get.js.map +0 -1
  125. package/dist/src/commands/team/list.d.ts +0 -8
  126. package/dist/src/commands/team/list.js +0 -30
  127. package/dist/src/commands/team/list.js.map +0 -1
  128. package/dist/src/commands/team/member/invite.d.ts +0 -20
  129. package/dist/src/commands/team/member/invite.js +0 -54
  130. package/dist/src/commands/team/member/invite.js.map +0 -1
  131. package/dist/src/commands/team/member/remove.d.ts +0 -15
  132. package/dist/src/commands/team/member/remove.js +0 -43
  133. package/dist/src/commands/team/member/remove.js.map +0 -1
  134. package/dist/src/commands/team/update.d.ts +0 -19
  135. package/dist/src/commands/team/update.js +0 -55
  136. package/dist/src/commands/team/update.js.map +0 -1
  137. package/dist/src/commands/token/generate.d.ts +0 -19
  138. package/dist/src/commands/token/generate.js +0 -48
  139. package/dist/src/commands/token/generate.js.map +0 -1
  140. package/dist/src/commands/token/list.d.ts +0 -8
  141. package/dist/src/commands/token/list.js +0 -31
  142. package/dist/src/commands/token/list.js.map +0 -1
  143. package/dist/src/commands/token/revoke.d.ts +0 -15
  144. package/dist/src/commands/token/revoke.js +0 -38
  145. package/dist/src/commands/token/revoke.js.map +0 -1
  146. package/dist/src/commands/whoami.d.ts +0 -8
  147. package/dist/src/commands/whoami.js +0 -26
  148. package/dist/src/commands/whoami.js.map +0 -1
  149. package/dist/src/utils/nexical-client.d.ts +0 -10
  150. package/dist/src/utils/nexical-client.js +0 -12
  151. package/src/commands/admin/create-user.ts +0 -46
  152. package/src/commands/branch/create.ts +0 -57
  153. package/src/commands/branch/delete.ts +0 -47
  154. package/src/commands/branch/get.ts +0 -50
  155. package/src/commands/branch/list.ts +0 -50
  156. package/src/commands/job/get.ts +0 -59
  157. package/src/commands/job/list.ts +0 -56
  158. package/src/commands/job/logs.ts +0 -67
  159. package/src/commands/job/trigger.ts +0 -73
  160. package/src/commands/login.ts +0 -31
  161. package/src/commands/project/create.ts +0 -61
  162. package/src/commands/project/delete.ts +0 -56
  163. package/src/commands/project/get.ts +0 -46
  164. package/src/commands/project/list.ts +0 -44
  165. package/src/commands/project/update.ts +0 -63
  166. package/src/commands/team/create.ts +0 -43
  167. package/src/commands/team/delete.ts +0 -50
  168. package/src/commands/team/get.ts +0 -39
  169. package/src/commands/team/list.ts +0 -26
  170. package/src/commands/team/member/invite.ts +0 -56
  171. package/src/commands/team/member/remove.ts +0 -40
  172. package/src/commands/team/update.ts +0 -53
  173. package/src/commands/token/generate.ts +0 -45
  174. package/src/commands/token/list.ts +0 -27
  175. package/src/commands/token/revoke.ts +0 -35
  176. package/src/commands/whoami.ts +0 -21
  177. package/src/utils/nexical-client.ts +0 -47
  178. package/test/e2e/auth.e2e.test.ts +0 -46
  179. package/test/e2e/job-workflow.e2e.test.ts +0 -33
  180. package/test/e2e/project-lifecycle.e2e.test.ts +0 -48
  181. package/test/e2e/setup.ts +0 -237
  182. package/test/e2e/utils.ts +0 -33
  183. package/test/integration/commands/admin/create-user.test.ts +0 -51
  184. package/test/integration/commands/branch/create.test.ts +0 -51
  185. package/test/integration/commands/branch/delete.test.ts +0 -43
  186. package/test/integration/commands/branch/get.test.ts +0 -49
  187. package/test/integration/commands/branch/list.test.ts +0 -47
  188. package/test/integration/commands/job/get.test.ts +0 -54
  189. package/test/integration/commands/job/list.test.ts +0 -47
  190. package/test/integration/commands/job/logs.test.ts +0 -47
  191. package/test/integration/commands/job/trigger.test.ts +0 -57
  192. package/test/integration/commands/login.test.ts +0 -62
  193. package/test/integration/commands/project/create.test.ts +0 -53
  194. package/test/integration/commands/project/delete.test.ts +0 -43
  195. package/test/integration/commands/project/get.test.ts +0 -51
  196. package/test/integration/commands/project/list.test.ts +0 -47
  197. package/test/integration/commands/project/update.test.ts +0 -53
  198. package/test/integration/commands/team/create.test.ts +0 -53
  199. package/test/integration/commands/team/delete.test.ts +0 -43
  200. package/test/integration/commands/team/get.test.ts +0 -50
  201. package/test/integration/commands/team/list.test.ts +0 -47
  202. package/test/integration/commands/team/member/invite.test.ts +0 -46
  203. package/test/integration/commands/team/member/remove.test.ts +0 -43
  204. package/test/integration/commands/team/update.test.ts +0 -50
  205. package/test/integration/commands/token/generate.test.ts +0 -51
  206. package/test/integration/commands/token/list.test.ts +0 -47
  207. package/test/integration/commands/token/revoke.test.ts +0 -43
  208. package/test/integration/commands/whoami.test.ts +0 -49
  209. package/test/unit/commands/admin/create-user.test.ts +0 -51
  210. package/test/unit/commands/branch/create.test.ts +0 -57
  211. package/test/unit/commands/branch/delete.test.ts +0 -49
  212. package/test/unit/commands/branch/get.test.ts +0 -67
  213. package/test/unit/commands/branch/list.test.ts +0 -62
  214. package/test/unit/commands/job/get.test.ts +0 -76
  215. package/test/unit/commands/job/list.test.ts +0 -62
  216. package/test/unit/commands/job/logs.test.ts +0 -60
  217. package/test/unit/commands/job/trigger.test.ts +0 -75
  218. package/test/unit/commands/login.test.ts +0 -64
  219. package/test/unit/commands/project/create.test.ts +0 -64
  220. package/test/unit/commands/project/delete.test.ts +0 -72
  221. package/test/unit/commands/project/get.test.ts +0 -73
  222. package/test/unit/commands/project/list.test.ts +0 -62
  223. package/test/unit/commands/project/update.test.ts +0 -58
  224. package/test/unit/commands/team/create.test.ts +0 -68
  225. package/test/unit/commands/team/delete.test.ts +0 -71
  226. package/test/unit/commands/team/get.test.ts +0 -70
  227. package/test/unit/commands/team/list.test.ts +0 -56
  228. package/test/unit/commands/team/member/invite.test.ts +0 -52
  229. package/test/unit/commands/team/member/remove.test.ts +0 -49
  230. package/test/unit/commands/team/update.test.ts +0 -63
  231. package/test/unit/commands/token/generate.test.ts +0 -65
  232. package/test/unit/commands/token/list.test.ts +0 -58
  233. package/test/unit/commands/token/revoke.test.ts +0 -49
  234. package/test/unit/commands/whoami.test.ts +0 -49
  235. package/test/unit/utils/nexical-client.test.ts +0 -113
  236. /package/dist/src/utils/{nexical-client.js.map → discovery.js.map} +0 -0
@@ -0,0 +1,72 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
+ import * as helpers from '../../utils/integration-helpers.js';
3
+ import fs from 'fs-extra';
4
+ import { execa } from 'execa';
5
+ import path from 'path';
6
+
7
+ vi.mock('fs-extra');
8
+ vi.mock('execa');
9
+
10
+ describe('Integration Helpers Unit', () => {
11
+ beforeEach(() => {
12
+ vi.clearAllMocks();
13
+ });
14
+
15
+ it('runCLI should execute node with correct arguments', async () => {
16
+ vi.mocked(execa).mockResolvedValue({ exitCode: 0 } as any);
17
+ const args = ['init', 'my-project'];
18
+ const cwd = '/test/cwd';
19
+ const env = { FOO: 'bar' };
20
+
21
+ await helpers.runCLI(args, cwd, { env });
22
+
23
+ expect(execa).toHaveBeenCalledWith(
24
+ 'node',
25
+ expect.arrayContaining([expect.stringContaining('dist/index.js'), ...args]),
26
+ expect.objectContaining({
27
+ cwd,
28
+ env: expect.objectContaining({ FOO: 'bar' }),
29
+ reject: false
30
+ })
31
+ );
32
+ });
33
+
34
+ it('createTempDir should create directory and return path', async () => {
35
+ vi.mocked(fs.ensureDir).mockResolvedValue(undefined);
36
+
37
+ const dir = await helpers.createTempDir('test-prefix-');
38
+
39
+ expect(dir).toContain('test-prefix-');
40
+ expect(fs.ensureDir).toHaveBeenCalledWith(dir);
41
+ });
42
+
43
+ it('cleanupTestRoot should remove test root directory', async () => {
44
+ vi.mocked(fs.remove).mockResolvedValue(undefined);
45
+
46
+ await helpers.cleanupTestRoot();
47
+
48
+ expect(fs.remove).toHaveBeenCalledWith(expect.stringContaining('.test-tmp'));
49
+ });
50
+
51
+ it('createMockRepo should initialize git repo and commit files', async () => {
52
+ vi.mocked(fs.ensureDir).mockResolvedValue(undefined);
53
+ vi.mocked(fs.outputFile).mockResolvedValue(undefined);
54
+ vi.mocked(execa).mockResolvedValue({} as any);
55
+
56
+ const dir = '/test/repo';
57
+ const files = {
58
+ 'package.json': '{}',
59
+ 'README.md': '# Test'
60
+ };
61
+
62
+ await helpers.createMockRepo(dir, files);
63
+
64
+ expect(fs.ensureDir).toHaveBeenCalledWith(dir);
65
+ expect(execa).toHaveBeenCalledWith('git', ['init'], expect.objectContaining({ cwd: dir }));
66
+ expect(execa).toHaveBeenCalledWith('git', ['config', 'user.email', 'test@test.com'], expect.objectContaining({ cwd: dir }));
67
+ expect(fs.outputFile).toHaveBeenCalledWith(path.join(dir, 'package.json'), '{}');
68
+ expect(fs.outputFile).toHaveBeenCalledWith(path.join(dir, 'README.md'), '# Test');
69
+ expect(execa).toHaveBeenCalledWith('git', ['add', '.'], expect.objectContaining({ cwd: dir }));
70
+ expect(execa).toHaveBeenCalledWith('git', ['commit', '-m', 'Initial commit'], expect.objectContaining({ cwd: dir }));
71
+ });
72
+ });
@@ -0,0 +1,39 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { resolveGitUrl } from '../../../src/utils/url-resolver';
3
+
4
+ describe('resolveGitUrl', () => {
5
+ it('should expand gh@ shorthand correctly', () => {
6
+ expect(resolveGitUrl('gh@nexical-cms/starter')).toBe('https://github.com/nexical-cms/starter.git');
7
+ });
8
+
9
+ it('should expand gh@ shorthand with subpath correctly', () => {
10
+ expect(resolveGitUrl('gh@nexical-cms/starter//path/to/module')).toBe('https://github.com/nexical-cms/starter.git//path/to/module');
11
+ });
12
+
13
+ it('should add .git extension to standard URLs if missing', () => {
14
+ expect(resolveGitUrl('https://github.com/nexical-cms/starter')).toBe('https://github.com/nexical-cms/starter.git');
15
+ });
16
+
17
+ it('should preserve .git extension if already present', () => {
18
+ expect(resolveGitUrl('https://github.com/nexical-cms/starter.git')).toBe('https://github.com/nexical-cms/starter.git');
19
+ });
20
+
21
+ it('should handle standard URLs with subpath correctly', () => {
22
+ expect(resolveGitUrl('https://github.com/nexical-cms/starter//path/to/dir')).toBe('https://github.com/nexical-cms/starter.git//path/to/dir');
23
+ });
24
+
25
+ it('should handle standard URLs with .git and subpath correctly', () => {
26
+ expect(resolveGitUrl('https://github.com/nexical-cms/starter.git//path/to/dir')).toBe('https://github.com/nexical-cms/starter.git//path/to/dir');
27
+ });
28
+
29
+ it('should throw error for empty url', () => {
30
+ expect(() => resolveGitUrl('')).toThrow('URL cannot be empty');
31
+ });
32
+
33
+ it('should not append .git to local paths', () => {
34
+ expect(resolveGitUrl('/tmp/local/repo')).toBe('/tmp/local/repo');
35
+ expect(resolveGitUrl('./local/repo')).toBe('./local/repo');
36
+ expect(resolveGitUrl('../local/repo')).toBe('../local/repo');
37
+ expect(resolveGitUrl('file:///tmp/repo')).toBe('file:///tmp/repo');
38
+ });
39
+ });
@@ -0,0 +1,66 @@
1
+ import path from 'node:path';
2
+ import fs from 'fs-extra';
3
+ import { execa } from 'execa';
4
+ import { fileURLToPath } from 'node:url';
5
+
6
+ // Constants
7
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
+ export const TEST_ROOT = path.resolve(__dirname, '../../.test-tmp');
9
+ export const CLI_BIN = path.resolve(__dirname, '../../dist/index.js');
10
+
11
+ /**
12
+ * Runs the CLI command against the compiled binary (E2E style)
13
+ */
14
+ export async function runCLI(args: string[], cwd: string, options: any = {}) {
15
+ return execa('node', [CLI_BIN, ...args], {
16
+ cwd,
17
+ ...options,
18
+ env: {
19
+ ...process.env,
20
+ ...options.env
21
+ },
22
+ reject: false // Allow checking exit code in tests
23
+ });
24
+ }
25
+
26
+ /**
27
+ * Creates a temporary directory for testing.
28
+ * @returns The absolute path to the temporary directory.
29
+ */
30
+ export async function createTempDir(prefix = 'test-'): Promise<string> {
31
+ const dir = path.join(TEST_ROOT, `${prefix}${Date.now()}-${Math.random().toString(36).slice(2)}`);
32
+ await fs.ensureDir(dir);
33
+ return dir;
34
+ }
35
+
36
+ /**
37
+ * Cleans up the temporary test root.
38
+ */
39
+ export async function cleanupTestRoot(): Promise<void> {
40
+ await fs.remove(TEST_ROOT);
41
+ }
42
+
43
+ /**
44
+ * Creates a mock git repository at the specified path.
45
+ * This is useful for testing commands that clone from a remote.
46
+ */
47
+ export async function createMockRepo(dir: string, initialFiles: Record<string, string> = {}): Promise<string> {
48
+ await fs.ensureDir(dir);
49
+
50
+ // Initialize bare repo? No, usually we want a regular repo then commit,
51
+ // but if we want to clone FROM it locally, it acts as a remote.
52
+ // Let's make it a regular repo.
53
+ await execa('git', ['init'], { cwd: dir });
54
+ await execa('git', ['config', 'user.email', 'test@test.com'], { cwd: dir });
55
+ await execa('git', ['config', 'user.name', 'Test User'], { cwd: dir });
56
+
57
+ // Write initial files
58
+ for (const [filename, content] of Object.entries(initialFiles)) {
59
+ await fs.outputFile(path.join(dir, filename), content);
60
+ }
61
+
62
+ await execa('git', ['add', '.'], { cwd: dir });
63
+ await execa('git', ['commit', '-m', 'Initial commit'], { cwd: dir });
64
+
65
+ return dir;
66
+ }
@@ -6,6 +6,5 @@ export default defineConfig({
6
6
  environment: 'node',
7
7
  include: ['test/e2e/**/*.test.ts'],
8
8
  testTimeout: 60000,
9
- fileParallelism: false,
10
9
  },
11
10
  });
@@ -1,48 +0,0 @@
1
- import { createRequire } from "module"; const require = createRequire(import.meta.url);
2
-
3
- // src/utils/nexical-client.ts
4
- import { NexicalClient } from "@nexical/sdk";
5
- import fs from "fs";
6
- import path from "path";
7
- import os from "os";
8
- var getConfigPaths = () => {
9
- const HOME = process.env.HOME || os.homedir();
10
- const CONFIG_DIR = path.join(HOME, ".nexical");
11
- const CONFIG_FILE = path.join(CONFIG_DIR, "config.json");
12
- return { CONFIG_DIR, CONFIG_FILE };
13
- };
14
- function getConfig() {
15
- const { CONFIG_FILE } = getConfigPaths();
16
- if (!fs.existsSync(CONFIG_FILE)) {
17
- return {};
18
- }
19
- try {
20
- const content = fs.readFileSync(CONFIG_FILE, "utf-8");
21
- return JSON.parse(content);
22
- } catch (error) {
23
- return {};
24
- }
25
- }
26
- function saveToken(token) {
27
- const { CONFIG_DIR, CONFIG_FILE } = getConfigPaths();
28
- if (!fs.existsSync(CONFIG_DIR)) {
29
- fs.mkdirSync(CONFIG_DIR, { recursive: true });
30
- }
31
- const config = getConfig();
32
- config.token = token;
33
- fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
34
- }
35
- function getClient() {
36
- const config = getConfig();
37
- return new NexicalClient({
38
- token: config.token,
39
- baseURL: process.env.NEXICAL_API_URL
40
- });
41
- }
42
-
43
- export {
44
- getConfig,
45
- saveToken,
46
- getClient
47
- };
48
- //# sourceMappingURL=chunk-JDRAVUKK.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/nexical-client.ts"],"sourcesContent":["\nimport { NexicalClient } from '@nexical/sdk';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport os from 'node:os';\n\nconst getConfigPaths = () => {\n const HOME = process.env.HOME || os.homedir();\n const CONFIG_DIR = path.join(HOME, '.nexical');\n const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');\n return { CONFIG_DIR, CONFIG_FILE };\n};\n\ninterface Config {\n token?: string;\n}\n\nexport function getConfig(): Config {\n const { CONFIG_FILE } = getConfigPaths();\n if (!fs.existsSync(CONFIG_FILE)) {\n return {};\n }\n try {\n const content = fs.readFileSync(CONFIG_FILE, 'utf-8');\n return JSON.parse(content);\n } catch (error) {\n return {};\n }\n}\n\nexport function saveToken(token: string) {\n const { CONFIG_DIR, CONFIG_FILE } = getConfigPaths();\n if (!fs.existsSync(CONFIG_DIR)) {\n fs.mkdirSync(CONFIG_DIR, { recursive: true });\n }\n const config = getConfig();\n config.token = token;\n fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));\n}\n\nexport function getClient(): NexicalClient {\n const config = getConfig();\n return new NexicalClient({\n token: config.token,\n baseURL: process.env.NEXICAL_API_URL,\n });\n}\n"],"mappings":";;;AACA,SAAS,qBAAqB;AAC9B,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,QAAQ;AAEf,IAAM,iBAAiB,MAAM;AACzB,QAAM,OAAO,QAAQ,IAAI,QAAQ,GAAG,QAAQ;AAC5C,QAAM,aAAa,KAAK,KAAK,MAAM,UAAU;AAC7C,QAAM,cAAc,KAAK,KAAK,YAAY,aAAa;AACvD,SAAO,EAAE,YAAY,YAAY;AACrC;AAMO,SAAS,YAAoB;AAChC,QAAM,EAAE,YAAY,IAAI,eAAe;AACvC,MAAI,CAAC,GAAG,WAAW,WAAW,GAAG;AAC7B,WAAO,CAAC;AAAA,EACZ;AACA,MAAI;AACA,UAAM,UAAU,GAAG,aAAa,aAAa,OAAO;AACpD,WAAO,KAAK,MAAM,OAAO;AAAA,EAC7B,SAAS,OAAO;AACZ,WAAO,CAAC;AAAA,EACZ;AACJ;AAEO,SAAS,UAAU,OAAe;AACrC,QAAM,EAAE,YAAY,YAAY,IAAI,eAAe;AACnD,MAAI,CAAC,GAAG,WAAW,UAAU,GAAG;AAC5B,OAAG,UAAU,YAAY,EAAE,WAAW,KAAK,CAAC;AAAA,EAChD;AACA,QAAM,SAAS,UAAU;AACzB,SAAO,QAAQ;AACf,KAAG,cAAc,aAAa,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AACjE;AAEO,SAAS,YAA2B;AACvC,QAAM,SAAS,UAAU;AACzB,SAAO,IAAI,cAAc;AAAA,IACrB,OAAO,OAAO;AAAA,IACd,SAAS,QAAQ,IAAI;AAAA,EACzB,CAAC;AACL;","names":[]}
@@ -1,15 +0,0 @@
1
- import { BaseCommand } from '@nexical/cli-core';
2
-
3
- declare class AdminUsersCreateSystemCommand 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 { AdminUsersCreateSystemCommand as default };
@@ -1,49 +0,0 @@
1
- import { createRequire } from "module"; const require = createRequire(import.meta.url);
2
- import {
3
- getClient
4
- } from "../../../chunk-JDRAVUKK.js";
5
-
6
- // src/commands/admin/create-user.ts
7
- import { BaseCommand } from "@nexical/cli-core";
8
- var AdminUsersCreateSystemCommand = class extends BaseCommand {
9
- static description = "Create a new system user";
10
- static args = {
11
- args: [
12
- {
13
- name: "name",
14
- required: true,
15
- description: "System user name"
16
- },
17
- {
18
- name: "email",
19
- required: true,
20
- description: "System user email"
21
- },
22
- {
23
- name: "password",
24
- required: true,
25
- description: "System user password"
26
- }
27
- ]
28
- };
29
- async run(options) {
30
- const client = getClient();
31
- const { name, email, password } = options;
32
- try {
33
- const response = await client.auth.createSystemUser({
34
- fullName: name,
35
- email,
36
- password
37
- });
38
- const user = response.user;
39
- this.success(`System user "${user.fullName}" created!`);
40
- this.info(`ID: ${user.id}`);
41
- } catch (error) {
42
- this.error(`Failed to create system user: ${error.message}`);
43
- }
44
- }
45
- };
46
- export {
47
- AdminUsersCreateSystemCommand as default
48
- };
49
- //# sourceMappingURL=create-user.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/commands/admin/create-user.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class AdminUsersCreateSystemCommand extends BaseCommand {\n static description = 'Create a new system user';\n\n static args = {\n args: [\n {\n name: 'name',\n required: true,\n description: 'System user name',\n },\n {\n name: 'email',\n required: true,\n description: 'System user email',\n },\n {\n name: 'password',\n required: true,\n description: 'System user password',\n },\n ],\n };\n\n async run(options: any) {\n const client = getClient();\n const { name, email, password } = options;\n\n try {\n const response = await client.auth.createSystemUser({\n fullName: name,\n email,\n password,\n });\n const user = response.user;\n\n this.success(`System user \"${user.fullName}\" created!`);\n this.info(`ID: ${user.id}`);\n } catch (error: any) {\n this.error(`Failed to create system user: ${error.message}`);\n }\n }\n}\n"],"mappings":";;;;;;AACA,SAAS,mBAAmB;AAG5B,IAAqB,gCAArB,cAA2D,YAAY;AAAA,EACnE,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,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,MAAM,OAAO,SAAS,IAAI;AAElC,QAAI;AACA,YAAM,WAAW,MAAM,OAAO,KAAK,iBAAiB;AAAA,QAChD,UAAU;AAAA,QACV;AAAA,QACA;AAAA,MACJ,CAAC;AACD,YAAM,OAAO,SAAS;AAEtB,WAAK,QAAQ,gBAAgB,KAAK,QAAQ,YAAY;AACtD,WAAK,KAAK,OAAO,KAAK,EAAE,EAAE;AAAA,IAC9B,SAAS,OAAY;AACjB,WAAK,MAAM,iCAAiC,MAAM,OAAO,EAAE;AAAA,IAC/D;AAAA,EACJ;AACJ;","names":[]}
@@ -1,19 +0,0 @@
1
- import { BaseCommand } from '@nexical/cli-core';
2
-
3
- declare class BranchesCreateCommand 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 { BranchesCreateCommand as default };
@@ -1,59 +0,0 @@
1
- import { createRequire } from "module"; const require = createRequire(import.meta.url);
2
- import {
3
- getClient
4
- } from "../../../chunk-JDRAVUKK.js";
5
-
6
- // src/commands/branch/create.ts
7
- import { BaseCommand } from "@nexical/cli-core";
8
- var BranchesCreateCommand = class extends BaseCommand {
9
- static description = "Create a new branch";
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
- name: "name",
24
- required: true,
25
- description: "Name of the branch"
26
- }
27
- ],
28
- options: [
29
- {
30
- name: "--preview <url>",
31
- description: "Preview URL"
32
- }
33
- ]
34
- };
35
- async run(options) {
36
- const client = getClient();
37
- const { teamId, projectId, name, preview } = options;
38
- const tid = parseInt(teamId, 10);
39
- const pid = parseInt(projectId, 10);
40
- if (isNaN(tid) || isNaN(pid)) {
41
- this.error("IDs must be numbers.");
42
- return;
43
- }
44
- try {
45
- const branch = await client.branches.create(tid, pid, {
46
- name,
47
- previewUrl: preview
48
- });
49
- this.success(`Branch "${branch.name}" created!`);
50
- this.info(`ID: ${branch.id}`);
51
- } catch (error) {
52
- this.error(`Failed to create branch: ${error.message}`);
53
- }
54
- }
55
- };
56
- export {
57
- BranchesCreateCommand as default
58
- };
59
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/commands/branch/create.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class BranchesCreateCommand extends BaseCommand {\n static description = 'Create a new branch';\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 name: 'name',\n required: true,\n description: 'Name of the branch',\n },\n ],\n options: [\n {\n name: '--preview <url>',\n description: 'Preview URL',\n },\n ],\n };\n\n async run(options: any) {\n const client = getClient();\n const { teamId, projectId, name, preview } = 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 branch = await client.branches.create(tid, pid, {\n name,\n previewUrl: preview,\n });\n\n this.success(`Branch \"${branch.name}\" created!`);\n this.info(`ID: ${branch.id}`);\n } catch (error: any) {\n this.error(`Failed to create branch: ${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,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,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,IAAI,SAAc;AACpB,UAAM,SAAS,UAAU;AACzB,UAAM,EAAE,QAAQ,WAAW,MAAM,QAAQ,IAAI;AAC7C,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,SAAS,MAAM,OAAO,SAAS,OAAO,KAAK,KAAK;AAAA,QAClD;AAAA,QACA,YAAY;AAAA,MAChB,CAAC;AAED,WAAK,QAAQ,WAAW,OAAO,IAAI,YAAY;AAC/C,WAAK,KAAK,OAAO,OAAO,EAAE,EAAE;AAAA,IAChC,SAAS,OAAY;AACjB,WAAK,MAAM,4BAA4B,MAAM,OAAO,EAAE;AAAA,IAC1D;AAAA,EACJ;AACJ;","names":[]}
@@ -1,15 +0,0 @@
1
- import { BaseCommand } from '@nexical/cli-core';
2
-
3
- declare class BranchesDeleteCommand 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 { BranchesDeleteCommand as default };
@@ -1,50 +0,0 @@
1
- import { createRequire } from "module"; const require = createRequire(import.meta.url);
2
- import {
3
- getClient
4
- } from "../../../chunk-JDRAVUKK.js";
5
-
6
- // src/commands/branch/delete.ts
7
- import { BaseCommand } from "@nexical/cli-core";
8
- var BranchesDeleteCommand = class extends BaseCommand {
9
- static description = "Delete a branch";
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
- name: "branchId",
24
- required: true,
25
- description: "Branch ID"
26
- }
27
- ]
28
- };
29
- async run(options) {
30
- const client = getClient();
31
- const { teamId, projectId, branchId } = options;
32
- const tid = parseInt(teamId, 10);
33
- const pid = parseInt(projectId, 10);
34
- const bid = parseInt(branchId, 10);
35
- if (isNaN(tid) || isNaN(pid) || isNaN(bid)) {
36
- this.error("IDs must be numbers.");
37
- return;
38
- }
39
- try {
40
- await client.branches.delete(tid, pid, bid);
41
- this.success(`Branch ${bid} deleted.`);
42
- } catch (error) {
43
- this.error(`Failed to delete branch: ${error.message}`);
44
- }
45
- }
46
- };
47
- export {
48
- BranchesDeleteCommand as default
49
- };
50
- //# sourceMappingURL=delete.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/commands/branch/delete.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class BranchesDeleteCommand extends BaseCommand {\n static description = 'Delete a branch';\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 name: 'branchId',\n required: true,\n description: 'Branch ID',\n },\n ],\n };\n\n async run(options: any) {\n const client = getClient();\n const { teamId, projectId, branchId } = options;\n const tid = parseInt(teamId, 10);\n const pid = parseInt(projectId, 10);\n const bid = parseInt(branchId, 10);\n\n if (isNaN(tid) || isNaN(pid) || isNaN(bid)) {\n this.error('IDs must be numbers.');\n return;\n }\n\n try {\n await client.branches.delete(tid, pid, bid);\n this.success(`Branch ${bid} deleted.`);\n } catch (error: any) {\n this.error(`Failed to delete branch: ${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,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,WAAW,SAAS,IAAI;AACxC,UAAM,MAAM,SAAS,QAAQ,EAAE;AAC/B,UAAM,MAAM,SAAS,WAAW,EAAE;AAClC,UAAM,MAAM,SAAS,UAAU,EAAE;AAEjC,QAAI,MAAM,GAAG,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,GAAG;AACxC,WAAK,MAAM,sBAAsB;AACjC;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,OAAO,SAAS,OAAO,KAAK,KAAK,GAAG;AAC1C,WAAK,QAAQ,UAAU,GAAG,WAAW;AAAA,IACzC,SAAS,OAAY;AACjB,WAAK,MAAM,4BAA4B,MAAM,OAAO,EAAE;AAAA,IAC1D;AAAA,EACJ;AACJ;","names":[]}
@@ -1,15 +0,0 @@
1
- import { BaseCommand } from '@nexical/cli-core';
2
-
3
- declare class BranchesGetCommand 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 { BranchesGetCommand as default };
@@ -1,53 +0,0 @@
1
- import { createRequire } from "module"; const require = createRequire(import.meta.url);
2
- import {
3
- getClient
4
- } from "../../../chunk-JDRAVUKK.js";
5
-
6
- // src/commands/branch/get.ts
7
- import { BaseCommand } from "@nexical/cli-core";
8
- var BranchesGetCommand = class extends BaseCommand {
9
- static description = "Get branch 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
- name: "branchId",
24
- required: true,
25
- description: "Branch ID"
26
- }
27
- ]
28
- };
29
- async run(options) {
30
- const client = getClient();
31
- const { teamId, projectId, branchId } = options;
32
- const tid = parseInt(teamId, 10);
33
- const pid = parseInt(projectId, 10);
34
- const bid = parseInt(branchId, 10);
35
- if (isNaN(tid) || isNaN(pid) || isNaN(bid)) {
36
- this.error("IDs must be numbers.");
37
- return;
38
- }
39
- try {
40
- const branch = await client.branches.get(tid, pid, bid);
41
- this.info(`Branch Details:`);
42
- this.info(` ID: ${branch.id}`);
43
- this.info(` Name: ${branch.name}`);
44
- this.info(` Preview: ${branch.previewUrl || "N/A"}`);
45
- } catch (error) {
46
- this.error(`Failed to get branch: ${error.message}`);
47
- }
48
- }
49
- };
50
- export {
51
- BranchesGetCommand as default
52
- };
53
- //# sourceMappingURL=get.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/commands/branch/get.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class BranchesGetCommand extends BaseCommand {\n static description = 'Get branch 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 name: 'branchId',\n required: true,\n description: 'Branch ID',\n },\n ],\n };\n\n async run(options: any) {\n const client = getClient();\n const { teamId, projectId, branchId } = options;\n const tid = parseInt(teamId, 10);\n const pid = parseInt(projectId, 10);\n const bid = parseInt(branchId, 10);\n\n if (isNaN(tid) || isNaN(pid) || isNaN(bid)) {\n this.error('IDs must be numbers.');\n return;\n }\n\n try {\n const branch = await client.branches.get(tid, pid, bid);\n this.info(`Branch Details:`);\n this.info(` ID: ${branch.id}`);\n this.info(` Name: ${branch.name}`);\n this.info(` Preview: ${branch.previewUrl || 'N/A'}`);\n } catch (error: any) {\n this.error(`Failed to get branch: ${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,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,WAAW,SAAS,IAAI;AACxC,UAAM,MAAM,SAAS,QAAQ,EAAE;AAC/B,UAAM,MAAM,SAAS,WAAW,EAAE;AAClC,UAAM,MAAM,SAAS,UAAU,EAAE;AAEjC,QAAI,MAAM,GAAG,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,GAAG;AACxC,WAAK,MAAM,sBAAsB;AACjC;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,SAAS,MAAM,OAAO,SAAS,IAAI,KAAK,KAAK,GAAG;AACtD,WAAK,KAAK,iBAAiB;AAC3B,WAAK,KAAK,WAAW,OAAO,EAAE,EAAE;AAChC,WAAK,KAAK,WAAW,OAAO,IAAI,EAAE;AAClC,WAAK,KAAK,cAAc,OAAO,cAAc,KAAK,EAAE;AAAA,IACxD,SAAS,OAAY;AACjB,WAAK,MAAM,yBAAyB,MAAM,OAAO,EAAE;AAAA,IACvD;AAAA,EACJ;AACJ;","names":[]}
@@ -1,15 +0,0 @@
1
- import { BaseCommand } from '@nexical/cli-core';
2
-
3
- declare class BranchesListCommand 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 { BranchesListCommand as default };
@@ -1,51 +0,0 @@
1
- import { createRequire } from "module"; const require = createRequire(import.meta.url);
2
- import {
3
- getClient
4
- } from "../../../chunk-JDRAVUKK.js";
5
-
6
- // src/commands/branch/list.ts
7
- import { BaseCommand } from "@nexical/cli-core";
8
- var BranchesListCommand = class extends BaseCommand {
9
- static description = "List branches in 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
- };
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 branches = await client.branches.list(tid, pid);
35
- if (branches.length === 0) {
36
- this.info("No branches found.");
37
- return;
38
- }
39
- this.info(`Branches for Project ${pid}:`);
40
- for (const branch of branches) {
41
- this.info(`- ${branch.name} (ID: ${branch.id})`);
42
- }
43
- } catch (error) {
44
- this.error(`Failed to list branches: ${error.message}`);
45
- }
46
- }
47
- };
48
- export {
49
- BranchesListCommand as default
50
- };
51
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/commands/branch/list.ts"],"sourcesContent":["\nimport { BaseCommand } from '@nexical/cli-core';\nimport { getClient } from '../../utils/nexical-client.js';\n\nexport default class BranchesListCommand extends BaseCommand {\n static description = 'List branches in 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 };\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 branches = await client.branches.list(tid, pid);\n\n if (branches.length === 0) {\n this.info('No branches found.');\n return;\n }\n\n this.info(`Branches for Project ${pid}:`);\n for (const branch of branches) {\n this.info(`- ${branch.name} (ID: ${branch.id})`);\n }\n } catch (error: any) {\n this.error(`Failed to list branches: ${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,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,WAAW,MAAM,OAAO,SAAS,KAAK,KAAK,GAAG;AAEpD,UAAI,SAAS,WAAW,GAAG;AACvB,aAAK,KAAK,oBAAoB;AAC9B;AAAA,MACJ;AAEA,WAAK,KAAK,wBAAwB,GAAG,GAAG;AACxC,iBAAW,UAAU,UAAU;AAC3B,aAAK,KAAK,KAAK,OAAO,IAAI,SAAS,OAAO,EAAE,GAAG;AAAA,MACnD;AAAA,IACJ,SAAS,OAAY;AACjB,WAAK,MAAM,4BAA4B,MAAM,OAAO,EAAE;AAAA,IAC1D;AAAA,EACJ;AACJ;","names":[]}
@@ -1,15 +0,0 @@
1
- import { BaseCommand } from '@nexical/cli-core';
2
-
3
- declare class JobsGetCommand 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 { JobsGetCommand as default };