bkper 4.13.0 → 4.13.2
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/lib/commands/transactions/index.d.ts +1 -1
- package/lib/commands/transactions/index.d.ts.map +1 -1
- package/lib/commands/transactions/index.js.map +1 -1
- package/lib/commands/transactions/merge.d.ts +7 -12
- package/lib/commands/transactions/merge.d.ts.map +1 -1
- package/lib/commands/transactions/merge.js +7 -34
- package/lib/commands/transactions/merge.js.map +1 -1
- package/lib/commands/transactions/register.d.ts.map +1 -1
- package/lib/commands/transactions/register.js +2 -11
- package/lib/commands/transactions/register.js.map +1 -1
- package/lib/docs/bkper-js.md +1 -1
- package/lib/docs/core-concepts.md +1 -1
- package/package.json +3 -3
- package/lib/domain/transaction/merge-operation.d.ts +0 -48
- package/lib/domain/transaction/merge-operation.d.ts.map +0 -1
- package/lib/domain/transaction/merge-operation.js +0 -194
- package/lib/domain/transaction/merge-operation.js.map +0 -1
- package/lib/domain/transaction/merge-types.d.ts +0 -25
- package/lib/domain/transaction/merge-types.d.ts.map +0 -1
- package/lib/domain/transaction/merge-types.js +0 -8
- package/lib/domain/transaction/merge-types.js.map +0 -1
|
@@ -4,7 +4,7 @@ export { updateTransaction, UpdateTransactionOptions } from './update.js';
|
|
|
4
4
|
export { postTransaction } from './post.js';
|
|
5
5
|
export { checkTransaction } from './check.js';
|
|
6
6
|
export { trashTransaction } from './trash.js';
|
|
7
|
-
export { mergeTransactions
|
|
7
|
+
export { mergeTransactions } from './merge.js';
|
|
8
8
|
export { batchCreateTransactions } from './batch-create.js';
|
|
9
9
|
export { batchUpdateTransactions } from './batch-update.js';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/transactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,GACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,GACnC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/transactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,GACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,GACnC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/transactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,yBAAyB,GAG5B,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,iBAAiB,EAEjB,gCAAgC,GACnC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAA4B,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/transactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,yBAAyB,GAG5B,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,iBAAiB,EAEjB,gCAAgC,GACnC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAA4B,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
import { Transaction } from 'bkper-js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
auditRecord: string | null;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Merges two transactions by updating one and trashing the other.
|
|
12
|
-
* Fails if the transaction amounts differ.
|
|
3
|
+
* Merges two transactions using the canonical server-side merge operation.
|
|
4
|
+
*
|
|
5
|
+
* The returned transaction is the new merged transaction created synchronously
|
|
6
|
+
* by the backend. Cleanup of the two original transactions happens
|
|
7
|
+
* asynchronously on the server.
|
|
13
8
|
*
|
|
14
9
|
* @param bookId - The book ID containing both transactions
|
|
15
10
|
* @param transactionId1 - The ID of the first transaction
|
|
16
11
|
* @param transactionId2 - The ID of the second transaction
|
|
17
|
-
* @returns The
|
|
12
|
+
* @returns The canonical merged transaction
|
|
18
13
|
*/
|
|
19
|
-
export declare function mergeTransactions(bookId: string, transactionId1: string, transactionId2: string): Promise<
|
|
14
|
+
export declare function mergeTransactions(bookId: string, transactionId1: string, transactionId2: string): Promise<Transaction>;
|
|
20
15
|
//# sourceMappingURL=merge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/commands/transactions/merge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/commands/transactions/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,GACvB,OAAO,CAAC,WAAW,CAAC,CAItB"}
|
|
@@ -8,50 +8,23 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { getBkperInstance } from '../../bkper-factory.js';
|
|
11
|
-
import { TransactionMergeOperation } from '../../domain/transaction/merge-operation.js';
|
|
12
|
-
import { throwIfErrors } from '../../utils/validation.js';
|
|
13
11
|
/**
|
|
14
|
-
* Merges two transactions
|
|
15
|
-
*
|
|
12
|
+
* Merges two transactions using the canonical server-side merge operation.
|
|
13
|
+
*
|
|
14
|
+
* The returned transaction is the new merged transaction created synchronously
|
|
15
|
+
* by the backend. Cleanup of the two original transactions happens
|
|
16
|
+
* asynchronously on the server.
|
|
16
17
|
*
|
|
17
18
|
* @param bookId - The book ID containing both transactions
|
|
18
19
|
* @param transactionId1 - The ID of the first transaction
|
|
19
20
|
* @param transactionId2 - The ID of the second transaction
|
|
20
|
-
* @returns The
|
|
21
|
+
* @returns The canonical merged transaction
|
|
21
22
|
*/
|
|
22
23
|
export function mergeTransactions(bookId, transactionId1, transactionId2) {
|
|
23
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
25
|
const bkper = getBkperInstance();
|
|
25
26
|
const book = yield bkper.getBook(bookId);
|
|
26
|
-
|
|
27
|
-
book.getTransaction(transactionId1),
|
|
28
|
-
book.getTransaction(transactionId2),
|
|
29
|
-
]);
|
|
30
|
-
const errors = [];
|
|
31
|
-
if (!tx1) {
|
|
32
|
-
errors.push(`Transaction not found: ${transactionId1}`);
|
|
33
|
-
}
|
|
34
|
-
if (!tx2) {
|
|
35
|
-
errors.push(`Transaction not found: ${transactionId2}`);
|
|
36
|
-
}
|
|
37
|
-
throwIfErrors(errors);
|
|
38
|
-
// After validation, tx1 and tx2 are guaranteed to be defined
|
|
39
|
-
const mergeOp = new TransactionMergeOperation(book, tx1, tx2);
|
|
40
|
-
if (mergeOp.record) {
|
|
41
|
-
throw new Error(`Cannot merge: amounts differ. ${mergeOp.record}`);
|
|
42
|
-
}
|
|
43
|
-
// Apply merged data to the edit transaction
|
|
44
|
-
mergeOp.applyMergedData();
|
|
45
|
-
// Update the edit transaction and trash the revert transaction
|
|
46
|
-
const [updated] = yield Promise.all([
|
|
47
|
-
mergeOp.editTransaction.update(),
|
|
48
|
-
mergeOp.revertTransaction.trash(),
|
|
49
|
-
]);
|
|
50
|
-
return {
|
|
51
|
-
mergedTransaction: updated,
|
|
52
|
-
revertedTransactionId: mergeOp.revertTransaction.getId() || '',
|
|
53
|
-
auditRecord: mergeOp.record,
|
|
54
|
-
};
|
|
27
|
+
return book.mergeTransactions(transactionId1, transactionId2);
|
|
55
28
|
});
|
|
56
29
|
}
|
|
57
30
|
//# sourceMappingURL=merge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../src/commands/transactions/merge.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../src/commands/transactions/merge.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;;;;;;;;;GAWG;AACH,MAAM,UAAgB,iBAAiB,CACnC,MAAc,EACd,cAAsB,EACtB,cAAsB;;QAEtB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAClE,CAAC;CAAA"}
|
|
@@ -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,
|
|
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"}
|
|
@@ -142,17 +142,8 @@ export function registerTransactionCommands(program) {
|
|
|
142
142
|
.option('-b, --book <bookId>', 'Book ID')
|
|
143
143
|
.action((transactionId1, transactionId2, options) => withAction('merging transactions', (format) => __awaiter(this, void 0, void 0, function* () {
|
|
144
144
|
throwIfErrors(validateRequiredOptions(options, [{ name: 'book', flag: '--book' }]));
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
console.log(JSON.stringify({
|
|
148
|
-
mergedTransaction: result.mergedTransaction.json(),
|
|
149
|
-
revertedTransactionId: result.revertedTransactionId,
|
|
150
|
-
auditRecord: result.auditRecord,
|
|
151
|
-
}, null, 2));
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
renderItem(result.mergedTransaction.json(), 'table');
|
|
155
|
-
}
|
|
145
|
+
const transaction = yield mergeTransactions(options.book, transactionId1, transactionId2);
|
|
146
|
+
renderItem(transaction.json(), format);
|
|
156
147
|
}))());
|
|
157
148
|
}
|
|
158
149
|
//# sourceMappingURL=register.js.map
|
|
@@ -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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"}
|
package/lib/docs/bkper-js.md
CHANGED
|
@@ -120,7 +120,7 @@ const bkper = new Bkper();
|
|
|
120
120
|
const books = await bkper.getBooks();
|
|
121
121
|
```
|
|
122
122
|
|
|
123
|
-
See the [@bkper/web-auth documentation](https://bkper.com/docs/auth
|
|
123
|
+
See the [@bkper/web-auth documentation](https://bkper.com/docs/api/bkper-web-auth) for more details.
|
|
124
124
|
|
|
125
125
|
### API Key (Optional)
|
|
126
126
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Core Concepts
|
|
1
|
+
# Bkper Core Concepts
|
|
2
2
|
|
|
3
3
|
Bkper tracks resources — money, inventory, or anything countable — as movements between places. Every financial event is recorded as an amount moving **from** one Account **to** another. This from-to model replaces the traditional language of debits and credits with something intuitive: resources leave one place and arrive at another.
|
|
4
4
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bkper",
|
|
3
|
-
"version": "4.13.
|
|
3
|
+
"version": "4.13.2",
|
|
4
4
|
"description": "Command line client for Bkper",
|
|
5
5
|
"bin": {
|
|
6
6
|
"bkper": "./lib/cli.js"
|
|
@@ -51,9 +51,9 @@
|
|
|
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.
|
|
54
|
+
"@earendil-works/pi-coding-agent": "0.75.1",
|
|
55
55
|
"@earendil-works/pi-tui": "0.74.0",
|
|
56
|
-
"bkper-js": "^2.
|
|
56
|
+
"bkper-js": "^2.34.2",
|
|
57
57
|
"commander": "^13.1.0",
|
|
58
58
|
"dotenv": "^8.2.0",
|
|
59
59
|
"esbuild": "^0.27.2",
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Transaction Merge Operation - Domain Logic
|
|
3
|
-
*
|
|
4
|
-
* Pure business logic for merging two transactions into one.
|
|
5
|
-
* This class contains no dependencies on MCP, HTTP, or other infrastructure concerns.
|
|
6
|
-
* It operates on Transaction domain objects from bkper-js.
|
|
7
|
-
*/
|
|
8
|
-
import { Transaction, Book } from 'bkper-js';
|
|
9
|
-
import { MergedTransactionData } from './merge-types.js';
|
|
10
|
-
/**
|
|
11
|
-
* Represents the result of a transaction merge operation
|
|
12
|
-
*
|
|
13
|
-
* Determines which transaction to keep (edit) vs discard (revert),
|
|
14
|
-
* then intelligently merges data from both transactions.
|
|
15
|
-
*/
|
|
16
|
-
export declare class TransactionMergeOperation {
|
|
17
|
-
private book;
|
|
18
|
-
editTransaction: Transaction;
|
|
19
|
-
revertTransaction: Transaction;
|
|
20
|
-
mergedData: MergedTransactionData;
|
|
21
|
-
record: string | null;
|
|
22
|
-
private static readonly WORD_SPLITTER;
|
|
23
|
-
constructor(book: Book, transaction1: Transaction, transaction2: Transaction);
|
|
24
|
-
/**
|
|
25
|
-
* Merges data from both transactions into a single transaction data object
|
|
26
|
-
* @returns Merged transaction data
|
|
27
|
-
*/
|
|
28
|
-
private merge;
|
|
29
|
-
/**
|
|
30
|
-
* Merges two descriptions intelligently, avoiding duplicate words
|
|
31
|
-
* @param desc1 First description (from edit transaction)
|
|
32
|
-
* @param desc2 Second description (from revert transaction)
|
|
33
|
-
* @returns Merged description with unique words
|
|
34
|
-
*/
|
|
35
|
-
private mergeDescription;
|
|
36
|
-
/**
|
|
37
|
-
* Trims and normalizes whitespace in text
|
|
38
|
-
* @param text Text to trim
|
|
39
|
-
* @returns Trimmed text with normalized whitespace
|
|
40
|
-
*/
|
|
41
|
-
private trim;
|
|
42
|
-
/**
|
|
43
|
-
* Apply the merged data to the edit transaction
|
|
44
|
-
* This mutates the edit transaction object with the merged data
|
|
45
|
-
*/
|
|
46
|
-
applyMergedData(): void;
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=merge-operation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-operation.d.ts","sourceRoot":"","sources":["../../../src/domain/transaction/merge-operation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;;;;GAKG;AACH,qBAAa,yBAAyB;IAS9B,OAAO,CAAC,IAAI;IART,eAAe,EAAE,WAAW,CAAC;IAC7B,iBAAiB,EAAE,WAAW,CAAC;IAC/B,UAAU,EAAE,qBAAqB,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAa;gBAGtC,IAAI,EAAE,IAAI,EAClB,YAAY,EAAE,WAAW,EACzB,YAAY,EAAE,WAAW;IA8B7B;;;OAGG;IACH,OAAO,CAAC,KAAK;IA8Eb;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;;;OAIG;IACH,OAAO,CAAC,IAAI;IAIZ;;;OAGG;IACH,eAAe,IAAI,IAAI;CAsD1B"}
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Transaction Merge Operation - Domain Logic
|
|
3
|
-
*
|
|
4
|
-
* Pure business logic for merging two transactions into one.
|
|
5
|
-
* This class contains no dependencies on MCP, HTTP, or other infrastructure concerns.
|
|
6
|
-
* It operates on Transaction domain objects from bkper-js.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Represents the result of a transaction merge operation
|
|
10
|
-
*
|
|
11
|
-
* Determines which transaction to keep (edit) vs discard (revert),
|
|
12
|
-
* then intelligently merges data from both transactions.
|
|
13
|
-
*/
|
|
14
|
-
export class TransactionMergeOperation {
|
|
15
|
-
constructor(book, transaction1, transaction2) {
|
|
16
|
-
var _a, _b;
|
|
17
|
-
this.book = book;
|
|
18
|
-
this.record = null;
|
|
19
|
-
// Determine which transaction to edit vs revert based on priority rules
|
|
20
|
-
const tx1IsPosted = (_a = transaction1.isPosted()) !== null && _a !== void 0 ? _a : false;
|
|
21
|
-
const tx2IsPosted = (_b = transaction2.isPosted()) !== null && _b !== void 0 ? _b : false;
|
|
22
|
-
// Rule 1: Prefer posted transactions over drafts
|
|
23
|
-
if (!tx1IsPosted && tx2IsPosted) {
|
|
24
|
-
this.revertTransaction = transaction1;
|
|
25
|
-
this.editTransaction = transaction2;
|
|
26
|
-
}
|
|
27
|
-
else if (tx1IsPosted && !tx2IsPosted) {
|
|
28
|
-
this.revertTransaction = transaction2;
|
|
29
|
-
this.editTransaction = transaction1;
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
// Rule 2: If both same status, prefer newer transaction (higher createdAt)
|
|
33
|
-
const tx1Created = transaction1.getCreatedAt().getTime();
|
|
34
|
-
const tx2Created = transaction2.getCreatedAt().getTime();
|
|
35
|
-
if (tx1Created < tx2Created) {
|
|
36
|
-
this.revertTransaction = transaction1;
|
|
37
|
-
this.editTransaction = transaction2;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
this.revertTransaction = transaction2;
|
|
41
|
-
this.editTransaction = transaction1;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
this.mergedData = this.merge();
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Merges data from both transactions into a single transaction data object
|
|
48
|
-
* @returns Merged transaction data
|
|
49
|
-
*/
|
|
50
|
-
merge() {
|
|
51
|
-
// Start with edit transaction's JSON data as base
|
|
52
|
-
const merged = Object.assign({}, this.editTransaction.json());
|
|
53
|
-
// Merge description using Transaction wrapper
|
|
54
|
-
const editDescription = this.editTransaction.getDescription();
|
|
55
|
-
const revertDescription = this.revertTransaction.getDescription();
|
|
56
|
-
merged.description = this.mergeDescription(editDescription || null, revertDescription || null);
|
|
57
|
-
// Merge files using Transaction wrapper
|
|
58
|
-
const editFiles = this.editTransaction.getFiles() || [];
|
|
59
|
-
const revertFiles = this.revertTransaction.getFiles() || [];
|
|
60
|
-
const mergedFiles = [...editFiles.map(f => f.json()), ...revertFiles.map(f => f.json())];
|
|
61
|
-
merged.files = mergedFiles;
|
|
62
|
-
// Keep "attachments" for backward compatibility with test fixtures
|
|
63
|
-
merged.attachments = mergedFiles;
|
|
64
|
-
// Merge remote IDs using Transaction wrapper
|
|
65
|
-
const editRemoteIds = this.editTransaction.getRemoteIds();
|
|
66
|
-
const revertRemoteIds = this.revertTransaction.getRemoteIds();
|
|
67
|
-
merged.remoteIds = [...new Set([...editRemoteIds, ...revertRemoteIds])];
|
|
68
|
-
// Merge URLs using Transaction wrapper
|
|
69
|
-
const editUrls = this.editTransaction.getUrls();
|
|
70
|
-
const revertUrls = this.revertTransaction.getUrls();
|
|
71
|
-
merged.urls = [...new Set([...editUrls, ...revertUrls])];
|
|
72
|
-
// Merge properties using Transaction wrapper (revert overwrites edit)
|
|
73
|
-
const editProperties = this.editTransaction.getProperties();
|
|
74
|
-
const revertProperties = this.revertTransaction.getProperties();
|
|
75
|
-
merged.properties = Object.assign(Object.assign({}, editProperties), revertProperties);
|
|
76
|
-
// Backfill credit account - get from revert if edit doesn't have it
|
|
77
|
-
const editData = this.editTransaction.json();
|
|
78
|
-
const revertData = this.revertTransaction.json();
|
|
79
|
-
if (!editData.creditAccount && !editData.creditAccountId) {
|
|
80
|
-
if (revertData.creditAccount)
|
|
81
|
-
merged.creditAccount = revertData.creditAccount;
|
|
82
|
-
const revertCompat = revertData;
|
|
83
|
-
if (revertCompat.creditAccountId)
|
|
84
|
-
merged.creditAccountId = revertCompat.creditAccountId;
|
|
85
|
-
}
|
|
86
|
-
// Backfill debit account - get from revert if edit doesn't have it
|
|
87
|
-
if (!editData.debitAccount && !editData.debitAccountId) {
|
|
88
|
-
if (revertData.debitAccount)
|
|
89
|
-
merged.debitAccount = revertData.debitAccount;
|
|
90
|
-
const revertCompat = revertData;
|
|
91
|
-
if (revertCompat.debitAccountId)
|
|
92
|
-
merged.debitAccountId = revertCompat.debitAccountId;
|
|
93
|
-
}
|
|
94
|
-
// Handle amount validation and merging using Transaction wrapper
|
|
95
|
-
const editAmount = this.editTransaction.getAmount();
|
|
96
|
-
const revertAmount = this.revertTransaction.getAmount();
|
|
97
|
-
if (editAmount && revertAmount) {
|
|
98
|
-
// Both have amounts - check if they differ
|
|
99
|
-
if (editAmount.cmp(revertAmount) !== 0) {
|
|
100
|
-
// Amounts differ - create audit record and keep edit's amount
|
|
101
|
-
const editDate = this.editTransaction.getDate();
|
|
102
|
-
const revertDate = this.revertTransaction.getDate();
|
|
103
|
-
const diff = editAmount.minus(revertAmount);
|
|
104
|
-
this.record = `Merged on ${editDate} with amount diff: ${diff.toString()} (edit: ${editAmount.toString()}, reverted: ${revertAmount.toString()} on ${revertDate})`;
|
|
105
|
-
}
|
|
106
|
-
// Keep edit's amount (already in merged from editTransaction.json())
|
|
107
|
-
}
|
|
108
|
-
else if (!editAmount && revertAmount) {
|
|
109
|
-
// Edit has no amount, use revert's amount
|
|
110
|
-
merged.amount = revertAmount.toString();
|
|
111
|
-
}
|
|
112
|
-
// If edit has amount and revert doesn't, keep edit's amount (already in merged)
|
|
113
|
-
return merged;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Merges two descriptions intelligently, avoiding duplicate words
|
|
117
|
-
* @param desc1 First description (from edit transaction)
|
|
118
|
-
* @param desc2 Second description (from revert transaction)
|
|
119
|
-
* @returns Merged description with unique words
|
|
120
|
-
*/
|
|
121
|
-
mergeDescription(desc1, desc2) {
|
|
122
|
-
if (!desc1)
|
|
123
|
-
return desc2 || '';
|
|
124
|
-
if (!desc2)
|
|
125
|
-
return desc1;
|
|
126
|
-
const desc1Lower = desc1.toLowerCase();
|
|
127
|
-
const words = desc2
|
|
128
|
-
.split(TransactionMergeOperation.WORD_SPLITTER)
|
|
129
|
-
.filter(word => word.length > 0);
|
|
130
|
-
const uniqueWords = words.filter(word => !desc1Lower.includes(word.toLowerCase()));
|
|
131
|
-
return this.trim(desc1 + ' ' + uniqueWords.join(' '));
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Trims and normalizes whitespace in text
|
|
135
|
-
* @param text Text to trim
|
|
136
|
-
* @returns Trimmed text with normalized whitespace
|
|
137
|
-
*/
|
|
138
|
-
trim(text) {
|
|
139
|
-
return text.trim().replace(/\s+/g, ' ');
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Apply the merged data to the edit transaction
|
|
143
|
-
* This mutates the edit transaction object with the merged data
|
|
144
|
-
*/
|
|
145
|
-
applyMergedData() {
|
|
146
|
-
var _a;
|
|
147
|
-
const edit = this.editTransaction;
|
|
148
|
-
const merged = this.mergedData;
|
|
149
|
-
// Set description (ensure it's a string)
|
|
150
|
-
if (merged.description !== undefined) {
|
|
151
|
-
edit.setDescription(merged.description);
|
|
152
|
-
}
|
|
153
|
-
// Set properties
|
|
154
|
-
if (merged.properties) {
|
|
155
|
-
edit.setProperties(merged.properties);
|
|
156
|
-
}
|
|
157
|
-
// Set URLs
|
|
158
|
-
if (merged.urls && merged.urls.length > 0) {
|
|
159
|
-
edit.setUrls(merged.urls);
|
|
160
|
-
}
|
|
161
|
-
// Set amount if changed
|
|
162
|
-
if (merged.amount) {
|
|
163
|
-
edit.setAmount(merged.amount);
|
|
164
|
-
}
|
|
165
|
-
// Set credit account if changed
|
|
166
|
-
if (merged.creditAccount) {
|
|
167
|
-
edit.setCreditAccount(merged.creditAccount);
|
|
168
|
-
}
|
|
169
|
-
// Set debit account if changed
|
|
170
|
-
if (merged.debitAccount) {
|
|
171
|
-
edit.setDebitAccount(merged.debitAccount);
|
|
172
|
-
}
|
|
173
|
-
// Add remote IDs
|
|
174
|
-
const currentRemoteIds = edit.getRemoteIds();
|
|
175
|
-
if (merged.remoteIds) {
|
|
176
|
-
merged.remoteIds.forEach((remoteId) => {
|
|
177
|
-
if (!currentRemoteIds.includes(remoteId)) {
|
|
178
|
-
edit.addRemoteId(remoteId);
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
// Add files
|
|
183
|
-
if (merged.files && merged.files.length > (((_a = this.editTransaction.getFiles()) === null || _a === void 0 ? void 0 : _a.length) || 0)) {
|
|
184
|
-
const currentFiles = this.editTransaction.getFiles() || [];
|
|
185
|
-
const newFiles = merged.files.slice(currentFiles.length);
|
|
186
|
-
newFiles.forEach((file) => {
|
|
187
|
-
// addFile expects File class but accepts raw bkper.File in practice
|
|
188
|
-
edit.addFile(file);
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
TransactionMergeOperation.WORD_SPLITTER = /[ \-_]+/;
|
|
194
|
-
//# sourceMappingURL=merge-operation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-operation.js","sourceRoot":"","sources":["../../../src/domain/transaction/merge-operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Domain types for transaction merge operations
|
|
3
|
-
*
|
|
4
|
-
* These types represent the core business domain for merging transactions,
|
|
5
|
-
* independent of any specific API or protocol (MCP, REST, etc.)
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Merged transaction data that extends the base bkper.Transaction type
|
|
9
|
-
* with compatibility fields for legacy systems and test fixtures
|
|
10
|
-
*/
|
|
11
|
-
export interface MergedTransactionData extends bkper.Transaction {
|
|
12
|
-
/**
|
|
13
|
-
* Compatibility field: alias for 'files' used in test fixtures
|
|
14
|
-
*/
|
|
15
|
-
attachments?: bkper.File[];
|
|
16
|
-
/**
|
|
17
|
-
* Compatibility field: ID-only version of creditAccount for legacy systems
|
|
18
|
-
*/
|
|
19
|
-
creditAccountId?: string;
|
|
20
|
-
/**
|
|
21
|
-
* Compatibility field: ID-only version of debitAccount for legacy systems
|
|
22
|
-
*/
|
|
23
|
-
debitAccountId?: string;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=merge-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-types.d.ts","sourceRoot":"","sources":["../../../src/domain/transaction/merge-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,WAAW,qBAAsB,SAAQ,KAAK,CAAC,WAAW;IAC5D;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-types.js","sourceRoot":"","sources":["../../../src/domain/transaction/merge-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|