@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.
Files changed (36) hide show
  1. package/dist/bookkeeping/client.d.ts +3 -3
  2. package/dist/bookkeeping/client.d.ts.map +1 -1
  3. package/dist/bookkeeping/client.js +3 -30
  4. package/dist/bookkeeping/client.js.map +1 -1
  5. package/dist/bookkeeping/commands/journal-inspect.d.ts.map +1 -1
  6. package/dist/bookkeeping/commands/journal-inspect.js +39 -24
  7. package/dist/bookkeeping/commands/journal-inspect.js.map +1 -1
  8. package/dist/bookkeeping/props.d.ts +1 -0
  9. package/dist/bookkeeping/props.d.ts.map +1 -1
  10. package/dist/bookkeeping/props.js +6 -0
  11. package/dist/bookkeeping/props.js.map +1 -1
  12. package/dist/notion/client.d.ts +6 -0
  13. package/dist/notion/client.d.ts.map +1 -0
  14. package/dist/notion/client.js +61 -0
  15. package/dist/notion/client.js.map +1 -0
  16. package/dist/recurring/client.d.ts +8 -0
  17. package/dist/recurring/client.d.ts.map +1 -0
  18. package/dist/recurring/client.js +9 -0
  19. package/dist/recurring/client.js.map +1 -0
  20. package/dist/recurring/commands/complete.d.ts +3 -0
  21. package/dist/recurring/commands/complete.d.ts.map +1 -0
  22. package/dist/recurring/commands/complete.js +74 -0
  23. package/dist/recurring/commands/complete.js.map +1 -0
  24. package/dist/recurring/commands/list.d.ts +3 -0
  25. package/dist/recurring/commands/list.d.ts.map +1 -0
  26. package/dist/recurring/commands/list.js +40 -0
  27. package/dist/recurring/commands/list.js.map +1 -0
  28. package/dist/recurring/index.d.ts +3 -0
  29. package/dist/recurring/index.d.ts.map +1 -0
  30. package/dist/recurring/index.js +30 -0
  31. package/dist/recurring/index.js.map +1 -0
  32. package/dist/recurring/props.d.ts +2 -0
  33. package/dist/recurring/props.d.ts.map +1 -0
  34. package/dist/recurring/props.js +2 -0
  35. package/dist/recurring/props.js.map +1 -0
  36. package/package.json +3 -2
@@ -1,5 +1,5 @@
1
- import type { PageObjectResponse, QueryDataSourceParameters } from '@notionhq/client/build/src/api-endpoints.js';
2
- import { Client } from '@notionhq/client';
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 declare function queryAll(client: Client, params: QueryDataSourceParameters, limit?: number): Promise<PageObjectResponse[]>;
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,EACV,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,6CAA6C,CAAA;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,eAAO,MAAM,EAAE;;;;;;;CAOL,CAAA;AAEV,wBAAgB,YAAY,IAAI,MAAM,CAOrC;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,yBAAyB,EACjC,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyB/B"}
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 process from 'node:process';
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
- const token = process.env.BOOKKEEPING_TOKEN;
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":"AAIA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,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,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;QAClE,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,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"}
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,CA4L7D"}
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, extractRelationIds, extractRichText, extractSelect, extractTitle, } from '../props.js';
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 inline
42
- const lineIds = extractRelationIds(props.Transactions);
43
- const exchangeIds = extractRelationIds(props.Exchanges);
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 (const lp of validLinePages) {
56
- extractRelationIds(lp.properties.Currency).forEach(id => currencyIds.add(id));
57
- extractRelationIds(lp.properties.Account).forEach(id => accountIds.add(id));
58
- extractRelationIds(lp.properties.Feedbacks).forEach(id => feedbackIds.add(id));
59
- }
60
- for (const ep of validExchangePages) {
61
- extractRelationIds(ep.properties.From).forEach(id => currencyIds.add(id));
62
- extractRelationIds(ep.properties.To).forEach(id => currencyIds.add(id));
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 cIds = extractRelationIds(lp.properties.Currency);
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: cIds.length > 0 ? (currencyNames.get(cIds[0]) ?? '') : '',
88
- accounts: aIds.map(id => accountNames.get(id) ?? id),
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 fromIds = extractRelationIds(ep.properties.From);
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: fromIds.length > 0 ? (currencyNames.get(fromIds[0]) ?? '') : '',
97
- to: toIds.length > 0 ? (currencyNames.get(toIds[0]) ?? '') : '',
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 = extractRelationIds(fp.properties.Transaction);
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":"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"}
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"}
@@ -46,4 +46,10 @@ export function extractFormulaNumber(prop) {
46
46
  }
47
47
  return null;
48
48
  }
49
+ export function extractCheckbox(prop) {
50
+ if (prop?.type === 'checkbox') {
51
+ return prop.checkbox;
52
+ }
53
+ return false;
54
+ }
49
55
  //# sourceMappingURL=props.js.map
@@ -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,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerComplete(program: Command): void;
3
+ //# sourceMappingURL=complete.d.ts.map
@@ -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":"AAEA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEtG,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CACV,kEAAkE;UAChE,wCAAwC;UACxC,iCAAiC;UACjC,oEAAoE;UACpE,gDAAgD;UAChD,sEAAsE;UACtE,yCAAyC;UACzC,mEAAmE;UACnE,cAAc;UACd,yDAAyD,CAC5D;SACA,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAqB,CAAC,IAAI,CAAA;QACnD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;QAE7B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;QACzD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAA;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,MAAM,KAAK,GAAI,IAA2B,CAAC,UAAU,CAAA;QAErD,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;QAEpD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,GAAG,CAAC,CAAA;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAA;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,0BAA0B,IAAI,GAAG,CAAC,CAAA;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;QACnD,SAAS,OAAO,CAAC,IAAU,EAAE,MAAc,EAAE,IAAY;YACvD,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,KAAK;oBACR,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBAC9B,KAAK,OAAO;oBACV,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBAChC,KAAK,MAAM;oBACT,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBAC/B;oBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QAE3C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAEhD,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,EAAE;YACX,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;aACqB;SAC7D,CAAC,CAAA;QAEF,IAAI,IAAI,EAAE,CAAC;YACT,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC7E,CAAC;aACI,CAAC;YACJ,WAAW,CACT,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,CAAC,EAClD,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACpD,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerList(program: Command): void;
3
+ //# sourceMappingURL=list.d.ts.map
@@ -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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export { extractCheckbox, extractDate, extractNumber, extractSelect, extractTitle } from '../bookkeeping/props.js';
2
+ //# sourceMappingURL=props.d.ts.map
@@ -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,2 @@
1
+ export { extractCheckbox, extractDate, extractNumber, extractSelect, extractTitle } from '../bookkeeping/props.js';
2
+ //# sourceMappingURL=props.js.map
@@ -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.18",
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"