bkper 4.16.11 → 4.17.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.
Files changed (44) hide show
  1. package/README.md +1 -0
  2. package/lib/commands/accounts/list.js +1 -1
  3. package/lib/commands/accounts/list.js.map +1 -1
  4. package/lib/commands/apps/list.js +1 -1
  5. package/lib/commands/apps/list.js.map +1 -1
  6. package/lib/commands/books/list.js +1 -1
  7. package/lib/commands/books/list.js.map +1 -1
  8. package/lib/commands/cli-helpers.d.ts +4 -0
  9. package/lib/commands/cli-helpers.d.ts.map +1 -1
  10. package/lib/commands/cli-helpers.js +10 -0
  11. package/lib/commands/cli-helpers.js.map +1 -1
  12. package/lib/commands/collections/list.js +1 -1
  13. package/lib/commands/collections/list.js.map +1 -1
  14. package/lib/commands/files/index.d.ts +1 -0
  15. package/lib/commands/files/index.d.ts.map +1 -1
  16. package/lib/commands/files/index.js +1 -0
  17. package/lib/commands/files/index.js.map +1 -1
  18. package/lib/commands/files/list.d.ts +24 -0
  19. package/lib/commands/files/list.d.ts.map +1 -0
  20. package/lib/commands/files/list.js +102 -0
  21. package/lib/commands/files/list.js.map +1 -0
  22. package/lib/commands/files/register.d.ts.map +1 -1
  23. package/lib/commands/files/register.js +14 -3
  24. package/lib/commands/files/register.js.map +1 -1
  25. package/lib/commands/groups/list.js +1 -1
  26. package/lib/commands/groups/list.js.map +1 -1
  27. package/lib/commands/transactions/list.d.ts +4 -0
  28. package/lib/commands/transactions/list.d.ts.map +1 -1
  29. package/lib/commands/transactions/list.js +43 -2
  30. package/lib/commands/transactions/list.js.map +1 -1
  31. package/lib/commands/transactions/register.d.ts.map +1 -1
  32. package/lib/commands/transactions/register.js +5 -1
  33. package/lib/commands/transactions/register.js.map +1 -1
  34. package/lib/docs/cli-reference.md +1 -0
  35. package/lib/docs/data-management.md +30 -4
  36. package/lib/render/output.d.ts +2 -1
  37. package/lib/render/output.d.ts.map +1 -1
  38. package/lib/render/output.js +2 -1
  39. package/lib/render/output.js.map +1 -1
  40. package/lib/utils/shell-quote.d.ts +8 -0
  41. package/lib/utils/shell-quote.d.ts.map +1 -0
  42. package/lib/utils/shell-quote.js +10 -0
  43. package/lib/utils/shell-quote.js.map +1 -0
  44. package/package.json +4 -4
package/README.md CHANGED
@@ -139,6 +139,7 @@ Manage books, files, accounts, transactions, and balances.
139
139
  ```bash
140
140
  bkper book list
141
141
  bkper account list -b <bookId>
142
+ bkper file list -b <bookId> --limit 100
142
143
  bkper transaction list -b <bookId> -q 'on:2025' --format csv
143
144
  bkper balance list -b <bookId> -q 'on:2025-12-31' --format csv
144
145
  ```
