bkper 4.1.0 → 4.3.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
@@ -475,25 +475,84 @@ When using the CLI from an AI agent, LLM, or automated script:
475
475
 
476
476
  ### Stdin input (batch operations)
477
477
 
478
- Write commands (`account create`, `group create`, `transaction create`) accept data piped via stdin for batch operations. The format is auto-detected (JSON or CSV).
478
+ Write commands (`account create`, `group create`, `transaction create`) accept JSON data piped via stdin for batch operations. The input format follows the [Bkper API Types](https://raw.githubusercontent.com/bkper/bkper-api-types/refs/heads/master/index.d.ts) exactly -- a single JSON object or an array of objects.
479
479
 
480
480
  ```bash
481
- # Create accounts from JSON
481
+ # Create transactions
482
+ echo '[{
483
+ "date": "2025-01-15",
484
+ "amount": "100.50",
485
+ "creditAccount": {"name": "Bank Account"},
486
+ "debitAccount": {"name": "Office Supplies"},
487
+ "description": "Printer paper",
488
+ "properties": {"invoice": "INV-001"}
489
+ }]' | bkper transaction create -b abc123
490
+
491
+ # Create accounts
482
492
  echo '[{"name":"Cash","type":"ASSET"},{"name":"Revenue","type":"INCOMING"}]' | \
483
493
  bkper account create -b abc123
484
494
 
485
- # Create transactions from CSV
486
- cat transactions.csv | bkper transaction create -b abc123
495
+ # Create groups
496
+ echo '[{"name":"Fixed Costs","hidden":true}]' | \
497
+ bkper group create -b abc123
487
498
 
488
499
  # Pipe from a script
489
500
  python export_bank.py | bkper transaction create -b abc123
490
501
  ```
491
502
 
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.
503
+ The input follows the exact `bkper.Transaction`, `bkper.Account`, or `bkper.Group` type from the [Bkper API Types](https://raw.githubusercontent.com/bkper/bkper-api-types/refs/heads/master/index.d.ts). Custom properties go inside the `properties` object.
493
504
 
494
- **CSV input:** first row is headers mapping to field names. Unknown columns become custom properties.
505
+ The `--property` CLI flag can override or delete properties from the stdin payload:
495
506
 
496
- **Batch output:** results are streamed as NDJSON (one JSON object per line), printed as each batch completes.
507
+ ```bash
508
+ echo '[{"name":"Cash","type":"ASSET"}]' | \
509
+ bkper account create -b abc123 -p "region=LATAM"
510
+ ```
511
+
512
+ **Batch output:** results are streamed as NDJSON (one JSON object per line), printed as each batch completes:
513
+
514
+ ```
515
+ {"id":"tx-abc","date":"2025-01-15","amount":"100.50","creditAccount":{...},...}
516
+ {"id":"tx-def","date":"2025-01-16","amount":"200.00","creditAccount":{...},...}
517
+ ```
518
+
519
+ #### Writable fields reference
520
+
521
+ Only the fields below are meaningful when creating resources via stdin. Read-only fields (`id`, `createdAt`, `updatedAt`, etc.) are ignored.
522
+
523
+ **Transaction** (`bkper.Transaction`)
524
+
525
+ | Field | Type | Notes |
526
+ | --------------- | ---------------------------------- | --------------------------------------------- |
527
+ | `date` | `string` | ISO format `yyyy-MM-dd` |
528
+ | `amount` | `string` | Decimal format `####.##` (string, not number) |
529
+ | `creditAccount` | `{"name":"..."}` or `{"id":"..."}` | Reference to an existing account |
530
+ | `debitAccount` | `{"name":"..."}` or `{"id":"..."}` | Reference to an existing account |
531
+ | `description` | `string` | Free-text description |
532
+ | `urls` | `string[]` | Attached URLs (e.g. receipts) |
533
+ | `remoteIds` | `string[]` | External IDs to prevent duplicates |
534
+ | `properties` | `{"key": "value", ...}` | Custom key/value properties |
535
+
536
+ **Account** (`bkper.Account`)
537
+
538
+ | Field | Type | Notes |
539
+ | ------------ | ----------------------- | -------------------------------------------------- |
540
+ | `name` | `string` | Account name (required) |
541
+ | `type` | `string` | `ASSET`, `LIABILITY`, `INCOMING`, or `OUTGOING` |
542
+ | `credit` | `boolean` | Credit nature (`true`) or debit (`false`) |
543
+ | `archived` | `boolean` | Archive the account on creation |
544
+ | `permanent` | `boolean` | Permanent accounts (e.g. bank accounts, customers) |
545
+ | `groups` | `[{"name":"..."}, ...]` | Groups to assign by name or id |
546
+ | `properties` | `{"key": "value", ...}` | Custom key/value properties |
547
+
548
+ **Group** (`bkper.Group`)
549
+
550
+ | Field | Type | Notes |
551
+ | ------------ | ---------------------------------- | -------------------------------- |
552
+ | `name` | `string` | Group name (required) |
553
+ | `hidden` | `boolean` | Hide from transactions main menu |
554
+ | `parent` | `{"name":"..."}` or `{"id":"..."}` | Parent group for nesting |
555
+ | `properties` | `{"key": "value", ...}` | Custom key/value properties |
497
556
 
498
557
  ---
499
558
 
@@ -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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"}
@@ -2,9 +2,11 @@
2
2
  * Creates multiple accounts from stdin items using the batch API.
3
3
  * Outputs NDJSON (one JSON object per line) as each chunk completes.
4
4
  *
5
+ * Stdin items must follow the bkper.Account format exactly.
6
+ *
5
7
  * @param bookId - Target book ID
6
- * @param items - Parsed stdin items (field-value maps)
7
- * @param propertyOverrides - CLI --property flags that override stdin fields
8
+ * @param items - Parsed stdin items as bkper.Account payloads
9
+ * @param propertyOverrides - CLI --property flags that override stdin properties
8
10
  */
9
- export declare function batchCreateAccounts(bookId: string, items: Record<string, string>[], propertyOverrides?: string[]): Promise<void>;
11
+ export declare function batchCreateAccounts(bookId: string, items: Record<string, unknown>[], propertyOverrides?: string[]): Promise<void>;
10
12
  //# 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":"AAMA;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
@@ -8,16 +8,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { getBkperInstance } from '../../bkper-factory.js';
11
- import { Account, AccountType } from 'bkper-js';
11
+ import { Account } from 'bkper-js';
12
12
  import { parsePropertyFlag } from '../../utils/properties.js';
13
13
  const CHUNK_SIZE = 100;
14
14
  /**
15
15
  * Creates multiple accounts from stdin items using the batch API.
16
16
  * Outputs NDJSON (one JSON object per line) as each chunk completes.
17
17
  *
18
+ * Stdin items must follow the bkper.Account format exactly.
19
+ *
18
20
  * @param bookId - Target book ID
19
- * @param items - Parsed stdin items (field-value maps)
20
- * @param propertyOverrides - CLI --property flags that override stdin fields
21
+ * @param items - Parsed stdin items as bkper.Account payloads
22
+ * @param propertyOverrides - CLI --property flags that override stdin properties
21
23
  */
22
24
  export function batchCreateAccounts(bookId, items, propertyOverrides) {
23
25
  return __awaiter(this, void 0, void 0, function* () {
@@ -27,22 +29,8 @@ export function batchCreateAccounts(bookId, items, propertyOverrides) {
27
29
  const chunk = items.slice(i, i + CHUNK_SIZE);
28
30
  const accounts = [];
29
31
  for (const item of chunk) {
30
- const account = new Account(book);
31
- if (item.name)
32
- account.setName(item.name);
33
- if (item.type) {
34
- const accountType = AccountType[item.type];
35
- if (accountType !== undefined)
36
- account.setType(accountType);
37
- }
38
- // Set properties from stdin fields (excluding known fields)
39
- const knownFields = new Set(['name', 'type', 'description', 'groups']);
40
- for (const [key, value] of Object.entries(item)) {
41
- if (!knownFields.has(key) && value !== '') {
42
- account.setProperty(key, value);
43
- }
44
- }
45
- // CLI --property flags override stdin
32
+ const account = new Account(book, item);
33
+ // CLI --property flags override stdin properties
46
34
  if (propertyOverrides) {
47
35
  for (const raw of propertyOverrides) {
48
36
  const [key, value] = parsePropertyFlag(raw);
@@ -54,14 +42,6 @@ export function batchCreateAccounts(bookId, items, propertyOverrides) {
54
42
  }
55
43
  }
56
44
  }
57
- if (item.groups) {
58
- for (const groupName of item.groups.split(',').map((g) => g.trim())) {
59
- const group = yield book.getGroup(groupName);
60
- if (group) {
61
- account.addGroup(group);
62
- }
63
- }
64
- }
65
45
  accounts.push(account);
66
46
  }
67
47
  const results = yield book.batchCreateAccounts(accounts);
@@ -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":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB;;;;;;;;;GASG;AACH,MAAM,UAAgB,mBAAmB,CACrC,MAAc,EACd,KAAgC,EAChC,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,QAAQ,GAAc,EAAE,CAAC;YAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,IAAqB,CAAC,CAAC;gBAEzD,iDAAiD;gBACjD,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,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;wBAChC,CAAC;6BAAM,CAAC;4BACJ,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;wBACpC,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACzD,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"}
@@ -2,9 +2,11 @@
2
2
  * Creates multiple groups from stdin items using the batch API.
3
3
  * Outputs NDJSON (one JSON object per line) as each chunk completes.
4
4
  *
5
+ * Stdin items must follow the bkper.Group format exactly.
6
+ *
5
7
  * @param bookId - Target book ID
6
- * @param items - Parsed stdin items (field-value maps)
7
- * @param propertyOverrides - CLI --property flags that override stdin fields
8
+ * @param items - Parsed stdin items as bkper.Group payloads
9
+ * @param propertyOverrides - CLI --property flags that override stdin properties
8
10
  */
9
- export declare function batchCreateGroups(bookId: string, items: Record<string, string>[], propertyOverrides?: string[]): Promise<void>;
11
+ export declare function batchCreateGroups(bookId: string, items: Record<string, unknown>[], propertyOverrides?: string[]): Promise<void>;
10
12
  //# 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":"AAMA;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
@@ -15,9 +15,11 @@ 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 items must follow the bkper.Group format exactly.
19
+ *
18
20
  * @param bookId - Target book ID
19
- * @param items - Parsed stdin items (field-value maps)
20
- * @param propertyOverrides - CLI --property flags that override stdin fields
21
+ * @param items - Parsed stdin items as bkper.Group payloads
22
+ * @param propertyOverrides - CLI --property flags that override stdin properties
21
23
  */
22
24
  export function batchCreateGroups(bookId, items, propertyOverrides) {
23
25
  return __awaiter(this, void 0, void 0, function* () {
@@ -27,19 +29,8 @@ export function batchCreateGroups(bookId, items, propertyOverrides) {
27
29
  const chunk = items.slice(i, i + CHUNK_SIZE);
28
30
  const groups = [];
29
31
  for (const item of chunk) {
30
- const group = new Group(book);
31
- if (item.name)
32
- group.setName(item.name);
33
- if (item.hidden !== undefined)
34
- group.setHidden(item.hidden === 'true');
35
- // Set properties from stdin fields (excluding known fields)
36
- const knownFields = new Set(['name', 'parent', 'hidden']);
37
- for (const [key, value] of Object.entries(item)) {
38
- if (!knownFields.has(key) && value !== '') {
39
- group.setProperty(key, value);
40
- }
41
- }
42
- // CLI --property flags override stdin
32
+ const group = new Group(book, item);
33
+ // CLI --property flags override stdin properties
43
34
  if (propertyOverrides) {
44
35
  for (const raw of propertyOverrides) {
45
36
  const [key, value] = parsePropertyFlag(raw);
@@ -51,12 +42,6 @@ export function batchCreateGroups(bookId, items, propertyOverrides) {
51
42
  }
52
43
  }
53
44
  }
54
- if (item.parent) {
55
- const parentGroup = yield book.getGroup(item.parent);
56
- if (parentGroup) {
57
- group.setParent(parentGroup);
58
- }
59
- }
60
45
  groups.push(group);
61
46
  }
62
47
  const results = yield book.batchCreateGroups(groups);
@@ -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":";;;;;;;;;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;;;;;;;;;GASG;AACH,MAAM,UAAgB,iBAAiB,CACnC,MAAc,EACd,KAAgC,EAChC,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,EAAE,IAAmB,CAAC,CAAC;gBAEnD,iDAAiD;gBACjD,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,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"}
@@ -2,9 +2,11 @@
2
2
  * Creates multiple transactions from stdin items using the batch API.
3
3
  * Outputs NDJSON (one JSON object per line) as each chunk completes.
4
4
  *
5
+ * Stdin items must follow the bkper.Transaction format exactly.
6
+ *
5
7
  * @param bookId - Target book ID
6
- * @param items - Parsed stdin items (field-value maps)
7
- * @param propertyOverrides - CLI --property flags that override stdin fields
8
+ * @param items - Parsed stdin items as bkper.Transaction payloads
9
+ * @param propertyOverrides - CLI --property flags that override stdin properties
8
10
  */
9
- export declare function batchCreateTransactions(bookId: string, items: Record<string, string>[], propertyOverrides?: string[]): Promise<void>;
11
+ export declare function batchCreateTransactions(bookId: string, items: Record<string, unknown>[], propertyOverrides?: string[]): Promise<void>;
10
12
  //# 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":"AAMA;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
@@ -15,9 +15,11 @@ const CHUNK_SIZE = 100;
15
15
  * Creates multiple transactions from stdin items using the batch API.
16
16
  * Outputs NDJSON (one JSON object per line) as each chunk completes.
17
17
  *
18
+ * Stdin items must follow the bkper.Transaction format exactly.
19
+ *
18
20
  * @param bookId - Target book ID
19
- * @param items - Parsed stdin items (field-value maps)
20
- * @param propertyOverrides - CLI --property flags that override stdin fields
21
+ * @param items - Parsed stdin items as bkper.Transaction payloads
22
+ * @param propertyOverrides - CLI --property flags that override stdin properties
21
23
  */
22
24
  export function batchCreateTransactions(bookId, items, propertyOverrides) {
23
25
  return __awaiter(this, void 0, void 0, function* () {
@@ -27,54 +29,8 @@ export function batchCreateTransactions(bookId, items, propertyOverrides) {
27
29
  const chunk = items.slice(i, i + CHUNK_SIZE);
28
30
  const transactions = [];
29
31
  for (const item of chunk) {
30
- const tx = new Transaction(book);
31
- if (item.date)
32
- tx.setDate(item.date);
33
- if (item.amount)
34
- tx.setAmount(item.amount);
35
- if (item.description)
36
- tx.setDescription(item.description);
37
- if (item.from) {
38
- const creditAccount = yield book.getAccount(item.from);
39
- if (creditAccount)
40
- tx.setCreditAccount(creditAccount);
41
- }
42
- if (item.to) {
43
- const debitAccount = yield book.getAccount(item.to);
44
- if (debitAccount)
45
- tx.setDebitAccount(debitAccount);
46
- }
47
- if (item.url) {
48
- for (const u of item.url.split(',').map((s) => s.trim())) {
49
- if (u)
50
- tx.addUrl(u);
51
- }
52
- }
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);
58
- }
59
- }
60
- // Set properties from stdin fields (excluding known fields)
61
- const knownFields = new Set([
62
- 'date',
63
- 'amount',
64
- 'description',
65
- 'from',
66
- 'to',
67
- 'url',
68
- 'remoteId',
69
- 'remote-id',
70
- 'Remote Id',
71
- ]);
72
- for (const [key, value] of Object.entries(item)) {
73
- if (!knownFields.has(key) && value !== '') {
74
- tx.setProperty(key, value);
75
- }
76
- }
77
- // CLI --property flags override stdin
32
+ const tx = new Transaction(book, item);
33
+ // CLI --property flags override stdin properties
78
34
  if (propertyOverrides) {
79
35
  for (const raw of propertyOverrides) {
80
36
  const [key, value] = parsePropertyFlag(raw);
@@ -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":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB;;;;;;;;;GASG;AACH,MAAM,UAAgB,uBAAuB,CACzC,MAAc,EACd,KAAgC,EAChC,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,YAAY,GAAkB,EAAE,CAAC;YAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,IAAyB,CAAC,CAAC;gBAE5D,iDAAiD;gBACjD,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,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;wBAC3B,CAAC;6BAAM,CAAC;4BACJ,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;wBAC/B,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;YACjE,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,9 +1,18 @@
1
1
  export { readStdin } from './stdin-reader.js';
2
- export { InputFormat } from './format-detector.js';
3
- import { InputFormat } from './format-detector.js';
2
+ /**
3
+ * Parsed stdin result containing an array of JSON objects.
4
+ */
4
5
  export interface StdinItems {
5
- items: Record<string, string>[];
6
- format: InputFormat;
6
+ items: Record<string, unknown>[];
7
7
  }
8
+ /**
9
+ * Reads and parses JSON input from stdin.
10
+ *
11
+ * Accepts a single JSON object or a JSON array of objects.
12
+ * Returns null if no piped input is available.
13
+ *
14
+ * @returns Parsed items, or null if stdin is not piped
15
+ * @throws Error if input is not valid JSON or not an object/array
16
+ */
8
17
  export declare function parseStdinItems(): Promise<StdinItems | null>;
9
18
  //# sourceMappingURL=index.d.ts.map
@@ -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;AAI9C;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAkBlE"}
@@ -9,32 +9,33 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  export { readStdin } from './stdin-reader.js';
11
11
  import { readStdin } from './stdin-reader.js';
12
- import { detectInputFormat } from './format-detector.js';
13
- import { parseCsv } from './csv-parser.js';
12
+ /**
13
+ * Reads and parses JSON input from stdin.
14
+ *
15
+ * Accepts a single JSON object or a JSON array of objects.
16
+ * Returns null if no piped input is available.
17
+ *
18
+ * @returns Parsed items, or null if stdin is not piped
19
+ * @throws Error if input is not valid JSON or not an object/array
20
+ */
14
21
  export function parseStdinItems() {
15
22
  return __awaiter(this, void 0, void 0, function* () {
16
23
  const content = yield readStdin();
17
24
  if (content === null) {
18
25
  return null;
19
26
  }
20
- const format = detectInputFormat(content);
27
+ const parsed = JSON.parse(content);
21
28
  let items;
22
- if (format === 'json') {
23
- const parsed = JSON.parse(content);
24
- if (Array.isArray(parsed)) {
25
- items = parsed;
26
- }
27
- else if (typeof parsed === 'object' && parsed !== null) {
28
- items = [parsed];
29
- }
30
- else {
31
- throw new Error('JSON input must be an object or an array of objects');
32
- }
29
+ if (Array.isArray(parsed)) {
30
+ items = parsed;
31
+ }
32
+ else if (typeof parsed === 'object' && parsed !== null) {
33
+ items = [parsed];
33
34
  }
34
35
  else {
35
- items = parseCsv(content);
36
+ throw new Error('JSON input must be an object or an array of objects');
36
37
  }
37
- return { items, format };
38
+ return { items };
38
39
  });
39
40
  }
40
41
  //# sourceMappingURL=index.js.map
@@ -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;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAS9C;;;;;;;;GAQG;AACH,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,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,KAAgC,CAAC;QAErC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,KAAK,GAAG,MAAmC,CAAC;QAChD,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACvD,KAAK,GAAG,CAAC,MAAiC,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,CAAC;IACrB,CAAC;CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bkper",
3
- "version": "4.1.0",
3
+ "version": "4.3.0",
4
4
  "description": "Command line client for Bkper",
5
5
  "bin": {
6
6
  "bkper": "./lib/cli.js"
@@ -1,9 +0,0 @@
1
- /**
2
- * Parses CSV content into an array of records using the first row as headers.
3
- * Handles quoted fields, escaped quotes, and CRLF/LF line endings.
4
- *
5
- * @param content - Raw CSV string to parse
6
- * @returns Array of records keyed by header names
7
- */
8
- export declare function parseCsv(content: string): Record<string, string>[];
9
- //# sourceMappingURL=csv-parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"csv-parser.d.ts","sourceRoot":"","sources":["../../src/input/csv-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAuBlE"}
@@ -1,110 +0,0 @@
1
- /**
2
- * Parses CSV content into an array of records using the first row as headers.
3
- * Handles quoted fields, escaped quotes, and CRLF/LF line endings.
4
- *
5
- * @param content - Raw CSV string to parse
6
- * @returns Array of records keyed by header names
7
- */
8
- export function parseCsv(content) {
9
- const rows = parseRows(content);
10
- if (rows.length === 0) {
11
- return [];
12
- }
13
- const headers = rows[0].map(h => h.trim());
14
- const results = [];
15
- for (let i = 1; i < rows.length; i++) {
16
- const row = rows[i];
17
- if (row.length === 1 && row[0] === '') {
18
- continue;
19
- }
20
- const record = {};
21
- for (let j = 0; j < headers.length; j++) {
22
- record[headers[j]] = j < row.length ? row[j] : '';
23
- }
24
- results.push(record);
25
- }
26
- return results;
27
- }
28
- function parseRows(content) {
29
- const rows = [];
30
- let current = 0;
31
- while (current < content.length) {
32
- const { fields, nextPosition } = parseRow(content, current);
33
- rows.push(fields);
34
- current = nextPosition;
35
- }
36
- return rows;
37
- }
38
- function parseRow(content, start) {
39
- const fields = [];
40
- let pos = start;
41
- while (pos < content.length) {
42
- if (content[pos] === '"') {
43
- const { value, nextPosition } = parseQuotedField(content, pos);
44
- fields.push(value);
45
- pos = nextPosition;
46
- }
47
- else {
48
- const { value, nextPosition } = parseUnquotedField(content, pos);
49
- fields.push(value);
50
- pos = nextPosition;
51
- }
52
- if (pos >= content.length) {
53
- break;
54
- }
55
- if (content[pos] === ',') {
56
- pos++;
57
- if (pos >= content.length ||
58
- content[pos] === '\n' ||
59
- (content[pos] === '\r' && content[pos + 1] === '\n')) {
60
- fields.push('');
61
- break;
62
- }
63
- continue;
64
- }
65
- if (content[pos] === '\r' && pos + 1 < content.length && content[pos + 1] === '\n') {
66
- pos += 2;
67
- break;
68
- }
69
- if (content[pos] === '\n') {
70
- pos++;
71
- break;
72
- }
73
- }
74
- return { fields, nextPosition: pos };
75
- }
76
- function parseQuotedField(content, start) {
77
- let pos = start + 1;
78
- const chars = [];
79
- while (pos < content.length) {
80
- if (content[pos] === '"') {
81
- if (pos + 1 < content.length && content[pos + 1] === '"') {
82
- chars.push('"');
83
- pos += 2;
84
- }
85
- else {
86
- pos++;
87
- break;
88
- }
89
- }
90
- else {
91
- chars.push(content[pos]);
92
- pos++;
93
- }
94
- }
95
- return { value: chars.join(''), nextPosition: pos };
96
- }
97
- function parseUnquotedField(content, start) {
98
- let pos = start;
99
- while (pos < content.length) {
100
- const ch = content[pos];
101
- if (ch === ',' ||
102
- ch === '\n' ||
103
- (ch === '\r' && pos + 1 < content.length && content[pos + 1] === '\n')) {
104
- break;
105
- }
106
- pos++;
107
- }
108
- return { value: content.substring(start, pos), nextPosition: pos };
109
- }
110
- //# sourceMappingURL=csv-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"csv-parser.js","sourceRoot":"","sources":["../../src/input/csv-parser.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Supported input formats for piped data.
3
- */
4
- export type InputFormat = 'json' | 'csv';
5
- /**
6
- * Detects whether the input content is JSON or CSV based on the first non-whitespace character.
7
- *
8
- * @param content - The raw input string to analyze
9
- * @returns The detected input format
10
- */
11
- export declare function detectInputFormat(content: string): InputFormat;
12
- //# sourceMappingURL=format-detector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format-detector.d.ts","sourceRoot":"","sources":["../../src/input/format-detector.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;AAEzC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAM9D"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Detects whether the input content is JSON or CSV based on the first non-whitespace character.
3
- *
4
- * @param content - The raw input string to analyze
5
- * @returns The detected input format
6
- */
7
- export function detectInputFormat(content) {
8
- const trimmed = content.trim();
9
- if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
10
- return 'json';
11
- }
12
- return 'csv';
13
- }
14
- //# sourceMappingURL=format-detector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format-detector.js","sourceRoot":"","sources":["../../src/input/format-detector.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}