@accounter/server 0.0.9-alpha-20251217093036-7168648b507d62946aa287af4ea690b73b077b2d → 0.0.9-alpha-20251217131153-65f961a4072436d7f1042ea8ea4d96534cb3650e

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 (69) hide show
  1. package/CHANGELOG.md +16 -8
  2. package/dist/server/src/modules/charges-matcher/__tests__/auto-match-integration.test.js +45 -122
  3. package/dist/server/src/modules/charges-matcher/__tests__/auto-match-integration.test.js.map +1 -1
  4. package/dist/server/src/modules/charges-matcher/__tests__/auto-match.test.js +45 -29
  5. package/dist/server/src/modules/charges-matcher/__tests__/auto-match.test.js.map +1 -1
  6. package/dist/server/src/modules/charges-matcher/__tests__/charge-validator.test.js +2 -11
  7. package/dist/server/src/modules/charges-matcher/__tests__/charge-validator.test.js.map +1 -1
  8. package/dist/server/src/modules/charges-matcher/__tests__/date-confidence.test.js +25 -0
  9. package/dist/server/src/modules/charges-matcher/__tests__/date-confidence.test.js.map +1 -1
  10. package/dist/server/src/modules/charges-matcher/__tests__/document-aggregator.test.js.map +1 -1
  11. package/dist/server/src/modules/charges-matcher/__tests__/document-amount.test.js +65 -64
  12. package/dist/server/src/modules/charges-matcher/__tests__/document-amount.test.js.map +1 -1
  13. package/dist/server/src/modules/charges-matcher/__tests__/match-scorer.test.js +494 -60
  14. package/dist/server/src/modules/charges-matcher/__tests__/match-scorer.test.js.map +1 -1
  15. package/dist/server/src/modules/charges-matcher/__tests__/single-match-integration.test.js +34 -98
  16. package/dist/server/src/modules/charges-matcher/__tests__/single-match-integration.test.js.map +1 -1
  17. package/dist/server/src/modules/charges-matcher/__tests__/single-match.test.js +79 -59
  18. package/dist/server/src/modules/charges-matcher/__tests__/single-match.test.js.map +1 -1
  19. package/dist/server/src/modules/charges-matcher/helpers/charge-validator.helper.js +6 -4
  20. package/dist/server/src/modules/charges-matcher/helpers/charge-validator.helper.js.map +1 -1
  21. package/dist/server/src/modules/charges-matcher/helpers/date-confidence.helper.d.ts +9 -2
  22. package/dist/server/src/modules/charges-matcher/helpers/date-confidence.helper.js +24 -2
  23. package/dist/server/src/modules/charges-matcher/helpers/date-confidence.helper.js.map +1 -1
  24. package/dist/server/src/modules/charges-matcher/helpers/document-amount.helper.d.ts +1 -4
  25. package/dist/server/src/modules/charges-matcher/helpers/document-amount.helper.js +2 -1
  26. package/dist/server/src/modules/charges-matcher/helpers/document-amount.helper.js.map +1 -1
  27. package/dist/server/src/modules/charges-matcher/index.d.ts +0 -1
  28. package/dist/server/src/modules/charges-matcher/index.js +0 -1
  29. package/dist/server/src/modules/charges-matcher/index.js.map +1 -1
  30. package/dist/server/src/modules/charges-matcher/providers/auto-match.provider.d.ts +2 -1
  31. package/dist/server/src/modules/charges-matcher/providers/auto-match.provider.js +2 -2
  32. package/dist/server/src/modules/charges-matcher/providers/auto-match.provider.js.map +1 -1
  33. package/dist/server/src/modules/charges-matcher/providers/charges-matcher.provider.js +2 -2
  34. package/dist/server/src/modules/charges-matcher/providers/charges-matcher.provider.js.map +1 -1
  35. package/dist/server/src/modules/charges-matcher/providers/document-aggregator.d.ts +4 -5
  36. package/dist/server/src/modules/charges-matcher/providers/document-aggregator.js +5 -4
  37. package/dist/server/src/modules/charges-matcher/providers/document-aggregator.js.map +1 -1
  38. package/dist/server/src/modules/charges-matcher/providers/match-scorer.provider.d.ts +5 -3
  39. package/dist/server/src/modules/charges-matcher/providers/match-scorer.provider.js +70 -13
  40. package/dist/server/src/modules/charges-matcher/providers/match-scorer.provider.js.map +1 -1
  41. package/dist/server/src/modules/charges-matcher/providers/single-match.provider.d.ts +4 -2
  42. package/dist/server/src/modules/charges-matcher/providers/single-match.provider.js +15 -7
  43. package/dist/server/src/modules/charges-matcher/providers/single-match.provider.js.map +1 -1
  44. package/dist/server/src/modules/charges-matcher/providers/transaction-aggregator.d.ts +1 -1
  45. package/dist/server/src/modules/charges-matcher/types.d.ts +2 -4
  46. package/dist/server/src/modules/charges-matcher/types.js.map +1 -1
  47. package/package.json +2 -2
  48. package/src/modules/charges-matcher/README.md +14 -3
  49. package/src/modules/charges-matcher/__tests__/auto-match-integration.test.ts +52 -100
  50. package/src/modules/charges-matcher/__tests__/auto-match.test.ts +51 -29
  51. package/src/modules/charges-matcher/__tests__/charge-validator.test.ts +2 -13
  52. package/src/modules/charges-matcher/__tests__/date-confidence.test.ts +29 -0
  53. package/src/modules/charges-matcher/__tests__/document-aggregator.test.ts +0 -1
  54. package/src/modules/charges-matcher/__tests__/document-amount.test.ts +66 -65
  55. package/src/modules/charges-matcher/__tests__/match-scorer.test.ts +552 -60
  56. package/src/modules/charges-matcher/__tests__/single-match-integration.test.ts +43 -73
  57. package/src/modules/charges-matcher/__tests__/single-match.test.ts +81 -59
  58. package/src/modules/charges-matcher/documentation/SPEC.md +276 -4
  59. package/src/modules/charges-matcher/helpers/charge-validator.helper.ts +7 -5
  60. package/src/modules/charges-matcher/helpers/date-confidence.helper.ts +32 -2
  61. package/src/modules/charges-matcher/helpers/document-amount.helper.ts +2 -12
  62. package/src/modules/charges-matcher/index.ts +0 -1
  63. package/src/modules/charges-matcher/providers/auto-match.provider.ts +5 -3
  64. package/src/modules/charges-matcher/providers/charges-matcher.provider.ts +8 -2
  65. package/src/modules/charges-matcher/providers/document-aggregator.ts +12 -11
  66. package/src/modules/charges-matcher/providers/match-scorer.provider.ts +97 -17
  67. package/src/modules/charges-matcher/providers/single-match.provider.ts +21 -8
  68. package/src/modules/charges-matcher/providers/transaction-aggregator.ts +1 -1
  69. package/src/modules/charges-matcher/types.ts +2 -5
