bkper 4.1.0 → 4.2.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 CHANGED
@@ -489,11 +489,69 @@ cat transactions.csv | bkper transaction create -b abc123
489
489
  python export_bank.py | bkper transaction create -b abc123
490
490
  ```
491
491
 
492
- **JSON input:** a single object `{}` or an array `[{}, {}]`. Field names map to CLI options (`date`, `amount`, `description`, `from`, `to`, `name`, `type`, etc.). Unknown fields become custom properties.
492
+ Field names follow the [Bkper API Types](https://raw.githubusercontent.com/bkper/bkper-api-types/refs/heads/master/index.d.ts) format. Any unrecognized field is stored as a custom property.
493
493
 
494
- **CSV input:** first row is headers mapping to field names. Unknown columns become custom properties.
494
+ #### Transaction fields
495
495
 
496
- **Batch output:** results are streamed as NDJSON (one JSON object per line), printed as each batch completes.
496
+ | Field | Type | Required | Description |
497
+ | --------------- | -------- | -------- | --------------------------------------- |
498
+ | `date` | string | yes | ISO date (`YYYY-MM-DD`) |
499
+ | `amount` | string | yes | Numeric value |
500
+ | `description` | string | no | Transaction description |
501
+ | `creditAccount` | string | no | Source account (name or ID) |
502
+ | `debitAccount` | string | no | Destination account (name or ID) |
503
+ | `urls` | string[] | no | Array of URLs |
504
+ | `remoteIds` | string[] | no | Array of remote IDs (for deduplication) |
505
+ | _anything else_ | string | no | Stored as a custom property |
506
+
507
+ ```bash
508
+ # JSON -- field names match the API, arrays are native JSON arrays
509
+ echo '[{
510
+ "date": "2025-01-15",
511
+ "amount": "100.50",
512
+ "creditAccount": "Bank Account",
513
+ "debitAccount": "Office Supplies",
514
+ "description": "Printer paper",
515
+ "urls": ["https://receipt.example.com/123"],
516
+ "remoteIds": ["BANK-TXN-456"],
517
+ "invoice": "INV-001"
518
+ }]' | bkper transaction create -b abc123
519
+
520
+ # CSV -- use comma-separated values for array fields
521
+ # date,amount,creditAccount,debitAccount,description,urls,remoteIds,invoice
522
+ # 2025-01-15,100.50,Bank Account,Office Supplies,Printer paper,https://receipt.example.com/123,BANK-TXN-456,INV-001
523
+ ```
524
+
525
+ #### Account fields
526
+
527
+ | Field | Type | Required | Description |
528
+ | --------------- | -------- | -------- | -------------------------------------------- |
529
+ | `name` | string | yes | Account name |
530
+ | `type` | string | no | `ASSET`, `LIABILITY`, `INCOMING`, `OUTGOING` |
531
+ | `groups` | string[] | no | Array of group names |
532
+ | _anything else_ | string | no | Stored as a custom property |
533
+
534
+ #### Group fields
535
+
536
+ | Field | Type | Required | Description |
537
+ | --------------- | ------- | -------- | --------------------------- |
538
+ | `name` | string | yes | Group name |
539
+ | `parent` | string | no | Parent group name or ID |
540
+ | `hidden` | boolean | no | Whether to hide the group |
541
+ | _anything else_ | string | no | Stored as a custom property |
542
+
543
+ #### JSON vs CSV
544
+
545
+ **JSON input** preserves native types -- use real arrays (`["a","b"]`) and booleans (`true`). A single object `{}` or an array `[{}, {}]`.
546
+
547
+ **CSV input** is flat strings -- use comma-separated values within a cell for array fields (e.g., `url1,url2` in a `urls` column). First row is headers.
548
+
549
+ **Batch output:** results are streamed as NDJSON (one JSON object per line), printed as each batch completes:
550
+
551
+ ```
552
+ {"id":"tx-abc","date":"2025-01-15","amount":"100.50","creditAccount":{...},...}
553
+ {"id":"tx-def","date":"2025-01-16","amount":"200.00","creditAccount":{...},...}
554
+ ```
497
555
 
498
556
  ---
499
557
 
@@ -1 +1 @@
1
- {"version":3,"file":"local-auth-service.d.ts","sourceRoot":"","sources":["../../src/auth/local-auth-service.ts"],"names":[],"mappings":"AAoDA;;;GAGG;AACH,wBAAsB,KAAK,kBAK1B;AAED;;GAEG;AACH,wBAAgB,MAAM,SAKrB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,YAEzB;AA6HD;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAyBrD"}
1
+ {"version":3,"file":"local-auth-service.d.ts","sourceRoot":"","sources":["../../src/auth/local-auth-service.ts"],"names":[],"mappings":"AAoDA;;;GAGG;AACH,wBAAsB,KAAK,kBAK1B;AAED;;GAEG;AACH,wBAAgB,MAAM,SAGrB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,YAEzB;AA6HD;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAoCrD"}
@@ -71,9 +71,7 @@ export function login() {
71
71
  * Logs out by removing stored OAuth credentials from disk.
72
72
  */
73
73
  export function logout() {
74
- if (fs.existsSync(storedCredentialsPath)) {
75
- fs.rmSync(storedCredentialsPath);
76
- }
74
+ clearCredentials();
77
75
  console.log('Bkper logged out.');
78
76
  }
79
77
  /**
@@ -214,8 +212,21 @@ export function getOAuthToken() {
214
212
  storeCredentials(tokens);
215
213
  }
216
214
  });
217
- const token = yield localAuth.getAccessToken();
218
- return token.token || '';
215
+ try {
216
+ const token = yield localAuth.getAccessToken();
217
+ return token.token || '';
218
+ }
219
+ catch (err) {
220
+ // If token refresh fails (e.g., credentials from a different OAuth client,
221
+ // revoked tokens, or expired refresh token), clear stale credentials
222
+ // and re-authenticate
223
+ clearCredentials();
224
+ console.log('Session expired. Re-authenticating...');
225
+ localAuth = yield authenticateLocal();
226
+ storeCredentials(localAuth.credentials);
227
+ const token = yield localAuth.getAccessToken();
228
+ return token.token || '';
229
+ }
219
230
  });
220
231
  }
221
232
  function storeCredentials(credentials) {
@@ -224,4 +235,14 @@ function storeCredentials(credentials) {
224
235
  fs.mkdirSync(configDir, { recursive: true });
225
236
  fs.writeFileSync(storedCredentialsPath, JSON.stringify(credentials, null, 4), 'utf8');
226
237
  }
238
+ /**
239
+ * Clears stored credentials from memory and disk.
240
+ * Used when credentials become invalid (e.g., revoked, expired, or from a different OAuth client).
241
+ */
242
+ function clearCredentials() {
243
+ storedCredentials = undefined;
244
+ if (fs.existsSync(storedCredentialsPath)) {
245
+ fs.rmSync(storedCredentialsPath);
246
+ }
247
+ }
227
248
  //# sourceMappingURL=local-auth-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-auth-service.js","sourceRoot":"","sources":["../../src/auth/local-auth-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-auth-service.js","sourceRoot":"","sources":["../../src/auth/local-auth-service.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
+ import type { StdinValue } from '../../input/index.js';
1
2
  /**
2
3
  * Creates multiple accounts from stdin items using the batch API.
3
4
  * Outputs NDJSON (one JSON object per line) as each chunk completes.
4
5
  *
6
+ * Stdin field names follow the Bkper API format:
7
+ * name, type, groups
8
+ *
5
9
  * @param bookId - Target book ID
6
10
  * @param items - Parsed stdin items (field-value maps)
7
11
  * @param propertyOverrides - CLI --property flags that override stdin fields
8
12
  */
9
- export declare function batchCreateAccounts(bookId: string, items: Record<string, string>[], propertyOverrides?: string[]): Promise<void>;
13
+ export declare function batchCreateAccounts(bookId: string, items: Record<string, StdinValue>[], propertyOverrides?: string[]): Promise<void>;
10
14
  //# sourceMappingURL=batch-create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch-create.d.ts","sourceRoot":"","sources":["../../../src/commands/accounts/batch-create.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC/B,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAqDf"}
1
+ {"version":3,"file":"batch-create.d.ts","sourceRoot":"","sources":["../../../src/commands/accounts/batch-create.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAoBvD;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EACnC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAqDf"}
@@ -11,10 +11,28 @@ import { getBkperInstance } from '../../bkper-factory.js';
11
11
  import { Account, AccountType } from 'bkper-js';
12
12
  import { parsePropertyFlag } from '../../utils/properties.js';
13
13
  const CHUNK_SIZE = 100;
14
+ /**
15
+ * Resolves a StdinValue that may be a string[] or comma-separated string into a string array.
16
+ */
17
+ function resolveArray(value) {
18
+ if (Array.isArray(value)) {
19
+ return value;
20
+ }
21
+ if (typeof value === 'string') {
22
+ return value
23
+ .split(',')
24
+ .map(s => s.trim())
25
+ .filter(Boolean);
26
+ }
27
+ return [];
28
+ }
14
29
  /**
15
30
  * Creates multiple accounts from stdin items using the batch API.
16
31
  * Outputs NDJSON (one JSON object per line) as each chunk completes.
17
32
  *
33
+ * Stdin field names follow the Bkper API format:
34
+ * name, type, groups
35
+ *
18
36
  * @param bookId - Target book ID
19
37
  * @param items - Parsed stdin items (field-value maps)
20
38
  * @param propertyOverrides - CLI --property flags that override stdin fields
@@ -29,17 +47,17 @@ export function batchCreateAccounts(bookId, items, propertyOverrides) {
29
47
  for (const item of chunk) {
30
48
  const account = new Account(book);
31
49
  if (item.name)
32
- account.setName(item.name);
50
+ account.setName(String(item.name));
33
51
  if (item.type) {
34
- const accountType = AccountType[item.type];
52
+ const accountType = AccountType[String(item.type)];
35
53
  if (accountType !== undefined)
36
54
  account.setType(accountType);
37
55
  }
38
56
  // Set properties from stdin fields (excluding known fields)
39
- const knownFields = new Set(['name', 'type', 'description', 'groups']);
57
+ const knownFields = new Set(['name', 'type', 'groups']);
40
58
  for (const [key, value] of Object.entries(item)) {
41
59
  if (!knownFields.has(key) && value !== '') {
42
- account.setProperty(key, value);
60
+ account.setProperty(key, String(value));
43
61
  }
44
62
  }
45
63
  // CLI --property flags override stdin
@@ -55,7 +73,7 @@ export function batchCreateAccounts(bookId, items, propertyOverrides) {
55
73
  }
56
74
  }
57
75
  if (item.groups) {
58
- for (const groupName of item.groups.split(',').map((g) => g.trim())) {
76
+ for (const groupName of resolveArray(item.groups)) {
59
77
  const group = yield book.getGroup(groupName);
60
78
  if (group) {
61
79
  account.addGroup(group);
@@ -1 +1 @@
1
- {"version":3,"file":"batch-create.js","sourceRoot":"","sources":["../../../src/commands/accounts/batch-create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-create.js","sourceRoot":"","sources":["../../../src/commands/accounts/batch-create.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
+ import type { StdinValue } from '../../input/index.js';
1
2
  /**
2
3
  * Creates multiple groups from stdin items using the batch API.
3
4
  * Outputs NDJSON (one JSON object per line) as each chunk completes.
4
5
  *
6
+ * Stdin field names follow the Bkper API format:
7
+ * name, parent, hidden
8
+ *
5
9
  * @param bookId - Target book ID
6
10
  * @param items - Parsed stdin items (field-value maps)
7
11
  * @param propertyOverrides - CLI --property flags that override stdin fields
8
12
  */
9
- export declare function batchCreateGroups(bookId: string, items: Record<string, string>[], propertyOverrides?: string[]): Promise<void>;
13
+ export declare function batchCreateGroups(bookId: string, items: Record<string, StdinValue>[], propertyOverrides?: string[]): Promise<void>;
10
14
  //# sourceMappingURL=batch-create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch-create.d.ts","sourceRoot":"","sources":["../../../src/commands/groups/batch-create.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC/B,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAgDf"}
1
+ {"version":3,"file":"batch-create.d.ts","sourceRoot":"","sources":["../../../src/commands/groups/batch-create.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIvD;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EACnC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAoDf"}
@@ -15,6 +15,9 @@ const CHUNK_SIZE = 100;
15
15
  * Creates multiple groups from stdin items using the batch API.
16
16
  * Outputs NDJSON (one JSON object per line) as each chunk completes.
17
17
  *
18
+ * Stdin field names follow the Bkper API format:
19
+ * name, parent, hidden
20
+ *
18
21
  * @param bookId - Target book ID
19
22
  * @param items - Parsed stdin items (field-value maps)
20
23
  * @param propertyOverrides - CLI --property flags that override stdin fields
@@ -29,14 +32,16 @@ export function batchCreateGroups(bookId, items, propertyOverrides) {
29
32
  for (const item of chunk) {
30
33
  const group = new Group(book);
31
34
  if (item.name)
32
- group.setName(item.name);
33
- if (item.hidden !== undefined)
34
- group.setHidden(item.hidden === 'true');
35
+ group.setName(String(item.name));
36
+ if (item.hidden !== undefined) {
37
+ const hidden = typeof item.hidden === 'boolean' ? item.hidden : item.hidden === 'true';
38
+ group.setHidden(hidden);
39
+ }
35
40
  // Set properties from stdin fields (excluding known fields)
36
41
  const knownFields = new Set(['name', 'parent', 'hidden']);
37
42
  for (const [key, value] of Object.entries(item)) {
38
43
  if (!knownFields.has(key) && value !== '') {
39
- group.setProperty(key, value);
44
+ group.setProperty(key, String(value));
40
45
  }
41
46
  }
42
47
  // CLI --property flags override stdin
@@ -52,7 +57,7 @@ export function batchCreateGroups(bookId, items, propertyOverrides) {
52
57
  }
53
58
  }
54
59
  if (item.parent) {
55
- const parentGroup = yield book.getGroup(item.parent);
60
+ const parentGroup = yield book.getGroup(String(item.parent));
56
61
  if (parentGroup) {
57
62
  group.setParent(parentGroup);
58
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"batch-create.js","sourceRoot":"","sources":["../../../src/commands/groups/batch-create.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB;;;;;;;GAOG;AACH,MAAM,UAAgB,iBAAiB,CACnC,MAAc,EACd,KAA+B,EAC/B,iBAA4B;;QAE5B,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAY,EAAE,CAAC;YAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,IAAI,CAAC,IAAI;oBAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;oBAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;gBAEvE,4DAA4D;gBAC5D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;wBACxC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAClC,CAAC;gBACL,CAAC;gBAED,sCAAsC;gBACtC,IAAI,iBAAiB,EAAE,CAAC;oBACpB,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;wBAClC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;wBAC5C,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;4BACf,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;wBAC9B,CAAC;6BAAM,CAAC;4BACJ,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;wBAClC,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACrD,IAAI,WAAW,EAAE,CAAC;wBACd,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;oBACjC,CAAC;gBACL,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACrD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;IACL,CAAC;CAAA"}
1
+ {"version":3,"file":"batch-create.js","sourceRoot":"","sources":["../../../src/commands/groups/batch-create.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
+ import type { StdinValue } from '../../input/index.js';
1
2
  /**
2
3
  * Creates multiple transactions from stdin items using the batch API.
3
4
  * Outputs NDJSON (one JSON object per line) as each chunk completes.
4
5
  *
6
+ * Stdin field names follow the Bkper API format:
7
+ * date, amount, description, creditAccount, debitAccount, urls, remoteIds
8
+ *
5
9
  * @param bookId - Target book ID
6
10
  * @param items - Parsed stdin items (field-value maps)
7
11
  * @param propertyOverrides - CLI --property flags that override stdin fields
8
12
  */
9
- export declare function batchCreateTransactions(bookId: string, items: Record<string, string>[], propertyOverrides?: string[]): Promise<void>;
13
+ export declare function batchCreateTransactions(bookId: string, items: Record<string, StdinValue>[], propertyOverrides?: string[]): Promise<void>;
10
14
  //# sourceMappingURL=batch-create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch-create.d.ts","sourceRoot":"","sources":["../../../src/commands/transactions/batch-create.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC/B,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CA0Ef"}
1
+ {"version":3,"file":"batch-create.d.ts","sourceRoot":"","sources":["../../../src/commands/transactions/batch-create.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAoBvD;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EACnC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAuEf"}
@@ -11,10 +11,28 @@ import { getBkperInstance } from '../../bkper-factory.js';
11
11
  import { Transaction } from 'bkper-js';
12
12
  import { parsePropertyFlag } from '../../utils/properties.js';
13
13
  const CHUNK_SIZE = 100;
14
+ /**
15
+ * Resolves a StdinValue that may be a string[] or comma-separated string into a string array.
16
+ */
17
+ function resolveArray(value) {
18
+ if (Array.isArray(value)) {
19
+ return value;
20
+ }
21
+ if (typeof value === 'string') {
22
+ return value
23
+ .split(',')
24
+ .map(s => s.trim())
25
+ .filter(Boolean);
26
+ }
27
+ return [];
28
+ }
14
29
  /**
15
30
  * Creates multiple transactions from stdin items using the batch API.
16
31
  * Outputs NDJSON (one JSON object per line) as each chunk completes.
17
32
  *
33
+ * Stdin field names follow the Bkper API format:
34
+ * date, amount, description, creditAccount, debitAccount, urls, remoteIds
35
+ *
18
36
  * @param bookId - Target book ID
19
37
  * @param items - Parsed stdin items (field-value maps)
20
38
  * @param propertyOverrides - CLI --property flags that override stdin fields
@@ -29,32 +47,29 @@ export function batchCreateTransactions(bookId, items, propertyOverrides) {
29
47
  for (const item of chunk) {
30
48
  const tx = new Transaction(book);
31
49
  if (item.date)
32
- tx.setDate(item.date);
50
+ tx.setDate(String(item.date));
33
51
  if (item.amount)
34
- tx.setAmount(item.amount);
52
+ tx.setAmount(String(item.amount));
35
53
  if (item.description)
36
- tx.setDescription(item.description);
37
- if (item.from) {
38
- const creditAccount = yield book.getAccount(item.from);
54
+ tx.setDescription(String(item.description));
55
+ if (item.creditAccount) {
56
+ const creditAccount = yield book.getAccount(String(item.creditAccount));
39
57
  if (creditAccount)
40
58
  tx.setCreditAccount(creditAccount);
41
59
  }
42
- if (item.to) {
43
- const debitAccount = yield book.getAccount(item.to);
60
+ if (item.debitAccount) {
61
+ const debitAccount = yield book.getAccount(String(item.debitAccount));
44
62
  if (debitAccount)
45
63
  tx.setDebitAccount(debitAccount);
46
64
  }
47
- if (item.url) {
48
- for (const u of item.url.split(',').map((s) => s.trim())) {
49
- if (u)
50
- tx.addUrl(u);
65
+ if (item.urls) {
66
+ for (const u of resolveArray(item.urls)) {
67
+ tx.addUrl(u);
51
68
  }
52
69
  }
53
- if (item.remoteId || item['remote-id'] || item['Remote Id']) {
54
- const rid = item.remoteId || item['remote-id'] || item['Remote Id'];
55
- for (const r of rid.split(',').map((s) => s.trim())) {
56
- if (r)
57
- tx.addRemoteId(r);
70
+ if (item.remoteIds) {
71
+ for (const r of resolveArray(item.remoteIds)) {
72
+ tx.addRemoteId(r);
58
73
  }
59
74
  }
60
75
  // Set properties from stdin fields (excluding known fields)
@@ -62,16 +77,14 @@ export function batchCreateTransactions(bookId, items, propertyOverrides) {
62
77
  'date',
63
78
  'amount',
64
79
  'description',
65
- 'from',
66
- 'to',
67
- 'url',
68
- 'remoteId',
69
- 'remote-id',
70
- 'Remote Id',
80
+ 'creditAccount',
81
+ 'debitAccount',
82
+ 'urls',
83
+ 'remoteIds',
71
84
  ]);
72
85
  for (const [key, value] of Object.entries(item)) {
73
86
  if (!knownFields.has(key) && value !== '') {
74
- tx.setProperty(key, value);
87
+ tx.setProperty(key, String(value));
75
88
  }
76
89
  }
77
90
  // CLI --property flags override stdin
@@ -1 +1 @@
1
- {"version":3,"file":"batch-create.js","sourceRoot":"","sources":["../../../src/commands/transactions/batch-create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-create.js","sourceRoot":"","sources":["../../../src/commands/transactions/batch-create.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,14 @@
1
1
  export { readStdin } from './stdin-reader.js';
2
2
  export { InputFormat } from './format-detector.js';
3
3
  import { InputFormat } from './format-detector.js';
4
+ /**
5
+ * Value types supported in stdin items.
6
+ * JSON input preserves native types (arrays, booleans, numbers as strings).
7
+ * CSV input produces string values only.
8
+ */
9
+ export type StdinValue = string | string[] | boolean;
4
10
  export interface StdinItems {
5
- items: Record<string, string>[];
11
+ items: Record<string, StdinValue>[];
6
12
  format: InputFormat;
7
13
  }
8
14
  export declare function parseStdinItems(): Promise<StdinItems | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAqB,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGtE,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,WAAW,CAAC;CACvB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAuBlE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAqB,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGtE;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;AAErD,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;IACpC,MAAM,EAAE,WAAW,CAAC;CACvB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAuBlE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/input/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAe,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAO3C,MAAM,UAAgB,eAAe;;QACjC,MAAM,OAAO,GAAG,MAAM,SAAS,EAAE,CAAC;QAClC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,KAA+B,CAAC;QAEpC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,KAAK,GAAG,MAAkC,CAAC;YAC/C,CAAC;iBAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACvD,KAAK,GAAG,CAAC,MAAgC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAC3E,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/input/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAe,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAc3C,MAAM,UAAgB,eAAe;;QACjC,MAAM,OAAO,GAAG,MAAM,SAAS,EAAE,CAAC;QAClC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,KAAmC,CAAC;QAExC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,KAAK,GAAG,MAAsC,CAAC;YACnD,CAAC;iBAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACvD,KAAK,GAAG,CAAC,MAAoC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAC3E,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bkper",
3
- "version": "4.1.0",
3
+ "version": "4.2.0",
4
4
  "description": "Command line client for Bkper",
5
5
  "bin": {
6
6
  "bkper": "./lib/cli.js"