kibela-api-client 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -13,7 +13,7 @@ const env_1 = require("../core/env");
13
13
  // Load environment variables
14
14
  env_1.EnvLoader.load();
15
15
  const cli = new command_1.CLI('kibela', 'Kibela API CLI - Zero Dependencies');
16
- cli.setVersion('0.2.0');
16
+ cli.setVersion('0.2.1');
17
17
  // Configuration command
18
18
  const config = cli.command('config', 'Configure Kibela credentials');
19
19
  (0, config_1.configCommand)(config);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kibela-api-client",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Kibela API client for Node.js with CLI",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const groupsCommand: Command;
3
- //# sourceMappingURL=groups.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/groups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,aAAa,SAgDtB,CAAC"}
@@ -1,57 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.groupsCommand = void 0;
7
- const commander_1 = require("commander");
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const utils_1 = require("../utils");
10
- exports.groupsCommand = new commander_1.Command('groups')
11
- .description('List all groups')
12
- .option('-a, --all', 'Show all groups (no pagination)')
13
- .action(async (options) => {
14
- const client = (0, utils_1.getClient)();
15
- if (!client)
16
- return;
17
- const spinner = (0, utils_1.createSpinner)('Fetching groups...');
18
- spinner.start();
19
- try {
20
- if (options.all) {
21
- const groups = await client.groups.getAll();
22
- spinner.stop();
23
- console.log(chalk_1.default.bold(`\nTotal groups: ${groups.length}\n`));
24
- groups.forEach((group) => {
25
- console.log(chalk_1.default.cyan(group.name));
26
- console.log(` ID: ${group.id}`);
27
- console.log(` Type: ${group.isPrivate ? 'Private' : 'Public'}`);
28
- if (group.description) {
29
- console.log(` Description: ${group.description}`);
30
- }
31
- console.log();
32
- });
33
- }
34
- else {
35
- const result = await client.groups.list({ first: 20 });
36
- spinner.stop();
37
- console.log(chalk_1.default.bold(`\nGroups (${result.totalCount} total):\n`));
38
- result.nodes.forEach((group) => {
39
- console.log(chalk_1.default.cyan(group.name));
40
- console.log(` ID: ${group.id}`);
41
- console.log(` Type: ${group.isPrivate ? 'Private' : 'Public'}`);
42
- if (group.description) {
43
- console.log(` Description: ${group.description}`);
44
- }
45
- console.log();
46
- });
47
- if (result.pageInfo.hasNextPage) {
48
- console.log(chalk_1.default.dim('Use --all flag to see all groups'));
49
- }
50
- }
51
- }
52
- catch (err) {
53
- spinner.stop();
54
- (0, utils_1.error)(`Failed to fetch groups: ${err}`);
55
- }
56
- });
57
- //# sourceMappingURL=groups.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../../src/cli/commands/groups.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const notesCommand: Command;
3
- //# sourceMappingURL=notes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notes.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/notes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,YAAY,SACY,CAAC"}
@@ -1,432 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.notesCommand = void 0;
7
- const commander_1 = require("commander");
8
- const prompts_1 = __importDefault(require("prompts"));
9
- const chalk_1 = __importDefault(require("chalk"));
10
- const fs_1 = __importDefault(require("fs"));
11
- const path_1 = __importDefault(require("path"));
12
- const utils_1 = require("../utils");
13
- exports.notesCommand = new commander_1.Command('notes')
14
- .description('Manage Kibela notes');
15
- exports.notesCommand
16
- .command('list')
17
- .description('List recent notes')
18
- .option('-l, --limit <number>', 'Number of notes to show', '10')
19
- .option('-s, --search <query>', 'Search notes by query')
20
- .option('-g, --group <groupId>', 'Filter by group ID')
21
- .option('-f, --folder <folderName>', 'Filter by folder name (requires --group)')
22
- .action(async (options) => {
23
- const client = (0, utils_1.getClient)();
24
- if (!client)
25
- return;
26
- const spinner = (0, utils_1.createSpinner)('Fetching notes...');
27
- spinner.start();
28
- try {
29
- const limit = parseInt(options.limit, 10);
30
- if (options.folder && !options.group) {
31
- spinner.stop();
32
- (0, utils_1.error)('--folder option requires --group option');
33
- return;
34
- }
35
- if (options.search) {
36
- const result = await client.notes.search(options.search, { first: limit });
37
- spinner.stop();
38
- if (result.totalCount === 0) {
39
- (0, utils_1.info)('No notes found matching your search.');
40
- return;
41
- }
42
- console.log(chalk_1.default.bold(`\nFound ${result.totalCount} notes:\n`));
43
- result.nodes.forEach((note) => {
44
- console.log(chalk_1.default.cyan(`${note.title}`));
45
- console.log(` ID: ${note.id}`);
46
- console.log(` Author: ${note.author.realName} (@${note.author.account})`);
47
- console.log(` Updated: ${(0, utils_1.formatDate)(note.contentUpdatedAt)}`);
48
- console.log(` URL: ${note.url}`);
49
- console.log();
50
- });
51
- }
52
- else if (options.group) {
53
- if (options.folder) {
54
- // Use lightweight query and pagination for folder filtering
55
- spinner.text = 'Fetching notes with pagination...';
56
- const allNotes = [];
57
- let hasNextPage = true;
58
- let cursor;
59
- let foundEnough = false;
60
- let groupName = '';
61
- while (hasNextPage && !foundEnough) {
62
- const result = await client.notes.listByGroup(options.group, {
63
- first: 10, // Small batch to reduce query cost
64
- after: cursor,
65
- orderBy: { field: 'CONTENT_UPDATED_AT', direction: 'DESC' },
66
- lightweight: true
67
- });
68
- if (!groupName)
69
- groupName = result.group.name;
70
- // Filter notes in this batch
71
- const batchFiltered = result.notes.nodes.filter(note => note.folders && note.folders.edges.some(edge => edge.node.name === options.folder));
72
- allNotes.push(...batchFiltered);
73
- // Check if we have enough notes
74
- if (allNotes.length >= limit) {
75
- foundEnough = true;
76
- }
77
- hasNextPage = result.notes.pageInfo.hasNextPage;
78
- cursor = result.notes.pageInfo.endCursor;
79
- // Update spinner
80
- spinner.text = `Fetching notes... (found ${allNotes.length} matching notes)`;
81
- }
82
- spinner.stop();
83
- if (allNotes.length === 0) {
84
- (0, utils_1.info)(`No notes found in folder "${options.folder}"`);
85
- return;
86
- }
87
- console.log(chalk_1.default.bold(`\nNotes in folder "${options.folder}" in group "${groupName}":\n`));
88
- allNotes.slice(0, limit).forEach((note) => {
89
- console.log(chalk_1.default.cyan(`${note.title}`));
90
- console.log(` ID: ${note.id}`);
91
- console.log(` Author: ${note.author.realName} (@${note.author.account})`);
92
- console.log(` Updated: ${(0, utils_1.formatDate)(note.contentUpdatedAt)}`);
93
- console.log(` URL: ${note.url}`);
94
- const folderNames = note.folders?.edges.map((edge) => edge.node.name).join(', ');
95
- if (folderNames) {
96
- console.log(` Folders: ${folderNames}`);
97
- }
98
- console.log();
99
- });
100
- }
101
- else {
102
- const result = await client.notes.listByGroup(options.group, {
103
- first: limit,
104
- orderBy: { field: 'CONTENT_UPDATED_AT', direction: 'DESC' }
105
- });
106
- spinner.stop();
107
- console.log(chalk_1.default.bold(`\nNotes in group "${result.group.name}" (${result.notes.totalCount} total):\n`));
108
- result.notes.nodes.forEach((note) => {
109
- console.log(chalk_1.default.cyan(`${note.title}`));
110
- console.log(` ID: ${note.id}`);
111
- console.log(` Author: ${note.author.realName} (@${note.author.account})`);
112
- console.log(` Updated: ${(0, utils_1.formatDate)(note.contentUpdatedAt)}`);
113
- console.log(` URL: ${note.url}`);
114
- console.log();
115
- });
116
- }
117
- }
118
- else {
119
- const result = await client.notes.list({
120
- first: limit,
121
- orderBy: { field: 'CONTENT_UPDATED_AT', direction: 'DESC' }
122
- });
123
- spinner.stop();
124
- console.log(chalk_1.default.bold(`\nRecent notes (${result.totalCount} total):\n`));
125
- result.nodes.forEach((note) => {
126
- console.log(chalk_1.default.cyan(`${note.title}`));
127
- console.log(` ID: ${note.id}`);
128
- console.log(` Author: ${note.author.realName} (@${note.author.account})`);
129
- console.log(` Updated: ${(0, utils_1.formatDate)(note.contentUpdatedAt)}`);
130
- console.log(` URL: ${note.url}`);
131
- console.log();
132
- });
133
- }
134
- }
135
- catch (err) {
136
- spinner.stop();
137
- (0, utils_1.error)(`Failed to fetch notes: ${err}`);
138
- }
139
- });
140
- exports.notesCommand
141
- .command('folders')
142
- .description('List folders in a group')
143
- .requiredOption('-g, --group <groupId>', 'Group ID')
144
- .action(async (options) => {
145
- const client = (0, utils_1.getClient)();
146
- if (!client)
147
- return;
148
- const spinner = (0, utils_1.createSpinner)('Fetching folders...');
149
- spinner.start();
150
- try {
151
- // Use lightweight query and pagination to scan all notes
152
- spinner.text = 'Fetching all notes to extract folders...';
153
- const folderMap = new Map();
154
- let hasNextPage = true;
155
- let cursor;
156
- let groupName = '';
157
- let scannedCount = 0;
158
- while (hasNextPage) {
159
- const result = await client.notes.listByGroup(options.group, {
160
- first: 20, // Moderate batch size
161
- after: cursor,
162
- orderBy: { field: 'CONTENT_UPDATED_AT', direction: 'DESC' },
163
- lightweight: true
164
- });
165
- if (!groupName)
166
- groupName = result.group.name;
167
- result.notes.nodes.forEach(note => {
168
- if (note.folders && note.folders.edges) {
169
- note.folders.edges.forEach(edge => {
170
- folderMap.set(edge.node.name, (folderMap.get(edge.node.name) || 0) + 1);
171
- });
172
- }
173
- });
174
- scannedCount += result.notes.nodes.length;
175
- hasNextPage = result.notes.pageInfo.hasNextPage;
176
- cursor = result.notes.pageInfo.endCursor;
177
- // Update spinner
178
- spinner.text = `Scanning notes... (${scannedCount} notes processed, ${folderMap.size} folders found)`;
179
- }
180
- spinner.stop();
181
- const folders = Array.from(folderMap.entries());
182
- if (folders.length === 0) {
183
- (0, utils_1.info)('No folders found in this group.');
184
- return;
185
- }
186
- console.log(chalk_1.default.bold(`\nFolders in group "${groupName}":\n`));
187
- folders.sort((a, b) => b[1] - a[1]).forEach(([name, count]) => {
188
- console.log(chalk_1.default.cyan(`${name}`));
189
- console.log(` Notes: ${count}`);
190
- console.log();
191
- });
192
- (0, utils_1.info)(`Scanned ${scannedCount} notes total.`);
193
- }
194
- catch (err) {
195
- spinner.stop();
196
- (0, utils_1.error)(`Failed to fetch folders: ${err}`);
197
- }
198
- });
199
- exports.notesCommand
200
- .command('create')
201
- .description('Create a new note')
202
- .option('-t, --title <title>', 'Note title')
203
- .option('-c, --content <content>', 'Note content')
204
- .option('-m, --markdown <file>', 'Markdown file to use as content')
205
- .option('-g, --groups <groups...>', 'Group IDs to publish to')
206
- .option('-f, --folder <folderName>', 'Folder name to create note in (requires --groups)')
207
- .option('--coediting', 'Enable co-editing', false)
208
- .option('--draft', 'Save as draft', false)
209
- .action(async (options) => {
210
- const client = (0, utils_1.getClient)();
211
- if (!client)
212
- return;
213
- let title = options.title;
214
- let content = options.content;
215
- // Load content from markdown file if specified
216
- if (options.markdown) {
217
- try {
218
- const filePath = path_1.default.resolve(options.markdown);
219
- if (!fs_1.default.existsSync(filePath)) {
220
- (0, utils_1.error)(`Markdown file not found: ${filePath}`);
221
- return;
222
- }
223
- content = fs_1.default.readFileSync(filePath, 'utf-8');
224
- // Extract title from first H1 if not provided
225
- if (!title) {
226
- const h1Match = content.match(/^#\s+(.+)$/m);
227
- if (h1Match) {
228
- title = h1Match[1];
229
- (0, utils_1.info)(`Using title from markdown: ${title}`);
230
- }
231
- }
232
- }
233
- catch (err) {
234
- (0, utils_1.error)(`Failed to read markdown file: ${err}`);
235
- return;
236
- }
237
- }
238
- if (!title || !content) {
239
- const questions = [];
240
- if (!title) {
241
- questions.push({
242
- type: 'text',
243
- name: 'title',
244
- message: 'Note title:',
245
- validate: (value) => value.length > 0 || 'Title is required'
246
- });
247
- }
248
- if (!content) {
249
- questions.push({
250
- type: 'text',
251
- name: 'content',
252
- message: 'Note content (Markdown supported):',
253
- validate: (value) => value.length > 0 || 'Content is required'
254
- });
255
- }
256
- const answers = await (0, prompts_1.default)(questions);
257
- title = title || answers.title;
258
- content = content || answers.content;
259
- if (!title || !content) {
260
- (0, utils_1.error)('Note creation cancelled.');
261
- return;
262
- }
263
- }
264
- // Validate folder option
265
- if (options.folder && !options.groups) {
266
- (0, utils_1.error)('The --folder option requires --groups to be specified.');
267
- return;
268
- }
269
- const spinner = (0, utils_1.createSpinner)('Creating note...');
270
- spinner.start();
271
- try {
272
- const note = await client.notes.create({
273
- title,
274
- content,
275
- coediting: options.coediting,
276
- groupIds: options.groups,
277
- draft: options.draft,
278
- folders: options.folder && options.groups ?
279
- options.groups.map((groupId) => ({ groupId, folderName: options.folder })) :
280
- undefined
281
- });
282
- spinner.stop();
283
- (0, utils_1.success)(`Note created successfully!`);
284
- console.log(` Title: ${note.title}`);
285
- console.log(` ID: ${note.id}`);
286
- console.log(` URL: ${note.url}`);
287
- if (options.folder) {
288
- console.log(` Folder: ${options.folder}`);
289
- }
290
- if (note.groups && note.groups.length > 0) {
291
- console.log(` Groups: ${note.groups.map(g => g.name).join(', ')}`);
292
- }
293
- }
294
- catch (err) {
295
- spinner.stop();
296
- (0, utils_1.error)(`Failed to create note: ${err}`);
297
- }
298
- });
299
- exports.notesCommand
300
- .command('get <id>')
301
- .description('Get a note by ID')
302
- .option('-o, --output <file>', 'Save content to markdown file')
303
- .option('--html', 'Show HTML content instead of markdown')
304
- .action(async (id, options) => {
305
- const client = (0, utils_1.getClient)();
306
- if (!client)
307
- return;
308
- const spinner = (0, utils_1.createSpinner)('Fetching note...');
309
- spinner.start();
310
- try {
311
- const note = await client.notes.get(id);
312
- spinner.stop();
313
- if (!note) {
314
- (0, utils_1.error)('Note not found.');
315
- return;
316
- }
317
- console.log(chalk_1.default.bold.cyan(`\n${note.title}\n`));
318
- console.log(`ID: ${note.id}`);
319
- console.log(`Author: ${note.author.realName} (@${note.author.account})`);
320
- console.log(`Updated: ${(0, utils_1.formatDate)(note.contentUpdatedAt)}`);
321
- console.log(`URL: ${note.url}`);
322
- console.log(`Co-editing: ${note.coediting ? 'Enabled' : 'Disabled'}`);
323
- if (note.groups.length > 0) {
324
- console.log(`Groups: ${note.groups.map(g => g.name).join(', ')}`);
325
- }
326
- if (note.folders && note.folders.edges.length > 0) {
327
- console.log(`Folders: ${note.folders.edges.map(e => e.node.name).join(', ')}`);
328
- }
329
- console.log(chalk_1.default.bold('\nContent:'));
330
- console.log('---');
331
- console.log(options.html ? note.contentHtml : note.content);
332
- console.log('---');
333
- // Save to file if requested
334
- if (options.output) {
335
- try {
336
- const outputPath = path_1.default.resolve(options.output);
337
- const contentToSave = `# ${note.title}\n\n${note.content}`;
338
- fs_1.default.writeFileSync(outputPath, contentToSave, 'utf-8');
339
- (0, utils_1.success)(`\nContent saved to: ${outputPath}`);
340
- }
341
- catch (err) {
342
- (0, utils_1.error)(`Failed to save content: ${err}`);
343
- }
344
- }
345
- }
346
- catch (err) {
347
- spinner.stop();
348
- (0, utils_1.error)(`Failed to fetch note: ${err}`);
349
- }
350
- });
351
- exports.notesCommand
352
- .command('update <id>')
353
- .description('Update a note')
354
- .option('-t, --title <title>', 'New title')
355
- .option('-c, --content <content>', 'New content')
356
- .option('-m, --markdown <file>', 'Markdown file to use as content')
357
- .action(async (id, options) => {
358
- const client = (0, utils_1.getClient)();
359
- if (!client)
360
- return;
361
- // Load content from markdown file if specified
362
- if (options.markdown) {
363
- try {
364
- const filePath = path_1.default.resolve(options.markdown);
365
- if (!fs_1.default.existsSync(filePath)) {
366
- (0, utils_1.error)(`Markdown file not found: ${filePath}`);
367
- return;
368
- }
369
- options.content = fs_1.default.readFileSync(filePath, 'utf-8');
370
- (0, utils_1.info)('Loaded content from markdown file');
371
- }
372
- catch (err) {
373
- (0, utils_1.error)(`Failed to read markdown file: ${err}`);
374
- return;
375
- }
376
- }
377
- if (!options.title && !options.content) {
378
- (0, utils_1.error)('Please provide --title, --content, or --markdown to update.');
379
- return;
380
- }
381
- const spinner = (0, utils_1.createSpinner)('Updating note...');
382
- spinner.start();
383
- try {
384
- const input = {};
385
- if (options.title)
386
- input.title = options.title;
387
- if (options.content)
388
- input.content = options.content;
389
- const note = await client.notes.update(id, input);
390
- spinner.stop();
391
- (0, utils_1.success)('Note updated successfully!');
392
- console.log(` Title: ${note.title}`);
393
- console.log(` URL: ${note.url}`);
394
- }
395
- catch (err) {
396
- spinner.stop();
397
- (0, utils_1.error)(`Failed to update note: ${err}`);
398
- }
399
- });
400
- exports.notesCommand
401
- .command('delete <id>')
402
- .description('Delete a note')
403
- .option('-f, --force', 'Skip confirmation')
404
- .action(async (id, options) => {
405
- const client = (0, utils_1.getClient)();
406
- if (!client)
407
- return;
408
- if (!options.force) {
409
- const response = await (0, prompts_1.default)({
410
- type: 'confirm',
411
- name: 'confirm',
412
- message: 'Are you sure you want to delete this note?',
413
- initial: false
414
- });
415
- if (!response.confirm) {
416
- (0, utils_1.info)('Deletion cancelled.');
417
- return;
418
- }
419
- }
420
- const spinner = (0, utils_1.createSpinner)('Deleting note...');
421
- spinner.start();
422
- try {
423
- await client.notes.delete(id);
424
- spinner.stop();
425
- (0, utils_1.success)('Note deleted successfully!');
426
- }
427
- catch (err) {
428
- spinner.stop();
429
- (0, utils_1.error)(`Failed to delete note: ${err}`);
430
- }
431
- });
432
- //# sourceMappingURL=notes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notes.js","sourceRoot":"","sources":["../../../src/cli/commands/notes.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const statsCommand: Command;
3
- //# sourceMappingURL=stats.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,eAAO,MAAM,YAAY,SA0EpB,CAAC"}
@@ -1,71 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.statsCommand = void 0;
7
- const commander_1 = require("commander");
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const utils_1 = require("../utils");
10
- const config_1 = require("../config");
11
- const _error_handler_1 = require("../_error-handler");
12
- exports.statsCommand = new commander_1.Command('stats')
13
- .description('Display Kibela workspace statistics')
14
- .option('--json', 'Output as JSON')
15
- .action((0, _error_handler_1.wrapAsyncCommand)(async (options) => {
16
- const client = (0, utils_1.getClient)();
17
- const spinner = (0, utils_1.createSpinner)('Fetching statistics...');
18
- spinner.start();
19
- try {
20
- // Fetch all data in parallel for performance
21
- const currentUser = await client.users.getCurrentUser();
22
- const [notesResult, groupsResult, usersResult] = await Promise.all([
23
- client.notes.list({ first: 1 }), // Just get count
24
- client.groups.list({ first: 100 }),
25
- client.users.list({ first: 100 })
26
- ]);
27
- spinner.stop();
28
- const stats = {
29
- totalNotes: notesResult.totalCount,
30
- totalGroups: groupsResult.totalCount,
31
- totalUsers: usersResult.totalCount,
32
- publicGroups: groupsResult.nodes.filter(g => !g.isPrivate).length,
33
- privateGroups: groupsResult.nodes.filter(g => g.isPrivate).length,
34
- recentNotes: 0, // Simplified for now
35
- myNotes: 0, // Simplified for now
36
- teamName: client.getTeam(),
37
- currentUser: {
38
- name: currentUser.realName,
39
- account: currentUser.account,
40
- }
41
- };
42
- if (options.json) {
43
- console.log(JSON.stringify(stats, null, 2));
44
- return;
45
- }
46
- // Display statistics
47
- console.log(chalk_1.default.bold.cyan('\n📊 Kibela Workspace Statistics\n'));
48
- console.log(chalk_1.default.bold('Team:'), stats.teamName);
49
- console.log(chalk_1.default.bold('Current User:'), `${stats.currentUser.name} (@${stats.currentUser.account})`);
50
- console.log(chalk_1.default.bold('\n📝 Notes'));
51
- console.log(` Total: ${stats.totalNotes}`);
52
- console.log(` Your Notes: ${stats.myNotes}`);
53
- console.log(` Updated (Last 7 days): ${stats.recentNotes}`);
54
- console.log(chalk_1.default.bold('\n👥 Users'));
55
- console.log(` Total: ${stats.totalUsers}`);
56
- console.log(chalk_1.default.bold('\n📁 Groups'));
57
- console.log(` Total: ${stats.totalGroups}`);
58
- console.log(` Public: ${stats.publicGroups}`);
59
- console.log(` Private: ${stats.privateGroups}`);
60
- // Show configuration source
61
- const configSource = config_1.ConfigManager.getConfigSource();
62
- console.log(chalk_1.default.bold('\n⚙️ Configuration'));
63
- console.log(` Team: ${configSource.team || 'not configured'}`);
64
- console.log(` Token: ${configSource.token || 'not configured'}`);
65
- }
66
- catch (err) {
67
- spinner.stop();
68
- throw err;
69
- }
70
- }));
71
- //# sourceMappingURL=stats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/cli/commands/stats.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from '../../core/cli/command';
2
- export declare function syncCommand(program: Command): void;
3
- //# sourceMappingURL=sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAOjD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2FlD"}
@@ -1,143 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.syncCommand = syncCommand;
37
- const sync_client_1 = require("../../sync/sync-client");
38
- const config_1 = require("./config");
39
- const spinner_1 = require("../../core/terminal/spinner");
40
- const fs = __importStar(require("fs"));
41
- function syncCommand(program) {
42
- // Download command
43
- program
44
- .command('download')
45
- .option('-d, --dir <dir>', 'Directory to save notes', './notes')
46
- .option('-p, --prefix <prefix>', 'File prefix for notes', 'note-')
47
- .action(async ({ options }) => {
48
- const config = await (0, config_1.getConfig)();
49
- const spinner = new spinner_1.Spinner('Downloading notes from Kibela workspace...');
50
- try {
51
- spinner.start();
52
- const client = new sync_client_1.SyncClient({
53
- team: config.team,
54
- token: config.token,
55
- dir: options.dir,
56
- });
57
- await client.pull();
58
- spinner.succeed('All notes downloaded to local workspace');
59
- }
60
- catch (error) {
61
- spinner.fail(`Failed to pull notes: ${error instanceof Error ? error.message : error}`);
62
- process.exit(1);
63
- }
64
- });
65
- // Upload command
66
- program
67
- .command('upload <file>')
68
- .option('--draft', 'Upload as draft', false)
69
- .action(async ({ args, options }) => {
70
- const config = await (0, config_1.getConfig)();
71
- const filePath = args[0];
72
- const spinner = new spinner_1.Spinner(`Uploading ${filePath} to Kibela workspace...`);
73
- try {
74
- spinner.start();
75
- const client = new sync_client_1.SyncClient({
76
- team: config.team,
77
- token: config.token,
78
- });
79
- await client.push(filePath);
80
- spinner.succeed('Note uploaded to workspace successfully');
81
- }
82
- catch (error) {
83
- spinner.fail(`Failed to push note: ${error instanceof Error ? error.message : error}`);
84
- process.exit(1);
85
- }
86
- });
87
- // Create command
88
- program
89
- .command('create')
90
- .option('-f, --file <file>', 'File to create from (otherwise reads from stdin)')
91
- .option('-g, --groups <groups...>', 'Group IDs for the note')
92
- .action(async ({ options }) => {
93
- const config = await (0, config_1.getConfig)();
94
- const spinner = new spinner_1.Spinner('Creating new note in Kibela workspace...');
95
- try {
96
- let content;
97
- if (options.file) {
98
- if (!fs.existsSync(options.file)) {
99
- throw new Error(`File not found: ${options.file}`);
100
- }
101
- content = fs.readFileSync(options.file, 'utf8');
102
- }
103
- else {
104
- // Read from stdin
105
- content = await readStdin();
106
- if (!content) {
107
- throw new Error('No content provided. Use -f option or pipe content to stdin.');
108
- }
109
- }
110
- spinner.start();
111
- const client = new sync_client_1.SyncClient({
112
- team: config.team,
113
- token: config.token,
114
- });
115
- await client.publish(content);
116
- spinner.succeed('Note created in workspace successfully');
117
- }
118
- catch (error) {
119
- spinner.fail(`Failed to publish note: ${error instanceof Error ? error.message : error}`);
120
- process.exit(1);
121
- }
122
- });
123
- }
124
- function readStdin() {
125
- return new Promise((resolve, reject) => {
126
- if (process.stdin.isTTY) {
127
- resolve('');
128
- return;
129
- }
130
- let data = '';
131
- process.stdin.setEncoding('utf8');
132
- process.stdin.on('data', (chunk) => {
133
- data += chunk;
134
- });
135
- process.stdin.on('end', () => {
136
- resolve(data);
137
- });
138
- process.stdin.on('error', (err) => {
139
- reject(err);
140
- });
141
- });
142
- }
143
- //# sourceMappingURL=sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/cli/commands/sync.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const testCommand: Command;
3
- //# sourceMappingURL=test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,WAAW,SAWnB,CAAC"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.testCommand = void 0;
4
- const commander_1 = require("commander");
5
- const utils_1 = require("../utils");
6
- const _error_handler_1 = require("../_error-handler");
7
- exports.testCommand = new commander_1.Command('test')
8
- .description('Test Kibela API connection')
9
- .action((0, _error_handler_1.wrapAsyncCommand)(async () => {
10
- const client = (0, utils_1.getClient)();
11
- try {
12
- const user = await client.users.getCurrentUser();
13
- (0, utils_1.success)(`Connected successfully! Hello, ${user.realName} (@${user.account})`);
14
- }
15
- catch (err) {
16
- throw err;
17
- }
18
- }));
19
- //# sourceMappingURL=test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/cli/commands/test.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,oCAAqD;AACrD,sDAAqD;AAExC,QAAA,WAAW,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,IAAA,iCAAgB,EAAC,KAAK,IAAI,EAAE;IAClC,MAAM,MAAM,GAAG,IAAA,iBAAS,GAAE,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QACjD,IAAA,eAAO,EAAC,kCAAkC,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IAChF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC,CAAC,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Command } from '../../core/cli/command';
2
- export declare function usersCommand(program: Command): void;
3
- //# sourceMappingURL=users-simple.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"users-simple.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/users-simple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAKjD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwDnD"}
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.usersCommand = usersCommand;
4
- const utils_1 = require("../utils");
5
- const spinner_1 = require("../../core/terminal/spinner");
6
- const colors_1 = require("../../core/terminal/colors");
7
- function usersCommand(program) {
8
- const list = program.command('list', 'List all users');
9
- list
10
- .option('--all', 'Show all users without pagination')
11
- .action(async ({ options }) => {
12
- const spinner = new spinner_1.Spinner('Fetching users...');
13
- try {
14
- spinner.start();
15
- const client = (0, utils_1.getClient)();
16
- let users;
17
- if (options.all) {
18
- users = await client.users.getAll();
19
- }
20
- else {
21
- const result = await client.users.list({ first: 20 });
22
- users = result.nodes;
23
- }
24
- spinner.stop();
25
- console.log(`\nFound ${users.length} users:\n`);
26
- users.forEach((user) => {
27
- console.log(`${colors_1.colors.cyan(user.account)} - ${colors_1.colors.bold(user.realName || 'No name')}`);
28
- if (user.email) {
29
- console.log(` Email: ${user.email}`);
30
- }
31
- console.log();
32
- });
33
- }
34
- catch (error) {
35
- spinner.fail(`Failed: ${error instanceof Error ? error.message : error}`);
36
- process.exit(1);
37
- }
38
- });
39
- const me = program.command('me', 'Show current user info');
40
- me.action(async () => {
41
- const spinner = new spinner_1.Spinner('Fetching user info...');
42
- try {
43
- spinner.start();
44
- const client = (0, utils_1.getClient)();
45
- const user = await client.users.getCurrentUser();
46
- spinner.stop();
47
- console.log('\nCurrent User:');
48
- console.log(`Account: ${colors_1.colors.cyan(user.account)}`);
49
- console.log(`Name: ${colors_1.colors.bold(user.realName || 'No name')}`);
50
- if (user.email)
51
- console.log(`Email: ${user.email}`);
52
- if (user.avatarImage?.url)
53
- console.log(`Avatar: ${user.avatarImage.url}`);
54
- }
55
- catch (error) {
56
- spinner.fail(`Failed: ${error instanceof Error ? error.message : error}`);
57
- process.exit(1);
58
- }
59
- });
60
- }
61
- //# sourceMappingURL=users-simple.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"users-simple.js","sourceRoot":"","sources":["../../../src/cli/commands/users-simple.ts"],"names":[],"mappings":"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"}