@@ -7,6 +7,7 @@
7
7
  * 2. If business is creditor: negate
8
8
  * 3. If document type is CREDIT_INVOICE: negate
9
9
  */
10
+ import { DocumentType } from '../../../shared/enums.js';
10
11
  /**
11
12
  * Normalize document amount for comparison with transaction amount
12
13
  *
@@ -50,7 +51,7 @@ export function normalizeDocumentAmount(totalAmount, isBusinessCreditor, documen
50
51
  normalizedAmount = -normalizedAmount;
51
52
  }
52
53
  // Step 3: If document type is CREDIT_INVOICE, negate
53
- if (documentType === 'CREDIT_INVOICE') {
54
+ if (documentType === DocumentType.CreditInvoice) {
54
55
  normalizedAmount = -normalizedAmount;
55
56
  }
56
57
  return normalizedAmount;
@@ -1 +1 @@
1
- {"version":3,"file":"document-amount.helper.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/helpers/document-amount.helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,kBAA2B,EAC3B,YAA0B;IAE1B,oCAAoC;IACpC,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE7C,2DAA2D;IAC3D,IAAI,kBAAkB,EAAE,CAAC;QACvB,gBAAgB,GAAG,CAAC,gBAAgB,CAAC;IACvC,CAAC;IAED,qDAAqD;IACrD,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;QACtC,gBAAgB,GAAG,CAAC,gBAAgB,CAAC;IACvC,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"document-amount.helper.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/helpers/document-amount.helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,kBAA2B,EAC3B,YAA0B;IAE1B,oCAAoC;IACpC,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE7C,2DAA2D;IAC3D,IAAI,kBAAkB,EAAE,CAAC;QACvB,gBAAgB,GAAG,CAAC,gBAAgB,CAAC;IACvC,CAAC;IAED,qDAAqD;IACrD,IAAI,YAAY,KAAK,YAAY,CAAC,aAAa,EAAE,CAAC;QAChD,gBAAgB,GAAG,CAAC,gBAAgB,CAAC;IACvC,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
@@ -1,3 +1,2 @@
1
1
  export declare const chargesMatcherModule: import("graphql-modules").Module;
2
- export { ChargesMatcherProvider } from './providers/charges-matcher.provider.js';
3
2
  export * as ChargesMatcherTypes from './types.js';
@@ -10,6 +10,5 @@ export const chargesMatcherModule = createModule({
10
10
  resolvers: [chargesMatcherResolvers],
11
11
  providers: [ChargesMatcherProvider],
12
12
  });
13
- export { ChargesMatcherProvider } from './providers/charges-matcher.provider.js';
14
13
  export * as ChargesMatcherTypes from './types.js';
15
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/charges-matcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAE3E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AAEzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;IAC/C,EAAE,EAAE,iBAAiB;IACrB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,CAAC,sBAAsB,CAAC;IAClC,SAAS,EAAE,CAAC,uBAAuB,CAAC;IACpC,SAAS,EAAE,CAAC,sBAAsB,CAAC;CACpC,CAAC,CAAC;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,KAAK,mBAAmB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/charges-matcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAE3E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AAEzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;IAC/C,EAAE,EAAE,iBAAiB;IACrB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,CAAC,sBAAsB,CAAC;IAClC,SAAS,EAAE,CAAC,uBAAuB,CAAC;IACpC,SAAS,EAAE,CAAC,sBAAsB,CAAC;CACpC,CAAC,CAAC;AAEH,OAAO,KAAK,mBAAmB,MAAM,YAAY,CAAC"}
@@ -4,6 +4,7 @@
4
4
  * Implements the core auto-match logic for processing all unmatched charges
5
5
  * and automatically merging charges with high-confidence matches (≥0.95).
6
6
  */
