@equt/clis 0.1.18 → 0.1.19

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.
@@ -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"}
@@ -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,5 @@
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 queryAll(client: Client, params: QueryDataSourceParameters, limit?: number): Promise<PageObjectResponse[]>;
5
+ //# 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,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,33 @@
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 queryAll(client, params, limit) {
12
+ const results = [];
13
+ let cursor;
14
+ while (true) {
15
+ const response = await client.dataSources.query({
16
+ ...params,
17
+ start_cursor: cursor,
18
+ });
19
+ for (const page of response.results) {
20
+ if (page.object === 'page' && 'properties' in page) {
21
+ results.push(page);
22
+ if (limit !== undefined && results.length >= limit) {
23
+ return results;
24
+ }
25
+ }
26
+ }
27
+ if (!response.has_more || response.next_cursor === null)
28
+ break;
29
+ cursor = response.next_cursor;
30
+ }
31
+ return results;
32
+ }
33
+ //# 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,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":"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"}
@@ -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.19",
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"