@@ -31,7 +31,7 @@ export function listAccountsFormatted(bookId, format) {
31
31
  return __awaiter(this, void 0, void 0, function* () {
32
32
  const accounts = yield listAccounts(bookId);
33
33
  if (format === 'json') {
34
- return { kind: 'json', data: accounts.map(a => a.json()) };
34
+ return { kind: 'json', items: accounts.map(a => a.json()) };
35
35
  }
36
36
  const builder = new AccountsDataTableBuilder(accounts).ids(true).groups(true);
37
37
  if (format === 'csv') {
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/accounts/list.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAW,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAG7D;;;;;GAKG;AACH,MAAM,UAAgB,YAAY,CAAC,MAAc;;QAC7C,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,OAAO,QAAQ,IAAI,EAAE,CAAC;IAC1B,CAAC;CAAA;AAED;;;GAGG;AACH,MAAM,UAAgB,qBAAqB,CACvC,MAAc,EACd,MAAoB;;QAEpB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9E,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;CAAA"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/accounts/list.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAW,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAG7D;;;;;GAKG;AACH,MAAM,UAAgB,YAAY,CAAC,MAAc;;QAC7C,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,OAAO,QAAQ,IAAI,EAAE,CAAC;IAC1B,CAAC;CAAA;AAED;;;GAGG;AACH,MAAM,UAAgB,qBAAqB,CACvC,MAAc,EACd,MAAoB;;QAEpB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAChE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9E,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;CAAA"}
@@ -28,7 +28,7 @@ export function listAppsFormatted(format) {
28
28
  return __awaiter(this, void 0, void 0, function* () {
29
29
  const apps = yield listApps();
30
30
  if (format === 'json') {
31
- return { kind: 'json', data: apps };
31
+ return { kind: 'json', items: apps };
32
32
  }
33
33
  if (apps.length === 0) {
34
34
  return { kind: 'matrix', matrix: [['No results found.']] };
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/apps/list.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;GAIG;AACH,MAAM,UAAgB,QAAQ;;QAC1B,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;CAAA;AAED;;;GAGG;AACH,MAAM,UAAgB,iBAAiB,CAAC,MAAoB;;QACxD,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;QAE9B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;QAC/D,CAAC;QAED,MAAM,MAAM,GAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAC1D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;CAAA"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/apps/list.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;GAIG;AACH,MAAM,UAAgB,QAAQ;;QAC1B,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;CAAA;AAED;;;GAGG;AACH,MAAM,UAAgB,iBAAiB,CAAC,MAAoB;;QACxD,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;QAE9B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;QAC/D,CAAC;QAED,MAAM,MAAM,GAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAC1D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;CAAA"}
@@ -30,7 +30,7 @@ export function listBooksFormatted(query, format) {
30
30
  return __awaiter(this, void 0, void 0, function* () {
31
31
  const books = yield listBooks(query);
32
32
  if (format === 'json') {
33
- return { kind: 'json', data: books.map(b => b.json()) };
33
+ return { kind: 'json', items: books.map(b => b.json()) };
34
34
  }
35
35
  if (books.length === 0) {
36
36
  return { kind: 'matrix', matrix: [['No results found.']] };
@@ -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;AAC1D,OAAO,EAAQ,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGvD;;;;;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;;;;GAIG;AACH,MAAM,UAAgB,kBAAkB,CACpC,KAAyB,EACzB,MAAoB;;QAEpB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QAErC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;QAC/D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;YAChB,MAAM,KAAK,GAAG,MAAA,CAAC,CAAC,aAAa,EAAE,0CAAE,OAAO,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,MAAA,CAAC,CAAC,aAAa,EAAE,0CAAE,OAAO,EAAE,CAAC;YAC3C,IAAI,KAAK,IAAI,CAAC,KAAK;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,IAAI,KAAK;gBAAE,OAAO,CAAC,CAAC;YAC9B,IAAI,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBACZ,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;CAAA"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/books/list.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAQ,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGvD;;;;;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;;;;GAIG;AACH,MAAM,UAAgB,kBAAkB,CACpC,KAAyB,EACzB,MAAoB;;QAEpB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QAErC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7D,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;QAC/D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;YAChB,MAAM,KAAK,GAAG,MAAA,CAAC,CAAC,aAAa,EAAE,0CAAE,OAAO,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,MAAA,CAAC,CAAC,aAAa,EAAE,0CAAE,OAAO,EAAE,CAAC;YAC3C,IAAI,KAAK,IAAI,CAAC,KAAK;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,IAAI,KAAK;gBAAE,OAAO,CAAC,CAAC;YAC9B,IAAI,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBACZ,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;CAAA"}
@@ -11,6 +11,10 @@ export declare function collectProperty(value: string, previous: string[] | unde
11
11
  * Commander option collector for repeatable --book flags.
12
12
  */
13
13
  export declare function collectBook(value: string, previous: string[] | undefined): string[];
14
+ /**
15
+ * Commander parser for positive integer options such as pagination limits.
16
+ */
17
+ export declare function parsePositiveInteger(value: string): number;
14
18
  /**
15
19
  * Returns the active output format, considering both --format and --json flags.
16
20
  * --json acts as a silent alias for --format json.
@@ -1 +1 @@
1
- {"version":3,"file":"cli-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/cli-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;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;;;GAGG;AACH,wBAAgB,SAAS,IAAI,YAAY,CAUxC"}
1
+ {"version":3,"file":"cli-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/cli-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;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,SAAS,IAAI,YAAY,CAUxC"}
@@ -17,6 +17,16 @@ export function collectProperty(value, previous) {
17
17
  export function collectBook(value, previous) {
18
18
  return collectRepeatable(value, previous);
19
19
  }
20
+ /**
21
+ * Commander parser for positive integer options such as pagination limits.
22
+ */
23
+ export function parsePositiveInteger(value) {
24
+ const parsed = Number(value);
25
+ if (!Number.isInteger(parsed) || parsed <= 0) {
26
+ throw new Error('Value must be a positive integer');
27
+ }
28
+ return parsed;
29
+ }
20
30
  /**
21
31
  * Returns the active output format, considering both --format and --json flags.
22
32
  * --json acts as a silent alias for --format json.
@@ -1 +1 @@
1
- {"version":3,"file":"cli-helpers.js","sourceRoot":"","sources":["../../src/commands/cli-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC;;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;;;GAGG;AACH,MAAM,UAAU,SAAS;IACrB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;IACrC,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"cli-helpers.js","sourceRoot":"","sources":["../../src/commands/cli-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC;;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,SAAS;IACrB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;IACrC,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -28,7 +28,7 @@ export function listCollectionsFormatted(format) {
28
28
  return __awaiter(this, void 0, void 0, function* () {
29
29
  const collections = yield listCollections();
30
30
  if (format === 'json') {
31
- return { kind: 'json', data: collections.map(c => c.json()) };
31
+ return { kind: 'json', items: collections.map(c => c.json()) };
32
32
  }
33
33
  if (collections.length === 0) {
34
34
  return { kind: 'matrix', matrix: [['No collections found.']] };
@@ -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;;;GAGG;AACH,MAAM,UAAgB,wBAAwB,CAAC,MAAoB;;QAC/D,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;QAE5C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAClE,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC;QACnE,CAAC;QAED,MAAM,MAAM,GAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACtD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;CAAA"}
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;;;GAGG;AACH,MAAM,UAAgB,wBAAwB,CAAC,MAAoB;;QAC/D,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;QAE5C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACnE,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC;QACnE,CAAC;QAED,MAAM,MAAM,GAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACtD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;CAAA"}
@@ -1,3 +1,4 @@
1
1
  export { getFile } from './get.js';
2
+ export { listFiles, listFilesFormatted, ListFilesOptions } from './list.js';
2
3
  export { uploadFile, UploadFileOptions } from './upload.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { getFile } from './get.js';
2
+ export { listFiles, listFilesFormatted } from './list.js';
2
3
  export { uploadFile } from './upload.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAoB,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { File as BkperFile } from 'bkper-js';
2
+ import type { OutputFormat, ListResult } from '../../render/output.js';
3
+ export declare const DEFAULT_FILE_LIST_LIMIT = 100;
4
+ export interface ListFilesOptions {
5
+ limit?: number;
6
+ cursor?: string;
7
+ }
8
+ export interface ListFilesResult {
9
+ items: BkperFile[];
10
+ cursor?: string;
11
+ }
12
+ /**
13
+ * Lists one page of files from a book.
14
+ *
15
+ * @param bookId - The ID of the book to list files from
16
+ * @param options - Pagination options
17
+ * @returns File page items and optional next cursor
18
+ */
19
+ export declare function listFiles(bookId: string, options?: ListFilesOptions): Promise<ListFilesResult>;
20
+ /**
21
+ * Lists files and returns a ListResult ready for rendering.
22
+ */
23
+ export declare function listFilesFormatted(bookId: string, options: ListFilesOptions, format: OutputFormat): Promise<ListResult>;
24
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/files/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGvE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC3B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,gBAAqB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAc1B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,CAAC,CAmBrB"}
@@ -0,0 +1,102 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { getBkperInstance } from '../../bkper-factory.js';
11
+ import { quoteShellArg } from '../../utils/shell-quote.js';
12
+ export const DEFAULT_FILE_LIST_LIMIT = 100;
13
+ /**
14
+ * Lists one page of files from a book.
15
+ *
16
+ * @param bookId - The ID of the book to list files from
17
+ * @param options - Pagination options
18
+ * @returns File page items and optional next cursor
19
+ */
20
+ export function listFiles(bookId_1) {
21
+ return __awaiter(this, arguments, void 0, function* (bookId, options = {}) {
22
+ var _a;
23
+ const bkper = getBkperInstance();
24
+ const book = yield bkper.getBook(bookId);
25
+ const limit = (_a = options.limit) !== null && _a !== void 0 ? _a : DEFAULT_FILE_LIST_LIMIT;
26
+ const result = yield book.listFiles(limit, options.cursor);
27
+ const page = {
28
+ items: result.getItems(),
29
+ };
30
+ const nextCursor = result.getCursor();
31
+ if (nextCursor) {
32
+ page.cursor = nextCursor;
33
+ }
34
+ return page;
35
+ });
36
+ }
37
+ /**
38
+ * Lists files and returns a ListResult ready for rendering.
39
+ */
40
+ export function listFilesFormatted(bookId, options, format) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ const result = yield listFiles(bookId, options);
43
+ if (format === 'json') {
44
+ const jsonResult = {
45
+ kind: 'json',
46
+ items: result.items.map(file => fileToListJson(file)),
47
+ };
48
+ if (result.cursor) {
49
+ jsonResult.cursor = result.cursor;
50
+ }
51
+ return jsonResult;
52
+ }
53
+ return {
54
+ kind: 'matrix',
55
+ matrix: buildFilesMatrix(result.items),
56
+ footer: buildFileListFooter(bookId, options, result.cursor),
57
+ };
58
+ });
59
+ }
60
+ function fileToListJson(file) {
61
+ const json = Object.assign({}, file.json());
62
+ delete json.content;
63
+ return json;
64
+ }
65
+ function buildFilesMatrix(files) {
66
+ var _a;
67
+ const matrix = [
68
+ ['ID', 'Name', 'Content Type', 'Size', 'Created At', 'Updated At', 'URL', 'Properties'],
69
+ ];
70
+ for (const file of files) {
71
+ const json = fileToListJson(file);
72
+ matrix.push([
73
+ json.id || '',
74
+ json.name || '',
75
+ json.contentType || '',
76
+ (_a = json.size) !== null && _a !== void 0 ? _a : '',
77
+ json.createdAt || '',
78
+ json.updatedAt || '',
79
+ json.url || '',
80
+ formatProperties(json.properties),
81
+ ]);
82
+ }
83
+ return matrix;
84
+ }
85
+ function formatProperties(properties) {
86
+ if (!properties || Object.keys(properties).length === 0) {
87
+ return '';
88
+ }
89
+ return JSON.stringify(properties);
90
+ }
91
+ function buildFileListFooter(bookId, options, cursor) {
92
+ var _a;
93
+ if (!cursor) {
94
+ return undefined;
95
+ }
96
+ const limit = (_a = options.limit) !== null && _a !== void 0 ? _a : DEFAULT_FILE_LIST_LIMIT;
97
+ return [
98
+ `Next cursor: ${cursor}`,
99
+ `Next page: bkper file list -b ${quoteShellArg(bookId)} --limit ${limit} --cursor ${quoteShellArg(cursor)}`,
100
+ ].join('\n');
101
+ }
102
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/files/list.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/commands/files/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoC3D"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/commands/files/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0D3D"}
@@ -8,12 +8,23 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { withAction } from '../action.js';
11
- import { collectProperty } from '../cli-helpers.js';
12
- import { renderItem } from '../../render/index.js';
11
+ import { collectProperty, parsePositiveInteger } from '../cli-helpers.js';
12
+ import { renderItem, renderListResult } from '../../render/index.js';
13
13
  import { validateRequiredOptions, throwIfErrors } from '../../utils/validation.js';
14
- import { getFile, uploadFile } from './index.js';
14
+ import { getFile, listFilesFormatted, uploadFile } from './index.js';
15
15
  export function registerFileCommands(program) {
16
16
  const fileCommand = program.command('file').description('Manage Files');
17
+ fileCommand
18
+ .command('list')
19
+ .description('List files in a book')
20
+ .option('-b, --book <bookId>', 'Book ID')
21
+ .option('--limit <limit>', 'Fetch one page with up to this many files', parsePositiveInteger)
22
+ .option('--cursor <cursor>', 'Cursor for fetching the next page')
23
+ .action(options => withAction('listing files', (format) => __awaiter(this, void 0, void 0, function* () {
24
+ throwIfErrors(validateRequiredOptions(options, [{ name: 'book', flag: '--book' }]));
25
+ const result = yield listFilesFormatted(options.book, { limit: options.limit, cursor: options.cursor }, format);
26
+ renderListResult(result, format);
27
+ }))());
17
28
  fileCommand
18
29
  .command('get <fileId>')
19
30
  .description('Get a file by ID')
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/commands/files/register.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACjD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAExE,WAAW;SACN,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,MAAM,CAAC,qBAAqB,EAAE,SAAS,CAAC;SACxC,MAAM,CAAC,CAAC,MAAc,EAAE,OAAO,EAAE,EAAE,CAChC,UAAU,CAAC,cAAc,EAAE,CAAM,MAAM,EAAC,EAAE;QACtC,aAAa,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjD,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC,CAAA,CAAC,EAAE,CACP,CAAC;IAEN,WAAW;SACN,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,qBAAqB,EAAE,SAAS,CAAC;SACxC,MAAM,CAAC,6BAA6B,EAAE,qCAAqC,CAAC;SAC5E,MAAM,CACH,4BAA4B,EAC5B,kDAAkD,EAClD,eAAe,CAClB;SACA,MAAM,CAAC,CAAC,QAAgB,EAAE,OAAO,EAAE,EAAE,CAClC,UAAU,CAAC,gBAAgB,EAAE,CAAM,MAAM,EAAC,EAAE;QACxC,aAAa,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE;YACxC,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC,CAAC;QACH,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC,CAAA,CAAC,EAAE,CACP,CAAC;AACV,CAAC"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/commands/files/register.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ export function listGroupsFormatted(bookId, format) {
34
34
  return __awaiter(this, void 0, void 0, function* () {
35
35
  const groups = yield listGroups(bookId);
36
36
  if (format === 'json') {
37
- return { kind: 'json', data: groups.map(g => g.json()) };
37
+ return { kind: 'json', items: groups.map(g => g.json()) };
38
38
  }
39
39
  const builder = new GroupsDataTableBuilder(groups).ids(true).tree(true);
40
40
  if (format === 'csv') {
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/groups/list.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAS,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGzD;;;;;;;;GAQG;AACH,MAAM,UAAgB,UAAU,CAAC,MAAc;;QAC3C,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,OAAO,MAAM,IAAI,EAAE,CAAC;IACxB,CAAC;CAAA;AAED;;;GAGG;AACH,MAAM,UAAgB,mBAAmB,CACrC,MAAc,EACd,MAAoB;;QAEpB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;CAAA"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/groups/list.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAS,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGzD;;;;;;;;GAQG;AACH,MAAM,UAAgB,UAAU,CAAC,MAAc;;QAC3C,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,OAAO,MAAM,IAAI,EAAE,CAAC;IACxB,CAAC;CAAA;AAED;;;GAGG;AACH,MAAM,UAAgB,mBAAmB,CACrC,MAAc,EACd,MAAoB;;QAEpB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;CAAA"}
@@ -1,11 +1,14 @@
1
1
  import { Book, Transaction, Account } from 'bkper-js';
2
2
  import type { OutputFormat, ListResult } from '../../render/output.js';
3
+ export declare const DEFAULT_TRANSACTION_LIST_LIMIT = 100;
3
4
  /**
4
5
  * Options for querying transactions from a book.
5
6
  */
6
7
  export interface ListTransactionsOptions {
7
8
  query: string;
8
9
  properties?: boolean;
10
+ limit?: number;
11
+ cursor?: string;
9
12
  }
10
13
  /**
11
14
  * Result of a transaction listing query, including the book context.
@@ -14,6 +17,7 @@ export interface ListTransactionsResult {
14
17
  book: Book;
15
18
  items: Transaction[];
16
19
  account?: Account;
20
+ cursor?: string;
17
21
  }
18
22
  /**
19
23
  * Queries transactions from a book, automatically paginating through all
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/transactions/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAmB,MAAM,UAAU,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGvE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,uBAAuB,GACjC,OAAO,CAAC,sBAAsB,CAAC,CAiCjC;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC3C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,uBAAuB,EAChC,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,CAAC,CAoBrB"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/transactions/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIvE,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAqBlD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,uBAAuB,GACjC,OAAO,CAAC,sBAAsB,CAAC,CAkDjC;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC3C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,uBAAuB,EAChC,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,CAAC,CA+BrB"}
@@ -8,7 +8,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { getBkperInstance } from '../../bkper-factory.js';
11
+ import { quoteShellArg } from '../../utils/shell-quote.js';
11
12
  import { warnIfSuspiciousDateVariableQuery } from '../../utils/query-warning.js';
13
+ export const DEFAULT_TRANSACTION_LIST_LIMIT = 100;
14
+ function buildTransactionListFooter(bookId, options, cursor) {
15
+ var _a;
16
+ if (!cursor) {
17
+ return undefined;
18
+ }
19
+ const pageLimit = (_a = options.limit) !== null && _a !== void 0 ? _a : DEFAULT_TRANSACTION_LIST_LIMIT;
20
+ const propertiesFlag = options.properties ? ' -p' : '';
21
+ return [
22
+ `Next cursor: ${cursor}`,
23
+ `Next page: bkper transaction list -b ${quoteShellArg(bookId)} -q ${quoteShellArg(options.query)} --limit ${pageLimit} --cursor ${quoteShellArg(cursor)}${propertiesFlag}`,
24
+ ].join('\n');
25
+ }
12
26
  /**
13
27
  * Queries transactions from a book, automatically paginating through all
14
28
  * results until no more pages remain.
@@ -24,9 +38,25 @@ import { warnIfSuspiciousDateVariableQuery } from '../../utils/query-warning.js'
24
38
  */
25
39
  export function listTransactions(bookId, options) {
26
40
  return __awaiter(this, void 0, void 0, function* () {
41
+ var _a;
27
42
  warnIfSuspiciousDateVariableQuery(options.query);
28
43
  const bkper = getBkperInstance();
29
44
  const book = yield bkper.getBook(bookId, true);
45
+ const explicitPagination = options.limit !== undefined || options.cursor !== undefined;
46
+ if (explicitPagination) {
47
+ const pageLimit = (_a = options.limit) !== null && _a !== void 0 ? _a : DEFAULT_TRANSACTION_LIST_LIMIT;
48
+ const result = yield book.listTransactions(options.query, pageLimit, options.cursor);
49
+ const page = {
50
+ book,
51
+ items: result.getItems() || [],
52
+ account: yield result.getAccount(),
53
+ };
54
+ const nextCursor = result.getCursor();
55
+ if (nextCursor) {
56
+ page.cursor = nextCursor;
57
+ }
58
+ return page;
59
+ }
30
60
  const allItems = [];
31
61
  let account;
32
62
  let cursor;
@@ -62,7 +92,14 @@ export function listTransactionsFormatted(bookId, options, format) {
62
92
  return __awaiter(this, void 0, void 0, function* () {
63
93
  const result = yield listTransactions(bookId, options);
64
94
  if (format === 'json') {
65
- return { kind: 'json', data: result.items.map(tx => tx.json()) };
95
+ const jsonResult = {
96
+ kind: 'json',
97
+ items: result.items.map(tx => tx.json()),
98
+ };
99
+ if (result.cursor) {
100
+ jsonResult.cursor = result.cursor;
101
+ }
102
+ return jsonResult;
66
103
  }
67
104
  const builder = result.book.createTransactionsDataTable(result.items, result.account).ids(true);
68
105
  if (format === 'csv') {
@@ -75,7 +112,11 @@ export function listTransactionsFormatted(bookId, options, format) {
75
112
  }
76
113
  }
77
114
  const matrix = yield builder.build();
78
- return { kind: 'matrix', matrix };
115
+ return {
116
+ kind: 'matrix',
117
+ matrix,
118
+ footer: buildTransactionListFooter(bookId, options, result.cursor),
119
+ };
79
120
  });
80
121
  }
81
122
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/transactions/list.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAE,iCAAiC,EAAE,MAAM,8BAA8B,CAAC;AAmBjF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAgB,gBAAgB,CAClC,MAAc,EACd,OAAgC;;QAEhC,iCAAiC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE/C,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,IAAI,OAA4B,CAAC;QACjC,IAAI,MAA0B,CAAC;QAE/B,GAAG,CAAC;YACA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,uEAAuE;YACvE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YACxC,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YACtC,mEAAmE;YACnE,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBACvE,MAAM;YACV,CAAC;YACD,MAAM,GAAG,UAAU,CAAC;QACxB,CAAC,QAAQ,IAAI,EAAE;QAEf,OAAO;YACH,IAAI;YACJ,KAAK,EAAE,QAAQ;YACf,OAAO;SACV,CAAC;IACN,CAAC;CAAA;AAED;;;GAGG;AACH,MAAM,UAAgB,yBAAyB,CAC3C,MAAc,EACd,OAAgC,EAChC,MAAoB;;QAEpB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEvD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACrE,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEhG,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACrB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;CAAA"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/transactions/list.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/commands/transactions/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyLlE"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/commands/transactions/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiMlE"}
@@ -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 { collectProperty, collectRepeatable } from '../cli-helpers.js';
11
+ import { collectProperty, collectRepeatable, parsePositiveInteger } from '../cli-helpers.js';
12
12
  import { renderListResult, renderItem } from '../../render/index.js';
13
13
  import { validateRequiredOptions, throwIfErrors } from '../../utils/validation.js';
14
14
  import { parseStdinItems } from '../../input/index.js';
@@ -20,6 +20,8 @@ export function registerTransactionCommands(program) {
20
20
  .description('List transactions in a book')
21
21
  .option('-b, --book <bookId>', 'Book ID')
22
22
  .option('-q, --query <query>', 'Search query')
23
+ .option('--limit <limit>', 'Fetch one page with up to this many transactions', parsePositiveInteger)
24
+ .option('--cursor <cursor>', 'Cursor for fetching the next page')
23
25
  .option('-p, --properties', 'Include custom properties')
24
26
  .action(options => withAction('listing transactions', (format) => __awaiter(this, void 0, void 0, function* () {
25
27
  throwIfErrors(validateRequiredOptions(options, [
@@ -29,6 +31,8 @@ export function registerTransactionCommands(program) {
29
31
  const result = yield listTransactionsFormatted(options.book, {
30
32
  query: options.query,
31
33
  properties: options.properties,
34
+ limit: options.limit,
35
+ cursor: options.cursor,
32
36
  }, format);
33
37
  renderListResult(result, format);
34
38
  }))());
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/commands/transactions/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/commands/transactions/register.ts"],"names":[],"mappings":"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"}
@@ -139,6 +139,7 @@ Manage books, files, accounts, transactions, and balances.
139
139
  ```bash
140
140
  bkper book list
141
141
  bkper account list -b <bookId>
142
+ bkper file list -b <bookId> --limit 100
142
143
  bkper transaction list -b <bookId> -q 'on:2025' --format csv
143
144
  bkper balance list -b <bookId> -q 'on:2025-12-31' --format csv
144
145
  ```
@@ -175,6 +175,12 @@ Avoid using the same name for a Group and an Account in the same Book.
175
175
  Upload local files to a book and optionally route them with properties.
176
176
 
177
177
  ```bash
178
+ # List the first page of files in a book
179
+ bkper file list -b abc123
180
+
181
+ # Fetch the next page using the cursor shown in table output or JSON
182
+ bkper file list -b abc123 --limit 100 --cursor cursor_123
183
+
178
184
  # Upload a file to a book
179
185
  bkper file upload ./receipt.jpg -b abc123
180
186
 
@@ -194,6 +200,9 @@ Use `-p group_id=...` for group-based routing. The CLI infers `contentType` from
194
200
  <details>
195
201
  <summary>Command reference</summary>
196
202
 
203
+ - `file list -b <bookId>` - List one page of files in a book
204
+ - `--limit <number>` - Page size (default `100`)
205
+ - `--cursor <cursor>` - Cursor for fetching the next page
197
206
  - `file get <fileId> -b <bookId>` - Get a file by ID
198
207
  - `file upload <path> -b <bookId>` - Upload a local file to a book
199
208
  - `--account <accountIdOrName>` - Resolve an account by name or id and persist canonical `account_id=<resolvedAccountId>`
@@ -231,6 +240,12 @@ bkper transaction list -b abc123 -q 'on:2025-01'
231
240
  # List with custom properties included
232
241
  bkper transaction list -b abc123 -q 'account:Sales' -p
233
242
 
243
+ # Fetch one page of transactions explicitly
244
+ bkper transaction list -b abc123 -q 'on:2025' --limit 100
245
+
246
+ # Fetch the next transaction page
247
+ bkper transaction list -b abc123 -q 'on:2025' --limit 100 --cursor cursor_123
248
+
234
249
  # Update a transaction
235
250
  bkper transaction update tx_456 -b abc123 --amount 120.00 --description "Printer paper (corrected)"
236
251
 
@@ -250,7 +265,9 @@ bkper transaction merge tx_123 tx_456 -b abc123
250
265
  <details>
251
266
  <summary>Command reference</summary>
252
267
 
253
- - `transaction list -b <bookId> -q <query>` - List transactions matching a query (auto-paginates through all results)
268
+ - `transaction list -b <bookId> -q <query>` - List transactions matching a query (auto-paginates through all results unless `--limit` or `--cursor` is provided)
269
+ - `--limit <number>` - Fetch one page with up to this many transactions
270
+ - `--cursor <cursor>` - Cursor for fetching the next page
254
271
  - `-p, --properties` - Include custom properties in the output
255
272
  - `transaction create -b <bookId>` - Create a transaction
256
273
  - `--date <date>` - Transaction date
@@ -382,7 +399,7 @@ All commands support three output formats via the `--format` global flag:
382
399
  | Format | Flag | Best for |
383
400
  | ------ | -------------------------- | ------------------------------------------- |
384
401
  | Table | `--format table` (default) | Human reading in the terminal |
385
- | JSON | `--format json` | Programmatic access, single-item detail |
402
+ | JSON | `--format json` | Programmatic access, cursors, single-item detail |
386
403
  | CSV | `--format csv` | LLM consumption, spreadsheets, list reports |
387
404
 
388
405
  ```bash
@@ -391,11 +408,18 @@ bkper account list -b abc123
391
408
 
392
409
  # JSON output
393
410
  bkper account list -b abc123 --format json
411
+ # { "items": [...] }
394
412
 
395
413
  # CSV output -- raw data, no truncation, RFC 4180
396
414
  bkper account list -b abc123 --format csv
397
415
  ```
398
416
 
417
+ **JSON list output details:**
418
+
419
+ - Resource list commands return an object with an `items` array: `{ "items": [...] }`.
420
+ - Paginated list commands include `cursor` only when another page is available: `{ "items": [...], "cursor": "..." }`.
421
+ - Use `jq '.items[]'` to iterate list output.
422
+
399
423
  **CSV output details:**
400
424
 
401
425
  - **RFC 4180 compliant** -- proper quoting, CRLF line endings, no truncation
@@ -408,7 +432,7 @@ bkper account list -b abc123 --format csv
408
432
  When command output will be loaded into an LLM context (chat, prompt, memory, or agent reasoning), prefer:
409
433
 
410
434
  - **`--format csv` for list commands** (`balance list`, `transaction list`, `account list`, etc.).
411
- - **`--format json` for single-item commands** (`get`, `create`, `update`) and CLI-to-CLI pipelines.
435
+ - **`--format json` for single-item commands** (`get`, `create`, `update`), cursor pagination, and CLI-to-CLI pipelines.
412
436
 
413
437
  CSV is significantly more token-efficient than JSON for tabular data, and for wide balance outputs it can reduce token usage by up to **95%**.
414
438
 
@@ -456,13 +480,15 @@ echo '[{"name":"Cash","type":"ASSET"}]' | \
456
480
  bkper account create -b abc123 -p "region=LATAM"
457
481
  ```
458
482
 
459
- **Batch output:** results are output as a flat JSON array, matching the same format as list commands:
483
+ **Batch output:** write commands output created or updated resources as a flat JSON array:
460
484
 
461
485
  ```bash
462
486
  bkper account create -b abc123 < accounts.json
463
487
  # Output: [{"id":"acc-abc","name":"Cash",...}, {"id":"acc-def","name":"Revenue",...}]
464
488
  ```
465
489
 
490
+ List JSON output uses an `{ "items": [...] }` envelope, and stdin batch commands unwrap that envelope automatically for CLI-to-CLI pipes.
491
+
466
492
  **Piping between commands:**
467
493
 
468
494
  For resources that support stdin creation, JSON output can be piped directly into create or update commands:
@@ -8,7 +8,8 @@ export type OutputFormat = 'table' | 'json' | 'csv';
8
8
  */
9
9
  export type ListResult = {
10
10
  kind: 'json';
11
- data: unknown;
11
+ items: unknown[];
12
+ cursor?: string;
12
13
  } | {
13
14
  kind: 'matrix';
14
15
  matrix: unknown[][];
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/render/output.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,UAAU,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAS/E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAe3E;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAQnE"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/render/output.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,UAAU,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAU/E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAe3E;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAQnE"}
@@ -5,7 +5,8 @@ import { formatCsv } from './csv-formatter.js';
5
5
  */
6
6
  export function renderListResult(result, format) {
7
7
  if (result.kind === 'json') {
8
- console.log(JSON.stringify(result.data, null, 2));
8
+ const payload = result.cursor ? { items: result.items, cursor: result.cursor } : result.items;
9
+ console.log(JSON.stringify(payload, null, 2));
9
10
  return;
10
11
  }
11
12
  renderTable(result.matrix, format);
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/render/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAe/C;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAkB,EAAE,MAAoB;IACrE,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO;IACX,CAAC;IACD,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAmB,EAAE,MAAoB;IACjE,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,MAAM;YACP,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACX,KAAK,KAAK,CAAC,CAAC,CAAC;YACT,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;YACxC,OAAO;QACX,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACN,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,mBAAmB,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,MAAoB;IACzD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO;IACX,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,IAA+B,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,mBAAmB,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/render/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAe/C;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAkB,EAAE,MAAoB;IACrE,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,OAAO;IACX,CAAC;IACD,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAmB,EAAE,MAAoB;IACjE,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,MAAM;YACP,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACX,KAAK,KAAK,CAAC,CAAC,CAAC;YACT,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;YACxC,OAAO;QACX,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACN,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,mBAAmB,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,MAAoB;IACzD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO;IACX,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,IAA+B,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,mBAAmB,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Quotes a value for display in copy-pasteable POSIX shell commands.
3
+ *
4
+ * @param value - Raw argument value
5
+ * @returns A single-quoted shell argument
6
+ */
7
+ export declare function quoteShellArg(value: string): string;
8
+ //# sourceMappingURL=shell-quote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-quote.d.ts","sourceRoot":"","sources":["../../src/utils/shell-quote.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Quotes a value for display in copy-pasteable POSIX shell commands.
3
+ *
4
+ * @param value - Raw argument value
5
+ * @returns A single-quoted shell argument
6
+ */
7
+ export function quoteShellArg(value) {
8
+ return `'${value.replace(/'/g, `'\\''`)}'`;
9
+ }
10
+ //# sourceMappingURL=shell-quote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-quote.js","sourceRoot":"","sources":["../../src/utils/shell-quote.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACvC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC/C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bkper",
3
- "version": "4.16.11",
3
+ "version": "4.17.1",
4
4
  "description": "Command line client for Bkper",
5
5
  "bin": {
6
6
  "bkper": "./lib/cli.js"
@@ -51,8 +51,8 @@
51
51
  "upgrade:api": "bun update @bkper/bkper-api-types --latest && bun update bkper-js --latest"
52
52
  },
53
53
  "dependencies": {
54
- "@earendil-works/pi-coding-agent": "0.79.6",
55
- "bkper-js": "^2.35.2",
54
+ "@earendil-works/pi-coding-agent": "0.79.7",
55
+ "bkper-js": "^2.37.0",
56
56
  "commander": "^13.1.0",
57
57
  "dotenv": "^8.2.0",
58
58
  "esbuild": "^0.27.2",
@@ -63,7 +63,7 @@
63
63
  "yaml": "^2.5.1"
64
64
  },
65
65
  "devDependencies": {
66
- "@bkper/bkper-api-types": "^5.40.0",
66
+ "@bkper/bkper-api-types": "^5.41.0",
67
67
  "@types/chai": "^4.3.0",
68
68
  "@types/mocha": "^10.0.0",
69
69
  "@types/node": "^22.5.1",