@equt/clis 0.1.6 → 0.1.8
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/dist/bookkeeping/commands/journals.d.ts.map +1 -1
- package/dist/bookkeeping/commands/journals.js +28 -0
- package/dist/bookkeeping/commands/journals.js.map +1 -1
- package/dist/bookkeeping/commands/sms-parse.d.ts +3 -0
- package/dist/bookkeeping/commands/sms-parse.d.ts.map +1 -0
- package/dist/bookkeeping/commands/sms-parse.js +115 -0
- package/dist/bookkeeping/commands/sms-parse.js.map +1 -0
- package/dist/bookkeeping/index.js +2 -0
- package/dist/bookkeeping/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journals.d.ts","sourceRoot":"","sources":["../../../src/bookkeeping/commands/journals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"journals.d.ts","sourceRoot":"","sources":["../../../src/bookkeeping/commands/journals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmFvD"}
|
|
@@ -5,6 +5,34 @@ export function registerJournals(program) {
|
|
|
5
5
|
const journals = program
|
|
6
6
|
.command('journals')
|
|
7
7
|
.description('Manage journals');
|
|
8
|
+
journals
|
|
9
|
+
.command('add <date>')
|
|
10
|
+
.description('Create a new journal entry (date: YYYY-MM-DD)')
|
|
11
|
+
.option('--name <name>', 'Journal title (omit for untitled)')
|
|
12
|
+
.option('--note <note>', 'Optional note')
|
|
13
|
+
.action(async (date, opts) => {
|
|
14
|
+
const yaml = program.opts().yaml;
|
|
15
|
+
const client = createClient();
|
|
16
|
+
const properties = {
|
|
17
|
+
Date: { date: { start: date } },
|
|
18
|
+
};
|
|
19
|
+
if (opts.name) {
|
|
20
|
+
properties.Name = { title: [{ text: { content: opts.name } }] };
|
|
21
|
+
}
|
|
22
|
+
if (opts.note) {
|
|
23
|
+
properties.Note = { rich_text: [{ text: { content: opts.note } }] };
|
|
24
|
+
}
|
|
25
|
+
const created = await client.pages.create({
|
|
26
|
+
parent: { type: 'data_source_id', data_source_id: DB.Journals },
|
|
27
|
+
properties: properties,
|
|
28
|
+
});
|
|
29
|
+
if (yaml) {
|
|
30
|
+
renderYaml({ id: created.id, date });
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
renderTable(['ID', 'Date'], [[created.id, date]]);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
8
36
|
journals
|
|
9
37
|
.command('list', { isDefault: true })
|
|
10
38
|
.description('List journals sorted by date descending')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journals.js","sourceRoot":"","sources":["../../../src/bookkeeping/commands/journals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAExE,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,iBAAiB,CAAC,CAAA;IAEjC,QAAQ;SACL,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACpC,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,aAAa,EAAE,2BAA2B,EAAE,IAAI,CAAC;SACxD,MAAM,CAAC,gBAAgB,EAAE,yCAAyC,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,IAA8C,EAAE,EAAE;QAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAqB,CAAC,IAAI,CAAA;QACnD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QAE7C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAC1B,MAAM,EACN;YACE,cAAc,EAAE,EAAE,CAAC,QAAQ;YAC3B,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,WAAW;gBAClB,CAAC,CAAC;oBACE,MAAM,EAAE;wBACN,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;qBACzC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,EACD,KAAK,CACN,CAAA;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACxC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACvC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;SAC5C,CAAC,CAAC,CAAA;QAEH,IAAI,IAAI,EAAE,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACzE,CAAC;aACI,CAAC;YACJ,WAAW,CACT,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACxB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CACzC,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"journals.js","sourceRoot":"","sources":["../../../src/bookkeeping/commands/journals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sms-parse.d.ts","sourceRoot":"","sources":["../../../src/bookkeeping/commands/sms-parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA0FxC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+CvD"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
const RE_BOC = /信用卡(\d+)于[^在]+在([^消]+)消费(RMB|USD|JPY|人民币)([0-9,]+(?:\.\d+)?)元/;
|
|
4
|
+
const RE_SPDB = /转入([0-9,]+(?:\.\d+)?)元\[(工资|其他代发)\]/;
|
|
5
|
+
const RE_CMB = /您账户(\d+)于[^信]+信用卡还款交易人民币([0-9,]+(?:\.\d+)?)/;
|
|
6
|
+
const RE_BOS = /本期贷款已足额归还,当期还款本息合计([0-9,]+(?:\.\d+)?)元/;
|
|
7
|
+
const RE_COMMA = /,/g;
|
|
8
|
+
function normalizeCurrency(raw) {
|
|
9
|
+
if (raw === 'RMB' || raw === '人民币')
|
|
10
|
+
return 'CNY';
|
|
11
|
+
return raw;
|
|
12
|
+
}
|
|
13
|
+
function parseAmount(raw) {
|
|
14
|
+
return Number.parseFloat(raw.replace(RE_COMMA, ''));
|
|
15
|
+
}
|
|
16
|
+
function extractDate(createdAt) {
|
|
17
|
+
return createdAt.slice(0, 10);
|
|
18
|
+
}
|
|
19
|
+
function parse95566(text, createdAt) {
|
|
20
|
+
if (text.includes('交易失败'))
|
|
21
|
+
return null;
|
|
22
|
+
const m = RE_BOC.exec(text);
|
|
23
|
+
if (!m)
|
|
24
|
+
return null;
|
|
25
|
+
return {
|
|
26
|
+
date: extractDate(createdAt),
|
|
27
|
+
account: `BOC ${m[1]}`,
|
|
28
|
+
currency: normalizeCurrency(m[3]),
|
|
29
|
+
amount: parseAmount(m[4]),
|
|
30
|
+
type: 'Credit',
|
|
31
|
+
merchant: m[2].trim(),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function parse95528(text, createdAt) {
|
|
35
|
+
const m = RE_SPDB.exec(text);
|
|
36
|
+
if (!m)
|
|
37
|
+
return null;
|
|
38
|
+
return {
|
|
39
|
+
date: extractDate(createdAt),
|
|
40
|
+
account: 'SPDB 6587',
|
|
41
|
+
currency: 'CNY',
|
|
42
|
+
amount: parseAmount(m[1]),
|
|
43
|
+
type: 'Debit',
|
|
44
|
+
label: m[2],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function parse95555(text, createdAt) {
|
|
48
|
+
const m = RE_CMB.exec(text);
|
|
49
|
+
if (!m)
|
|
50
|
+
return null;
|
|
51
|
+
return {
|
|
52
|
+
date: extractDate(createdAt),
|
|
53
|
+
account: `CMB ${m[1]}`,
|
|
54
|
+
currency: 'CNY',
|
|
55
|
+
amount: parseAmount(m[2]),
|
|
56
|
+
type: 'Debit',
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function parse95594(text, createdAt) {
|
|
60
|
+
const m = RE_BOS.exec(text);
|
|
61
|
+
if (!m)
|
|
62
|
+
return null;
|
|
63
|
+
return {
|
|
64
|
+
date: extractDate(createdAt),
|
|
65
|
+
account: 'BOSC 5571',
|
|
66
|
+
currency: 'CNY',
|
|
67
|
+
amount: parseAmount(m[1]),
|
|
68
|
+
type: 'Debit',
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
export function registerSmsParse(program) {
|
|
72
|
+
program
|
|
73
|
+
.command('sms-parse')
|
|
74
|
+
.description('Parse a bank SMS from stdin into a structured transaction')
|
|
75
|
+
.action(() => {
|
|
76
|
+
let raw;
|
|
77
|
+
try {
|
|
78
|
+
raw = fs.readFileSync(0, 'utf-8');
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
process.exit(0);
|
|
82
|
+
}
|
|
83
|
+
let msg;
|
|
84
|
+
try {
|
|
85
|
+
msg = JSON.parse(raw);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
process.exit(0);
|
|
89
|
+
}
|
|
90
|
+
const { sender, text, created_at: createdAt } = msg;
|
|
91
|
+
if (!sender || !text || !createdAt)
|
|
92
|
+
process.exit(0);
|
|
93
|
+
let result = null;
|
|
94
|
+
switch (sender) {
|
|
95
|
+
case '95566':
|
|
96
|
+
result = parse95566(text, createdAt);
|
|
97
|
+
break;
|
|
98
|
+
case '95528':
|
|
99
|
+
result = parse95528(text, createdAt);
|
|
100
|
+
break;
|
|
101
|
+
case '95555':
|
|
102
|
+
result = parse95555(text, createdAt);
|
|
103
|
+
break;
|
|
104
|
+
case '95594':
|
|
105
|
+
result = parse95594(text, createdAt);
|
|
106
|
+
break;
|
|
107
|
+
default:
|
|
108
|
+
result = null;
|
|
109
|
+
}
|
|
110
|
+
if (result === null)
|
|
111
|
+
process.exit(0);
|
|
112
|
+
process.stdout.write(`${JSON.stringify(result)}\n`);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=sms-parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sms-parse.js","sourceRoot":"","sources":["../../../src/bookkeeping/commands/sms-parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { registerCurrencies } from './commands/currencies.js';
|
|
|
7
7
|
import { registerJournalInspect } from './commands/journal-inspect.js';
|
|
8
8
|
import { registerJournals } from './commands/journals.js';
|
|
9
9
|
import { registerLineAdd } from './commands/line-add.js';
|
|
10
|
+
import { registerSmsParse } from './commands/sms-parse.js';
|
|
10
11
|
import { registerUnitPrice } from './commands/unit-price.js';
|
|
11
12
|
program
|
|
12
13
|
.name('bookkeeping')
|
|
@@ -18,6 +19,7 @@ registerJournals(program);
|
|
|
18
19
|
registerJournalInspect(program);
|
|
19
20
|
registerLineAdd(program);
|
|
20
21
|
registerUnitPrice(program);
|
|
22
|
+
registerSmsParse(program);
|
|
21
23
|
program.parseAsync(process.argv).catch((err) => {
|
|
22
24
|
if (APIResponseError.isAPIResponseError(err)) {
|
|
23
25
|
console.error(`Notion API error ${err.status}: ${err.message}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bookkeeping/index.ts"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,QAAQ,EAAE,wCAAwC,CAAC,CAAA;AAE7D,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACzB,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAC3B,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACzB,sBAAsB,CAAC,OAAO,CAAC,CAAA;AAC/B,eAAe,CAAC,OAAO,CAAC,CAAA;AACxB,iBAAiB,CAAC,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bookkeeping/index.ts"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,QAAQ,EAAE,wCAAwC,CAAC,CAAA;AAE7D,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACzB,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAC3B,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACzB,sBAAsB,CAAC,OAAO,CAAC,CAAA;AAC/B,eAAe,CAAC,OAAO,CAAC,CAAA;AACxB,iBAAiB,CAAC,OAAO,CAAC,CAAA;AAC1B,gBAAgB,CAAC,OAAO,CAAC,CAAA;AAEzB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IACjE,CAAC;SACI,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;SACI,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|