7
+ import type { Injector } from 'graphql-modules';
7
8
  import type { ChargeWithData } from '../types.js';
8
9
  import { type MatchResult } from './single-match.provider.js';
9
10
  /**
@@ -32,7 +33,7 @@ export interface ProcessChargeResult {
32
33
  * @throws Error if sourceCharge has no transactions or documents
33
34
  * @throws Error if any validation fails (propagated from findMatches)
34
35
  */
35
- export declare function processChargeForAutoMatch(sourceCharge: ChargeWithData, allCandidates: ChargeWithData[], userId: string): ProcessChargeResult;
36
+ export declare function processChargeForAutoMatch(sourceCharge: ChargeWithData, allCandidates: ChargeWithData[], userId: string, injector: Injector): Promise<ProcessChargeResult>;
36
37
  /**
37
38
  * Determine merge direction for two charges
38
39
  *
@@ -20,7 +20,7 @@ import { findMatches } from './single-match.provider.js';
20
20
  * @throws Error if sourceCharge has no transactions or documents
21
21
  * @throws Error if any validation fails (propagated from findMatches)
22
22
  */
23
- export function processChargeForAutoMatch(sourceCharge, allCandidates, userId) {
23
+ export async function processChargeForAutoMatch(sourceCharge, allCandidates, userId, injector) {
24
24
  const AUTO_MATCH_THRESHOLD = 0.95;
25
25
  // Prepare source charge for findMatches
26
26
  const hasTransactions = sourceCharge.transactions && sourceCharge.transactions.length > 0;
@@ -63,7 +63,7 @@ export function processChargeForAutoMatch(sourceCharge, allCandidates, userId) {
63
63
  throw new Error(`Charge ${sourceCharge.chargeId} has no transactions or documents`);
64
64
  }
65
65
  // Find all matches with no date window restriction
66
- const allMatches = findMatches(sourceForMatching, candidatesForMatching, userId, {
66
+ const allMatches = await findMatches(sourceForMatching, candidatesForMatching, userId, injector, {
67
67
  dateWindowMonths: undefined, // No date restriction for auto-match
68
68
  maxMatches: undefined, // Get all matches, we'll filter by threshold
69
69
  });
@@ -1 +1 @@
1
- {"version":3,"file":"auto-match.provider.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/providers/auto-match.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-match.provider.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/providers/auto-match.provider.ts"],"names":[],"mappings":"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"}
@@ -129,7 +129,7 @@ let ChargesMatcherProvider = class ChargesMatcherProvider {
129
129
  };
130
130
  }
131
131
  // Step 8: Call core findMatches function
132
- const matches = findMatches(sourceChargeData, candidateChargesWithData, adminBusinessId, {
132
+ const matches = await findMatches(sourceChargeData, candidateChargesWithData, adminBusinessId, injector, {
133
133
  maxMatches: 5,
134
134
  dateWindowMonths: 12,
135
135
  });
@@ -209,7 +209,7 @@ let ChargesMatcherProvider = class ChargesMatcherProvider {
209
209
  // Get candidates (exclude already merged charges)
210
210
  const candidates = chargesWithData.filter(c => c.chargeId !== sourceCharge.chargeId && !mergedChargeIds.has(c.chargeId));
211
211
  // Process this charge for auto-match
212
- const processResult = processChargeForAutoMatch(sourceCharge, candidates, adminBusinessId);
212
+ const processResult = await processChargeForAutoMatch(sourceCharge, candidates, adminBusinessId, injector);
213
213
  if (processResult.status === 'matched' && processResult.match) {
214
214
  // Found a single high-confidence match - execute merge
215
215
  const matchedChargeId = processResult.match.chargeId;
@@ -1 +1 @@
1
- {"version":3,"file":"charges-matcher.provider.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/providers/charges-matcher.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"charges-matcher.provider.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/providers/charges-matcher.provider.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,7 @@
5
5
  * for matching purposes. Handles type priority filtering, business extraction,
6
6
  * amount normalization, currency validation, date selection, and description concatenation.
7
7
  */
8
- import { currency } from '../../documents/types.js';
9
- import { type DocumentType } from '../helpers/document-amount.helper.js';
8
+ import { currency, document_type } from '../../documents/types.js';
10
9
  import { AggregatedDocument } from '../types.js';
11
10
  /**
12
11
  * Minimal document interface for aggregation
@@ -21,7 +20,7 @@ export interface Document {
21
20
  currency_code: currency | null;
22
21
  date: Date | null;
23
22
  total_amount: number | null;
24
- type: DocumentType;
23
+ type: document_type;
25
24
  serial_number: string | null;
26
25
  image_url: string | null;
27
26
  file_url: string | null;
@@ -53,8 +52,8 @@ export interface Document {
53
52
  *
54
53
  * @example
55
54
  * const aggregated = aggregateDocuments([
56
- * { total_amount: 100, currency_code: 'USD', creditor_id: 'b1', debtor_id: 'u1', type: 'INVOICE', ... },
57
- * { total_amount: 50, currency_code: 'USD', creditor_id: 'b1', debtor_id: 'u1', type: 'INVOICE', ... }
55
+ * { total_amount: 100, currency_code: 'USD', creditor_id: 'b1', debtor_id: 'u1', type: DocumentType.Invoice, ... },
56
+ * { total_amount: 50, currency_code: 'USD', creditor_id: 'b1', debtor_id: 'u1', type: DocumentType.Invoice, ... }
58
57
  * ], 'u1');
59
58
  * // Returns aggregated with normalized amounts summed
60
59
  */
@@ -5,13 +5,14 @@
5
5
  * for matching purposes. Handles type priority filtering, business extraction,
6
6
  * amount normalization, currency validation, date selection, and description concatenation.
7
7
  */
8
+ import { DocumentType } from '../../../shared/enums.js';
8
9
  import { normalizeDocumentAmount } from '../helpers/document-amount.helper.js';
9
10
  import { extractDocumentBusiness } from '../helpers/document-business.helper.js';
10
11
  /**
11
12
  * Accounting document types (used for type priority filtering)
12
13
  */
13
- const INVOICE_TYPES = ['INVOICE', 'CREDIT_INVOICE'];
14
- const RECEIPT_TYPES = ['RECEIPT', 'INVOICE_RECEIPT'];
14
+ const INVOICE_TYPES = [DocumentType.Invoice, DocumentType.CreditInvoice];
15
+ const RECEIPT_TYPES = [DocumentType.Receipt, DocumentType.InvoiceReceipt];
15
16
  /**
16
17
  * Check if document type is an invoice or credit invoice
17
18
  */
@@ -51,8 +52,8 @@ function isReceiptType(type) {
51
52
  *
52
53
  * @example
53
54
  * const aggregated = aggregateDocuments([
54
- * { total_amount: 100, currency_code: 'USD', creditor_id: 'b1', debtor_id: 'u1', type: 'INVOICE', ... },
55
- * { total_amount: 50, currency_code: 'USD', creditor_id: 'b1', debtor_id: 'u1', type: 'INVOICE', ... }
55
+ * { total_amount: 100, currency_code: 'USD', creditor_id: 'b1', debtor_id: 'u1', type: DocumentType.Invoice, ... },
56
+ * { total_amount: 50, currency_code: 'USD', creditor_id: 'b1', debtor_id: 'u1', type: DocumentType.Invoice, ... }
56
57
  * ], 'u1');
57
58
  * // Returns aggregated with normalized amounts summed
58
59
  */
@@ -1 +1 @@
1
- {"version":3,"file":"document-aggregator.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/providers/document-aggregator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-aggregator.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/providers/document-aggregator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { document_type } from '../../documents/types.js';
1
+ import type { Injector } from 'graphql-modules';
2
+ import { DocumentType } from '../../../shared/enums.js';
2
3
  import type { AggregatedTransaction, DocumentCharge, MatchScore, TransactionCharge } from '../types.js';
3
4
  /**
4
5
  * Select appropriate transaction date based on document type
@@ -11,7 +12,7 @@ import type { AggregatedTransaction, DocumentCharge, MatchScore, TransactionChar
11
12
  * @param documentType - Document type being matched
12
13
  * @returns The date to use for matching
13
14
  */
14
- export declare function selectTransactionDate(transaction: AggregatedTransaction, documentType: document_type): Date;
15
+ export declare function selectTransactionDate(transaction: AggregatedTransaction, documentType: DocumentType): Date;
15
16
  /**
16
17
  * Score a potential match between transaction charge and document charge
17
18
  * Aggregates data from both charges and calculates confidence score
@@ -19,7 +20,8 @@ export declare function selectTransactionDate(transaction: AggregatedTransaction
19
20
  * @param txCharge - Transaction charge to match
20
21
  * @param docCharge - Document charge candidate
21
22
  * @param userId - Current user UUID for business extraction
23
+ * @param injector - Optional GraphQL modules injector for provider access (for client matching)
22
24
  * @returns Match score with confidence and component breakdown
23
25
  * @throws Error if aggregation fails (mixed currencies, multiple businesses, etc.)
24
26
  */
25
- export declare function scoreMatch(txCharge: TransactionCharge, docCharge: DocumentCharge, userId: string): MatchScore;
27
+ export declare function scoreMatch(txCharge: TransactionCharge, docCharge: DocumentCharge, userId: string, injector: Injector): Promise<MatchScore>;
@@ -1,3 +1,6 @@
1
+ import { DocumentType } from '../../../shared/enums.js';
2
+ import { IssuedDocumentsProvider } from '../../documents/providers/issued-documents.provider.js';
3
+ import { ClientsProvider } from '../../financial-entities/providers/clients.provider.js';
1
4
  import { calculateAmountConfidence } from '../helpers/amount-confidence.helper.js';
2
5
  import { calculateBusinessConfidence } from '../helpers/business-confidence.helper.js';
3
6
  import { calculateCurrencyConfidence } from '../helpers/currency-confidence.helper.js';
@@ -18,15 +21,15 @@ import { aggregateTransactions } from './transaction-aggregator.js';
18
21
  */
19
22
  export function selectTransactionDate(transaction, documentType) {
20
23
  switch (documentType) {
21
- case 'INVOICE':
22
- case 'CREDIT_INVOICE':
23
- case 'RECEIPT':
24
- case 'INVOICE_RECEIPT':
24
+ case DocumentType.Invoice:
25
+ case DocumentType.CreditInvoice:
26
+ case DocumentType.Receipt:
27
+ case DocumentType.InvoiceReceipt:
25
28
  // For invoices, use event_date
26
29
  return transaction.date;
27
- case 'OTHER':
28
- case 'PROFORMA':
29
- case 'UNPROCESSED':
30
+ case DocumentType.Other:
31
+ case DocumentType.Proforma:
32
+ case DocumentType.Unprocessed:
30
33
  // For flexible types, use event_date as default
31
34
  // (caller should calculate both and use better score)
32
35
  return transaction.date;
@@ -42,10 +45,11 @@ export function selectTransactionDate(transaction, documentType) {
42
45
  * @param txCharge - Transaction charge to match
43
46
  * @param docCharge - Document charge candidate
44
47
  * @param userId - Current user UUID for business extraction
48
+ * @param injector - Optional GraphQL modules injector for provider access (for client matching)
45
49
  * @returns Match score with confidence and component breakdown
46
50
  * @throws Error if aggregation fails (mixed currencies, multiple businesses, etc.)
47
51
  */
48
- export function scoreMatch(txCharge, docCharge, userId) {
52
+ export async function scoreMatch(txCharge, docCharge, userId, injector) {
49
53
  // Aggregate transaction data
50
54
  const aggregatedTransaction = aggregateTransactions(txCharge.transactions);
51
55
  // Aggregate document data (includes business extraction and amount normalization)
@@ -57,19 +61,21 @@ export function scoreMatch(txCharge, docCharge, userId) {
57
61
  // aggregatedDocument.type === 'UNPROCESSED'
58
62
  // ) {
59
63
  // // Calculate score with event_date
60
- // const scoreWithEventDate = calculateScoreWithDate(
64
+ // const scoreWithEventDate = await calculateScoreWithDate(
61
65
  // aggregatedTransaction,
62
66
  // aggregatedDocument,
63
67
  // aggregatedTransaction.date,
64
68
  // docCharge.chargeId,
69
+ // injector,
65
70
  // );
66
71
  // // Calculate score with debit_date (if available)
67
72
  // if (aggregatedTransaction.debitDate) {
68
- // const scoreWithDebitDate = calculateScoreWithDate(
73
+ // const scoreWithDebitDate = await calculateScoreWithDate(
69
74
  // aggregatedTransaction,
70
75
  // aggregatedDocument,
71
76
  // aggregatedTransaction.debitDate,
72
77
  // docCharge.chargeId,
78
+ // injector,
73
79
  // );
74
80
  // // Return the better score
75
81
  // return scoreWithEventDate.confidenceScore > scoreWithDebitDate.confidenceScore
@@ -80,7 +86,7 @@ export function scoreMatch(txCharge, docCharge, userId) {
80
86
  // }
81
87
  // For specific document types, use the appropriate date
82
88
  const transactionDate = selectTransactionDate(aggregatedTransaction, aggregatedDocument.type);
83
- return calculateScoreWithDate(aggregatedTransaction, aggregatedDocument, transactionDate, docCharge.chargeId);
89
+ return calculateScoreWithDate(aggregatedTransaction, aggregatedDocument, transactionDate, docCharge.chargeId, injector);
84
90
  }
85
91
  /**
86
92
  * Helper function to calculate match score with a specific transaction date
@@ -88,14 +94,62 @@ export function scoreMatch(txCharge, docCharge, userId) {
88
94
  * @param document - Aggregated document
89
95
  * @param transactionDate - Date to use from transaction
90
96
  * @param chargeId - Document charge ID
97
+ * @param injector - Optional GraphQL modules injector for provider access
91
98
  * @returns Match score
92
99
  */
93
- function calculateScoreWithDate(transaction, document, transactionDate, chargeId) {
100
+ async function calculateScoreWithDate(transaction, document, transactionDate, chargeId, injector) {
101
+ // Check if transaction and document share the same business entity
102
+ const businessesMatch = transaction.businessId != null && transaction.businessId === document.businessId;
103
+ // If businesses match, verify if it's a registered CLIENT
104
+ let isClientMatch = false;
105
+ if (businessesMatch && transaction.businessId) {
106
+ try {
107
+ const client = await injector
108
+ .get(ClientsProvider)
109
+ .getClientByIdLoader.load(transaction.businessId);
110
+ // isClientMatch is true only if business is a registered client
111
+ isClientMatch = client != null;
112
+ }
113
+ catch (error) {
114
+ console.error(`Error looking up client for business ID ${transaction.businessId}:`, error);
115
+ isClientMatch = false;
116
+ }
117
+ }
118
+ // Determine gentle eligibility for client matches
119
+ // Conditions:
120
+ // - Same business and registered client
121
+ // - Document type is INVOICE or PROFORMA
122
+ // - Document status is OPEN (via issued documents status by charge id)
123
+ // - Document date <= transaction date (date-only compare)
124
+ let isGentleEligible = false;
125
+ if (isClientMatch) {
126
+ // Type gating
127
+ const typeIsEligible = document.type === DocumentType.Invoice || document.type === DocumentType.Proforma;
128
+ // Date-only comparison: doc.date <= transactionDate
129
+ const docDate = new Date(document.date.getFullYear(), document.date.getMonth(), document.date.getDate());
130
+ const txDate = new Date(transactionDate.getFullYear(), transactionDate.getMonth(), transactionDate.getDate());
131
+ const dateIsEligible = docDate.getTime() <= txDate.getTime();
132
+ // Status gating via DataLoader
133
+ let statusIsEligible = false;
134
+ try {
135
+ const status = (await injector
136
+ .get(IssuedDocumentsProvider)
137
+ .getIssuedDocumentsStatusByChargeIdLoader.load(chargeId));
138
+ // Expect shape with open_docs_flag boolean
139
+ statusIsEligible = !!(status && status.open_docs_flag === true);
140
+ }
141
+ catch {
142
+ // If status lookup fails, treat as ineligible (do not throw)
143
+ statusIsEligible = false;
144
+ }
145
+ isGentleEligible = typeIsEligible && dateIsEligible && statusIsEligible;
146
+ }
94
147
  // Calculate individual confidence scores
95
148
  const amountScore = calculateAmountConfidence(transaction.amount, document.amount);
96
149
  const currencyScore = calculateCurrencyConfidence(transaction.currency, document.currency);
97
150
  const businessScore = calculateBusinessConfidence(transaction.businessId, document.businessId);
98
- const dateScore = calculateDateConfidence(transactionDate, document.date);
151
+ // Use gentle eligibility to compute date confidence
152
+ const dateScore = calculateDateConfidence(transactionDate, document.date, isGentleEligible);
99
153
  // Create components object
100
154
  const components = {
101
155
  amount: amountScore,
@@ -109,6 +163,9 @@ function calculateScoreWithDate(transaction, document, transactionDate, chargeId
109
163
  chargeId,
110
164
  confidenceScore,
111
165
  components,
166
+ // Expose gentle flag for tie-breaker handling upstream
167
+ // (optional property tolerated by consumer types)
168
+ gentleMode: isGentleEligible,
112
169
  };
113
170
  }
114
171
  //# sourceMappingURL=match-scorer.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"match-scorer.provider.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/providers/match-scorer.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"match-scorer.provider.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/providers/match-scorer.provider.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * Implements the core single-match logic for finding potential charge matches.
5
5
  * This is a pure function implementation without database dependencies.
6
6
  */
7
+ import type { Injector } from 'graphql-modules';
7
8
  import type { DocumentCharge, TransactionCharge } from '../types.js';
8
9
  /**
9
10
  * Match result with score and metadata
@@ -18,6 +19,7 @@ export interface MatchResult {
18
19
  date: number;
19
20
  };
20
21
  dateProximity?: number;
22
+ gentleMode?: boolean;
21
23
  }
22
24
  /**
23
25
  * Options for findMatches function
@@ -32,8 +34,8 @@ export interface FindMatchesOptions {
32
34
  * @param sourceCharge - The unmatched charge (transactions OR documents)
33
35
  * @param candidateCharges - All potential match candidates
34
36
  * @param userId - Current user ID
35
- * @param options - Optional configuration (maxMatches, dateWindowMonths)
37
+ * @param options - Optional configuration (maxMatches, dateWindowMonths, injector)
36
38
  * @returns Top matches sorted by confidence
37
39
  * @throws Error if source charge is matched or has validation issues
38
40
  */
39
- export declare function findMatches(sourceCharge: TransactionCharge | DocumentCharge, candidateCharges: Array<TransactionCharge | DocumentCharge>, userId: string, options?: FindMatchesOptions): MatchResult[];
41
+ export declare function findMatches(sourceCharge: TransactionCharge | DocumentCharge, candidateCharges: Array<TransactionCharge | DocumentCharge>, userId: string, injector: Injector, options?: FindMatchesOptions): Promise<MatchResult[]>;
@@ -78,11 +78,11 @@ function calculateDateProximity(txCharge, docCharge) {
78
78
  * @param sourceCharge - The unmatched charge (transactions OR documents)
79
79
  * @param candidateCharges - All potential match candidates
80
80
  * @param userId - Current user ID
81
- * @param options - Optional configuration (maxMatches, dateWindowMonths)
81
+ * @param options - Optional configuration (maxMatches, dateWindowMonths, injector)
82
82
  * @returns Top matches sorted by confidence
83
83
  * @throws Error if source charge is matched or has validation issues
84
84
  */
85
- export function findMatches(sourceCharge, candidateCharges, userId, options) {
85
+ export async function findMatches(sourceCharge, candidateCharges, userId, injector, options) {
86
86
  const maxMatches = options?.maxMatches ?? 5;
87
87
  const dateWindowMonths = options?.dateWindowMonths ?? 12;
88
88
  // Step 1: Validate source charge is unmatched
@@ -148,12 +148,12 @@ export function findMatches(sourceCharge, candidateCharges, userId, options) {
148
148
  if (isSourceTransaction) {
149
149
  txCharge = sourceCharge;
150
150
  docCharge = candidate;
151
- matchScore = scoreMatch(txCharge, docCharge, userId);
151
+ matchScore = await scoreMatch(txCharge, docCharge, userId, injector);
152
152
  }
153
153
  else {
154
154
  txCharge = candidate;
155
155
  docCharge = sourceCharge;
156
- matchScore = scoreMatch(txCharge, docCharge, userId);
156
+ matchScore = await scoreMatch(txCharge, docCharge, userId, injector);
157
157
  }
158
158
  // Calculate date proximity for tie-breaking
159
159
  const dateProximity = calculateDateProximity(txCharge, docCharge);
@@ -162,6 +162,7 @@ export function findMatches(sourceCharge, candidateCharges, userId, options) {
162
162
  confidenceScore: matchScore.confidenceScore,
163
163
  components: matchScore.components,
164
164
  dateProximity,
165
+ gentleMode: matchScore.gentleMode === true,
165
166
  _txCharge: txCharge,
166
167
  _docCharge: docCharge,
167
168
  });
@@ -172,14 +173,21 @@ export function findMatches(sourceCharge, candidateCharges, userId, options) {
172
173
  continue;
173
174
  }
174
175
  }
175
- // Step 9: Sort by confidence descending, then by date proximity ascending (tie-breaker)
176
+ // Step 9: Sort by confidence descending, then by date proximity tie-breaker
176
177
  scoredCandidates.sort((a, b) => {
177
178
  // Primary: confidence score (descending)
178
179
  if (a.confidenceScore !== b.confidenceScore) {
179
180
  return b.confidenceScore - a.confidenceScore;
180
181
  }
181
- // Tie-breaker: date proximity (ascending - closer dates win)
182
- return (a.dateProximity ?? Infinity) - (b.dateProximity ?? Infinity);
182
+ // Tie-breaker:
183
+ // - If both in gentle mode: prefer earlier document (larger proximity)
184
+ // - Otherwise: prefer closer dates (smaller proximity)
185
+ const aProx = a.dateProximity ?? Infinity;
186
+ const bProx = b.dateProximity ?? Infinity;
187
+ if (a.gentleMode && b.gentleMode) {
188
+ return bProx - aProx;
189
+ }
190
+ return aProx - bProx;
183
191
  });
184
192
  // Step 10: Return top N matches
185
193
  const topMatches = scoredCandidates.slice(0, maxMatches);
@@ -1 +1 @@
1
- {"version":3,"file":"single-match.provider.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/providers/single-match.provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAyBpE;;GAEG;AACH,SAAS,mBAAmB,CAC1B,MAA0C;IAE1C,OAAO,cAAc,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAA0C;IAClE,OAAO,WAAW,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,MAA0C;IACzE,MAAM,KAAK,GAAG,cAAc,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAChG,MAAM,OAAO,GAAG,WAAW,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAEzF,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,iBAAiB,MAAM,CAAC,QAAQ,gEAAgE,CACjG,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,CAAC,QAAQ,mCAAmC,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAChC,MAA0C,EAC1C,MAAc;IAEd,IAAI,CAAC;QACH,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,iBAAiB,MAAM,CAAC,QAAQ,uBAAuB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAChH,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAAC,QAA2B,EAAE,SAAyB;IACpF,sCAAsC;IACtC,MAAM,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE;QACnE,OAAO,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7D,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAExC,2BAA2B;IAC3B,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC/D,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC;QAC7B,OAAO,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/C,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC;IAEjC,2BAA2B;IAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CACzB,YAAgD,EAChD,gBAA2D,EAC3D,MAAc,EACd,OAA4B;IAE5B,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,IAAI,EAAE,CAAC;IAEzD,8CAA8C;IAC9C,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAEtC,6CAA6C;IAC7C,yBAAyB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEhD,4EAA4E;IAC5E,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAClE,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,+CAA+C;IAC/C,IAAI,UAAgB,CAAC;IACrB,IAAI,mBAAmB,EAAE,CAAC;QACxB,4CAA4C;QAC5C,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE;YAC7D,OAAO,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC7D,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,iCAAiC;QACjC,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YACzD,IAAI,CAAC,GAAG,CAAC,IAAI;gBAAE,OAAO,MAAM,CAAC;YAC7B,OAAO,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/C,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC;IACtC,CAAC;IAED,2CAA2C;IAC3C,MAAM,wBAAwB,GAAG,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAC1E,IAAI,aAAmB,CAAC;QAExB,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,aAAa,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE;gBAC7D,OAAO,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7D,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;gBACzD,IAAI,CAAC,GAAG,CAAC,IAAI;oBAAE,OAAO,MAAM,CAAC;gBAC7B,OAAO,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/C,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,kBAAkB,CAAC,UAAU,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,6EAA6E;IAC7E,2CAA2C;IAE3C,gDAAgD;IAChD,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,IAAI,CACvD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,CAAC,QAAQ,CAC1C,CAAC;IACF,IAAI,mBAAmB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,oBAAoB,mBAAmB,CAAC,QAAQ,mCAAmC,CACpF,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,MAAM,gBAAgB,GAElB,EAAE,CAAC;IAEP,KAAK,MAAM,SAAS,IAAI,wBAAwB,EAAE,CAAC;QACjD,IAAI,CAAC;YACH,IAAI,UAAsB,CAAC;YAC3B,IAAI,QAA2B,CAAC;YAChC,IAAI,SAAyB,CAAC;YAE9B,IAAI,mBAAmB,EAAE,CAAC;gBACxB,QAAQ,GAAG,YAAY,CAAC;gBACxB,SAAS,GAAG,SAA2B,CAAC;gBACxC,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,SAA8B,CAAC;gBAC1C,SAAS,GAAG,YAAY,CAAC;gBACzB,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACvD,CAAC;YAED,4CAA4C;YAC5C,MAAM,aAAa,GAAG,sBAAsB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAElE,gBAAgB,CAAC,IAAI,CAAC;gBACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,eAAe,EAAE,UAAU,CAAC,eAAe;gBAC3C,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,aAAa;gBACb,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,SAAS;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,2EAA2E;YAC3E,mEAAmE;YACnE,SAAS;QACX,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC7B,yCAAyC;QACzC,IAAI,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,CAAC;QAC/C,CAAC;QAED,6DAA6D;QAC7D,OAAO,CAAC,CAAC,CAAC,aAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,QAAQ,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,gCAAgC;IAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAEzD,4BAA4B;IAC5B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"single-match.provider.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/providers/single-match.provider.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * for matching purposes. Handles fee exclusion, currency validation, business ID
6
6
  * validation, amount summation, date selection, and description concatenation.
7
7
  */
8
- import type { currency } from '../../documents/types.js';
8
+ import type { currency } from '../../transactions/types.js';
9
9
  import type { AggregatedTransaction } from '../types.js';
10
10
  /**
11
11
  * Minimal transaction interface for aggregation
@@ -1,9 +1,5 @@
1
1
  import type { currency, document_type, IGetAllDocumentsResult } from '../documents/types.js';
2
2
  import type { IGetTransactionsByIdsResult } from '../transactions/types.js';
3
- /**
4
- * Re-export shared types from other modules
5
- */
6
- export type { currency as Currency, document_type as DocumentType } from '../documents/types.js';
7
3
  /**
8
4
  * Transaction interface matching the database schema
9
5
  * Uses the complete type from transactions module
@@ -159,6 +155,8 @@ export interface MatchScore {
159
155
  confidenceScore: number;
160
156
  /** Individual confidence component scores */
161
157
  components: ConfidenceScores;
158
+ /** Whether client gentle scoring was applied (for tie-breakers) */
159
+ gentleMode?: boolean;
162
160
  }
163
161
  /**
164
162
  * Transaction charge for matching
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/modules/charges-matcher/types.ts"],"names":[],"mappings":"AA4HA;;GAEG;AACH,MAAM,CAAN,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,0DAA0D;IAC1D,mDAAqC,CAAA;IACrC,0DAA0D;IAC1D,6CAA+B,CAAA;IAC/B,4DAA4D;IAC5D,iCAAmB,CAAA;AACrB,CAAC,EAPW,UAAU,KAAV,UAAU,QAOrB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/modules/charges-matcher/types.ts"],"names":[],"mappings":"AAuHA;;GAEG;AACH,MAAM,CAAN,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,0DAA0D;IAC1D,mDAAqC,CAAA;IACrC,0DAA0D;IAC1D,6CAA+B,CAAA;IAC/B,4DAA4D;IAC5D,iCAAmB,CAAA;AACrB,CAAC,EAPW,UAAU,KAAV,UAAU,QAOrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@accounter/server",
3
- "version": "0.0.9-alpha-20251217093036-7168648b507d62946aa287af4ea690b73b077b2d",
3
+ "version": "0.0.9-alpha-20251217131153-65f961a4072436d7f1042ea8ea4d96534cb3650e",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "license": "MIT",
@@ -33,7 +33,7 @@
33
33
  "@pgtyped/cli": "2.4.3",
34
34
  "@pgtyped/runtime": "2.4.2",
35
35
  "@whatwg-node/fetch": "0.10.13",
36
- "ai": "5.0.114",
36
+ "ai": "5.0.113",
37
37
  "basic-auth": "2.0.1",
38
38
  "bcrypt": "6.0.0",
39
39
  "cloudinary": "2.8.0",