@equt/clis 0.1.18 → 0.1.20
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/client.d.ts +3 -3
- package/dist/bookkeeping/client.d.ts.map +1 -1
- package/dist/bookkeeping/client.js +3 -30
- package/dist/bookkeeping/client.js.map +1 -1
- package/dist/bookkeeping/commands/journal-inspect.d.ts.map +1 -1
- package/dist/bookkeeping/commands/journal-inspect.js +39 -24
- package/dist/bookkeeping/commands/journal-inspect.js.map +1 -1
- package/dist/bookkeeping/props.d.ts +1 -0
- package/dist/bookkeeping/props.d.ts.map +1 -1
- package/dist/bookkeeping/props.js +6 -0
- package/dist/bookkeeping/props.js.map +1 -1
- package/dist/notion/client.d.ts +6 -0
- package/dist/notion/client.d.ts.map +1 -0
- package/dist/notion/client.js +61 -0
- package/dist/notion/client.js.map +1 -0
- package/dist/recurring/client.d.ts +8 -0
- package/dist/recurring/client.d.ts.map +1 -0
- package/dist/recurring/client.js +9 -0
- package/dist/recurring/client.js.map +1 -0
- package/dist/recurring/commands/complete.d.ts +3 -0
- package/dist/recurring/commands/complete.d.ts.map +1 -0
- package/dist/recurring/commands/complete.js +74 -0
- package/dist/recurring/commands/complete.js.map +1 -0
- package/dist/recurring/commands/list.d.ts +3 -0
- package/dist/recurring/commands/list.d.ts.map +1 -0
- package/dist/recurring/commands/list.js +40 -0
- package/dist/recurring/commands/list.js.map +1 -0
- package/dist/recurring/index.d.ts +3 -0
- package/dist/recurring/index.d.ts.map +1 -0
- package/dist/recurring/index.js +30 -0
- package/dist/recurring/index.js.map +1 -0
- package/dist/recurring/props.d.ts +2 -0
- package/dist/recurring/props.d.ts.map +1 -0
- package/dist/recurring/props.js +2 -0
- package/dist/recurring/props.js.map +1 -0
- package/package.json +3 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
1
|
+
import type { Client } from '@notionhq/client';
|
|
2
|
+
import { queryAll } from '../notion/client.js';
|
|
3
3
|
export declare const DB: {
|
|
4
4
|
readonly Journals: "2274724d-dd75-80b5-84a2-000b682101b6";
|
|
5
5
|
readonly Lines: "2274724d-dd75-80a3-bdcc-000bacc0fc05";
|
|
@@ -9,5 +9,5 @@ export declare const DB: {
|
|
|
9
9
|
readonly Feedback: "2274724d-dd75-80d1-8187-000be688b67f";
|
|
10
10
|
};
|
|
11
11
|
export declare function createClient(): Client;
|
|
12
|
-
export
|
|
12
|
+
export { queryAll };
|
|
13
13
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/bookkeeping/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/bookkeeping/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAsC,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAElF,eAAO,MAAM,EAAE;;;;;;;CAOL,CAAA;AAEV,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Client } from '@notionhq/client';
|
|
1
|
+
import { createClient as createNotionClient, queryAll } from '../notion/client.js';
|
|
3
2
|
export const DB = {
|
|
4
3
|
Journals: '2274724d-dd75-80b5-84a2-000b682101b6',
|
|
5
4
|
Lines: '2274724d-dd75-80a3-bdcc-000bacc0fc05',
|
|
@@ -9,33 +8,7 @@ export const DB = {
|
|
|
9
8
|
Feedback: '2274724d-dd75-80d1-8187-000be688b67f',
|
|
10
9
|
};
|
|
11
10
|
export function createClient() {
|
|
12
|
-
|
|
13
|
-
if (!token) {
|
|
14
|
-
console.error('BOOKKEEPING_TOKEN environment variable is not set');
|
|
15
|
-
process.exit(1);
|
|
16
|
-
}
|
|
17
|
-
return new Client({ auth: token });
|
|
18
|
-
}
|
|
19
|
-
export async function queryAll(client, params, limit) {
|
|
20
|
-
const results = [];
|
|
21
|
-
let cursor;
|
|
22
|
-
while (true) {
|
|
23
|
-
const response = await client.dataSources.query({
|
|
24
|
-
...params,
|
|
25
|
-
start_cursor: cursor,
|
|
26
|
-
});
|
|
27
|
-
for (const page of response.results) {
|
|
28
|
-
if (page.object === 'page' && 'properties' in page) {
|
|
29
|
-
results.push(page);
|
|
30
|
-
if (limit !== undefined && results.length >= limit) {
|
|
31
|
-
return results;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
if (!response.has_more || response.next_cursor === null)
|
|
36
|
-
break;
|
|
37
|
-
cursor = response.next_cursor;
|
|
38
|
-
}
|
|
39
|
-
return results;
|
|
11
|
+
return createNotionClient('BOOKKEEPING_TOKEN');
|
|
40
12
|
}
|
|
13
|
+
export { queryAll };
|
|
41
14
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/bookkeeping/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/bookkeeping/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAElF,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,QAAQ,EAAE,sCAAsC;IAChD,KAAK,EAAE,sCAAsC;IAC7C,QAAQ,EAAE,sCAAsC;IAChD,UAAU,EAAE,sCAAsC;IAClD,SAAS,EAAE,sCAAsC;IACjD,QAAQ,EAAE,sCAAsC;CACxC,CAAA;AAEV,MAAM,UAAU,YAAY;IAC1B,OAAO,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;AAChD,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal-inspect.d.ts","sourceRoot":"","sources":["../../../src/bookkeeping/commands/journal-inspect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuCxC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"journal-inspect.d.ts","sourceRoot":"","sources":["../../../src/bookkeeping/commands/journal-inspect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuCxC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiM7D"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import process from 'node:process';
|
|
2
|
+
import { fetchRelationIds } from '../../notion/client.js';
|
|
2
3
|
import { createClient } from '../client.js';
|
|
3
4
|
import { formatNumber, renderKeyValue, renderTable, renderYaml } from '../output.js';
|
|
4
|
-
import { extractDate, extractFormulaCheckbox, extractNumber,
|
|
5
|
+
import { extractDate, extractFormulaCheckbox, extractNumber, extractRichText, extractSelect, extractTitle, } from '../props.js';
|
|
5
6
|
async function fetchPage(client, id) {
|
|
6
7
|
const p = await client.pages.retrieve({ page_id: id });
|
|
7
8
|
return p.object === 'page' && 'properties' in p
|
|
@@ -38,9 +39,11 @@ export function registerJournalInspect(program) {
|
|
|
38
39
|
const journalDate = extractDate(props.Date);
|
|
39
40
|
const journalNote = extractRichText(props.Note);
|
|
40
41
|
const journalValid = extractFormulaCheckbox(props.Valid);
|
|
41
|
-
// 2. Get relation IDs
|
|
42
|
-
const lineIds =
|
|
43
|
-
|
|
42
|
+
// 2. Get relation IDs via paginated property retrieval
|
|
43
|
+
const [lineIds, exchangeIds] = await Promise.all([
|
|
44
|
+
fetchRelationIds(client, journalId, 'Transactions'),
|
|
45
|
+
fetchRelationIds(client, journalId, 'Exchanges'),
|
|
46
|
+
]);
|
|
44
47
|
// 3. Fetch all line and exchange pages in parallel
|
|
45
48
|
const [linePages, exchangePagesList] = await Promise.all([
|
|
46
49
|
Promise.all(lineIds.map(id => fetchPage(client, id))),
|
|
@@ -52,15 +55,29 @@ export function registerJournalInspect(program) {
|
|
|
52
55
|
const currencyIds = new Set();
|
|
53
56
|
const accountIds = new Set();
|
|
54
57
|
const feedbackIds = new Set();
|
|
55
|
-
for
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
58
|
+
// Per-page relation maps for reuse during output building
|
|
59
|
+
const lineRelations = new Map();
|
|
60
|
+
const exchangeRelations = new Map();
|
|
61
|
+
await Promise.all(validLinePages.map(async (lp) => {
|
|
62
|
+
const [cIds, aIds, fIds] = await Promise.all([
|
|
63
|
+
fetchRelationIds(client, lp.id, 'Currency'),
|
|
64
|
+
fetchRelationIds(client, lp.id, 'Account'),
|
|
65
|
+
fetchRelationIds(client, lp.id, 'Feedbacks'),
|
|
66
|
+
]);
|
|
67
|
+
lineRelations.set(lp.id, { currency: cIds, account: aIds, feedbacks: fIds });
|
|
68
|
+
cIds.forEach(id => currencyIds.add(id));
|
|
69
|
+
aIds.forEach(id => accountIds.add(id));
|
|
70
|
+
fIds.forEach(id => feedbackIds.add(id));
|
|
71
|
+
}));
|
|
72
|
+
await Promise.all(validExchangePages.map(async (ep) => {
|
|
73
|
+
const [fromIds, toIds] = await Promise.all([
|
|
74
|
+
fetchRelationIds(client, ep.id, 'From'),
|
|
75
|
+
fetchRelationIds(client, ep.id, 'To'),
|
|
76
|
+
]);
|
|
77
|
+
exchangeRelations.set(ep.id, { from: fromIds, to: toIds });
|
|
78
|
+
fromIds.forEach(id => currencyIds.add(id));
|
|
79
|
+
toIds.forEach(id => currencyIds.add(id));
|
|
80
|
+
}));
|
|
64
81
|
// 5. Batch fetch currency names, account names, feedback pages
|
|
65
82
|
const feedbackIdList = [...feedbackIds];
|
|
66
83
|
const [currencyNames, accountNames, feedbackPagesList] = await Promise.all([
|
|
@@ -78,35 +95,33 @@ export function registerJournalInspect(program) {
|
|
|
78
95
|
}
|
|
79
96
|
// Build output structures
|
|
80
97
|
const lines = validLinePages.map((lp) => {
|
|
81
|
-
const
|
|
82
|
-
const aIds = extractRelationIds(lp.properties.Account);
|
|
98
|
+
const rels = lineRelations.get(lp.id);
|
|
83
99
|
return {
|
|
84
100
|
name: extractTitle(lp.properties.Name),
|
|
85
101
|
type: extractSelect(lp.properties.Type),
|
|
86
102
|
amount: extractNumber(lp.properties.Amount) ?? 0,
|
|
87
|
-
currency:
|
|
88
|
-
accounts:
|
|
103
|
+
currency: rels.currency.length > 0 ? (currencyNames.get(rels.currency[0]) ?? '') : '',
|
|
104
|
+
accounts: rels.account.map(id => accountNames.get(id) ?? id),
|
|
89
105
|
};
|
|
90
106
|
});
|
|
91
107
|
const exchanges = validExchangePages.map((ep) => {
|
|
92
|
-
const
|
|
93
|
-
const toIds = extractRelationIds(ep.properties.To);
|
|
108
|
+
const rels = exchangeRelations.get(ep.id);
|
|
94
109
|
return {
|
|
95
110
|
name: extractTitle(ep.properties.Name),
|
|
96
|
-
from:
|
|
97
|
-
to:
|
|
111
|
+
from: rels.from.length > 0 ? (currencyNames.get(rels.from[0]) ?? '') : '',
|
|
112
|
+
to: rels.to.length > 0 ? (currencyNames.get(rels.to[0]) ?? '') : '',
|
|
98
113
|
ratio: extractNumber(ep.properties.Ratio) ?? 0,
|
|
99
114
|
};
|
|
100
115
|
});
|
|
101
|
-
const feedbacks = validFeedbackPages.map((fp) => {
|
|
102
|
-
const lineRelIds =
|
|
116
|
+
const feedbacks = await Promise.all(validFeedbackPages.map(async (fp) => {
|
|
117
|
+
const lineRelIds = await fetchRelationIds(client, fp.id, 'Transaction');
|
|
103
118
|
const lineName = lineRelIds.length > 0 ? (lineNameById.get(lineRelIds[0]) ?? '') : '';
|
|
104
119
|
return {
|
|
105
120
|
line: lineName,
|
|
106
121
|
name: extractTitle(fp.properties.Name),
|
|
107
122
|
attitude: extractSelect(fp.properties.Attitude),
|
|
108
123
|
};
|
|
109
|
-
});
|
|
124
|
+
}));
|
|
110
125
|
if (yaml) {
|
|
111
126
|
renderYaml({
|
|
112
127
|
journal: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal-inspect.js","sourceRoot":"","sources":["../../../src/bookkeeping/commands/journal-inspect.ts"],"names":[],"mappings":"AAGA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACpF,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"journal-inspect.js","sourceRoot":"","sources":["../../../src/bookkeeping/commands/journal-inspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,5 +8,6 @@ export declare function extractSelect(prop: PageProp | undefined): string;
|
|
|
8
8
|
export declare function extractRelationIds(prop: PageProp | undefined): string[];
|
|
9
9
|
export declare function extractFormulaCheckbox(prop: PageProp | undefined): boolean;
|
|
10
10
|
export declare function extractFormulaNumber(prop: PageProp | undefined): number | null;
|
|
11
|
+
export declare function extractCheckbox(prop: PageProp | undefined): boolean;
|
|
11
12
|
export {};
|
|
12
13
|
//# sourceMappingURL=props.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../src/bookkeeping/props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAErF,KAAK,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAK/D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAKlE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAK9D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAKvE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAKhE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,EAAE,CAKvE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAK1E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAK9E"}
|
|
1
|
+
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../src/bookkeeping/props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAErF,KAAK,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAK/D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAKlE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAK9D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAKvE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAKhE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,EAAE,CAKvE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAK1E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAK9E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAKnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../src/bookkeeping/props.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,YAAY,CAAC,IAA0B;IACrD,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAA0B;IACxD,IAAI,IAAI,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvD,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAA0B;IACpD,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;IACxB,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA0B;IACtD,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA0B;IACtD,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;IACzB,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAA0B;IAC3D,IAAI,IAAI,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACrC,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA0B;IAC/D,IAAI,IAAI,EAAE,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAA;IACtC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAA0B;IAC7D,IAAI,IAAI,EAAE,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;IAC5B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../src/bookkeeping/props.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,YAAY,CAAC,IAA0B;IACrD,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAA0B;IACxD,IAAI,IAAI,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvD,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAA0B;IACpD,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;IACxB,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA0B;IACtD,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA0B;IACtD,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;IACzB,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAA0B;IAC3D,IAAI,IAAI,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACrC,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA0B;IAC/D,IAAI,IAAI,EAAE,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAA;IACtC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAA0B;IAC7D,IAAI,IAAI,EAAE,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;IAC5B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAA0B;IACxD,IAAI,IAAI,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PageObjectResponse, QueryDataSourceParameters } from '@notionhq/client/build/src/api-endpoints.js';
|
|
2
|
+
import { Client } from '@notionhq/client';
|
|
3
|
+
export declare function createClient(envVar: string): Client;
|
|
4
|
+
export declare function fetchRelationIds(client: Client, pageId: string, propertyId: string): Promise<string[]>;
|
|
5
|
+
export declare function queryAll(client: Client, params: QueryDataSourceParameters, limit?: number): Promise<PageObjectResponse[]>;
|
|
6
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/notion/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,6CAA6C,CAAA;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOnD;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CA8BnB;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,yBAAyB,EACjC,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyB/B"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import process from 'node:process';
|
|
2
|
+
import { Client } from '@notionhq/client';
|
|
3
|
+
export function createClient(envVar) {
|
|
4
|
+
const token = process.env[envVar];
|
|
5
|
+
if (!token) {
|
|
6
|
+
console.error(`${envVar} environment variable is not set`);
|
|
7
|
+
process.exit(1);
|
|
8
|
+
}
|
|
9
|
+
return new Client({ auth: token });
|
|
10
|
+
}
|
|
11
|
+
export async function fetchRelationIds(client, pageId, propertyId) {
|
|
12
|
+
const ids = [];
|
|
13
|
+
let cursor;
|
|
14
|
+
while (true) {
|
|
15
|
+
const response = await client.pages.properties.retrieve({
|
|
16
|
+
page_id: pageId,
|
|
17
|
+
property_id: propertyId,
|
|
18
|
+
start_cursor: cursor,
|
|
19
|
+
});
|
|
20
|
+
if (response.object === 'list') {
|
|
21
|
+
for (const item of response.results) {
|
|
22
|
+
if (item.type === 'relation') {
|
|
23
|
+
ids.push(item.relation.id);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (!response.has_more || !response.next_cursor)
|
|
27
|
+
break;
|
|
28
|
+
cursor = response.next_cursor;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
if (response.type === 'relation') {
|
|
32
|
+
ids.push(response.relation.id);
|
|
33
|
+
}
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return ids;
|
|
38
|
+
}
|
|
39
|
+
export async function queryAll(client, params, limit) {
|
|
40
|
+
const results = [];
|
|
41
|
+
let cursor;
|
|
42
|
+
while (true) {
|
|
43
|
+
const response = await client.dataSources.query({
|
|
44
|
+
...params,
|
|
45
|
+
start_cursor: cursor,
|
|
46
|
+
});
|
|
47
|
+
for (const page of response.results) {
|
|
48
|
+
if (page.object === 'page' && 'properties' in page) {
|
|
49
|
+
results.push(page);
|
|
50
|
+
if (limit !== undefined && results.length >= limit) {
|
|
51
|
+
return results;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (!response.has_more || response.next_cursor === null)
|
|
56
|
+
break;
|
|
57
|
+
cursor = response.next_cursor;
|
|
58
|
+
}
|
|
59
|
+
return results;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/notion/client.ts"],"names":[],"mappings":"AAIA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,kCAAkC,CAAC,CAAA;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,MAAc,EACd,UAAkB;IAElB,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,MAA0B,CAAA;IAE9B,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;YACtD,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,MAAM;SACrB,CAAC,CAAA;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC7B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBAC5B,CAAC;YACH,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW;gBAC7C,MAAK;YACP,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAA;QAC/B,CAAC;aACI,CAAC;YACJ,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACjC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAChC,CAAC;YACD,MAAK;QACP,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAc,EACd,MAAiC,EACjC,KAAc;IAEd,MAAM,OAAO,GAAyB,EAAE,CAAA;IACxC,IAAI,MAA0B,CAAA;IAE9B,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;YAC9C,GAAG,MAAM;YACT,YAAY,EAAE,MAAM;SACrB,CAAC,CAAA;QAEF,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,IAA0B,CAAC,CAAA;gBACxC,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;oBACnD,OAAO,OAAO,CAAA;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI;YACrD,MAAK;QACP,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAA;IAC/B,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Client } from '@notionhq/client';
|
|
2
|
+
import { queryAll } from '../notion/client.js';
|
|
3
|
+
export declare const DB: {
|
|
4
|
+
readonly Recurring: "3234724d-dd75-803b-8fec-000b37cf5172";
|
|
5
|
+
};
|
|
6
|
+
export declare function createClient(): Client;
|
|
7
|
+
export { queryAll };
|
|
8
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/recurring/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAsC,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAElF,eAAO,MAAM,EAAE;;CAEL,CAAA;AAEV,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createClient as createNotionClient, queryAll } from '../notion/client.js';
|
|
2
|
+
export const DB = {
|
|
3
|
+
Recurring: '3234724d-dd75-803b-8fec-000b37cf5172',
|
|
4
|
+
};
|
|
5
|
+
export function createClient() {
|
|
6
|
+
return createNotionClient('RECURRING_TOKEN');
|
|
7
|
+
}
|
|
8
|
+
export { queryAll };
|
|
9
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/recurring/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAElF,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,SAAS,EAAE,sCAAsC;CACzC,CAAA;AAEV,MAAM,UAAU,YAAY;IAC1B,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,CAAA;AAC9C,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complete.d.ts","sourceRoot":"","sources":["../../../src/recurring/commands/complete.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOxC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgFvD"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import process from 'node:process';
|
|
2
|
+
import { addDays, addMonths, addYears, format } from 'date-fns';
|
|
3
|
+
import { renderTable, renderYaml } from '../../bookkeeping/output.js';
|
|
4
|
+
import { createClient } from '../client.js';
|
|
5
|
+
import { extractCheckbox, extractDate, extractNumber, extractSelect, extractTitle } from '../props.js';
|
|
6
|
+
export function registerComplete(program) {
|
|
7
|
+
program
|
|
8
|
+
.command('complete <id>')
|
|
9
|
+
.description('Mark a recurring item as complete and advance its Next date.\n\n'
|
|
10
|
+
+ 'How the new Next date is calculated:\n'
|
|
11
|
+
+ ' 1. Determine the base date:\n'
|
|
12
|
+
+ ' - If "Use Today" is checked on the item, use today\'s date.\n'
|
|
13
|
+
+ ' - Otherwise, use the current Next date.\n'
|
|
14
|
+
+ ' 2. Add the recurrence interval (Amount × Unit) to the base date.\n'
|
|
15
|
+
+ ' Unit can be Day, Month, or Year.\n'
|
|
16
|
+
+ ' 3. Update the item\'s Next property with the computed date.\n\n'
|
|
17
|
+
+ 'Arguments:\n'
|
|
18
|
+
+ ' id Notion page ID of the recurring item to complete.')
|
|
19
|
+
.action(async (id) => {
|
|
20
|
+
const yaml = program.opts().yaml;
|
|
21
|
+
const client = createClient();
|
|
22
|
+
const page = await client.pages.retrieve({ page_id: id });
|
|
23
|
+
if (page.object !== 'page' || !('properties' in page)) {
|
|
24
|
+
console.error(`Page not found: ${id}`);
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
const props = page.properties;
|
|
28
|
+
const name = extractTitle(props.Name);
|
|
29
|
+
const amount = extractNumber(props.Amount);
|
|
30
|
+
const unit = extractSelect(props.Unit);
|
|
31
|
+
const next = extractDate(props.Next);
|
|
32
|
+
const useToday = extractCheckbox(props['Use Today']);
|
|
33
|
+
if (amount === null || amount <= 0) {
|
|
34
|
+
console.error(`Invalid or missing Amount for "${name}"`);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
if (!unit) {
|
|
38
|
+
console.error(`Missing Unit for "${name}"`);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
if (!next) {
|
|
42
|
+
console.error(`Missing Next date for "${name}"`);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
const base = useToday ? new Date() : new Date(next);
|
|
46
|
+
function advance(base, amount, unit) {
|
|
47
|
+
switch (unit) {
|
|
48
|
+
case 'Day':
|
|
49
|
+
return addDays(base, amount);
|
|
50
|
+
case 'Month':
|
|
51
|
+
return addMonths(base, amount);
|
|
52
|
+
case 'Year':
|
|
53
|
+
return addYears(base, amount);
|
|
54
|
+
default:
|
|
55
|
+
throw new Error(`Unknown unit: ${unit}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const newNext = advance(base, amount, unit);
|
|
59
|
+
const newNextStr = format(newNext, 'yyyy-MM-dd');
|
|
60
|
+
await client.pages.update({
|
|
61
|
+
page_id: id,
|
|
62
|
+
properties: {
|
|
63
|
+
Next: { date: { start: newNextStr } },
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
if (yaml) {
|
|
67
|
+
renderYaml({ id, name, previousNext: next, newNext: newNextStr, useToday });
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
renderTable(['Name', 'Previous Next', 'New Next', 'Use Today'], [[name, next, newNextStr, useToday ? 'Yes' : 'No']]);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=complete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complete.js","sourceRoot":"","sources":["../../../src/recurring/commands/complete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/recurring/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0CnD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { renderTable, renderYaml } from '../../bookkeeping/output.js';
|
|
2
|
+
import { createClient, DB, queryAll } from '../client.js';
|
|
3
|
+
import { extractCheckbox, extractDate, extractNumber, extractSelect, extractTitle } from '../props.js';
|
|
4
|
+
export function registerList(program) {
|
|
5
|
+
program
|
|
6
|
+
.command('list', { isDefault: true })
|
|
7
|
+
.description('List all recurring items sorted by next execution date.\n'
|
|
8
|
+
+ 'Each row shows the item name, next scheduled date, recurrence interval (amount + unit), '
|
|
9
|
+
+ 'and whether the "Use Today" flag is set.')
|
|
10
|
+
.action(async () => {
|
|
11
|
+
const yaml = program.opts().yaml;
|
|
12
|
+
const client = createClient();
|
|
13
|
+
const pages = await queryAll(client, {
|
|
14
|
+
data_source_id: DB.Recurring,
|
|
15
|
+
sorts: [{ property: 'Next', direction: 'ascending' }],
|
|
16
|
+
});
|
|
17
|
+
const items = pages.map(page => ({
|
|
18
|
+
id: page.id,
|
|
19
|
+
name: extractTitle(page.properties.Name),
|
|
20
|
+
next: extractDate(page.properties.Next),
|
|
21
|
+
amount: extractNumber(page.properties.Amount),
|
|
22
|
+
unit: extractSelect(page.properties.Unit),
|
|
23
|
+
useToday: extractCheckbox(page.properties['Use Today']),
|
|
24
|
+
}));
|
|
25
|
+
if (yaml) {
|
|
26
|
+
renderYaml(items);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
renderTable(['ID', 'Name', 'Next', 'Amount', 'Unit', 'Use Today'], items.map(i => [
|
|
30
|
+
i.id,
|
|
31
|
+
i.name,
|
|
32
|
+
i.next,
|
|
33
|
+
i.amount !== null ? String(i.amount) : '',
|
|
34
|
+
i.unit,
|
|
35
|
+
i.useToday ? 'Yes' : 'No',
|
|
36
|
+
]));
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/recurring/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEtG,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO;SACJ,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACpC,WAAW,CACV,2DAA2D;UACzD,0FAA0F;UAC1F,0CAA0C,CAC7C;SACA,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAqB,CAAC,IAAI,CAAA;QACnD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;QAC7B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;YACnC,cAAc,EAAE,EAAE,CAAC,SAAS;YAC5B,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;SACtD,CAAC,CAAA;QAEF,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,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC7C,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzC,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SACxD,CAAC,CAAC,CAAA;QAEH,IAAI,IAAI,EAAE,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;aACI,CAAC;YACJ,WAAW,CACT,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EACrD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACb,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;aAC1B,CAAC,CACH,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recurring/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
import { APIResponseError } from '@notionhq/client';
|
|
4
|
+
import { program } from 'commander';
|
|
5
|
+
import { registerComplete } from './commands/complete.js';
|
|
6
|
+
import { registerList } from './commands/list.js';
|
|
7
|
+
program
|
|
8
|
+
.name('recurring')
|
|
9
|
+
.description('Recurring task scheduler CLI backed by Notion.\n\n'
|
|
10
|
+
+ 'Manages periodic tasks (e.g. monthly bills, yearly renewals) stored in a\n'
|
|
11
|
+
+ 'Notion database. Each item has a recurrence interval (Amount + Unit) and a\n'
|
|
12
|
+
+ 'Next date indicating when the task is next due.\n\n'
|
|
13
|
+
+ 'Environment variables:\n'
|
|
14
|
+
+ ' RECURRING_TOKEN Notion integration token (required)')
|
|
15
|
+
.option('--yaml', 'Emit YAML instead of a formatted table');
|
|
16
|
+
registerList(program);
|
|
17
|
+
registerComplete(program);
|
|
18
|
+
program.parseAsync(process.argv).catch((err) => {
|
|
19
|
+
if (APIResponseError.isAPIResponseError(err)) {
|
|
20
|
+
console.error(`Notion API error ${err.status}: ${err.message}`);
|
|
21
|
+
}
|
|
22
|
+
else if (err instanceof Error) {
|
|
23
|
+
console.error(err.message);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
console.error(String(err));
|
|
27
|
+
}
|
|
28
|
+
process.exit(1);
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recurring/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,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CACV,oDAAoD;MAClD,4EAA4E;MAC5E,8EAA8E;MAC9E,qDAAqD;MACrD,0BAA0B;MAC1B,wDAAwD,CAC3D;KACA,MAAM,CAAC,QAAQ,EAAE,wCAAwC,CAAC,CAAA;AAE7D,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../src/recurring/props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../src/recurring/props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@equt/clis",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.20",
|
|
5
5
|
"packageManager": "bun@1.3.10",
|
|
6
6
|
"bin": {
|
|
7
7
|
"bookkeeping": "./dist/bookkeeping/index.js",
|
|
8
|
-
"komari": "./dist/komari/index.js"
|
|
8
|
+
"komari": "./dist/komari/index.js",
|
|
9
|
+
"recurring": "./dist/recurring/index.js"
|
|
9
10
|
},
|
|
10
11
|
"publishConfig": {
|
|
11
12
|
"access": "public"
|