bkper 4.31.3 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -5
- package/lib/cli.js +3 -3
- package/lib/cli.js.map +1 -1
- package/lib/commands/accounts/batch-create.d.ts +1 -1
- package/lib/commands/accounts/batch-create.d.ts.map +1 -1
- package/lib/commands/accounts/batch-create.js +3 -3
- package/lib/commands/accounts/batch-create.js.map +1 -1
- package/lib/commands/accounts/list.d.ts +2 -3
- package/lib/commands/accounts/list.d.ts.map +1 -1
- package/lib/commands/accounts/list.js +2 -12
- package/lib/commands/accounts/list.js.map +1 -1
- package/lib/commands/accounts/register.js +13 -13
- package/lib/commands/accounts/register.js.map +1 -1
- package/lib/commands/action.d.ts +2 -3
- package/lib/commands/action.d.ts.map +1 -1
- package/lib/commands/action.js +2 -3
- package/lib/commands/action.js.map +1 -1
- package/lib/commands/apps/list.d.ts +2 -3
- package/lib/commands/apps/list.d.ts.map +1 -1
- package/lib/commands/apps/list.js +2 -14
- package/lib/commands/apps/list.js.map +1 -1
- package/lib/commands/apps/register.js +10 -10
- package/lib/commands/apps/register.js.map +1 -1
- package/lib/commands/balances/list.d.ts +0 -2
- package/lib/commands/balances/list.d.ts.map +1 -1
- package/lib/commands/balances/list.js +9 -17
- package/lib/commands/balances/list.js.map +1 -1
- package/lib/commands/balances/register.d.ts.map +1 -1
- package/lib/commands/balances/register.js +3 -4
- package/lib/commands/balances/register.js.map +1 -1
- package/lib/commands/books/list.d.ts +2 -4
- package/lib/commands/books/list.d.ts.map +1 -1
- package/lib/commands/books/list.js +2 -30
- package/lib/commands/books/list.js.map +1 -1
- package/lib/commands/books/register.js +12 -12
- package/lib/commands/books/register.js.map +1 -1
- package/lib/commands/cli-helpers.d.ts +9 -4
- package/lib/commands/cli-helpers.d.ts.map +1 -1
- package/lib/commands/cli-helpers.js +18 -12
- package/lib/commands/cli-helpers.js.map +1 -1
- package/lib/commands/collections/list.d.ts +2 -3
- package/lib/commands/collections/list.d.ts.map +1 -1
- package/lib/commands/collections/list.js +2 -14
- package/lib/commands/collections/list.js.map +1 -1
- package/lib/commands/collections/register.d.ts.map +1 -1
- package/lib/commands/collections/register.js +15 -25
- package/lib/commands/collections/register.js.map +1 -1
- package/lib/commands/events/event-json.d.ts +13 -0
- package/lib/commands/events/event-json.d.ts.map +1 -0
- package/lib/commands/events/event-json.js +33 -0
- package/lib/commands/events/event-json.js.map +1 -0
- package/lib/commands/events/list.d.ts +4 -3
- package/lib/commands/events/list.d.ts.map +1 -1
- package/lib/commands/events/list.js +15 -66
- package/lib/commands/events/list.js.map +1 -1
- package/lib/commands/events/register.d.ts.map +1 -1
- package/lib/commands/events/register.js +7 -6
- package/lib/commands/events/register.js.map +1 -1
- package/lib/commands/files/list.d.ts +3 -2
- package/lib/commands/files/list.d.ts.map +1 -1
- package/lib/commands/files/list.js +13 -42
- package/lib/commands/files/list.js.map +1 -1
- package/lib/commands/files/register.d.ts.map +1 -1
- package/lib/commands/files/register.js +13 -10
- package/lib/commands/files/register.js.map +1 -1
- package/lib/commands/groups/list.d.ts +2 -3
- package/lib/commands/groups/list.d.ts.map +1 -1
- package/lib/commands/groups/list.js +2 -12
- package/lib/commands/groups/list.js.map +1 -1
- package/lib/commands/groups/register.js +12 -12
- package/lib/commands/groups/register.js.map +1 -1
- package/lib/commands/transactions/batch-create.d.ts +1 -1
- package/lib/commands/transactions/batch-create.d.ts.map +1 -1
- package/lib/commands/transactions/batch-create.js +4 -3
- package/lib/commands/transactions/batch-create.js.map +1 -1
- package/lib/commands/transactions/batch-update.d.ts +1 -1
- package/lib/commands/transactions/batch-update.d.ts.map +1 -1
- package/lib/commands/transactions/batch-update.js +4 -3
- package/lib/commands/transactions/batch-update.js.map +1 -1
- package/lib/commands/transactions/list.d.ts +4 -7
- package/lib/commands/transactions/list.d.ts.map +1 -1
- package/lib/commands/transactions/list.js +15 -32
- package/lib/commands/transactions/list.js.map +1 -1
- package/lib/commands/transactions/register.d.ts +1 -1
- package/lib/commands/transactions/register.d.ts.map +1 -1
- package/lib/commands/transactions/register.js +27 -26
- package/lib/commands/transactions/register.js.map +1 -1
- package/lib/commands/transactions/transaction-json.d.ts +23 -0
- package/lib/commands/transactions/transaction-json.d.ts.map +1 -0
- package/lib/commands/transactions/transaction-json.js +56 -0
- package/lib/commands/transactions/transaction-json.js.map +1 -0
- package/lib/docs/apps/ai.md +2 -2
- package/lib/docs/cli/app-management.md +0 -1
- package/lib/docs/cli/data-management.md +56 -54
- package/lib/docs/index.md +1 -1
- package/lib/docs-compliance/live-readme.d.ts.map +1 -1
- package/lib/docs-compliance/live-readme.js +0 -3
- package/lib/docs-compliance/live-readme.js.map +1 -1
- package/lib/docs-compliance/rules.d.ts.map +1 -1
- package/lib/docs-compliance/rules.js +9 -0
- package/lib/docs-compliance/rules.js.map +1 -1
- package/lib/render/index.d.ts +2 -4
- package/lib/render/index.d.ts.map +1 -1
- package/lib/render/index.js +1 -3
- package/lib/render/index.js.map +1 -1
- package/lib/render/output.d.ts +42 -22
- package/lib/render/output.d.ts.map +1 -1
- package/lib/render/output.js +62 -42
- package/lib/render/output.js.map +1 -1
- package/package.json +1 -1
- package/lib/render/csv-formatter.d.ts +0 -15
- package/lib/render/csv-formatter.d.ts.map +0 -1
- package/lib/render/csv-formatter.js +0 -37
- package/lib/render/csv-formatter.js.map +0 -1
- package/lib/render/table-formatter.d.ts +0 -34
- package/lib/render/table-formatter.d.ts.map +0 -1
- package/lib/render/table-formatter.js +0 -239
- package/lib/render/table-formatter.js.map +0 -1
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { withAction } from '../action.js';
|
|
11
|
-
import {
|
|
11
|
+
import { renderMatrix } from '../../render/index.js';
|
|
12
12
|
import { validateRequiredOptions, throwIfErrors } from '../../utils/validation.js';
|
|
13
13
|
import { listBalancesMatrix } from './index.js';
|
|
14
14
|
export function registerBalanceCommands(program) {
|
|
@@ -20,7 +20,7 @@ export function registerBalanceCommands(program) {
|
|
|
20
20
|
.option('-q, --query <query>', 'Balances query')
|
|
21
21
|
.option('--expanded <level>', 'Expand groups to specified depth (0+)', parseInt)
|
|
22
22
|
.option('--trial', 'Split total balances into debit and credit columns')
|
|
23
|
-
.action(options => withAction('listing balances', (
|
|
23
|
+
.action(options => withAction('listing balances', () => __awaiter(this, void 0, void 0, function* () {
|
|
24
24
|
throwIfErrors(validateRequiredOptions(options, [
|
|
25
25
|
{ name: 'book', flag: '--book' },
|
|
26
26
|
{ name: 'query', flag: '--query' },
|
|
@@ -28,10 +28,9 @@ export function registerBalanceCommands(program) {
|
|
|
28
28
|
const matrix = yield listBalancesMatrix(options.book, {
|
|
29
29
|
query: options.query,
|
|
30
30
|
expanded: options.expanded,
|
|
31
|
-
format,
|
|
32
31
|
trial: options.trial,
|
|
33
32
|
});
|
|
34
|
-
|
|
33
|
+
renderMatrix(matrix);
|
|
35
34
|
}))());
|
|
36
35
|
}
|
|
37
36
|
//# sourceMappingURL=register.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/commands/balances/register.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/commands/balances/register.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACpD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAEjF,cAAc;SACT,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,eAAe,CAAC;SAC5B,MAAM,CAAC,qBAAqB,EAAE,SAAS,CAAC;SACxC,MAAM,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;SAC/C,MAAM,CAAC,oBAAoB,EAAE,uCAAuC,EAAE,QAAQ,CAAC;SAC/E,MAAM,CAAC,SAAS,EAAE,oDAAoD,CAAC;SACvE,MAAM,CAAC,OAAO,CAAC,EAAE,CACd,UAAU,CAAC,kBAAkB,EAAE,GAAS,EAAE;QACtC,aAAa,CACT,uBAAuB,CAAC,OAAO,EAAE;YAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;SACrC,CAAC,CACL,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE;YAClD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;SACvB,CAAC,CAAC;QACH,YAAY,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAA,CAAC,EAAE,CACP,CAAC;AACV,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Book } from 'bkper-js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ListResult } from '../../render/output.js';
|
|
3
3
|
/**
|
|
4
4
|
* Lists books matching an optional query string.
|
|
5
5
|
*
|
|
@@ -9,8 +9,6 @@ import type { OutputFormat, ListResult } from '../../render/output.js';
|
|
|
9
9
|
export declare function listBooks(query?: string): Promise<Book[]>;
|
|
10
10
|
/**
|
|
11
11
|
* Lists books and returns a ListResult ready for rendering.
|
|
12
|
-
* Absorbs sorting, BooksDataTableBuilder config, and JSON mapping
|
|
13
|
-
* so cli.ts doesn't need to know about any of this.
|
|
14
12
|
*/
|
|
15
|
-
export declare function listBooksFormatted(query: string | undefined
|
|
13
|
+
export declare function listBooksFormatted(query: string | undefined): Promise<ListResult>;
|
|
16
14
|
//# sourceMappingURL=list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/books/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/books/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAG/D;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAGvF"}
|
|
@@ -8,7 +8,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { getBkperInstance } from '../../bkper-factory.js';
|
|
11
|
-
import { BooksDataTableBuilder } from 'bkper-js';
|
|
12
11
|
/**
|
|
13
12
|
* Lists books matching an optional query string.
|
|
14
13
|
*
|
|
@@ -23,38 +22,11 @@ export function listBooks(query) {
|
|
|
23
22
|
}
|
|
24
23
|
/**
|
|
25
24
|
* Lists books and returns a ListResult ready for rendering.
|
|
26
|
-
* Absorbs sorting, BooksDataTableBuilder config, and JSON mapping
|
|
27
|
-
* so cli.ts doesn't need to know about any of this.
|
|
28
25
|
*/
|
|
29
|
-
export function listBooksFormatted(query
|
|
26
|
+
export function listBooksFormatted(query) {
|
|
30
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
28
|
const books = yield listBooks(query);
|
|
32
|
-
|
|
33
|
-
return { kind: 'json', items: books.map(b => b.json()) };
|
|
34
|
-
}
|
|
35
|
-
if (books.length === 0) {
|
|
36
|
-
return { kind: 'matrix', matrix: [['No results found.']] };
|
|
37
|
-
}
|
|
38
|
-
books.sort((a, b) => {
|
|
39
|
-
var _a, _b;
|
|
40
|
-
const collA = (_a = a.getCollection()) === null || _a === void 0 ? void 0 : _a.getName();
|
|
41
|
-
const collB = (_b = b.getCollection()) === null || _b === void 0 ? void 0 : _b.getName();
|
|
42
|
-
if (collA && !collB)
|
|
43
|
-
return -1;
|
|
44
|
-
if (!collA && collB)
|
|
45
|
-
return 1;
|
|
46
|
-
let ret = (collA || '').localeCompare(collB || '');
|
|
47
|
-
if (ret === 0) {
|
|
48
|
-
ret = (a.getName() || '').localeCompare(b.getName() || '');
|
|
49
|
-
}
|
|
50
|
-
return ret;
|
|
51
|
-
});
|
|
52
|
-
const builder = new BooksDataTableBuilder(books).ids(true);
|
|
53
|
-
if (format === 'csv') {
|
|
54
|
-
builder.properties(true).hiddenProperties(true);
|
|
55
|
-
}
|
|
56
|
-
const matrix = builder.build();
|
|
57
|
-
return { kind: 'matrix', matrix };
|
|
29
|
+
return { items: books.map(b => b.json()) };
|
|
58
30
|
});
|
|
59
31
|
}
|
|
60
32
|
//# sourceMappingURL=list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/books/list.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/books/list.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D;;;;;GAKG;AACH,MAAM,UAAgB,SAAS,CAAC,KAAc;;QAC1C,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,UAAgB,kBAAkB,CAAC,KAAyB;;QAC9D,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IAC/C,CAAC;CAAA"}
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { withAction } from '../action.js';
|
|
11
11
|
import { collectProperty } from '../cli-helpers.js';
|
|
12
|
-
import {
|
|
12
|
+
import { renderList, renderItem } from '../../render/index.js';
|
|
13
13
|
import { validateRequiredOptions, throwIfErrors } from '../../utils/validation.js';
|
|
14
14
|
import { listBooksFormatted, getBook, createBook, copyBook, updateBook } from './index.js';
|
|
15
15
|
export function registerBookCommands(program) {
|
|
@@ -18,16 +18,16 @@ export function registerBookCommands(program) {
|
|
|
18
18
|
.command('list')
|
|
19
19
|
.description('List all books')
|
|
20
20
|
.option('-q, --query <query>', 'Search query')
|
|
21
|
-
.action(options => withAction('listing books', (
|
|
22
|
-
const result = yield listBooksFormatted(options.query
|
|
23
|
-
|
|
21
|
+
.action(options => withAction('listing books', () => __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
const result = yield listBooksFormatted(options.query);
|
|
23
|
+
renderList(result);
|
|
24
24
|
}))());
|
|
25
25
|
bookCommand
|
|
26
26
|
.command('get <bookId>')
|
|
27
27
|
.description('Get a book by ID')
|
|
28
|
-
.action((bookId) => withAction('getting book', (
|
|
28
|
+
.action((bookId) => withAction('getting book', () => __awaiter(this, void 0, void 0, function* () {
|
|
29
29
|
const book = yield getBook(bookId);
|
|
30
|
-
renderItem(book.json()
|
|
30
|
+
renderItem(book.json());
|
|
31
31
|
}))());
|
|
32
32
|
bookCommand
|
|
33
33
|
.command('create')
|
|
@@ -39,7 +39,7 @@ export function registerBookCommands(program) {
|
|
|
39
39
|
.option('--time-zone <timezone>', 'IANA time zone (e.g. America/New_York, UTC)')
|
|
40
40
|
.option('--period <period>', 'Period (MONTH, QUARTER, or YEAR)')
|
|
41
41
|
.option('-p, --property <key=value>', 'Set a property (repeatable)', collectProperty)
|
|
42
|
-
.action(options => withAction('creating book', (
|
|
42
|
+
.action(options => withAction('creating book', () => __awaiter(this, void 0, void 0, function* () {
|
|
43
43
|
throwIfErrors(validateRequiredOptions(options, [{ name: 'name', flag: '--name' }]));
|
|
44
44
|
const book = yield createBook({
|
|
45
45
|
name: options.name,
|
|
@@ -50,7 +50,7 @@ export function registerBookCommands(program) {
|
|
|
50
50
|
period: options.period,
|
|
51
51
|
property: options.property,
|
|
52
52
|
});
|
|
53
|
-
renderItem(book.json()
|
|
53
|
+
renderItem(book.json());
|
|
54
54
|
}))());
|
|
55
55
|
bookCommand
|
|
56
56
|
.command('copy <bookId>')
|
|
@@ -58,14 +58,14 @@ export function registerBookCommands(program) {
|
|
|
58
58
|
.option('--name <name>', 'Name for the copied book')
|
|
59
59
|
.option('--transactions', 'Copy transactions (source book owner only)')
|
|
60
60
|
.option('--from-date <date>', 'Copy transactions from this date (YYYY-MM-DD)')
|
|
61
|
-
.action((bookId, options) => withAction('copying book', (
|
|
61
|
+
.action((bookId, options) => withAction('copying book', () => __awaiter(this, void 0, void 0, function* () {
|
|
62
62
|
throwIfErrors(validateRequiredOptions(options, [{ name: 'name', flag: '--name' }]));
|
|
63
63
|
const book = yield copyBook(bookId, {
|
|
64
64
|
name: options.name,
|
|
65
65
|
transactions: options.transactions,
|
|
66
66
|
fromDate: options.fromDate,
|
|
67
67
|
});
|
|
68
|
-
renderItem(book.json()
|
|
68
|
+
renderItem(book.json());
|
|
69
69
|
}))());
|
|
70
70
|
bookCommand
|
|
71
71
|
.command('update <bookId>')
|
|
@@ -79,7 +79,7 @@ export function registerBookCommands(program) {
|
|
|
79
79
|
.option('--closing-date <date>', 'Closing date in ISO format (yyyy-MM-dd)')
|
|
80
80
|
.option('--period <period>', 'Period (MONTH, QUARTER, or YEAR)')
|
|
81
81
|
.option('-p, --property <key=value>', 'Set a property (repeatable, empty value deletes)', collectProperty)
|
|
82
|
-
.action((bookId, options) => withAction('updating book', (
|
|
82
|
+
.action((bookId, options) => withAction('updating book', () => __awaiter(this, void 0, void 0, function* () {
|
|
83
83
|
const book = yield updateBook(bookId, {
|
|
84
84
|
name: options.name,
|
|
85
85
|
fractionDigits: options.fractionDigits,
|
|
@@ -91,7 +91,7 @@ export function registerBookCommands(program) {
|
|
|
91
91
|
period: options.period,
|
|
92
92
|
property: options.property,
|
|
93
93
|
});
|
|
94
|
-
renderItem(book.json()
|
|
94
|
+
renderItem(book.json());
|
|
95
95
|
}))());
|
|
96
96
|
}
|
|
97
97
|
//# sourceMappingURL=register.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/commands/books/register.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/commands/books/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Command } from 'commander';
|
|
2
2
|
/**
|
|
3
3
|
* Commander option collector for repeatable scalar flags.
|
|
4
4
|
*/
|
|
@@ -16,8 +16,13 @@ export declare function collectBook(value: string, previous: string[] | undefine
|
|
|
16
16
|
*/
|
|
17
17
|
export declare function parsePositiveInteger(value: string): number;
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
19
|
+
* Commander parser for the legacy --format flag. Output is JSON only, so only
|
|
20
|
+
* `json` is accepted; other formats fail with guidance to reshape via jq.
|
|
21
21
|
*/
|
|
22
|
-
export declare function
|
|
22
|
+
export declare function parseOutputFormat(value: string): 'json';
|
|
23
|
+
/**
|
|
24
|
+
* Registers the legacy global output flags as hidden options.
|
|
25
|
+
* `--json` and `--format json` are accepted no-ops kept for compatibility.
|
|
26
|
+
*/
|
|
27
|
+
export declare function registerOutputOptions(command: Command): void;
|
|
23
28
|
//# sourceMappingURL=cli-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/cli-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/cli-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAKvE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAEzF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAEvF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAEnF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAO5D"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InvalidArgumentError, Option } from 'commander';
|
|
2
|
+
const JSON_ONLY_MESSAGE = "Output is JSON only. Reshape with jq, e.g. jq -r '.items[] | [.date, .amount] | @csv'";
|
|
2
3
|
/**
|
|
3
4
|
* Commander option collector for repeatable scalar flags.
|
|
4
5
|
*/
|
|
@@ -28,18 +29,23 @@ export function parsePositiveInteger(value) {
|
|
|
28
29
|
return parsed;
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
32
|
+
* Commander parser for the legacy --format flag. Output is JSON only, so only
|
|
33
|
+
* `json` is accepted; other formats fail with guidance to reshape via jq.
|
|
33
34
|
*/
|
|
34
|
-
export function
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return 'json';
|
|
35
|
+
export function parseOutputFormat(value) {
|
|
36
|
+
if (value === 'json') {
|
|
37
|
+
return value;
|
|
38
38
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
throw new InvalidArgumentError(JSON_ONLY_MESSAGE);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Registers the legacy global output flags as hidden options.
|
|
43
|
+
* `--json` and `--format json` are accepted no-ops kept for compatibility.
|
|
44
|
+
*/
|
|
45
|
+
export function registerOutputOptions(command) {
|
|
46
|
+
command.addOption(new Option('--format <format>', 'Output format (JSON only)')
|
|
47
|
+
.argParser(parseOutputFormat)
|
|
48
|
+
.hideHelp());
|
|
49
|
+
command.addOption(new Option('--json', 'Output as JSON (default)').hideHelp());
|
|
44
50
|
}
|
|
45
51
|
//# sourceMappingURL=cli-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-helpers.js","sourceRoot":"","sources":["../../src/commands/cli-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli-helpers.js","sourceRoot":"","sources":["../../src/commands/cli-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAgB,MAAM,WAAW,CAAC;AAEvE,MAAM,iBAAiB,GACnB,uFAAuF,CAAC;AAE5F;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,QAA8B;IAC3E,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,QAA8B;IACzE,OAAO,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,QAA8B;IACrE,OAAO,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC3C,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,IAAI,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IAClD,OAAO,CAAC,SAAS,CACb,IAAI,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;SACvD,SAAS,CAAC,iBAAiB,CAAC;SAC5B,QAAQ,EAAE,CAClB,CAAC;IACF,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Collection } from 'bkper-js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ListResult } from '../../render/output.js';
|
|
3
3
|
/**
|
|
4
4
|
* Fetches all collections for the authenticated user.
|
|
5
5
|
*
|
|
@@ -8,7 +8,6 @@ import type { OutputFormat, ListResult } from '../../render/output.js';
|
|
|
8
8
|
export declare function listCollections(): Promise<Collection[]>;
|
|
9
9
|
/**
|
|
10
10
|
* Lists collections and returns a ListResult ready for rendering.
|
|
11
|
-
* Absorbs manual matrix building and JSON mapping.
|
|
12
11
|
*/
|
|
13
|
-
export declare function listCollectionsFormatted(
|
|
12
|
+
export declare function listCollectionsFormatted(): Promise<ListResult>;
|
|
14
13
|
//# sourceMappingURL=list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/collections/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/collections/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;GAIG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAI7D;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,UAAU,CAAC,CAGpE"}
|
|
@@ -22,23 +22,11 @@ export function listCollections() {
|
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* Lists collections and returns a ListResult ready for rendering.
|
|
25
|
-
* Absorbs manual matrix building and JSON mapping.
|
|
26
25
|
*/
|
|
27
|
-
export function listCollectionsFormatted(
|
|
26
|
+
export function listCollectionsFormatted() {
|
|
28
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
28
|
const collections = yield listCollections();
|
|
30
|
-
|
|
31
|
-
return { kind: 'json', items: collections.map(c => c.json()) };
|
|
32
|
-
}
|
|
33
|
-
if (collections.length === 0) {
|
|
34
|
-
return { kind: 'matrix', matrix: [['No collections found.']] };
|
|
35
|
-
}
|
|
36
|
-
const matrix = [['ID', 'Name', 'Books']];
|
|
37
|
-
for (const col of collections) {
|
|
38
|
-
const books = col.getBooks();
|
|
39
|
-
matrix.push([col.getId() || '', col.getName() || '', books.length.toString()]);
|
|
40
|
-
}
|
|
41
|
-
return { kind: 'matrix', matrix };
|
|
29
|
+
return { items: collections.map(c => c.json()) };
|
|
42
30
|
});
|
|
43
31
|
}
|
|
44
32
|
//# sourceMappingURL=list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/collections/list.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D;;;;GAIG;AACH,MAAM,UAAgB,eAAe;;QACjC,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QACjD,OAAO,WAAW,CAAC;IACvB,CAAC;CAAA;AAED
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/collections/list.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D;;;;GAIG;AACH,MAAM,UAAgB,eAAe;;QACjC,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QACjD,OAAO,WAAW,CAAC;IACvB,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,UAAgB,wBAAwB;;QAC1C,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;QAC5C,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IACrD,CAAC;CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/commands/collections/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/commands/collections/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiFjE"}
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { withAction } from '../action.js';
|
|
11
11
|
import { collectBook } from '../cli-helpers.js';
|
|
12
|
-
import {
|
|
12
|
+
import { renderList, renderItem, renderNotice } from '../../render/index.js';
|
|
13
13
|
import { validateRequiredOptions, throwIfErrors } from '../../utils/validation.js';
|
|
14
14
|
import { listCollectionsFormatted, getCollection, createCollection, updateCollection, deleteCollection, addBookToCollection, removeBookFromCollection, } from './index.js';
|
|
15
15
|
export function registerCollectionCommands(program) {
|
|
@@ -17,70 +17,60 @@ export function registerCollectionCommands(program) {
|
|
|
17
17
|
collectionCommand
|
|
18
18
|
.command('list')
|
|
19
19
|
.description('List all collections')
|
|
20
|
-
.action(withAction('listing collections', (
|
|
21
|
-
const result = yield listCollectionsFormatted(
|
|
22
|
-
|
|
20
|
+
.action(withAction('listing collections', () => __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
const result = yield listCollectionsFormatted();
|
|
22
|
+
renderList(result);
|
|
23
23
|
})));
|
|
24
24
|
collectionCommand
|
|
25
25
|
.command('get <collectionId>')
|
|
26
26
|
.description('Get a collection by ID')
|
|
27
|
-
.action((collectionId) => withAction('getting collection', (
|
|
27
|
+
.action((collectionId) => withAction('getting collection', () => __awaiter(this, void 0, void 0, function* () {
|
|
28
28
|
const collection = yield getCollection(collectionId);
|
|
29
|
-
renderItem(collection.json()
|
|
29
|
+
renderItem(collection.json());
|
|
30
30
|
}))());
|
|
31
31
|
collectionCommand
|
|
32
32
|
.command('create')
|
|
33
33
|
.description('Create a new collection')
|
|
34
34
|
.option('--name <name>', 'Collection name')
|
|
35
|
-
.action(options => withAction('creating collection', (
|
|
35
|
+
.action(options => withAction('creating collection', () => __awaiter(this, void 0, void 0, function* () {
|
|
36
36
|
throwIfErrors(validateRequiredOptions(options, [{ name: 'name', flag: '--name' }]));
|
|
37
37
|
const collection = yield createCollection({ name: options.name });
|
|
38
|
-
renderItem(collection.json()
|
|
38
|
+
renderItem(collection.json());
|
|
39
39
|
}))());
|
|
40
40
|
collectionCommand
|
|
41
41
|
.command('update <collectionId>')
|
|
42
42
|
.description('Update a collection')
|
|
43
43
|
.option('--name <name>', 'Collection name')
|
|
44
|
-
.action((collectionId, options) => withAction('updating collection', (
|
|
44
|
+
.action((collectionId, options) => withAction('updating collection', () => __awaiter(this, void 0, void 0, function* () {
|
|
45
45
|
const collection = yield updateCollection(collectionId, {
|
|
46
46
|
name: options.name,
|
|
47
47
|
});
|
|
48
|
-
renderItem(collection.json()
|
|
48
|
+
renderItem(collection.json());
|
|
49
49
|
}))());
|
|
50
50
|
collectionCommand
|
|
51
51
|
.command('delete <collectionId>')
|
|
52
52
|
.description('Delete a collection')
|
|
53
53
|
.action((collectionId) => withAction('deleting collection', () => __awaiter(this, void 0, void 0, function* () {
|
|
54
54
|
yield deleteCollection(collectionId);
|
|
55
|
-
|
|
55
|
+
renderNotice(`Collection ${collectionId} deleted.`);
|
|
56
56
|
}))());
|
|
57
57
|
collectionCommand
|
|
58
58
|
.command('add-book <collectionId>')
|
|
59
59
|
.description('Add books to a collection')
|
|
60
60
|
.option('-b, --book <bookId>', 'Book ID (repeatable)', collectBook)
|
|
61
|
-
.action((collectionId, options) => withAction('adding books to collection', (
|
|
61
|
+
.action((collectionId, options) => withAction('adding books to collection', () => __awaiter(this, void 0, void 0, function* () {
|
|
62
62
|
throwIfErrors(validateRequiredOptions(options, [{ name: 'book', flag: '--book' }]));
|
|
63
63
|
const books = yield addBookToCollection(collectionId, options.book);
|
|
64
|
-
|
|
65
|
-
console.log(JSON.stringify(books.map(b => b.json()), null, 2));
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
console.log(`Added ${options.book.length} book(s) to collection ${collectionId}.`);
|
|
69
|
-
}
|
|
64
|
+
renderList({ items: books.map(b => b.json()) });
|
|
70
65
|
}))());
|
|
71
66
|
collectionCommand
|
|
72
67
|
.command('remove-book <collectionId>')
|
|
73
68
|
.description('Remove books from a collection')
|
|
74
69
|
.option('-b, --book <bookId>', 'Book ID (repeatable)', collectBook)
|
|
75
|
-
.action((collectionId, options) => withAction('removing books from collection', (
|
|
70
|
+
.action((collectionId, options) => withAction('removing books from collection', () => __awaiter(this, void 0, void 0, function* () {
|
|
76
71
|
throwIfErrors(validateRequiredOptions(options, [{ name: 'book', flag: '--book' }]));
|
|
77
72
|
const books = yield removeBookFromCollection(collectionId, options.book);
|
|
78
|
-
|
|
79
|
-
console.log(JSON.stringify(books.map(b => b.json()), null, 2));
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
console.log(`Removed ${options.book.length} book(s) from collection ${collectionId}.`);
|
|
83
|
-
}
|
|
73
|
+
renderList({ items: books.map(b => b.json()) });
|
|
84
74
|
}))());
|
|
85
75
|
}
|
|
86
76
|
//# sourceMappingURL=register.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/commands/collections/register.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/commands/collections/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serializes an event for CLI output.
|
|
3
|
+
*
|
|
4
|
+
* Keeps the full event payload (including botResponses for debugging) and drops
|
|
5
|
+
* agent logos, which are image payloads rather than information:
|
|
6
|
+
* - `agent.logo` / `agent.logoDark` (the agent is identified by `agent.id`/`name`)
|
|
7
|
+
* - `agentLogo` / `agentLogoDark` on the embedded `data.object.transaction`
|
|
8
|
+
*
|
|
9
|
+
* @param event - The event payload
|
|
10
|
+
* @returns A new payload object; the input is not mutated
|
|
11
|
+
*/
|
|
12
|
+
export declare function eventToJson(event: bkper.Event): bkper.Event;
|
|
13
|
+
//# sourceMappingURL=event-json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-json.d.ts","sourceRoot":"","sources":["../../../src/commands/events/event-json.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAsB3D"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
function isRecord(value) {
|
|
2
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Serializes an event for CLI output.
|
|
6
|
+
*
|
|
7
|
+
* Keeps the full event payload (including botResponses for debugging) and drops
|
|
8
|
+
* agent logos, which are image payloads rather than information:
|
|
9
|
+
* - `agent.logo` / `agent.logoDark` (the agent is identified by `agent.id`/`name`)
|
|
10
|
+
* - `agentLogo` / `agentLogoDark` on the embedded `data.object.transaction`
|
|
11
|
+
*
|
|
12
|
+
* @param event - The event payload
|
|
13
|
+
* @returns A new payload object; the input is not mutated
|
|
14
|
+
*/
|
|
15
|
+
export function eventToJson(event) {
|
|
16
|
+
var _a, _b, _c;
|
|
17
|
+
const json = Object.assign({}, event);
|
|
18
|
+
if (json.agent) {
|
|
19
|
+
const agent = Object.assign({}, json.agent);
|
|
20
|
+
delete agent.logo;
|
|
21
|
+
delete agent.logoDark;
|
|
22
|
+
json.agent = agent;
|
|
23
|
+
}
|
|
24
|
+
const transaction = (_b = (_a = json.data) === null || _a === void 0 ? void 0 : _a.object) === null || _b === void 0 ? void 0 : _b.transaction;
|
|
25
|
+
if (((_c = json.data) === null || _c === void 0 ? void 0 : _c.object) && isRecord(transaction)) {
|
|
26
|
+
const cleanTransaction = Object.assign({}, transaction);
|
|
27
|
+
delete cleanTransaction.agentLogo;
|
|
28
|
+
delete cleanTransaction.agentLogoDark;
|
|
29
|
+
json.data = Object.assign(Object.assign({}, json.data), { object: Object.assign(Object.assign({}, json.data.object), { transaction: cleanTransaction }) });
|
|
30
|
+
}
|
|
31
|
+
return json;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=event-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-json.js","sourceRoot":"","sources":["../../../src/commands/events/event-json.ts"],"names":[],"mappings":"AAAA,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,KAAkB;;IAC1C,MAAM,IAAI,qBAAqB,KAAK,CAAE,CAAC;IAEvC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,KAAK,qBAAqB,IAAI,CAAC,KAAK,CAAE,CAAC;QAC7C,OAAO,KAAK,CAAC,IAAI,CAAC;QAClB,OAAO,KAAK,CAAC,QAAQ,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,WAAW,GAAY,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,0CAAE,WAAW,CAAC;IAC5D,IAAI,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,KAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7C,MAAM,gBAAgB,qBAAiC,WAAW,CAAE,CAAC;QACrE,OAAO,gBAAgB,CAAC,SAAS,CAAC;QAClC,OAAO,gBAAgB,CAAC,aAAa,CAAC;QACtC,IAAI,CAAC,IAAI,mCACF,IAAI,CAAC,IAAI,KACZ,MAAM,kCAAO,IAAI,CAAC,IAAI,CAAC,MAAM,KAAE,WAAW,EAAE,gBAAgB,MAC/D,CAAC;IACN,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Event, EventType } from 'bkper-js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ListResult } from '../../render/output.js';
|
|
3
3
|
export declare const DEFAULT_EVENT_LIST_LIMIT = 50;
|
|
4
4
|
/**
|
|
5
5
|
* Options for listing events from a book.
|
|
@@ -30,7 +30,8 @@ export interface ListBookEventsResult {
|
|
|
30
30
|
export declare function listEvents(bookId: string, options?: ListBookEventsOptions): Promise<ListBookEventsResult>;
|
|
31
31
|
/**
|
|
32
32
|
* Lists events and returns a ListResult ready for rendering.
|
|
33
|
-
*
|
|
33
|
+
* Includes full event payloads with botResponses for LLM debugging,
|
|
34
|
+
* without agent logo images.
|
|
34
35
|
*/
|
|
35
|
-
export declare function listEventsFormatted(bookId: string, options: ListBookEventsOptions
|
|
36
|
+
export declare function listEventsFormatted(bookId: string, options: ListBookEventsOptions): Promise<ListResult>;
|
|
36
37
|
//# sourceMappingURL=list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/events/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAA0B,MAAM,UAAU,CAAC;AAEpE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/events/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAA0B,MAAM,UAAU,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIzD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B,GACpC,OAAO,CAAC,oBAAoB,CAAC,CAc/B;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,qBAAqB,GAC/B,OAAO,CAAC,UAAU,CAAC,CAcrB"}
|