@firela/billclaw-core 0.1.3

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 (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/dist/billclaw.d.ts +76 -0
  4. package/dist/billclaw.d.ts.map +1 -0
  5. package/dist/billclaw.js +205 -0
  6. package/dist/billclaw.js.map +1 -0
  7. package/dist/credentials/index.d.ts +8 -0
  8. package/dist/credentials/index.d.ts.map +1 -0
  9. package/dist/credentials/index.js +8 -0
  10. package/dist/credentials/index.js.map +1 -0
  11. package/dist/credentials/keychain.d.ts +92 -0
  12. package/dist/credentials/keychain.d.ts.map +1 -0
  13. package/dist/credentials/keychain.js +172 -0
  14. package/dist/credentials/keychain.js.map +1 -0
  15. package/dist/credentials/store.d.ts +76 -0
  16. package/dist/credentials/store.d.ts.map +1 -0
  17. package/dist/credentials/store.js +144 -0
  18. package/dist/credentials/store.js.map +1 -0
  19. package/dist/errors/errors.d.ts +92 -0
  20. package/dist/errors/errors.d.ts.map +1 -0
  21. package/dist/errors/errors.js +315 -0
  22. package/dist/errors/errors.js.map +1 -0
  23. package/dist/errors/index.d.ts +7 -0
  24. package/dist/errors/index.d.ts.map +1 -0
  25. package/dist/errors/index.js +7 -0
  26. package/dist/errors/index.js.map +1 -0
  27. package/dist/exporters/beancount.d.ts +42 -0
  28. package/dist/exporters/beancount.d.ts.map +1 -0
  29. package/dist/exporters/beancount.js +141 -0
  30. package/dist/exporters/beancount.js.map +1 -0
  31. package/dist/exporters/index.d.ts +8 -0
  32. package/dist/exporters/index.d.ts.map +1 -0
  33. package/dist/exporters/index.js +8 -0
  34. package/dist/exporters/index.js.map +1 -0
  35. package/dist/exporters/ledger.d.ts +42 -0
  36. package/dist/exporters/ledger.d.ts.map +1 -0
  37. package/dist/exporters/ledger.js +139 -0
  38. package/dist/exporters/ledger.js.map +1 -0
  39. package/dist/index.d.ts +23 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +34 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/models/config.d.ts +552 -0
  44. package/dist/models/config.d.ts.map +1 -0
  45. package/dist/models/config.js +168 -0
  46. package/dist/models/config.js.map +1 -0
  47. package/dist/models/index.d.ts +7 -0
  48. package/dist/models/index.d.ts.map +1 -0
  49. package/dist/models/index.js +8 -0
  50. package/dist/models/index.js.map +1 -0
  51. package/dist/runtime/index.d.ts +7 -0
  52. package/dist/runtime/index.d.ts.map +1 -0
  53. package/dist/runtime/index.js +7 -0
  54. package/dist/runtime/index.js.map +1 -0
  55. package/dist/runtime/types.d.ts +110 -0
  56. package/dist/runtime/types.d.ts.map +1 -0
  57. package/dist/runtime/types.js +85 -0
  58. package/dist/runtime/types.js.map +1 -0
  59. package/dist/security/audit.d.ts +148 -0
  60. package/dist/security/audit.d.ts.map +1 -0
  61. package/dist/security/audit.js +286 -0
  62. package/dist/security/audit.js.map +1 -0
  63. package/dist/security/index.d.ts +7 -0
  64. package/dist/security/index.d.ts.map +1 -0
  65. package/dist/security/index.js +7 -0
  66. package/dist/security/index.js.map +1 -0
  67. package/dist/services/event-emitter.d.ts +171 -0
  68. package/dist/services/event-emitter.d.ts.map +1 -0
  69. package/dist/services/event-emitter.js +287 -0
  70. package/dist/services/event-emitter.js.map +1 -0
  71. package/dist/services/index.d.ts +8 -0
  72. package/dist/services/index.d.ts.map +1 -0
  73. package/dist/services/index.js +8 -0
  74. package/dist/services/index.js.map +1 -0
  75. package/dist/sources/gmail/bill-recognizer.d.ts +71 -0
  76. package/dist/sources/gmail/bill-recognizer.d.ts.map +1 -0
  77. package/dist/sources/gmail/bill-recognizer.js +341 -0
  78. package/dist/sources/gmail/bill-recognizer.js.map +1 -0
  79. package/dist/sources/gmail/email-parser.d.ts +68 -0
  80. package/dist/sources/gmail/email-parser.d.ts.map +1 -0
  81. package/dist/sources/gmail/email-parser.js +238 -0
  82. package/dist/sources/gmail/email-parser.js.map +1 -0
  83. package/dist/sources/gmail/gmail-fetch.d.ts +54 -0
  84. package/dist/sources/gmail/gmail-fetch.d.ts.map +1 -0
  85. package/dist/sources/gmail/gmail-fetch.js +300 -0
  86. package/dist/sources/gmail/gmail-fetch.js.map +1 -0
  87. package/dist/sources/gmail/index.d.ts +7 -0
  88. package/dist/sources/gmail/index.d.ts.map +1 -0
  89. package/dist/sources/gmail/index.js +7 -0
  90. package/dist/sources/gmail/index.js.map +1 -0
  91. package/dist/sources/index.d.ts +8 -0
  92. package/dist/sources/index.d.ts.map +1 -0
  93. package/dist/sources/index.js +8 -0
  94. package/dist/sources/index.js.map +1 -0
  95. package/dist/sources/plaid/index.d.ts +7 -0
  96. package/dist/sources/plaid/index.d.ts.map +1 -0
  97. package/dist/sources/plaid/index.js +7 -0
  98. package/dist/sources/plaid/index.js.map +1 -0
  99. package/dist/sources/plaid/plaid-sync.d.ts +42 -0
  100. package/dist/sources/plaid/plaid-sync.d.ts.map +1 -0
  101. package/dist/sources/plaid/plaid-sync.js +182 -0
  102. package/dist/sources/plaid/plaid-sync.js.map +1 -0
  103. package/dist/storage/cache.d.ts +134 -0
  104. package/dist/storage/cache.d.ts.map +1 -0
  105. package/dist/storage/cache.js +239 -0
  106. package/dist/storage/cache.js.map +1 -0
  107. package/dist/storage/index.d.ts +11 -0
  108. package/dist/storage/index.d.ts.map +1 -0
  109. package/dist/storage/index.js +11 -0
  110. package/dist/storage/index.js.map +1 -0
  111. package/dist/storage/indexes.d.ts +136 -0
  112. package/dist/storage/indexes.d.ts.map +1 -0
  113. package/dist/storage/indexes.js +294 -0
  114. package/dist/storage/indexes.js.map +1 -0
  115. package/dist/storage/locking.d.ts +103 -0
  116. package/dist/storage/locking.d.ts.map +1 -0
  117. package/dist/storage/locking.js +158 -0
  118. package/dist/storage/locking.js.map +1 -0
  119. package/dist/storage/streaming.d.ts +102 -0
  120. package/dist/storage/streaming.d.ts.map +1 -0
  121. package/dist/storage/streaming.js +245 -0
  122. package/dist/storage/streaming.js.map +1 -0
  123. package/dist/storage/transaction-storage.d.ts +101 -0
  124. package/dist/storage/transaction-storage.d.ts.map +1 -0
  125. package/dist/storage/transaction-storage.js +193 -0
  126. package/dist/storage/transaction-storage.js.map +1 -0
  127. package/dist/sync/index.d.ts +7 -0
  128. package/dist/sync/index.d.ts.map +1 -0
  129. package/dist/sync/index.js +7 -0
  130. package/dist/sync/index.js.map +1 -0
  131. package/dist/sync/sync-service.d.ts +42 -0
  132. package/dist/sync/sync-service.d.ts.map +1 -0
  133. package/dist/sync/sync-service.js +112 -0
  134. package/dist/sync/sync-service.js.map +1 -0
  135. package/dist/test-fixtures.d.ts +38 -0
  136. package/dist/test-fixtures.d.ts.map +1 -0
  137. package/dist/test-fixtures.js +137 -0
  138. package/dist/test-fixtures.js.map +1 -0
  139. package/package.json +68 -0
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Ledger (ledger-cli) export functionality for BillClaw
3
+ *
4
+ * This module provides functionality to export BillClaw transactions
5
+ * to the Ledger plain text accounting format.
6
+ *
7
+ * Ledger format reference: https://www.ledger-cli.org/3.0/doc/ledger3.html
8
+ */
9
+ import { readTransactions } from "../storage/transaction-storage.js";
10
+ /**
11
+ * Convert a BillClaw transaction to Ledger format
12
+ */
13
+ export function transactionToLedger(txn, options) {
14
+ const currency = options.commodity || "$";
15
+ // Format date
16
+ const date = txn.date.replace(/-/g, "/");
17
+ // Build payee/code line
18
+ const payee = txn.merchantName || "Unknown";
19
+ // Build tags
20
+ let tags = "";
21
+ if (options.includeTags) {
22
+ const sourceTag = txn.paymentChannel === "email" ? "#gmail" : "#plaid";
23
+ tags = ` ; :${sourceTag}:`;
24
+ if (txn.pending) {
25
+ tags += ":pending:";
26
+ }
27
+ }
28
+ // Build transaction header
29
+ let output = `${date} ${payee}\n`;
30
+ // Determine target account based on category
31
+ const targetAccount = options.tagAccounts?.[txn.category?.[0] || ""] ||
32
+ options.payeeAccount ||
33
+ "Expenses:Unknown";
34
+ // Format amount (convert from cents to dollars)
35
+ const amount = (Math.abs(txn.amount) / 100).toFixed(2);
36
+ // Build postings
37
+ if (txn.amount < 0) {
38
+ // Expense/Outflow
39
+ output += ` ${targetAccount} ${currency}${amount}\n`;
40
+ output += ` Assets:Bank:Checking\n`;
41
+ }
42
+ else {
43
+ // Income/Inflow
44
+ output += ` Assets:Bank:Checking ${currency}${amount}\n`;
45
+ output += ` ${targetAccount}\n`;
46
+ }
47
+ // Add tags if requested
48
+ if (tags) {
49
+ output += tags + "\n";
50
+ }
51
+ return output;
52
+ }
53
+ /**
54
+ * Export transactions to Ledger format
55
+ */
56
+ export async function exportToLedger(transactions, options) {
57
+ if (transactions.length === 0) {
58
+ return "; No transactions found\n";
59
+ }
60
+ // Build Ledger file
61
+ let output = `;; Ledger export from BillClaw\n`;
62
+ output += `;; Account: ${options.accountId}\n`;
63
+ output += `;; Period: ${options.year}-${String(options.month).padStart(2, "0")}\n`;
64
+ output += `;; Exported: ${new Date().toISOString()}\n`;
65
+ output += "\n";
66
+ // Add each transaction
67
+ for (const txn of transactions) {
68
+ output += transactionToLedger(txn, options);
69
+ output += "\n";
70
+ }
71
+ return output;
72
+ }
73
+ /**
74
+ * Export transactions from storage to Ledger format
75
+ */
76
+ export async function exportStorageToLedger(accountId, year, month, storageConfig, options) {
77
+ const transactions = await readTransactions(accountId, year, month, storageConfig);
78
+ const fullOptions = {
79
+ accountId,
80
+ year,
81
+ month,
82
+ ...options,
83
+ };
84
+ return exportToLedger(transactions, fullOptions);
85
+ }
86
+ /**
87
+ * Get recommended account mappings for Ledger
88
+ *
89
+ * Returns a suggested mapping of BillClaw categories to Ledger accounts
90
+ */
91
+ export function getLedgerAccountMappings() {
92
+ return {
93
+ // Food & Dining
94
+ "Food and Drink": "Expenses:Food:Restaurants",
95
+ "Fast Food": "Expenses:Food:FastFood",
96
+ Groceries: "Expenses:Food:Groceries",
97
+ // Transportation
98
+ Travel: "Expenses:Travel",
99
+ Gasoline: "Expenses:Transport:Fuel",
100
+ Parking: "Expenses:Transport:Parking",
101
+ Taxi: "Expenses:Transport:Taxi",
102
+ "Ride Share": "Expenses:Transport:Rideshare",
103
+ "Public Transportation": "Expenses:Transport:Public",
104
+ // Shopping
105
+ Shopping: "Expenses:Shopping:General",
106
+ Electronics: "Expenses:Shopping:Electronics",
107
+ Clothing: "Expenses:Shopping:Clothing",
108
+ "Home Improvement": "Expenses:Home:Improvement",
109
+ // Entertainment
110
+ Entertainment: "Expenses:Entertainment:General",
111
+ Movies: "Expenses:Entertainment:Movies",
112
+ Music: "Expenses:Entertainment:Music",
113
+ Games: "Expenses:Entertainment:Games",
114
+ Sports: "Expenses:Entertainment:Sports",
115
+ // Bills & Utilities
116
+ Utilities: "Expenses:Utilities:General",
117
+ Electric: "Expenses:Utilities:Electric",
118
+ Gas: "Expenses:Utilities:Gas",
119
+ Water: "Expenses:Utilities:Water",
120
+ Internet: "Expenses:Utilities:Internet",
121
+ Phone: "Expenses:Utilities:Phone",
122
+ Subscription: "Expenses:Subscriptions",
123
+ // Health
124
+ Healthcare: "Expenses:Health:Medical",
125
+ Pharmacy: "Expenses:Health:Pharmacy",
126
+ Insurance: "Expenses:Insurance:Health",
127
+ // Financial
128
+ Finance: "Expenses:Financial:Fees",
129
+ "Bank Fee": "Expenses:Financial:BankFees",
130
+ Interest: "Expenses:Financial:Interest",
131
+ Transfer: "Expenses:Financial:Transfer",
132
+ // Income
133
+ Income: "Income:General",
134
+ Salary: "Income:Salary",
135
+ Refund: "Income:Refunds",
136
+ Investment: "Income:Investments",
137
+ };
138
+ }
139
+ //# sourceMappingURL=ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/exporters/ledger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * BillClaw Core - Framework-agnostic business logic for financial data import
3
+ *
4
+ * This package contains all core functionality with zero dependencies on any
5
+ * AI framework (OpenClaw, OpenHands, etc.).
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ export { Billclaw } from "./billclaw.js";
10
+ export * from "./models/index.js";
11
+ export * from "./storage/index.js";
12
+ export * from "./sync/index.js";
13
+ export { syncPlaidAccounts, syncPlaidAccount, createPlaidClient, convertTransaction, type PlaidConfig, type PlaidAccount, type PlaidSyncResult, } from "./sources/plaid/plaid-sync.js";
14
+ export { fetchGmailBills, fetchGmailEmails, recognizeBill, parseBillToTransaction, type GmailConfig, type GmailAccount, type GmailFetchResult, type GmailFetcherOptions, type EmailContent, type BillRecognition, } from "./sources/gmail/gmail-fetch.js";
15
+ export { exportToBeancount, exportStorageToBeancount, transactionToBeancount, getBeancountAccountMappings, type BeancountExportOptions, } from "./exporters/beancount.js";
16
+ export { exportToLedger, exportStorageToLedger, transactionToLedger, getLedgerAccountMappings, type LedgerExportOptions, } from "./exporters/ledger.js";
17
+ export * from "./errors/index.js";
18
+ export * from "./credentials/index.js";
19
+ export * from "./security/index.js";
20
+ export * from "./runtime/index.js";
21
+ export * from "./services/index.js";
22
+ export declare const VERSION: "0.0.1";
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,cAAc,mBAAmB,CAAA;AAGjC,cAAc,oBAAoB,CAAA;AAGlC,cAAc,iBAAiB,CAAA;AAG/B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,gCAAgC,CAAA;AAGvC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,EAC3B,KAAK,sBAAsB,GAC5B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAA;AAG9B,cAAc,mBAAmB,CAAA;AAGjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAGnC,cAAc,oBAAoB,CAAA;AAGlC,cAAc,qBAAqB,CAAA;AAGnC,eAAO,MAAM,OAAO,EAAG,OAAgB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,34 @@
1
+ /**
2
+ * BillClaw Core - Framework-agnostic business logic for financial data import
3
+ *
4
+ * This package contains all core functionality with zero dependencies on any
5
+ * AI framework (OpenClaw, OpenHands, etc.).
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ // Main class
10
+ export { Billclaw } from "./billclaw.js";
11
+ // Models and schemas
12
+ export * from "./models/index.js";
13
+ // Storage
14
+ export * from "./storage/index.js";
15
+ // Sync
16
+ export * from "./sync/index.js";
17
+ // Data sources (note: some types may overlap with parsers)
18
+ export { syncPlaidAccounts, syncPlaidAccount, createPlaidClient, convertTransaction, } from "./sources/plaid/plaid-sync.js";
19
+ export { fetchGmailBills, fetchGmailEmails, recognizeBill, parseBillToTransaction, } from "./sources/gmail/gmail-fetch.js";
20
+ // Exporters
21
+ export { exportToBeancount, exportStorageToBeancount, transactionToBeancount, getBeancountAccountMappings, } from "./exporters/beancount.js";
22
+ export { exportToLedger, exportStorageToLedger, transactionToLedger, getLedgerAccountMappings, } from "./exporters/ledger.js";
23
+ // Errors
24
+ export * from "./errors/index.js";
25
+ // Credentials & Security
26
+ export * from "./credentials/index.js";
27
+ export * from "./security/index.js";
28
+ // Runtime abstractions
29
+ export * from "./runtime/index.js";
30
+ // Services (event emission, webhooks)
31
+ export * from "./services/index.js";
32
+ // Version
33
+ export const VERSION = "0.0.1";
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,aAAa;AACb,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,qBAAqB;AACrB,cAAc,mBAAmB,CAAA;AAEjC,UAAU;AACV,cAAc,oBAAoB,CAAA;AAElC,OAAO;AACP,cAAc,iBAAiB,CAAA;AAE/B,2DAA2D;AAC3D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GAInB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,sBAAsB,GAOvB,MAAM,gCAAgC,CAAA;AAEvC,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,GAE5B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GAEzB,MAAM,uBAAuB,CAAA;AAE9B,SAAS;AACT,cAAc,mBAAmB,CAAA;AAEjC,yBAAyB;AACzB,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAEnC,uBAAuB;AACvB,cAAc,oBAAoB,CAAA;AAElC,sCAAsC;AACtC,cAAc,qBAAqB,CAAA;AAEnC,UAAU;AACV,MAAM,CAAC,MAAM,OAAO,GAAG,OAAgB,CAAA"}