notion-cli-agent
Advanced tools
| /** | ||
| * Command error handler — wraps async command actions with standard error handling. | ||
| * | ||
| * Replaces the 37 identical try/catch blocks across command files: | ||
| * try { ... } catch (error) { console.error('Error:', (error as Error).message); process.exit(1); } | ||
| */ | ||
| export declare function withErrorHandler(fn: (...args: any[]) => Promise<void>): (...args: any[]) => Promise<void>; | ||
| //# sourceMappingURL=command-handler.d.ts.map |
| {"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../src/utils/command-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAUzG"} |
| /** | ||
| * Command error handler — wraps async command actions with standard error handling. | ||
| * | ||
| * Replaces the 37 identical try/catch blocks across command files: | ||
| * try { ... } catch (error) { console.error('Error:', (error as Error).message); process.exit(1); } | ||
| */ | ||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
| export function withErrorHandler(fn) { | ||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
| return async (...args) => { | ||
| try { | ||
| await fn(...args); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }; | ||
| } | ||
| //# sourceMappingURL=command-handler.js.map |
| {"version":3,"file":"command-handler.js","sourceRoot":"","sources":["../../src/utils/command-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8DAA8D;AAC9D,MAAM,UAAU,gBAAgB,CAAC,EAAqC;IACpE,8DAA8D;IAC9D,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"} |
| /** | ||
| * Database Resolver — routes database operations to /v1/data_sources/ | ||
| * | ||
| * Since API version 2025-09-03, database properties (schema) live on | ||
| * data_source objects, not database objects. This module discovers the | ||
| * data_source_id for a database and routes all schema/query/update | ||
| * operations to the correct /v1/data_sources/ endpoint. | ||
| * | ||
| * Design: This module is the ONLY place that knows about endpoint routing. | ||
| * Command files call getDatabaseSchema(), queryDatabase(), etc. and never | ||
| * construct database/data_source paths themselves. | ||
| */ | ||
| import type { NotionClient } from '../client.js'; | ||
| import type { Database, Page } from '../types/notion.js'; | ||
| export interface ResolvedDatabase { | ||
| type: 'data_source'; | ||
| databaseId: string; | ||
| dataSourceId: string; | ||
| schemaPath: string; | ||
| queryPath: string; | ||
| updatePath: string; | ||
| schema: Database; | ||
| } | ||
| export interface ResolverOptions { | ||
| dataSourceId?: string; | ||
| } | ||
| export interface QueryAllOptions extends ResolverOptions { | ||
| filter?: Record<string, unknown>; | ||
| sorts?: Record<string, unknown>[]; | ||
| pageSize?: number; | ||
| limit?: number; | ||
| onProgress?: (fetched: number) => void; | ||
| } | ||
| /** | ||
| * Set the global data-source-id fallback from CLI's --data-source-id option. | ||
| * Called once from cli.ts preAction hook. Commands don't need to thread | ||
| * this option — the resolver picks it up automatically. | ||
| */ | ||
| export declare function setGlobalDataSourceId(id?: string): void; | ||
| export declare function clearResolverCache(): void; | ||
| /** | ||
| * Resolve a database ID to the correct API endpoints. | ||
| * | ||
| * Resolution strategy: | ||
| * 1. If explicit dataSourceId is provided, fetch that data_source directly | ||
| * 2. Otherwise, GET /databases/{id} to discover data_sources, then fetch schema | ||
| * 3. Cache the result for the lifetime of the process | ||
| */ | ||
| export declare function resolveDatabase(client: NotionClient, databaseId: string, dataSourceId?: string): Promise<ResolvedDatabase>; | ||
| /** | ||
| * Get the schema (properties, title, etc.) for a database. | ||
| * Discovers the data_source automatically. | ||
| */ | ||
| export declare function getDatabaseSchema(client: NotionClient, databaseId: string, opts?: ResolverOptions): Promise<Database>; | ||
| /** | ||
| * Query a database. Resolves endpoint automatically. | ||
| */ | ||
| export declare function queryDatabase<T = unknown>(client: NotionClient, databaseId: string, body?: Record<string, unknown>, opts?: ResolverOptions): Promise<T>; | ||
| /** | ||
| * Query using an already-resolved database (avoids re-resolution). | ||
| * Useful in loops/pagination where resolution already happened. | ||
| */ | ||
| export declare function queryDatabaseDirect<T = unknown>(client: NotionClient, resolved: ResolvedDatabase, body?: Record<string, unknown>): Promise<T>; | ||
| /** | ||
| * Update a database schema. Resolves endpoint automatically. | ||
| */ | ||
| export declare function updateDatabase<T = unknown>(client: NotionClient, databaseId: string, body: Record<string, unknown>, opts?: ResolverOptions): Promise<T>; | ||
| /** | ||
| * Fetch all pages from a database, handling pagination automatically. | ||
| */ | ||
| export declare function queryAllPages(client: NotionClient, databaseId: string, opts?: QueryAllOptions): Promise<Page[]>; | ||
| //# sourceMappingURL=database-resolver.d.ts.map |
| {"version":3,"file":"database-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/database-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAqB,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAI5E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAEvD;AAcD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAgED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAe3B;AAYD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,CAAC,GAAG,OAAO,EAC7C,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAClC,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC,CAAC,CAAC,CAGZ;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,GAAG,OAAO,EACnD,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,CAAC,GAAG,OAAO,EAC9C,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC,CAAC,CAAC,CAGZ;AAID;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,IAAI,EAAE,CAAC,CA6BjB"} |
| /** | ||
| * Database Resolver — routes database operations to /v1/data_sources/ | ||
| * | ||
| * Since API version 2025-09-03, database properties (schema) live on | ||
| * data_source objects, not database objects. This module discovers the | ||
| * data_source_id for a database and routes all schema/query/update | ||
| * operations to the correct /v1/data_sources/ endpoint. | ||
| * | ||
| * Design: This module is the ONLY place that knows about endpoint routing. | ||
| * Command files call getDatabaseSchema(), queryDatabase(), etc. and never | ||
| * construct database/data_source paths themselves. | ||
| */ | ||
| // ─── Global data-source-id fallback ───────────────────────────────────────── | ||
| let globalDataSourceId; | ||
| /** | ||
| * Set the global data-source-id fallback from CLI's --data-source-id option. | ||
| * Called once from cli.ts preAction hook. Commands don't need to thread | ||
| * this option — the resolver picks it up automatically. | ||
| */ | ||
| export function setGlobalDataSourceId(id) { | ||
| globalDataSourceId = id; | ||
| } | ||
| function effectiveDataSourceId(explicit) { | ||
| return explicit ?? globalDataSourceId; | ||
| } | ||
| // ─── Cache ────────────────────────────────────────────────────────────────── | ||
| const cache = new Map(); | ||
| function cacheKey(databaseId, dataSourceId) { | ||
| return dataSourceId ? `${databaseId}::${dataSourceId}` : databaseId; | ||
| } | ||
| export function clearResolverCache() { | ||
| cache.clear(); | ||
| } | ||
| // ─── Core resolution ──────────────────────────────────────────────────────── | ||
| function buildPaths(dataSourceId) { | ||
| return { | ||
| schemaPath: `data_sources/${dataSourceId}`, | ||
| queryPath: `data_sources/${dataSourceId}/query`, | ||
| updatePath: `data_sources/${dataSourceId}`, | ||
| }; | ||
| } | ||
| /** | ||
| * Discover the data_source_id for a database. | ||
| * On API v2025-09-03, GET /databases/{id} returns a data_sources array | ||
| * instead of properties. We pick the first (or only) data source. | ||
| * If multiple exist, the user must specify --data-source-id explicitly. | ||
| */ | ||
| async function discoverDataSourceId(client, databaseId) { | ||
| const db = await client.get(`databases/${databaseId}`); | ||
| const sources = db.data_sources; | ||
| if (!sources || sources.length === 0) { | ||
| throw new Error(`Database ${databaseId} has no data sources. Use --data-source-id to specify one.`); | ||
| } | ||
| if (sources.length > 1) { | ||
| const list = sources.map(s => ` - ${s.id} (${s.name})`).join('\n'); | ||
| throw new Error(`Database ${databaseId} has ${sources.length} data sources:\n${list}\n` + | ||
| `Use --data-source-id <id> to specify which one.`); | ||
| } | ||
| return sources[0].id; | ||
| } | ||
| /** | ||
| * Fetch the data_source schema and build a ResolvedDatabase. | ||
| */ | ||
| async function fetchDataSource(client, databaseId, dataSourceId) { | ||
| const ds = await client.get(`data_sources/${dataSourceId}`); | ||
| return { | ||
| type: 'data_source', | ||
| databaseId, | ||
| dataSourceId, | ||
| ...buildPaths(dataSourceId), | ||
| schema: normalizeToDatabase(ds, dataSourceId), | ||
| }; | ||
| } | ||
| /** | ||
| * Resolve a database ID to the correct API endpoints. | ||
| * | ||
| * Resolution strategy: | ||
| * 1. If explicit dataSourceId is provided, fetch that data_source directly | ||
| * 2. Otherwise, GET /databases/{id} to discover data_sources, then fetch schema | ||
| * 3. Cache the result for the lifetime of the process | ||
| */ | ||
| export function resolveDatabase(client, databaseId, dataSourceId) { | ||
| const key = cacheKey(databaseId, dataSourceId); | ||
| if (!cache.has(key)) { | ||
| const promise = dataSourceId | ||
| ? fetchDataSource(client, databaseId, dataSourceId) | ||
| : discoverAndResolve(client, databaseId); | ||
| cache.set(key, promise); | ||
| // Remove from cache on failure so retries work | ||
| promise.catch(() => cache.delete(key)); | ||
| } | ||
| return cache.get(key); | ||
| } | ||
| async function discoverAndResolve(client, databaseId) { | ||
| const dataSourceId = await discoverDataSourceId(client, databaseId); | ||
| return fetchDataSource(client, databaseId, dataSourceId); | ||
| } | ||
| // ─── High-level helpers ───────────────────────────────────────────────────── | ||
| /** | ||
| * Get the schema (properties, title, etc.) for a database. | ||
| * Discovers the data_source automatically. | ||
| */ | ||
| export async function getDatabaseSchema(client, databaseId, opts) { | ||
| const resolved = await resolveDatabase(client, databaseId, effectiveDataSourceId(opts?.dataSourceId)); | ||
| return resolved.schema; | ||
| } | ||
| /** | ||
| * Query a database. Resolves endpoint automatically. | ||
| */ | ||
| export async function queryDatabase(client, databaseId, body = {}, opts) { | ||
| const resolved = await resolveDatabase(client, databaseId, effectiveDataSourceId(opts?.dataSourceId)); | ||
| return client.post(resolved.queryPath, body); | ||
| } | ||
| /** | ||
| * Query using an already-resolved database (avoids re-resolution). | ||
| * Useful in loops/pagination where resolution already happened. | ||
| */ | ||
| export async function queryDatabaseDirect(client, resolved, body = {}) { | ||
| return client.post(resolved.queryPath, body); | ||
| } | ||
| /** | ||
| * Update a database schema. Resolves endpoint automatically. | ||
| */ | ||
| export async function updateDatabase(client, databaseId, body, opts) { | ||
| const resolved = await resolveDatabase(client, databaseId, effectiveDataSourceId(opts?.dataSourceId)); | ||
| return client.patch(resolved.updatePath, body); | ||
| } | ||
| // ─── Pagination helper ────────────────────────────────────────────────────── | ||
| /** | ||
| * Fetch all pages from a database, handling pagination automatically. | ||
| */ | ||
| export async function queryAllPages(client, databaseId, opts = {}) { | ||
| const resolved = await resolveDatabase(client, databaseId, effectiveDataSourceId(opts.dataSourceId)); | ||
| const pages = []; | ||
| let cursor; | ||
| do { | ||
| const body = { | ||
| page_size: opts.pageSize ?? 100, | ||
| }; | ||
| if (opts.filter) | ||
| body.filter = opts.filter; | ||
| if (opts.sorts) | ||
| body.sorts = opts.sorts; | ||
| if (cursor) | ||
| body.start_cursor = cursor; | ||
| const result = await queryDatabaseDirect(client, resolved, body); | ||
| pages.push(...result.results); | ||
| cursor = result.has_more ? result.next_cursor : undefined; | ||
| opts.onProgress?.(pages.length); | ||
| if (opts.limit && pages.length >= opts.limit) { | ||
| pages.splice(opts.limit); | ||
| break; | ||
| } | ||
| } while (cursor); | ||
| return pages; | ||
| } | ||
| // ─── Normalization ────────────────────────────────────────────────────────── | ||
| /** | ||
| * Normalize a data_source API response to the Database shape | ||
| * that all command files expect. | ||
| */ | ||
| function normalizeToDatabase(ds, id) { | ||
| return { | ||
| object: 'database', | ||
| id: ds.id || id, | ||
| title: ds.title, | ||
| description: ds.description, | ||
| url: ds.url, | ||
| properties: ds.properties || {}, | ||
| }; | ||
| } | ||
| //# sourceMappingURL=database-resolver.js.map |
| {"version":3,"file":"database-resolver.js","sourceRoot":"","sources":["../../src/utils/database-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA6BH,+EAA+E;AAE/E,IAAI,kBAAsC,CAAC;AAE3C;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAW;IAC/C,kBAAkB,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAiB;IAC9C,OAAO,QAAQ,IAAI,kBAAkB,CAAC;AACxC,CAAC;AAED,+EAA+E;AAE/E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqC,CAAC;AAE3D,SAAS,QAAQ,CAAC,UAAkB,EAAE,YAAqB;IACzD,OAAO,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU,KAAK,YAAY,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED,+EAA+E;AAE/E,SAAS,UAAU,CAAC,YAAoB;IACtC,OAAO;QACL,UAAU,EAAE,gBAAgB,YAAY,EAAE;QAC1C,SAAS,EAAE,gBAAgB,YAAY,QAAQ;QAC/C,UAAU,EAAE,gBAAgB,YAAY,EAAE;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,oBAAoB,CACjC,MAAoB,EACpB,UAAkB;IAElB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CACzB,aAAa,UAAU,EAAE,CAC1B,CAAC;IAEF,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC;IAChC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,YAAY,UAAU,4DAA4D,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,IAAI,KAAK,CACb,YAAY,UAAU,QAAQ,OAAO,CAAC,MAAM,mBAAmB,IAAI,IAAI;YACvE,iDAAiD,CAClD,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,MAAoB,EACpB,UAAkB,EAClB,YAAoB;IAEpB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CACzB,gBAAgB,YAAY,EAAE,CAC/B,CAAC;IACF,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,UAAU;QACV,YAAY;QACZ,GAAG,UAAU,CAAC,YAAY,CAAC;QAC3B,MAAM,EAAE,mBAAmB,CAAC,EAAE,EAAE,YAAY,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAoB,EACpB,UAAkB,EAClB,YAAqB;IAErB,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAE/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,YAAY;YAC1B,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC;YACnD,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE3C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAExB,+CAA+C;QAC/C,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,MAAoB,EACpB,UAAkB;IAElB,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpE,OAAO,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAC3D,CAAC;AAED,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAoB,EACpB,UAAkB,EAClB,IAAsB;IAEtB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IACtG,OAAO,QAAQ,CAAC,MAAM,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAoB,EACpB,UAAkB,EAClB,OAAgC,EAAE,EAClC,IAAsB;IAEtB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IACtG,OAAO,MAAM,CAAC,IAAI,CAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAoB,EACpB,QAA0B,EAC1B,OAAgC,EAAE;IAElC,OAAO,MAAM,CAAC,IAAI,CAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAoB,EACpB,UAAkB,EAClB,IAA6B,EAC7B,IAAsB;IAEtB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IACtG,OAAO,MAAM,CAAC,KAAK,CAAI,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAoB,EACpB,UAAkB,EAClB,OAAwB,EAAE;IAE1B,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACrG,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,IAAI,MAA0B,CAAC;IAE/B,GAAG,CAAC;QACF,MAAM,IAAI,GAA4B;YACpC,SAAS,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG;SAChC,CAAC;QACF,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3C,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,MAAM;YAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAEvC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,MAAM,EAAE,QAAQ,EAAE,IAAI,CACvB,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAE1D,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC7C,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM;QACR,CAAC;IACH,CAAC,QAAQ,MAAM,EAAE;IAEjB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,EAA2B,EAC3B,EAAU;IAEV,OAAO;QACL,MAAM,EAAE,UAAmB;QAC3B,EAAE,EAAG,EAAE,CAAC,EAAa,IAAI,EAAE;QAC3B,KAAK,EAAE,EAAE,CAAC,KAA0B;QACpC,WAAW,EAAE,EAAE,CAAC,WAAsC;QACtD,GAAG,EAAE,EAAE,CAAC,GAAyB;QACjC,UAAU,EAAG,EAAE,CAAC,UAAqC,IAAI,EAAE;KAC5D,CAAC;AACJ,CAAC"} |
+7
-1
@@ -18,4 +18,8 @@ #!/usr/bin/env node | ||
| */ | ||
| import { createRequire } from 'node:module'; | ||
| import { Command } from 'commander'; | ||
| import { initClient } from './client.js'; | ||
| import { setGlobalDataSourceId } from './utils/database-resolver.js'; | ||
| const require = createRequire(import.meta.url); | ||
| const { version } = require('../package.json'); | ||
| import { registerSearchCommand } from './commands/search.js'; | ||
@@ -45,4 +49,5 @@ import { registerPagesCommand } from './commands/pages.js'; | ||
| .description('Full-featured CLI for Notion API - built for humans AND AI agents\n\n 💡 AI Agents: Run "notion quickstart" for a complete quick reference guide') | ||
| .version('0.4.2') | ||
| .version(version) | ||
| .option('--token <token>', 'Notion API token (or set NOTION_TOKEN env var)') | ||
| .option('--data-source-id <id>', 'Explicit data source ID for multi-data-source databases') | ||
| .hook('preAction', (thisCommand) => { | ||
@@ -52,2 +57,3 @@ const opts = thisCommand.opts(); | ||
| initClient(opts.token); | ||
| setGlobalDataSourceId(opts.dataSourceId); | ||
| } | ||
@@ -54,0 +60,0 @@ catch (error) { |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"} |
+1
-0
@@ -15,2 +15,3 @@ /** | ||
| query?: Record<string, string | number | boolean | undefined>; | ||
| version?: string; | ||
| } | ||
@@ -17,0 +18,0 @@ export declare class NotionClient { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;CAC/D;AA2BD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAc;gBAErB,OAAO,EAAE,mBAAmB;IAOlC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAsFlF,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3E,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3G,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3E,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAG9C;AAKD,wBAAgB,SAAS,IAAI,YAAY,CAKxC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAuBrC;AAED,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,CAIvD"} | ||
| {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA2BD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAc;gBAErB,OAAO,EAAE,mBAAmB;IAOlC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAsFlF,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3E,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3G,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3E,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAG9C;AAKD,wBAAgB,SAAS,IAAI,YAAY,CAKxC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAuBrC;AAED,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,CAIvD"} |
+3
-3
@@ -9,3 +9,3 @@ /** | ||
| const NOTION_API_BASE = 'https://api.notion.com/v1'; | ||
| const NOTION_VERSION = '2022-06-28'; // Stable version | ||
| const NOTION_VERSION = '2026-03-11'; | ||
| const DEFAULT_MAX_RETRIES = 3; | ||
@@ -46,3 +46,3 @@ const DEFAULT_REQUESTS_PER_SECOND = 3; | ||
| async request(path, options = {}) { | ||
| const { method = 'GET', body, query } = options; | ||
| const { method = 'GET', body, query, version } = options; | ||
| let url = `${NOTION_API_BASE}/${path}`; | ||
@@ -63,3 +63,3 @@ if (query) { | ||
| 'Authorization': `Bearer ${this.token}`, | ||
| 'Notion-Version': this.version, | ||
| 'Notion-Version': version || this.version, | ||
| 'Content-Type': 'application/json', | ||
@@ -66,0 +66,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyDpC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkaxD"} | ||
| {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2DpC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0YxD"} |
+285
-307
| import { getClient } from '../client.js'; | ||
| import { fetchAllBlocks, getPageTitle, getDbTitle, getDbDescription, getPropertyValue } from '../utils/notion-helpers.js'; | ||
| import { getDatabaseSchema, queryDatabase } from '../utils/database-resolver.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| // Extract text from blocks | ||
@@ -61,74 +63,68 @@ function extractBlockText(block) { | ||
| .option('-j, --json', 'Output as JSON') | ||
| .action(async (pageId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get page | ||
| const page = await client.get(`pages/${pageId}`); | ||
| const title = getPageTitle(page); | ||
| // Get blocks | ||
| const blocks = await fetchAllBlocks(client, pageId); | ||
| // Extract key info from properties | ||
| const keyProps = {}; | ||
| for (const [name, value] of Object.entries(page.properties)) { | ||
| const val = getPropertyValue(value); | ||
| if (val && !['title'].includes(value.type)) { | ||
| keyProps[name] = val; | ||
| } | ||
| .action(withErrorHandler(async (pageId, options) => { | ||
| const client = getClient(); | ||
| // Get page | ||
| const page = await client.get(`pages/${pageId}`); | ||
| const title = getPageTitle(page); | ||
| // Get blocks | ||
| const blocks = await fetchAllBlocks(client, pageId); | ||
| // Extract key info from properties | ||
| const keyProps = {}; | ||
| for (const [name, value] of Object.entries(page.properties)) { | ||
| const val = getPropertyValue(value); | ||
| if (val && !['title'].includes(value.type)) { | ||
| keyProps[name] = val; | ||
| } | ||
| // Extract content summary | ||
| const contentLines = blocks | ||
| .map(b => extractBlockText(b)) | ||
| .filter(t => t.trim()) | ||
| .slice(0, parseInt(options.maxLines, 10)); | ||
| // Identify key elements | ||
| const headings = contentLines.filter(l => l.startsWith('#')); | ||
| const todos = contentLines.filter(l => l.startsWith('○') || l.startsWith('✓')); | ||
| const completedTodos = todos.filter(l => l.startsWith('✓')).length; | ||
| const pendingTodos = todos.filter(l => l.startsWith('○')).length; | ||
| // Build summary | ||
| const summary = { | ||
| title, | ||
| id: page.id, | ||
| url: page.url, | ||
| lastEdited: timeSince(page.last_edited_time), | ||
| properties: keyProps, | ||
| structure: { | ||
| totalBlocks: blocks.length, | ||
| headings: headings.length, | ||
| todos: { completed: completedTodos, pending: pendingTodos }, | ||
| }, | ||
| sections: headings.slice(0, 5).map(h => h.replace(/^#+\s*/, '')), | ||
| preview: contentLines.slice(0, 10).join('\n'), | ||
| }; | ||
| if (options.json) { | ||
| console.log(JSON.stringify(summary, null, 2)); | ||
| return; | ||
| } | ||
| // Extract content summary | ||
| const contentLines = blocks | ||
| .map(b => extractBlockText(b)) | ||
| .filter(t => t.trim()) | ||
| .slice(0, parseInt(options.maxLines, 10)); | ||
| // Identify key elements | ||
| const headings = contentLines.filter(l => l.startsWith('#')); | ||
| const todos = contentLines.filter(l => l.startsWith('○') || l.startsWith('✓')); | ||
| const completedTodos = todos.filter(l => l.startsWith('✓')).length; | ||
| const pendingTodos = todos.filter(l => l.startsWith('○')).length; | ||
| // Build summary | ||
| const summary = { | ||
| title, | ||
| id: page.id, | ||
| url: page.url, | ||
| lastEdited: timeSince(page.last_edited_time), | ||
| properties: keyProps, | ||
| structure: { | ||
| totalBlocks: blocks.length, | ||
| headings: headings.length, | ||
| todos: { completed: completedTodos, pending: pendingTodos }, | ||
| }, | ||
| sections: headings.slice(0, 5).map(h => h.replace(/^#+\s*/, '')), | ||
| preview: contentLines.slice(0, 10).join('\n'), | ||
| }; | ||
| if (options.json) { | ||
| console.log(JSON.stringify(summary, null, 2)); | ||
| return; | ||
| } | ||
| // Human-readable output | ||
| console.log(`# ${title}\n`); | ||
| console.log(`**Last edited:** ${summary.lastEdited}`); | ||
| console.log(`**Blocks:** ${blocks.length}`); | ||
| if (Object.keys(keyProps).length > 0) { | ||
| console.log('\n**Properties:**'); | ||
| for (const [k, v] of Object.entries(keyProps)) { | ||
| console.log(` - ${k}: ${v}`); | ||
| } | ||
| // Human-readable output | ||
| console.log(`# ${title}\n`); | ||
| console.log(`**Last edited:** ${summary.lastEdited}`); | ||
| console.log(`**Blocks:** ${blocks.length}`); | ||
| if (Object.keys(keyProps).length > 0) { | ||
| console.log('\n**Properties:**'); | ||
| for (const [k, v] of Object.entries(keyProps)) { | ||
| console.log(` - ${k}: ${v}`); | ||
| } | ||
| } | ||
| if (pendingTodos > 0 || completedTodos > 0) { | ||
| console.log(`\n**Todos:** ${completedTodos}/${completedTodos + pendingTodos} completed`); | ||
| } | ||
| if (headings.length > 0) { | ||
| console.log('\n**Sections:**'); | ||
| headings.slice(0, 5).forEach(h => { | ||
| console.log(` ${h}`); | ||
| }); | ||
| } | ||
| console.log('\n**Preview:**'); | ||
| console.log(contentLines.slice(0, 5).map(l => ` ${l}`).join('\n')); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| if (pendingTodos > 0 || completedTodos > 0) { | ||
| console.log(`\n**Todos:** ${completedTodos}/${completedTodos + pendingTodos} completed`); | ||
| } | ||
| }); | ||
| if (headings.length > 0) { | ||
| console.log('\n**Sections:**'); | ||
| headings.slice(0, 5).forEach(h => { | ||
| console.log(` ${h}`); | ||
| }); | ||
| } | ||
| console.log('\n**Preview:**'); | ||
| console.log(contentLines.slice(0, 5).map(l => ` ${l}`).join('\n')); | ||
| })); | ||
| // Extract structured data | ||
@@ -140,72 +136,66 @@ ai | ||
| .option('--from-props', 'Extract from properties only (faster)') | ||
| .action(async (pageId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const fields = options.schema.split(',').map((f) => f.trim().toLowerCase()); | ||
| // Get page | ||
| const page = await client.get(`pages/${pageId}`); | ||
| const extracted = {}; | ||
| // Initialize all fields as null | ||
| .action(withErrorHandler(async (pageId, options) => { | ||
| const client = getClient(); | ||
| const fields = options.schema.split(',').map((f) => f.trim().toLowerCase()); | ||
| // Get page | ||
| const page = await client.get(`pages/${pageId}`); | ||
| const extracted = {}; | ||
| // Initialize all fields as null | ||
| for (const field of fields) { | ||
| extracted[field] = null; | ||
| } | ||
| // Extract from properties | ||
| for (const [name, value] of Object.entries(page.properties)) { | ||
| const normalizedName = name.toLowerCase(); | ||
| for (const field of fields) { | ||
| extracted[field] = null; | ||
| } | ||
| // Extract from properties | ||
| for (const [name, value] of Object.entries(page.properties)) { | ||
| const normalizedName = name.toLowerCase(); | ||
| for (const field of fields) { | ||
| if (normalizedName.includes(field) || field.includes(normalizedName)) { | ||
| const val = getPropertyValue(value); | ||
| if (val) { | ||
| extracted[field] = val; | ||
| } | ||
| if (normalizedName.includes(field) || field.includes(normalizedName)) { | ||
| const val = getPropertyValue(value); | ||
| if (val) { | ||
| extracted[field] = val; | ||
| } | ||
| } | ||
| } | ||
| // Extract from content if needed | ||
| if (!options.fromProps) { | ||
| const blocks = await fetchAllBlocks(client, pageId); | ||
| const content = blocks.map(b => extractBlockText(b)).join('\n').toLowerCase(); | ||
| // Simple pattern matching for common fields | ||
| for (const field of fields) { | ||
| if (extracted[field]) | ||
| continue; // Already found | ||
| // Email pattern | ||
| if (field.includes('email') || field.includes('correo')) { | ||
| const emailMatch = content.match(/[\w.-]+@[\w.-]+\.\w+/); | ||
| if (emailMatch) | ||
| extracted[field] = emailMatch[0]; | ||
| } | ||
| // Phone pattern | ||
| if (field.includes('phone') || field.includes('tel') || field.includes('móvil')) { | ||
| const phoneMatch = content.match(/[\d\s\-+()]{9,}/); | ||
| if (phoneMatch) | ||
| extracted[field] = phoneMatch[0].trim(); | ||
| } | ||
| // URL pattern | ||
| if (field.includes('url') || field.includes('web') || field.includes('link')) { | ||
| const urlMatch = content.match(/https?:\/\/[\w.-]+[^\s]*/); | ||
| if (urlMatch) | ||
| extracted[field] = urlMatch[0]; | ||
| } | ||
| // Date patterns | ||
| if (field.includes('date') || field.includes('fecha')) { | ||
| const dateMatch = content.match(/\d{4}-\d{2}-\d{2}|\d{1,2}\/\d{1,2}\/\d{2,4}/); | ||
| if (dateMatch) | ||
| extracted[field] = dateMatch[0]; | ||
| } | ||
| // Amount/price patterns | ||
| if (field.includes('price') || field.includes('precio') || field.includes('amount') || field.includes('importe')) { | ||
| const priceMatch = content.match(/[\d.,]+\s*€|€\s*[\d.,]+|\$\s*[\d.,]+|[\d.,]+\s*eur/i); | ||
| if (priceMatch) | ||
| extracted[field] = priceMatch[0]; | ||
| } | ||
| } | ||
| // Extract from content if needed | ||
| if (!options.fromProps) { | ||
| const blocks = await fetchAllBlocks(client, pageId); | ||
| const content = blocks.map(b => extractBlockText(b)).join('\n').toLowerCase(); | ||
| // Simple pattern matching for common fields | ||
| for (const field of fields) { | ||
| if (extracted[field]) | ||
| continue; // Already found | ||
| // Email pattern | ||
| if (field.includes('email') || field.includes('correo')) { | ||
| const emailMatch = content.match(/[\w.-]+@[\w.-]+\.\w+/); | ||
| if (emailMatch) | ||
| extracted[field] = emailMatch[0]; | ||
| } | ||
| // Phone pattern | ||
| if (field.includes('phone') || field.includes('tel') || field.includes('móvil')) { | ||
| const phoneMatch = content.match(/[\d\s\-+()]{9,}/); | ||
| if (phoneMatch) | ||
| extracted[field] = phoneMatch[0].trim(); | ||
| } | ||
| // URL pattern | ||
| if (field.includes('url') || field.includes('web') || field.includes('link')) { | ||
| const urlMatch = content.match(/https?:\/\/[\w.-]+[^\s]*/); | ||
| if (urlMatch) | ||
| extracted[field] = urlMatch[0]; | ||
| } | ||
| // Date patterns | ||
| if (field.includes('date') || field.includes('fecha')) { | ||
| const dateMatch = content.match(/\d{4}-\d{2}-\d{2}|\d{1,2}\/\d{1,2}\/\d{2,4}/); | ||
| if (dateMatch) | ||
| extracted[field] = dateMatch[0]; | ||
| } | ||
| // Amount/price patterns | ||
| if (field.includes('price') || field.includes('precio') || field.includes('amount') || field.includes('importe')) { | ||
| const priceMatch = content.match(/[\d.,]+\s*€|€\s*[\d.,]+|\$\s*[\d.,]+|[\d.,]+\s*eur/i); | ||
| if (priceMatch) | ||
| extracted[field] = priceMatch[0]; | ||
| } | ||
| } | ||
| console.log(JSON.stringify(extracted, null, 2)); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| console.log(JSON.stringify(extracted, null, 2)); | ||
| })); | ||
| // Generate agent prompt | ||
@@ -217,197 +207,185 @@ ai | ||
| .option('--examples <number>', 'Number of example entries', '2') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get database | ||
| const db = await client.get(`databases/${databaseId}`); | ||
| const title = getDbTitle(db); | ||
| const description = getDbDescription(db); | ||
| // Get example entries | ||
| const examples = await client.post(`databases/${databaseId}/query`, { | ||
| page_size: parseInt(options.examples, 10), | ||
| }); | ||
| // Analyze property usage | ||
| const propInfo = {}; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| const info = { | ||
| type: schema.type, | ||
| examples: [], | ||
| }; | ||
| // Get options for select/status | ||
| if (schema.type === 'select') { | ||
| const opts = schema.select?.options || []; | ||
| info.options = opts.map(o => o.name); | ||
| } | ||
| else if (schema.type === 'multi_select') { | ||
| const opts = schema.multi_select?.options || []; | ||
| info.options = opts.map(o => o.name); | ||
| } | ||
| else if (schema.type === 'status') { | ||
| const opts = schema.status?.options || []; | ||
| info.options = opts.map(o => o.name); | ||
| } | ||
| // Get example values from entries | ||
| for (const entry of examples.results) { | ||
| const prop = entry.properties[name]; | ||
| if (prop) { | ||
| const val = getPropertyValue(prop); | ||
| if (val && !info.examples.includes(val)) { | ||
| info.examples.push(val); | ||
| } | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| // Get database | ||
| const db = await getDatabaseSchema(client, databaseId); | ||
| const title = getDbTitle(db); | ||
| const description = getDbDescription(db); | ||
| // Get example entries | ||
| const examples = await queryDatabase(client, databaseId, { | ||
| page_size: parseInt(options.examples, 10), | ||
| }); | ||
| // Analyze property usage | ||
| const propInfo = {}; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| const info = { | ||
| type: schema.type, | ||
| examples: [], | ||
| }; | ||
| // Get options for select/status | ||
| if (schema.type === 'select') { | ||
| const opts = schema.select?.options || []; | ||
| info.options = opts.map(o => o.name); | ||
| } | ||
| else if (schema.type === 'multi_select') { | ||
| const opts = schema.multi_select?.options || []; | ||
| info.options = opts.map(o => o.name); | ||
| } | ||
| else if (schema.type === 'status') { | ||
| const opts = schema.status?.options || []; | ||
| info.options = opts.map(o => o.name); | ||
| } | ||
| // Get example values from entries | ||
| for (const entry of examples.results) { | ||
| const prop = entry.properties[name]; | ||
| if (prop) { | ||
| const val = getPropertyValue(prop); | ||
| if (val && !info.examples.includes(val)) { | ||
| info.examples.push(val); | ||
| } | ||
| } | ||
| propInfo[name] = info; | ||
| } | ||
| // Find title property | ||
| let titleProp = 'Name'; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'title') { | ||
| titleProp = name; | ||
| break; | ||
| } | ||
| propInfo[name] = info; | ||
| } | ||
| // Find title property | ||
| let titleProp = 'Name'; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'title') { | ||
| titleProp = name; | ||
| break; | ||
| } | ||
| // Generate prompt | ||
| console.log(`# Working with Notion Database: "${title}"\n`); | ||
| if (description) { | ||
| console.log(`> ${description}\n`); | ||
| } | ||
| // Generate prompt | ||
| console.log(`# Working with Notion Database: "${title}"\n`); | ||
| if (description) { | ||
| console.log(`> ${description}\n`); | ||
| } | ||
| console.log(`**Database ID:** \`${databaseId}\`\n`); | ||
| console.log('## Properties\n'); | ||
| for (const [name, info] of Object.entries(propInfo)) { | ||
| console.log(`### ${name} (${info.type})`); | ||
| if (info.options && info.options.length > 0) { | ||
| console.log(`**Valid values:** ${info.options.map(o => `"${o}"`).join(', ')}`); | ||
| console.log(`⚠️ Use EXACTLY these values, not translations or variations.`); | ||
| } | ||
| console.log(`**Database ID:** \`${databaseId}\`\n`); | ||
| console.log('## Properties\n'); | ||
| for (const [name, info] of Object.entries(propInfo)) { | ||
| console.log(`### ${name} (${info.type})`); | ||
| if (info.options && info.options.length > 0) { | ||
| console.log(`**Valid values:** ${info.options.map(o => `"${o}"`).join(', ')}`); | ||
| console.log(`⚠️ Use EXACTLY these values, not translations or variations.`); | ||
| } | ||
| if (info.examples.length > 0) { | ||
| console.log(`**Examples:** ${info.examples.slice(0, 3).join(', ')}`); | ||
| } | ||
| console.log(''); | ||
| if (info.examples.length > 0) { | ||
| console.log(`**Examples:** ${info.examples.slice(0, 3).join(', ')}`); | ||
| } | ||
| console.log('## Common Operations\n'); | ||
| console.log('### Search entries'); | ||
| console.log(''); | ||
| } | ||
| console.log('## Common Operations\n'); | ||
| console.log('### Search entries'); | ||
| console.log('```bash'); | ||
| console.log(`notion search "query" --type page`); | ||
| console.log(`notion db query ${databaseId.slice(0, 8)}... --limit 10`); | ||
| console.log('```\n'); | ||
| console.log('### Create new entry'); | ||
| console.log('```bash'); | ||
| console.log(`notion page create --parent ${databaseId.slice(0, 8)}... --title "Entry title"`); | ||
| // Add property examples | ||
| const statusProp = Object.entries(propInfo).find(([, i]) => i.type === 'status'); | ||
| if (statusProp && statusProp[1].options) { | ||
| console.log(` --prop "${statusProp[0]}=${statusProp[1].options[0]}"`); | ||
| } | ||
| console.log('```\n'); | ||
| console.log('### Update entry'); | ||
| console.log('```bash'); | ||
| console.log(`notion page update <page_id> --prop "PropertyName=value"`); | ||
| console.log('```\n'); | ||
| console.log('### Smart find'); | ||
| console.log('```bash'); | ||
| console.log(`notion find "descripción en lenguaje natural" -d ${databaseId.slice(0, 8)}...`); | ||
| console.log('```\n'); | ||
| console.log('## Important Notes\n'); | ||
| console.log(`- Title property is called "${titleProp}" (not "Name" or "Title")`); | ||
| if (propInfo['Status']?.options) { | ||
| console.log(`- Status values are in Spanish: ${propInfo['Status'].options.slice(0, 3).join(', ')}`); | ||
| } | ||
| console.log('- Use `notion inspect schema` for full property details'); | ||
| console.log('- Use `--dry-run` on bulk operations before executing'); | ||
| })); | ||
| // Suggest command | ||
| ai | ||
| .command('suggest <database_id> <description>') | ||
| .description('Suggest the right command based on natural language') | ||
| .action(withErrorHandler(async (databaseId, description, _options) => { | ||
| const client = getClient(); | ||
| const db = await getDatabaseSchema(client, databaseId); | ||
| const lowerDesc = description.toLowerCase(); | ||
| // Find relevant properties | ||
| let statusProp = ''; | ||
| let dateProp = ''; | ||
| let peopleProp = ''; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'status') | ||
| statusProp = name; | ||
| if (schema.type === 'date' && !dateProp) | ||
| dateProp = name; | ||
| if (schema.type === 'people' && !peopleProp) | ||
| peopleProp = name; | ||
| } | ||
| console.log('# Suggested commands\n'); | ||
| // Filter patterns | ||
| if (lowerDesc.includes('done') || lowerDesc.includes('hecho') || lowerDesc.includes('completado')) { | ||
| console.log('## Find completed items'); | ||
| console.log('```bash'); | ||
| console.log(`notion search "query" --type page`); | ||
| console.log(`notion db query ${databaseId.slice(0, 8)}... --limit 10`); | ||
| console.log(`notion find "hecho" -d ${databaseId}`); | ||
| console.log('# or with explicit filter:'); | ||
| console.log(`notion db query ${databaseId} --filter-prop "${statusProp}" --filter-type equals --filter-value "Hecho" --filter-prop-type status`); | ||
| console.log('```\n'); | ||
| console.log('### Create new entry'); | ||
| } | ||
| if (lowerDesc.includes('pending') || lowerDesc.includes('pendiente') || lowerDesc.includes('todo')) { | ||
| console.log('## Find pending items'); | ||
| console.log('```bash'); | ||
| console.log(`notion page create --parent ${databaseId.slice(0, 8)}... --title "Entry title"`); | ||
| // Add property examples | ||
| const statusProp = Object.entries(propInfo).find(([, i]) => i.type === 'status'); | ||
| if (statusProp && statusProp[1].options) { | ||
| console.log(` --prop "${statusProp[0]}=${statusProp[1].options[0]}"`); | ||
| } | ||
| console.log(`notion find "pendiente" -d ${databaseId}`); | ||
| console.log('```\n'); | ||
| console.log('### Update entry'); | ||
| } | ||
| if (lowerDesc.includes('overdue') || lowerDesc.includes('vencid') || lowerDesc.includes('atrasad')) { | ||
| console.log('## Find overdue items'); | ||
| console.log('```bash'); | ||
| console.log(`notion page update <page_id> --prop "PropertyName=value"`); | ||
| console.log(`notion find "vencidas" -d ${databaseId}`); | ||
| console.log('```\n'); | ||
| console.log('### Smart find'); | ||
| } | ||
| if (lowerDesc.includes('unassigned') || lowerDesc.includes('sin asignar')) { | ||
| console.log('## Find unassigned items'); | ||
| console.log('```bash'); | ||
| console.log(`notion find "descripción en lenguaje natural" -d ${databaseId.slice(0, 8)}...`); | ||
| console.log(`notion find "sin asignar" -d ${databaseId}`); | ||
| console.log('```\n'); | ||
| console.log('## Important Notes\n'); | ||
| console.log(`- Title property is called "${titleProp}" (not "Name" or "Title")`); | ||
| if (propInfo['Status']?.options) { | ||
| console.log(`- Status values are in Spanish: ${propInfo['Status'].options.slice(0, 3).join(', ')}`); | ||
| } | ||
| console.log('- Use `notion inspect schema` for full property details'); | ||
| console.log('- Use `--dry-run` on bulk operations before executing'); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| if (lowerDesc.includes('crear') || lowerDesc.includes('create') || lowerDesc.includes('añadir') || lowerDesc.includes('add')) { | ||
| console.log('## Create new entry'); | ||
| console.log('```bash'); | ||
| console.log(`notion page create --parent ${databaseId} --title "Título aquí"`); | ||
| console.log('```\n'); | ||
| } | ||
| }); | ||
| // Suggest command | ||
| ai | ||
| .command('suggest <database_id> <description>') | ||
| .description('Suggest the right command based on natural language') | ||
| .action(async (databaseId, description, _options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const db = await client.get(`databases/${databaseId}`); | ||
| const lowerDesc = description.toLowerCase(); | ||
| // Find relevant properties | ||
| let statusProp = ''; | ||
| let dateProp = ''; | ||
| let peopleProp = ''; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'status') | ||
| statusProp = name; | ||
| if (schema.type === 'date' && !dateProp) | ||
| dateProp = name; | ||
| if (schema.type === 'people' && !peopleProp) | ||
| peopleProp = name; | ||
| } | ||
| console.log('# Suggested commands\n'); | ||
| // Filter patterns | ||
| if (lowerDesc.includes('done') || lowerDesc.includes('hecho') || lowerDesc.includes('completado')) { | ||
| console.log('## Find completed items'); | ||
| console.log('```bash'); | ||
| console.log(`notion find "hecho" -d ${databaseId}`); | ||
| console.log('# or with explicit filter:'); | ||
| console.log(`notion db query ${databaseId} --filter-prop "${statusProp}" --filter-type equals --filter-value "Hecho" --filter-prop-type status`); | ||
| console.log('```\n'); | ||
| } | ||
| if (lowerDesc.includes('pending') || lowerDesc.includes('pendiente') || lowerDesc.includes('todo')) { | ||
| console.log('## Find pending items'); | ||
| console.log('```bash'); | ||
| console.log(`notion find "pendiente" -d ${databaseId}`); | ||
| console.log('```\n'); | ||
| } | ||
| if (lowerDesc.includes('overdue') || lowerDesc.includes('vencid') || lowerDesc.includes('atrasad')) { | ||
| console.log('## Find overdue items'); | ||
| console.log('```bash'); | ||
| console.log(`notion find "vencidas" -d ${databaseId}`); | ||
| console.log('```\n'); | ||
| } | ||
| if (lowerDesc.includes('unassigned') || lowerDesc.includes('sin asignar')) { | ||
| console.log('## Find unassigned items'); | ||
| console.log('```bash'); | ||
| console.log(`notion find "sin asignar" -d ${databaseId}`); | ||
| console.log('```\n'); | ||
| } | ||
| if (lowerDesc.includes('crear') || lowerDesc.includes('create') || lowerDesc.includes('añadir') || lowerDesc.includes('add')) { | ||
| console.log('## Create new entry'); | ||
| console.log('```bash'); | ||
| console.log(`notion page create --parent ${databaseId} --title "Título aquí"`); | ||
| console.log('```\n'); | ||
| } | ||
| if (lowerDesc.includes('actualizar') || lowerDesc.includes('update') || lowerDesc.includes('cambiar')) { | ||
| console.log('## Update entries'); | ||
| console.log('```bash'); | ||
| console.log(`# Single entry:`); | ||
| console.log(`notion page update <page_id> --prop "Status=Hecho"`); | ||
| console.log(`# Multiple entries:`); | ||
| console.log(`notion bulk update ${databaseId} --where "Status=Por empezar" --set "Status=En marcha" --dry-run`); | ||
| console.log('```\n'); | ||
| } | ||
| if (lowerDesc.includes('archivar') || lowerDesc.includes('archive') || lowerDesc.includes('borrar') || lowerDesc.includes('delete')) { | ||
| console.log('## Archive entries'); | ||
| console.log('```bash'); | ||
| console.log(`notion bulk archive ${databaseId} --where "Status=Hecho" --dry-run`); | ||
| console.log('```\n'); | ||
| } | ||
| if (lowerDesc.includes('estadísticas') || lowerDesc.includes('stats') || lowerDesc.includes('resumen')) { | ||
| console.log('## Get statistics'); | ||
| console.log('```bash'); | ||
| console.log(`notion stats overview ${databaseId}`); | ||
| console.log(`notion stats timeline ${databaseId} --days 7`); | ||
| console.log('```\n'); | ||
| } | ||
| if (lowerDesc.includes('export') || lowerDesc.includes('backup')) { | ||
| console.log('## Export/Backup'); | ||
| console.log('```bash'); | ||
| console.log(`notion export db ${databaseId} --vault ~/backup --folder notion-export`); | ||
| console.log('```\n'); | ||
| } | ||
| if (lowerDesc.includes('actualizar') || lowerDesc.includes('update') || lowerDesc.includes('cambiar')) { | ||
| console.log('## Update entries'); | ||
| console.log('```bash'); | ||
| console.log(`# Single entry:`); | ||
| console.log(`notion page update <page_id> --prop "Status=Hecho"`); | ||
| console.log(`# Multiple entries:`); | ||
| console.log(`notion bulk update ${databaseId} --where "Status=Por empezar" --set "Status=En marcha" --dry-run`); | ||
| console.log('```\n'); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| if (lowerDesc.includes('archivar') || lowerDesc.includes('archive') || lowerDesc.includes('borrar') || lowerDesc.includes('delete')) { | ||
| console.log('## Archive entries'); | ||
| console.log('```bash'); | ||
| console.log(`notion bulk archive ${databaseId} --where "Status=Hecho" --dry-run`); | ||
| console.log('```\n'); | ||
| } | ||
| }); | ||
| if (lowerDesc.includes('estadísticas') || lowerDesc.includes('stats') || lowerDesc.includes('resumen')) { | ||
| console.log('## Get statistics'); | ||
| console.log('```bash'); | ||
| console.log(`notion stats overview ${databaseId}`); | ||
| console.log(`notion stats timeline ${databaseId} --days 7`); | ||
| console.log('```\n'); | ||
| } | ||
| if (lowerDesc.includes('export') || lowerDesc.includes('backup')) { | ||
| console.log('## Export/Backup'); | ||
| console.log('```bash'); | ||
| console.log(`notion export db ${databaseId} --vault ~/backup --folder notion-export`); | ||
| console.log('```\n'); | ||
| } | ||
| })); | ||
| } | ||
| //# sourceMappingURL=ai.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyK5D"} | ||
| {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkCpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2I5D"} |
+108
-155
@@ -5,3 +5,5 @@ import { getClient } from '../client.js'; | ||
| import { blocksToMarkdownSync } from '../utils/markdown.js'; | ||
| import { fetchAllBlocks, getPageTitle } from '../utils/notion-helpers.js'; | ||
| import { fetchAllBlocks, getPageTitle, getDbTitle, getPropertyRawValue } from '../utils/notion-helpers.js'; | ||
| import { getDatabaseSchema, queryAllPages } from '../utils/database-resolver.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| function sanitizeFilename(name) { | ||
@@ -33,134 +35,113 @@ return name | ||
| .option('--limit <number>', 'Max entries to backup') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const outputDir = path.resolve(options.output); | ||
| // Create output directory | ||
| if (!fs.existsSync(outputDir)) { | ||
| fs.mkdirSync(outputDir, { recursive: true }); | ||
| } | ||
| // Get database info | ||
| console.log('Fetching database schema...'); | ||
| const db = await client.get(`databases/${databaseId}`); | ||
| const dbTitle = db.title?.map(t => t.plain_text).join('') || 'Untitled'; | ||
| // Save schema | ||
| const schemaPath = path.join(outputDir, 'schema.json'); | ||
| fs.writeFileSync(schemaPath, JSON.stringify(db, null, 2)); | ||
| console.log(`✅ Schema saved to ${schemaPath}`); | ||
| // Check for incremental backup | ||
| let lastBackupTime = null; | ||
| const metaPath = path.join(outputDir, '.backup-meta.json'); | ||
| if (options.incremental && fs.existsSync(metaPath)) { | ||
| const meta = JSON.parse(fs.readFileSync(metaPath, 'utf-8')); | ||
| lastBackupTime = new Date(meta.lastBackup); | ||
| console.log(`📅 Incremental backup since ${lastBackupTime.toISOString()}`); | ||
| } | ||
| // Query entries | ||
| const entries = []; | ||
| let cursor; | ||
| const queryBody = { | ||
| page_size: 100, | ||
| sorts: [{ timestamp: 'last_edited_time', direction: 'descending' }], | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| const outputDir = path.resolve(options.output); | ||
| // Create output directory | ||
| if (!fs.existsSync(outputDir)) { | ||
| fs.mkdirSync(outputDir, { recursive: true }); | ||
| } | ||
| // Get database info | ||
| console.log('Fetching database schema...'); | ||
| const db = await getDatabaseSchema(client, databaseId); | ||
| const dbTitle = getDbTitle(db); | ||
| // Save schema | ||
| const schemaPath = path.join(outputDir, 'schema.json'); | ||
| fs.writeFileSync(schemaPath, JSON.stringify(db, null, 2)); | ||
| console.log(`✅ Schema saved to ${schemaPath}`); | ||
| // Check for incremental backup | ||
| let lastBackupTime = null; | ||
| const metaPath = path.join(outputDir, '.backup-meta.json'); | ||
| if (options.incremental && fs.existsSync(metaPath)) { | ||
| const meta = JSON.parse(fs.readFileSync(metaPath, 'utf-8')); | ||
| lastBackupTime = new Date(meta.lastBackup); | ||
| console.log(`📅 Incremental backup since ${lastBackupTime.toISOString()}`); | ||
| } | ||
| // Query entries | ||
| const filter = lastBackupTime | ||
| ? { timestamp: 'last_edited_time', last_edited_time: { after: lastBackupTime.toISOString() } } | ||
| : undefined; | ||
| const entries = await queryAllPages(client, databaseId, { | ||
| filter, | ||
| sorts: [{ timestamp: 'last_edited_time', direction: 'descending' }], | ||
| limit: options.limit ? parseInt(options.limit, 10) : undefined, | ||
| onProgress: (fetched) => process.stdout.write(`\rFetching entries: ${fetched}...`), | ||
| }); | ||
| console.log(`\rFound ${entries.length} entries to backup. \n`); | ||
| if (entries.length === 0) { | ||
| console.log('No entries to backup.'); | ||
| return; | ||
| } | ||
| // Create pages directory | ||
| const pagesDir = path.join(outputDir, 'pages'); | ||
| if (!fs.existsSync(pagesDir)) { | ||
| fs.mkdirSync(pagesDir, { recursive: true }); | ||
| } | ||
| // Backup each entry | ||
| let backed = 0; | ||
| let totalSize = 0; | ||
| for (const entry of entries) { | ||
| const title = getPageTitle(entry); | ||
| const filename = `${sanitizeFilename(title)}_${entry.id.slice(0, 8)}`; | ||
| const pageData = { | ||
| id: entry.id, | ||
| url: entry.url, | ||
| created_time: entry.created_time, | ||
| last_edited_time: entry.last_edited_time, | ||
| properties: entry.properties, | ||
| }; | ||
| if (lastBackupTime) { | ||
| queryBody.filter = { | ||
| timestamp: 'last_edited_time', | ||
| last_edited_time: { after: lastBackupTime.toISOString() }, | ||
| }; | ||
| } | ||
| do { | ||
| if (cursor) | ||
| queryBody.start_cursor = cursor; | ||
| const result = await client.post(`databases/${databaseId}/query`, queryBody); | ||
| entries.push(...result.results); | ||
| cursor = result.has_more ? result.next_cursor : undefined; | ||
| process.stdout.write(`\rFetching entries: ${entries.length}...`); | ||
| if (options.limit && entries.length >= parseInt(options.limit, 10)) { | ||
| entries.splice(parseInt(options.limit, 10)); | ||
| break; | ||
| // Fetch content if requested | ||
| if (options.content) { | ||
| try { | ||
| const blocks = await fetchBlocksRecursive(client, entry.id); | ||
| pageData.content = blocks; | ||
| } | ||
| } while (cursor); | ||
| console.log(`\rFound ${entries.length} entries to backup. \n`); | ||
| if (entries.length === 0) { | ||
| console.log('No entries to backup.'); | ||
| return; | ||
| catch (error) { | ||
| pageData.content_error = error.message; | ||
| } | ||
| } | ||
| // Create pages directory | ||
| const pagesDir = path.join(outputDir, 'pages'); | ||
| if (!fs.existsSync(pagesDir)) { | ||
| fs.mkdirSync(pagesDir, { recursive: true }); | ||
| // Save based on format | ||
| if (options.format === 'markdown') { | ||
| const mdContent = generateMarkdown(entry, pageData.content); | ||
| const filePath = path.join(pagesDir, `${filename}.md`); | ||
| fs.writeFileSync(filePath, mdContent); | ||
| totalSize += mdContent.length; | ||
| } | ||
| // Backup each entry | ||
| let backed = 0; | ||
| let totalSize = 0; | ||
| for (const entry of entries) { | ||
| const title = getPageTitle(entry); | ||
| const filename = `${sanitizeFilename(title)}_${entry.id.slice(0, 8)}`; | ||
| const pageData = { | ||
| id: entry.id, | ||
| url: entry.url, | ||
| created_time: entry.created_time, | ||
| last_edited_time: entry.last_edited_time, | ||
| properties: entry.properties, | ||
| }; | ||
| // Fetch content if requested | ||
| if (options.content) { | ||
| try { | ||
| const blocks = await fetchBlocksRecursive(client, entry.id); | ||
| pageData.content = blocks; | ||
| } | ||
| catch (error) { | ||
| pageData.content_error = error.message; | ||
| } | ||
| } | ||
| // Save based on format | ||
| if (options.format === 'markdown') { | ||
| const mdContent = generateMarkdown(entry, pageData.content); | ||
| const filePath = path.join(pagesDir, `${filename}.md`); | ||
| fs.writeFileSync(filePath, mdContent); | ||
| totalSize += mdContent.length; | ||
| } | ||
| else { | ||
| const jsonContent = JSON.stringify(pageData, null, 2); | ||
| const filePath = path.join(pagesDir, `${filename}.json`); | ||
| fs.writeFileSync(filePath, jsonContent); | ||
| totalSize += jsonContent.length; | ||
| } | ||
| backed++; | ||
| process.stdout.write(`\r💾 Backed up ${backed}/${entries.length}...`); | ||
| else { | ||
| const jsonContent = JSON.stringify(pageData, null, 2); | ||
| const filePath = path.join(pagesDir, `${filename}.json`); | ||
| fs.writeFileSync(filePath, jsonContent); | ||
| totalSize += jsonContent.length; | ||
| } | ||
| // Save index | ||
| const index = entries.map(e => ({ | ||
| id: e.id, | ||
| title: getPageTitle(e), | ||
| last_edited: e.last_edited_time, | ||
| })); | ||
| const indexPath = path.join(outputDir, 'index.json'); | ||
| fs.writeFileSync(indexPath, JSON.stringify(index, null, 2)); | ||
| // Save metadata | ||
| const meta = { | ||
| databaseId, | ||
| databaseTitle: dbTitle, | ||
| lastBackup: new Date().toISOString(), | ||
| entriesCount: entries.length, | ||
| format: options.format, | ||
| includesContent: !!options.content, | ||
| }; | ||
| fs.writeFileSync(metaPath, JSON.stringify(meta, null, 2)); | ||
| // Summary | ||
| const sizeMb = (totalSize / (1024 * 1024)).toFixed(2); | ||
| console.log(`\n\n✅ Backup complete!`); | ||
| console.log(` Database: ${dbTitle}`); | ||
| console.log(` Entries: ${backed}`); | ||
| console.log(` Size: ${sizeMb} MB`); | ||
| console.log(` Location: ${outputDir}`); | ||
| if (options.incremental) { | ||
| console.log(` Mode: Incremental (since ${lastBackupTime?.toISOString() || 'beginning'})`); | ||
| } | ||
| backed++; | ||
| process.stdout.write(`\r💾 Backed up ${backed}/${entries.length}...`); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| // Save index | ||
| const index = entries.map(e => ({ | ||
| id: e.id, | ||
| title: getPageTitle(e), | ||
| last_edited: e.last_edited_time, | ||
| })); | ||
| const indexPath = path.join(outputDir, 'index.json'); | ||
| fs.writeFileSync(indexPath, JSON.stringify(index, null, 2)); | ||
| // Save metadata | ||
| const meta = { | ||
| databaseId, | ||
| databaseTitle: dbTitle, | ||
| lastBackup: new Date().toISOString(), | ||
| entriesCount: entries.length, | ||
| format: options.format, | ||
| includesContent: !!options.content, | ||
| }; | ||
| fs.writeFileSync(metaPath, JSON.stringify(meta, null, 2)); | ||
| // Summary | ||
| const sizeMb = (totalSize / (1024 * 1024)).toFixed(2); | ||
| console.log(`\n\n✅ Backup complete!`); | ||
| console.log(` Database: ${dbTitle}`); | ||
| console.log(` Entries: ${backed}`); | ||
| console.log(` Size: ${sizeMb} MB`); | ||
| console.log(` Location: ${outputDir}`); | ||
| if (options.incremental) { | ||
| console.log(` Mode: Incremental (since ${lastBackupTime?.toISOString() || 'beginning'})`); | ||
| } | ||
| }); | ||
| })); | ||
| } | ||
@@ -182,3 +163,3 @@ function generateMarkdown(page, blocks) { | ||
| continue; | ||
| const val = extractPropertyValue(prop); | ||
| const val = getPropertyRawValue(prop); | ||
| if (val !== null && val !== '') { | ||
@@ -206,30 +187,2 @@ const safeName = name.toLowerCase().replace(/[^a-z0-9]/g, '_'); | ||
| } | ||
| function extractPropertyValue(prop) { | ||
| const type = prop.type; | ||
| const data = prop[type]; | ||
| switch (type) { | ||
| case 'title': | ||
| case 'rich_text': | ||
| return data?.map(t => t.plain_text).join('') || null; | ||
| case 'select': | ||
| case 'status': | ||
| return data?.name || null; | ||
| case 'multi_select': | ||
| return data?.map(s => s.name) || []; | ||
| case 'date': | ||
| return data?.start || null; | ||
| case 'number': | ||
| return data; | ||
| case 'checkbox': | ||
| return data; | ||
| case 'url': | ||
| case 'email': | ||
| case 'phone_number': | ||
| return data || null; | ||
| case 'people': | ||
| return data?.map(p => p.name).filter(Boolean) || []; | ||
| default: | ||
| return null; | ||
| } | ||
| } | ||
| //# sourceMappingURL=backup.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/commands/batch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2IpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuF3D"} | ||
| {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/commands/batch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8IpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkF3D"} |
+65
-68
| import { getClient } from '../client.js'; | ||
| import { formatOutput } from '../utils/format.js'; | ||
| import { getDatabaseSchema, queryDatabase, updateDatabase } from '../utils/database-resolver.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| import { buildTrashPayload } from '../utils/notion-helpers.js'; | ||
| async function executeOperation(client, op) { | ||
@@ -9,3 +12,3 @@ switch (op.op) { | ||
| if (op.type === 'database') | ||
| return client.get(`databases/${op.id}`); | ||
| return getDatabaseSchema(client, op.id); | ||
| if (op.type === 'block') | ||
@@ -36,3 +39,3 @@ return client.get(`blocks/${op.id}`); | ||
| if (op.type === 'database') | ||
| return client.patch(`databases/${op.id}`, op.data || {}); | ||
| return updateDatabase(client, op.id, op.data || {}); | ||
| if (op.type === 'block') | ||
@@ -44,6 +47,6 @@ return client.patch(`blocks/${op.id}`, op.data || {}); | ||
| return client.delete(`blocks/${op.id}`); | ||
| return client.patch(`pages/${op.id}`, { archived: true }); | ||
| return client.patch(`pages/${op.id}`, buildTrashPayload(true)); | ||
| case 'query': | ||
| if (op.type === 'database') { | ||
| return client.post(`databases/${op.id}/query`, op.data || {}); | ||
| return queryDatabase(client, op.id, op.data || {}); | ||
| } | ||
@@ -122,75 +125,69 @@ break; | ||
| .option('--llm', 'Output in LLM-friendly format') | ||
| .action(async (options) => { | ||
| try { | ||
| let operations; | ||
| if (options.file) { | ||
| const fs = await import('fs'); | ||
| const content = fs.readFileSync(options.file, 'utf-8'); | ||
| operations = JSON.parse(content); | ||
| .action(withErrorHandler(async (options) => { | ||
| let operations; | ||
| if (options.file) { | ||
| const fs = await import('fs'); | ||
| const content = fs.readFileSync(options.file, 'utf-8'); | ||
| operations = JSON.parse(content); | ||
| } | ||
| else if (options.data) { | ||
| operations = JSON.parse(options.data); | ||
| } | ||
| else { | ||
| // Read from stdin | ||
| const chunks = []; | ||
| for await (const chunk of process.stdin) { | ||
| chunks.push(chunk); | ||
| } | ||
| else if (options.data) { | ||
| operations = JSON.parse(options.data); | ||
| } | ||
| else { | ||
| // Read from stdin | ||
| const chunks = []; | ||
| for await (const chunk of process.stdin) { | ||
| chunks.push(chunk); | ||
| const input = Buffer.concat(chunks).toString('utf-8'); | ||
| operations = JSON.parse(input); | ||
| } | ||
| if (!Array.isArray(operations)) { | ||
| operations = [operations]; | ||
| } | ||
| if (options.dryRun) { | ||
| console.log('🔍 Dry run - would execute:'); | ||
| operations.forEach((op, i) => { | ||
| console.log(` ${i + 1}. ${op.op} ${op.type} ${op.id || op.parent || ''}`); | ||
| }); | ||
| console.log(`\nTotal: ${operations.length} operations`); | ||
| return; | ||
| } | ||
| const client = getClient(); | ||
| const concurrency = (options.sequential || options.stopOnError) ? 1 : parseInt(options.concurrency, 10); | ||
| const { results, succeeded, failed } = await runWithConcurrency(operations, client, concurrency, options.stopOnError); | ||
| // Output results | ||
| if (options.llm) { | ||
| console.log(`## Batch Results: ${succeeded}/${operations.length} succeeded\n`); | ||
| results.forEach(r => { | ||
| const status = r.success ? '✅' : '❌'; | ||
| const timing = r.durationMs !== undefined ? ` (${r.durationMs}ms)` : ''; | ||
| console.log(`${status} [${r.index}] ${r.op}${timing}`); | ||
| if (r.error) { | ||
| console.log(` Error: ${r.error}`); | ||
| } | ||
| const input = Buffer.concat(chunks).toString('utf-8'); | ||
| operations = JSON.parse(input); | ||
| } | ||
| if (!Array.isArray(operations)) { | ||
| operations = [operations]; | ||
| } | ||
| if (options.dryRun) { | ||
| console.log('🔍 Dry run - would execute:'); | ||
| operations.forEach((op, i) => { | ||
| console.log(` ${i + 1}. ${op.op} ${op.type} ${op.id || op.parent || ''}`); | ||
| }); | ||
| console.log(`\nTotal: ${operations.length} operations`); | ||
| return; | ||
| } | ||
| const client = getClient(); | ||
| const concurrency = (options.sequential || options.stopOnError) ? 1 : parseInt(options.concurrency, 10); | ||
| const { results, succeeded, failed } = await runWithConcurrency(operations, client, concurrency, options.stopOnError); | ||
| // Output results | ||
| if (options.llm) { | ||
| console.log(`## Batch Results: ${succeeded}/${operations.length} succeeded\n`); | ||
| results.forEach(r => { | ||
| const status = r.success ? '✅' : '❌'; | ||
| const timing = r.durationMs !== undefined ? ` (${r.durationMs}ms)` : ''; | ||
| console.log(`${status} [${r.index}] ${r.op}${timing}`); | ||
| if (r.error) { | ||
| console.log(` Error: ${r.error}`); | ||
| } | ||
| else if (r.result) { | ||
| const res = r.result; | ||
| if (res.id) | ||
| console.log(` ID: ${res.id}`); | ||
| if (res.url) | ||
| console.log(` URL: ${res.url}`); | ||
| } | ||
| }); | ||
| if (failed > 0) { | ||
| console.log(`\n⚠️ ${failed} operations failed`); | ||
| else if (r.result) { | ||
| const res = r.result; | ||
| if (res.id) | ||
| console.log(` ID: ${res.id}`); | ||
| if (res.url) | ||
| console.log(` URL: ${res.url}`); | ||
| } | ||
| } | ||
| else { | ||
| console.log(formatOutput({ | ||
| summary: { total: operations.length, succeeded, failed }, | ||
| results, | ||
| })); | ||
| } | ||
| // Exit with error code if any failed | ||
| }); | ||
| if (failed > 0) { | ||
| process.exit(1); | ||
| console.log(`\n⚠️ ${failed} operations failed`); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| else { | ||
| console.log(formatOutput({ | ||
| summary: { total: operations.length, succeeded, failed }, | ||
| results, | ||
| })); | ||
| } | ||
| // Exit with error code if any failed | ||
| if (failed > 0) { | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| })); | ||
| } | ||
| //# sourceMappingURL=batch.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/commands/batch.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/commands/batch.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/commands/blocks.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8M5D"} | ||
| {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/commands/blocks.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+K5D"} |
+102
-131
| import { getClient } from '../client.js'; | ||
| import { formatOutput, formatBlock } from '../utils/format.js'; | ||
| import { parseInlineMarkdown } from '../utils/markdown.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| import { buildBlockPosition, buildTrashPayload } from '../utils/notion-helpers.js'; | ||
| export function registerBlocksCommand(program) { | ||
@@ -15,13 +17,7 @@ const blocks = program | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (blockId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const block = await client.get(`blocks/${blockId}`); | ||
| console.log(options.json ? formatOutput(block) : formatBlock(block)); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| .action(withErrorHandler(async (blockId, options) => { | ||
| const client = getClient(); | ||
| const block = await client.get(`blocks/${blockId}`); | ||
| console.log(options.json ? formatOutput(block) : formatBlock(block)); | ||
| })); | ||
| // List children | ||
@@ -35,28 +31,21 @@ blocks | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (blockId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const query = {}; | ||
| if (options.limit) | ||
| query.page_size = parseInt(options.limit, 10); | ||
| if (options.cursor) | ||
| query.start_cursor = options.cursor; | ||
| const result = await client.get(`blocks/${blockId}/children`, query); | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| return; | ||
| } | ||
| const typedResult = result; | ||
| for (const block of typedResult.results) { | ||
| console.log(formatBlock(block)); | ||
| } | ||
| if (typedResult.has_more) { | ||
| console.log(`\nMore results available. Use --cursor ${typedResult.next_cursor}`); | ||
| } | ||
| .action(withErrorHandler(async (blockId, options) => { | ||
| const client = getClient(); | ||
| const query = {}; | ||
| if (options.limit) | ||
| query.page_size = parseInt(options.limit, 10); | ||
| if (options.cursor) | ||
| query.start_cursor = options.cursor; | ||
| const result = await client.get(`blocks/${blockId}/children`, query); | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| return; | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| for (const block of result.results) { | ||
| console.log(formatBlock(block)); | ||
| } | ||
| }); | ||
| if (result.has_more) { | ||
| console.log(`\nMore results available. Use --cursor ${result.next_cursor}`); | ||
| } | ||
| })); | ||
| // Append blocks | ||
@@ -80,67 +69,61 @@ blocks | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (blockId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const children = []; | ||
| // Build blocks from options | ||
| if (options.text) { | ||
| children.push(createParagraph(options.text)); | ||
| .action(withErrorHandler(async (blockId, options) => { | ||
| const client = getClient(); | ||
| const children = []; | ||
| // Build blocks from options | ||
| if (options.text) { | ||
| children.push(createParagraph(options.text)); | ||
| } | ||
| if (options.heading1) { | ||
| children.push(createHeading(options.heading1, 1)); | ||
| } | ||
| if (options.heading2) { | ||
| children.push(createHeading(options.heading2, 2)); | ||
| } | ||
| if (options.heading3) { | ||
| children.push(createHeading(options.heading3, 3)); | ||
| } | ||
| if (options.bullet) { | ||
| for (const text of options.bullet) { | ||
| children.push(createBullet(text)); | ||
| } | ||
| if (options.heading1) { | ||
| children.push(createHeading(options.heading1, 1)); | ||
| } | ||
| if (options.numbered) { | ||
| for (const text of options.numbered) { | ||
| children.push(createNumbered(text)); | ||
| } | ||
| if (options.heading2) { | ||
| children.push(createHeading(options.heading2, 2)); | ||
| } | ||
| if (options.todo) { | ||
| for (const text of options.todo) { | ||
| children.push(createTodo(text)); | ||
| } | ||
| if (options.heading3) { | ||
| children.push(createHeading(options.heading3, 3)); | ||
| } | ||
| if (options.bullet) { | ||
| for (const text of options.bullet) { | ||
| children.push(createBullet(text)); | ||
| } | ||
| } | ||
| if (options.numbered) { | ||
| for (const text of options.numbered) { | ||
| children.push(createNumbered(text)); | ||
| } | ||
| } | ||
| if (options.todo) { | ||
| for (const text of options.todo) { | ||
| children.push(createTodo(text)); | ||
| } | ||
| } | ||
| if (options.code) { | ||
| children.push(createCode(options.code, options.codeLang)); | ||
| } | ||
| if (options.quote) { | ||
| children.push(createQuote(options.quote)); | ||
| } | ||
| if (options.divider) { | ||
| children.push({ object: 'block', type: 'divider', divider: {} }); | ||
| } | ||
| if (options.callout) { | ||
| children.push(createCallout(options.callout)); | ||
| } | ||
| if (children.length === 0) { | ||
| console.error('Error: No content specified. Use --text, --heading1, --bullet, etc.'); | ||
| process.exit(1); | ||
| } | ||
| const body = { children }; | ||
| if (options.after) { | ||
| body.after = options.after; | ||
| } | ||
| const result = await client.patch(`blocks/${blockId}/children`, body); | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| } | ||
| else { | ||
| console.log(`✅ Added ${children.length} block(s)`); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| if (options.code) { | ||
| children.push(createCode(options.code, options.codeLang)); | ||
| } | ||
| if (options.quote) { | ||
| children.push(createQuote(options.quote)); | ||
| } | ||
| if (options.divider) { | ||
| children.push({ object: 'block', type: 'divider', divider: {} }); | ||
| } | ||
| if (options.callout) { | ||
| children.push(createCallout(options.callout)); | ||
| } | ||
| if (children.length === 0) { | ||
| console.error('Error: No content specified. Use --text, --heading1, --bullet, etc.'); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| const body = { | ||
| children, | ||
| ...buildBlockPosition(options.after), | ||
| }; | ||
| const result = await client.patch(`blocks/${blockId}/children`, body); | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| } | ||
| else { | ||
| console.log(`✅ Added ${children.length} block(s)`); | ||
| } | ||
| })); | ||
| // Update block | ||
@@ -153,30 +136,24 @@ blocks | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (blockId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // First, get the block to know its type | ||
| const existing = await client.get(`blocks/${blockId}`); | ||
| const blockType = existing.type; | ||
| const body = {}; | ||
| if (options.text) { | ||
| body[blockType] = { | ||
| rich_text: [{ type: 'text', text: { content: options.text } }], | ||
| }; | ||
| } | ||
| if (options.archive) { | ||
| body.archived = true; | ||
| } | ||
| const result = await client.patch(`blocks/${blockId}`, body); | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| } | ||
| else { | ||
| console.log('✅ Block updated'); | ||
| } | ||
| .action(withErrorHandler(async (blockId, options) => { | ||
| const client = getClient(); | ||
| // First, get the block to know its type | ||
| const existing = await client.get(`blocks/${blockId}`); | ||
| const blockType = existing.type; | ||
| const body = {}; | ||
| if (options.text) { | ||
| body[blockType] = { | ||
| rich_text: [{ type: 'text', text: { content: options.text } }], | ||
| }; | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| if (options.archive) { | ||
| Object.assign(body, buildTrashPayload(true)); | ||
| } | ||
| }); | ||
| const result = await client.patch(`blocks/${blockId}`, body); | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| } | ||
| else { | ||
| console.log('✅ Block updated'); | ||
| } | ||
| })); | ||
| // Delete block | ||
@@ -186,13 +163,7 @@ blocks | ||
| .description('Delete (archive) a block') | ||
| .action(async (blockId) => { | ||
| try { | ||
| const client = getClient(); | ||
| await client.delete(`blocks/${blockId}`); | ||
| console.log('✅ Block deleted'); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| .action(withErrorHandler(async (blockId) => { | ||
| const client = getClient(); | ||
| await client.delete(`blocks/${blockId}`); | ||
| console.log('✅ Block deleted'); | ||
| })); | ||
| } | ||
@@ -199,0 +170,0 @@ // Block creation helpers — uses parseInlineMarkdown so that |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/commands/blocks.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/commands/blocks.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"bulk.d.ts","sourceRoot":"","sources":["../../src/commands/bulk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoFpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoM1D"} | ||
| {"version":3,"file":"bulk.d.ts","sourceRoot":"","sources":["../../src/commands/bulk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsFpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0L1D"} |
+106
-116
| import { getClient } from '../client.js'; | ||
| import { parseProperties } from '../utils/format.js'; | ||
| import { getPageTitle } from '../utils/notion-helpers.js'; | ||
| import { getPageTitle, buildTrashPayload } from '../utils/notion-helpers.js'; | ||
| import { getDatabaseSchema, queryDatabase } from '../utils/database-resolver.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| // Parse simple where clause: "Status=Done,Priority=High" | ||
@@ -82,68 +84,62 @@ function parseWhereClause(where, schema) { | ||
| .option('--yes', 'Skip confirmation') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get database schema | ||
| const db = await client.get(`databases/${databaseId}`); | ||
| // Parse where clause | ||
| const filter = parseWhereClause(options.where, db.properties); | ||
| if (!filter) { | ||
| console.error('Error: Invalid --where clause'); | ||
| process.exit(1); | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| // Get database schema | ||
| const db = await getDatabaseSchema(client, databaseId); | ||
| // Parse where clause | ||
| const filter = parseWhereClause(options.where, db.properties); | ||
| if (!filter) { | ||
| console.error('Error: Invalid --where clause'); | ||
| process.exit(1); | ||
| } | ||
| // Parse set clause | ||
| const setProperties = parseProperties(options.set.split(',').map((s) => s.trim())); | ||
| // Query matching entries | ||
| const result = await queryDatabase(client, databaseId, { | ||
| filter, | ||
| page_size: parseInt(options.limit, 10), | ||
| }); | ||
| if (result.results.length === 0) { | ||
| console.log('No entries match the condition.'); | ||
| return; | ||
| } | ||
| console.log(`Found ${result.results.length} matching entries${result.has_more ? ' (more available)' : ''}`); | ||
| // Show preview | ||
| if (options.dryRun || !options.yes) { | ||
| console.log('\nEntries to update:'); | ||
| for (const page of result.results.slice(0, 10)) { | ||
| console.log(` - ${getPageTitle(page)} (${page.id.slice(0, 8)}...)`); | ||
| } | ||
| // Parse set clause | ||
| const setProperties = parseProperties(options.set.split(',').map((s) => s.trim())); | ||
| // Query matching entries | ||
| const result = await client.post(`databases/${databaseId}/query`, { | ||
| filter, | ||
| page_size: parseInt(options.limit, 10), | ||
| }); | ||
| if (result.results.length === 0) { | ||
| console.log('No entries match the condition.'); | ||
| return; | ||
| if (result.results.length > 10) { | ||
| console.log(` ... and ${result.results.length - 10} more`); | ||
| } | ||
| console.log(`Found ${result.results.length} matching entries${result.has_more ? ' (more available)' : ''}`); | ||
| // Show preview | ||
| if (options.dryRun || !options.yes) { | ||
| console.log('\nEntries to update:'); | ||
| for (const page of result.results.slice(0, 10)) { | ||
| console.log(` - ${getPageTitle(page)} (${page.id.slice(0, 8)}...)`); | ||
| } | ||
| if (result.results.length > 10) { | ||
| console.log(` ... and ${result.results.length - 10} more`); | ||
| } | ||
| console.log('\nChanges to apply:'); | ||
| for (const [key, value] of Object.entries(setProperties)) { | ||
| console.log(` ${key} → ${JSON.stringify(value)}`); | ||
| } | ||
| console.log('\nChanges to apply:'); | ||
| for (const [key, value] of Object.entries(setProperties)) { | ||
| console.log(` ${key} → ${JSON.stringify(value)}`); | ||
| } | ||
| if (options.dryRun) { | ||
| console.log('\n🔍 Dry run - no changes made'); | ||
| return; | ||
| } | ||
| if (options.dryRun) { | ||
| console.log('\n🔍 Dry run - no changes made'); | ||
| return; | ||
| } | ||
| if (!options.yes) { | ||
| console.log('\nUse --yes to execute, or --dry-run to preview'); | ||
| return; | ||
| } | ||
| // Execute updates | ||
| let updated = 0; | ||
| let failed = 0; | ||
| for (const page of result.results) { | ||
| try { | ||
| await client.patch(`pages/${page.id}`, { properties: setProperties }); | ||
| updated++; | ||
| process.stdout.write(`\r✅ Updated ${updated}/${result.results.length}...`); | ||
| } | ||
| if (!options.yes) { | ||
| console.log('\nUse --yes to execute, or --dry-run to preview'); | ||
| return; | ||
| catch (error) { | ||
| failed++; | ||
| console.error(`\n❌ Failed to update ${page.id}: ${error.message}`); | ||
| } | ||
| // Execute updates | ||
| let updated = 0; | ||
| let failed = 0; | ||
| for (const page of result.results) { | ||
| try { | ||
| await client.patch(`pages/${page.id}`, { properties: setProperties }); | ||
| updated++; | ||
| process.stdout.write(`\r✅ Updated ${updated}/${result.results.length}...`); | ||
| } | ||
| catch (error) { | ||
| failed++; | ||
| console.error(`\n❌ Failed to update ${page.id}: ${error.message}`); | ||
| } | ||
| } | ||
| console.log(`\n\n✅ Updated ${updated} entries${failed > 0 ? `, ${failed} failed` : ''}`); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| console.log(`\n\n✅ Updated ${updated} entries${failed > 0 ? `, ${failed} failed` : ''}`); | ||
| })); | ||
| // Bulk archive | ||
@@ -157,62 +153,56 @@ bulk | ||
| .option('--yes', 'Skip confirmation') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get database schema | ||
| const db = await client.get(`databases/${databaseId}`); | ||
| // Parse where clause | ||
| const filter = parseWhereClause(options.where, db.properties); | ||
| if (!filter) { | ||
| console.error('Error: Invalid --where clause'); | ||
| process.exit(1); | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| // Get database schema | ||
| const db = await getDatabaseSchema(client, databaseId); | ||
| // Parse where clause | ||
| const filter = parseWhereClause(options.where, db.properties); | ||
| if (!filter) { | ||
| console.error('Error: Invalid --where clause'); | ||
| process.exit(1); | ||
| } | ||
| // Query matching entries | ||
| const result = await queryDatabase(client, databaseId, { | ||
| filter, | ||
| page_size: parseInt(options.limit, 10), | ||
| }); | ||
| if (result.results.length === 0) { | ||
| console.log('No entries match the condition.'); | ||
| return; | ||
| } | ||
| console.log(`Found ${result.results.length} matching entries${result.has_more ? ' (more available)' : ''}`); | ||
| // Show preview | ||
| if (options.dryRun || !options.yes) { | ||
| console.log('\nEntries to archive:'); | ||
| for (const page of result.results.slice(0, 10)) { | ||
| console.log(` - ${getPageTitle(page)} (${page.id.slice(0, 8)}...)`); | ||
| } | ||
| // Query matching entries | ||
| const result = await client.post(`databases/${databaseId}/query`, { | ||
| filter, | ||
| page_size: parseInt(options.limit, 10), | ||
| }); | ||
| if (result.results.length === 0) { | ||
| console.log('No entries match the condition.'); | ||
| return; | ||
| if (result.results.length > 10) { | ||
| console.log(` ... and ${result.results.length - 10} more`); | ||
| } | ||
| console.log(`Found ${result.results.length} matching entries${result.has_more ? ' (more available)' : ''}`); | ||
| // Show preview | ||
| if (options.dryRun || !options.yes) { | ||
| console.log('\nEntries to archive:'); | ||
| for (const page of result.results.slice(0, 10)) { | ||
| console.log(` - ${getPageTitle(page)} (${page.id.slice(0, 8)}...)`); | ||
| } | ||
| if (result.results.length > 10) { | ||
| console.log(` ... and ${result.results.length - 10} more`); | ||
| } | ||
| } | ||
| if (options.dryRun) { | ||
| console.log('\n🔍 Dry run - no changes made'); | ||
| return; | ||
| } | ||
| if (!options.yes) { | ||
| console.log('\nUse --yes to execute, or --dry-run to preview'); | ||
| return; | ||
| } | ||
| // Execute archival | ||
| let archived = 0; | ||
| let failed = 0; | ||
| for (const page of result.results) { | ||
| try { | ||
| await client.patch(`pages/${page.id}`, buildTrashPayload(true)); | ||
| archived++; | ||
| process.stdout.write(`\r🗑️ Archived ${archived}/${result.results.length}...`); | ||
| } | ||
| if (options.dryRun) { | ||
| console.log('\n🔍 Dry run - no changes made'); | ||
| return; | ||
| catch (error) { | ||
| failed++; | ||
| console.error(`\n❌ Failed to archive ${page.id}: ${error.message}`); | ||
| } | ||
| if (!options.yes) { | ||
| console.log('\nUse --yes to execute, or --dry-run to preview'); | ||
| return; | ||
| } | ||
| // Execute archival | ||
| let archived = 0; | ||
| let failed = 0; | ||
| for (const page of result.results) { | ||
| try { | ||
| await client.patch(`pages/${page.id}`, { archived: true }); | ||
| archived++; | ||
| process.stdout.write(`\r🗑️ Archived ${archived}/${result.results.length}...`); | ||
| } | ||
| catch (error) { | ||
| failed++; | ||
| console.error(`\n❌ Failed to archive ${page.id}: ${error.message}`); | ||
| } | ||
| } | ||
| console.log(`\n\n✅ Archived ${archived} entries${failed > 0 ? `, ${failed} failed` : ''}`); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| console.log(`\n\n✅ Archived ${archived} entries${failed > 0 ? `, ${failed} failed` : ''}`); | ||
| })); | ||
| // Bulk delete (really archive, Notion doesn't have true delete) | ||
@@ -219,0 +209,0 @@ bulk |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../src/commands/bulk.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../src/commands/bulk.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/commands/comments.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2H9D"} | ||
| {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/commands/comments.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsG9D"} |
| import { getClient } from '../client.js'; | ||
| import { formatOutput } from '../utils/format.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| export function registerCommentsCommand(program) { | ||
@@ -15,37 +16,30 @@ const comments = program | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (blockId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const query = { block_id: blockId }; | ||
| if (options.limit) | ||
| query.page_size = parseInt(options.limit, 10); | ||
| if (options.cursor) | ||
| query.start_cursor = options.cursor; | ||
| const result = await client.get('comments', query); | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| return; | ||
| } | ||
| const typedResult = result; | ||
| if (typedResult.results.length === 0) { | ||
| console.log('No comments found.'); | ||
| return; | ||
| } | ||
| for (const comment of typedResult.results) { | ||
| const text = comment.rich_text.map(t => t.plain_text).join(''); | ||
| const date = new Date(comment.created_time).toLocaleString(); | ||
| console.log(`💬 ${text}`); | ||
| console.log(` ID: ${comment.id}`); | ||
| console.log(` Date: ${date}`); | ||
| console.log(''); | ||
| } | ||
| if (typedResult.has_more) { | ||
| console.log(`More results available. Use --cursor ${typedResult.next_cursor}`); | ||
| } | ||
| .action(withErrorHandler(async (blockId, options) => { | ||
| const client = getClient(); | ||
| const query = { block_id: blockId }; | ||
| if (options.limit) | ||
| query.page_size = parseInt(options.limit, 10); | ||
| if (options.cursor) | ||
| query.start_cursor = options.cursor; | ||
| const result = await client.get('comments', query); | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| return; | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| if (result.results.length === 0) { | ||
| console.log('No comments found.'); | ||
| return; | ||
| } | ||
| }); | ||
| for (const comment of result.results) { | ||
| const text = comment.rich_text.map(t => t.plain_text).join(''); | ||
| const date = new Date(comment.created_time).toLocaleString(); | ||
| console.log(`💬 ${text}`); | ||
| console.log(` ID: ${comment.id}`); | ||
| console.log(` Date: ${date}`); | ||
| console.log(''); | ||
| } | ||
| if (result.has_more) { | ||
| console.log(`More results available. Use --cursor ${result.next_cursor}`); | ||
| } | ||
| })); | ||
| // Get comment | ||
@@ -56,22 +50,16 @@ comments | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (commentId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const comment = await client.get(`comments/${commentId}`); | ||
| if (options.json) { | ||
| console.log(formatOutput(comment)); | ||
| } | ||
| else { | ||
| const text = comment.rich_text.map(t => t.plain_text).join(''); | ||
| console.log(`💬 ${text}`); | ||
| console.log(`ID: ${comment.id}`); | ||
| console.log(`Discussion: ${comment.discussion_id}`); | ||
| console.log(`Date: ${new Date(comment.created_time).toLocaleString()}`); | ||
| } | ||
| .action(withErrorHandler(async (commentId, options) => { | ||
| const client = getClient(); | ||
| const comment = await client.get(`comments/${commentId}`); | ||
| if (options.json) { | ||
| console.log(formatOutput(comment)); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| else { | ||
| const text = comment.rich_text.map(t => t.plain_text).join(''); | ||
| console.log(`💬 ${text}`); | ||
| console.log(`ID: ${comment.id}`); | ||
| console.log(`Discussion: ${comment.discussion_id}`); | ||
| console.log(`Date: ${new Date(comment.created_time).toLocaleString()}`); | ||
| } | ||
| }); | ||
| })); | ||
| // Create comment | ||
@@ -85,34 +73,28 @@ comments | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (options) => { | ||
| try { | ||
| if (!options.page && !options.discussion) { | ||
| console.error('Error: Either --page or --discussion is required'); | ||
| process.exit(1); | ||
| } | ||
| const client = getClient(); | ||
| const body = { | ||
| rich_text: [{ type: 'text', text: { content: options.text } }], | ||
| }; | ||
| if (options.page) { | ||
| body.parent = { page_id: options.page }; | ||
| } | ||
| else if (options.discussion) { | ||
| body.discussion_id = options.discussion; | ||
| } | ||
| const comment = await client.post('comments', body); | ||
| if (options.json) { | ||
| console.log(formatOutput(comment)); | ||
| } | ||
| else { | ||
| console.log('✅ Comment created'); | ||
| console.log('ID:', comment.id); | ||
| console.log('Discussion:', comment.discussion_id); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| .action(withErrorHandler(async (options) => { | ||
| if (!options.page && !options.discussion) { | ||
| console.error('Error: Either --page or --discussion is required'); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| const client = getClient(); | ||
| const body = { | ||
| rich_text: [{ type: 'text', text: { content: options.text } }], | ||
| }; | ||
| if (options.page) { | ||
| body.parent = { page_id: options.page }; | ||
| } | ||
| else if (options.discussion) { | ||
| body.discussion_id = options.discussion; | ||
| } | ||
| const comment = await client.post('comments', body); | ||
| if (options.json) { | ||
| console.log(formatOutput(comment)); | ||
| } | ||
| else { | ||
| console.log('✅ Comment created'); | ||
| console.log('ID:', comment.id); | ||
| console.log('Discussion:', comment.discussion_id); | ||
| } | ||
| })); | ||
| } | ||
| //# sourceMappingURL=comments.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/commands/comments.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAUlD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,UAAU,CAAC;SACjB,WAAW,CAAC,qCAAqC,CAAC,CAAC;IAEtD,gBAAgB;IAChB,QAAQ;SACL,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,sBAAsB,EAAE,aAAa,EAAE,KAAK,CAAC;SACpD,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;SAChD,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAO,EAAE,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAE3B,MAAM,KAAK,GAAoC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;YACrE,IAAI,OAAO,CAAC,KAAK;gBAAE,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjE,IAAI,OAAO,CAAC,MAAM;gBAAE,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;YAExD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAEnD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,MAInB,CAAC;YAEF,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,wCAAwC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,cAAc;IACd,QAAQ;SACL,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,OAAO,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,SAAS,EAAE,CAAY,CAAC;YAErE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,iBAAiB;IACjB,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,kBAAkB,EAAE,+CAA+C,CAAC;SAC3E,MAAM,CAAC,8BAA8B,EAAE,2BAA2B,CAAC;SACnE,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC;SACnD,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACzC,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAE3B,MAAM,IAAI,GAA4B;gBACpC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;aAC/D,CAAC;YAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1C,CAAC;iBAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;YAC1C,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAY,CAAC;YAE/D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"} | ||
| {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/commands/comments.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"databases.d.ts","sourceRoot":"","sources":["../../src/commands/databases.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8M/D"} | ||
| {"version":3,"file":"databases.d.ts","sourceRoot":"","sources":["../../src/commands/databases.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0N/D"} |
+136
-124
| import { getClient } from '../client.js'; | ||
| import { formatOutput, formatDatabaseTitle, parseFilter } from '../utils/format.js'; | ||
| import { getDatabaseSchema, queryDatabase, updateDatabase } from '../utils/database-resolver.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| export function registerDatabasesCommand(program) { | ||
@@ -14,24 +16,17 @@ const databases = program | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const db = await client.get(`databases/${databaseId}`); | ||
| if (options.json) { | ||
| console.log(formatOutput(db)); | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| const db = await getDatabaseSchema(client, databaseId); | ||
| if (options.json) { | ||
| console.log(formatOutput(db)); | ||
| } | ||
| else { | ||
| console.log('Database:', formatDatabaseTitle(db)); | ||
| console.log('ID:', db.id); | ||
| console.log('\nProperties:'); | ||
| for (const [name, prop] of Object.entries(db.properties)) { | ||
| console.log(` - ${name}: ${prop.type}`); | ||
| } | ||
| else { | ||
| console.log('Database:', formatDatabaseTitle(db)); | ||
| console.log('ID:', db.id); | ||
| console.log('\nProperties:'); | ||
| const props = db.properties; | ||
| for (const [name, prop] of Object.entries(props)) { | ||
| console.log(` - ${name}: ${prop.type}`); | ||
| } | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| })); | ||
| // Query database | ||
@@ -42,54 +37,83 @@ databases | ||
| .option('-f, --filter <json>', 'Filter as JSON string') | ||
| .option('--filter-prop <property>', 'Property to filter on') | ||
| .option('--filter-type <type>', 'Filter type: equals, contains, etc.') | ||
| .option('--filter-value <value>', 'Filter value') | ||
| .option('--filter-prop-type <propType>', 'Property type: select, status, text, number, date, checkbox') | ||
| .option('--filter-prop <property>', 'Property to filter on (repeatable)', (v, a) => [...a, v], []) | ||
| .option('--filter-type <type>', 'Filter type: equals, contains, etc. (repeatable)', (v, a) => [...a, v], []) | ||
| .option('--filter-value <value>', 'Filter value (repeatable)', (v, a) => [...a, v], []) | ||
| .option('--filter-prop-type <propType>', 'Property type: select, status, text, number, date, checkbox (repeatable)', (v, a) => [...a, v], []) | ||
| .option('-s, --sort <property>', 'Sort by property') | ||
| .option('--sort-dir <direction>', 'Sort direction: asc, desc', 'desc') | ||
| .option('--title <value>', 'Filter by exact title (auto-detects title property)') | ||
| .option('-l, --limit <number>', 'Max results', '100') | ||
| .option('--cursor <cursor>', 'Pagination cursor') | ||
| .option('--llm', 'Compact LLM-friendly output') | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const body = {}; | ||
| // Handle filter | ||
| if (options.filter) { | ||
| body.filter = JSON.parse(options.filter); | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| const body = {}; | ||
| // Handle --title shortcut (auto-detects title property from schema) | ||
| if (options.title) { | ||
| const db = await getDatabaseSchema(client, databaseId); | ||
| const titlePropName = Object.entries(db.properties) | ||
| .find(([, p]) => p.type === 'title')?.[0] || 'Name'; | ||
| body.filter = { | ||
| property: titlePropName, | ||
| title: { equals: options.title }, | ||
| }; | ||
| } | ||
| // Handle filter | ||
| if (!body.filter && options.filter) { | ||
| body.filter = JSON.parse(options.filter); | ||
| } | ||
| else if (!body.filter && options.filterProp.length > 0) { | ||
| const props = options.filterProp; | ||
| const types = options.filterType; | ||
| const values = options.filterValue; | ||
| const propTypes = options.filterPropType; | ||
| if (props.length !== types.length || props.length !== values.length) { | ||
| console.error('Error: --filter-prop, --filter-type, and --filter-value must be provided the same number of times'); | ||
| process.exit(1); | ||
| } | ||
| else if (options.filterProp && options.filterType && options.filterValue) { | ||
| body.filter = parseFilter(options.filterProp, options.filterType, options.filterValue, options.filterPropType); | ||
| if (propTypes.length !== 0 && propTypes.length !== props.length) { | ||
| console.error('Error: --filter-prop-type must be provided either for all filter groups or for none'); | ||
| process.exit(1); | ||
| } | ||
| // Handle sort | ||
| if (options.sort) { | ||
| body.sorts = [{ | ||
| property: options.sort, | ||
| direction: options.sortDir === 'asc' ? 'ascending' : 'descending', | ||
| }]; | ||
| } | ||
| if (options.limit) | ||
| body.page_size = parseInt(options.limit, 10); | ||
| if (options.cursor) | ||
| body.start_cursor = options.cursor; | ||
| const result = await client.post(`databases/${databaseId}/query`, body); | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| return; | ||
| } | ||
| const typedResult = result; | ||
| console.log(`Found ${typedResult.results.length} items:\n`); | ||
| for (const item of typedResult.results) { | ||
| const filters = props.map((prop, i) => parseFilter(prop, types[i], values[i], propTypes[i])); | ||
| body.filter = filters.length > 1 ? { and: filters } : filters[0]; | ||
| } | ||
| // Handle sort | ||
| if (options.sort) { | ||
| body.sorts = [{ | ||
| property: options.sort, | ||
| direction: options.sortDir === 'asc' ? 'ascending' : 'descending', | ||
| }]; | ||
| } | ||
| if (options.limit) | ||
| body.page_size = parseInt(options.limit, 10); | ||
| if (options.cursor) | ||
| body.start_cursor = options.cursor; | ||
| const result = await queryDatabase(client, databaseId, body); | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| return; | ||
| } | ||
| // --llm: compact output | ||
| if (options.llm) { | ||
| for (const item of result.results) { | ||
| const title = getItemTitle(item); | ||
| console.log(`📄 ${title}`); | ||
| console.log(` ID: ${item.id}`); | ||
| console.log(`${item.id} ${title}`); | ||
| } | ||
| if (typedResult.has_more) { | ||
| console.log(`\nMore results available. Use --cursor ${typedResult.next_cursor}`); | ||
| if (result.has_more) { | ||
| console.log(`(more results, cursor: ${result.next_cursor})`); | ||
| } | ||
| return; | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| console.log(`Found ${result.results.length} items:\n`); | ||
| for (const item of result.results) { | ||
| const title = getItemTitle(item); | ||
| console.log(`📄 ${title}`); | ||
| console.log(` ID: ${item.id}`); | ||
| } | ||
| }); | ||
| if (result.has_more) { | ||
| console.log(`\nMore results available. Use --cursor ${result.next_cursor}`); | ||
| } | ||
| })); | ||
| // Create database | ||
@@ -104,40 +128,34 @@ databases | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const properties = { | ||
| Name: { title: {} }, // Default title property | ||
| }; | ||
| // Parse additional properties | ||
| if (options.property) { | ||
| for (const prop of options.property) { | ||
| const [name, type] = prop.split(':'); | ||
| if (name && type) { | ||
| properties[name] = { [type]: {} }; | ||
| } | ||
| .action(withErrorHandler(async (options) => { | ||
| const client = getClient(); | ||
| const properties = { | ||
| Name: { title: {} }, // Default title property | ||
| }; | ||
| // Parse additional properties | ||
| if (options.property) { | ||
| for (const prop of options.property) { | ||
| const [name, type] = prop.split(':'); | ||
| if (name && type) { | ||
| properties[name] = { [type]: {} }; | ||
| } | ||
| } | ||
| const body = { | ||
| parent: { page_id: options.parent }, | ||
| title: [{ type: 'text', text: { content: options.title } }], | ||
| properties, | ||
| }; | ||
| if (options.inline) { | ||
| body.is_inline = true; | ||
| } | ||
| const db = await client.post('databases', body); | ||
| if (options.json) { | ||
| console.log(formatOutput(db)); | ||
| } | ||
| else { | ||
| console.log('✅ Database created'); | ||
| console.log('ID:', db.id); | ||
| console.log('URL:', db.url); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| const body = { | ||
| parent: { page_id: options.parent }, | ||
| title: [{ type: 'text', text: { content: options.title } }], | ||
| properties, | ||
| }; | ||
| if (options.inline) { | ||
| body.is_inline = true; | ||
| } | ||
| }); | ||
| const db = await client.post('databases', body); | ||
| if (options.json) { | ||
| console.log(formatOutput(db)); | ||
| } | ||
| else { | ||
| console.log('✅ Database created'); | ||
| console.log('ID:', db.id); | ||
| console.log('URL:', db.url); | ||
| } | ||
| })); | ||
| // Update database | ||
@@ -151,35 +169,29 @@ databases | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const body = {}; | ||
| if (options.title) { | ||
| body.title = [{ type: 'text', text: { content: options.title } }]; | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| const body = {}; | ||
| if (options.title) { | ||
| body.title = [{ type: 'text', text: { content: options.title } }]; | ||
| } | ||
| const properties = {}; | ||
| if (options.addProp) { | ||
| const [name, type] = options.addProp.split(':'); | ||
| if (name && type) { | ||
| properties[name] = { [type]: {} }; | ||
| } | ||
| const properties = {}; | ||
| if (options.addProp) { | ||
| const [name, type] = options.addProp.split(':'); | ||
| if (name && type) { | ||
| properties[name] = { [type]: {} }; | ||
| } | ||
| } | ||
| if (options.removeProp) { | ||
| properties[options.removeProp] = null; | ||
| } | ||
| if (Object.keys(properties).length > 0) { | ||
| body.properties = properties; | ||
| } | ||
| const db = await client.patch(`databases/${databaseId}`, body); | ||
| if (options.json) { | ||
| console.log(formatOutput(db)); | ||
| } | ||
| else { | ||
| console.log('✅ Database updated'); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| if (options.removeProp) { | ||
| properties[options.removeProp] = null; | ||
| } | ||
| }); | ||
| if (Object.keys(properties).length > 0) { | ||
| body.properties = properties; | ||
| } | ||
| const db = await updateDatabase(client, databaseId, body); | ||
| if (options.json) { | ||
| console.log(formatOutput(db)); | ||
| } | ||
| else { | ||
| console.log('✅ Database updated'); | ||
| } | ||
| })); | ||
| } | ||
@@ -186,0 +198,0 @@ function getItemTitle(item) { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"databases.js","sourceRoot":"","sources":["../../src/commands/databases.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"databases.js","sourceRoot":"","sources":["../../src/commands/databases.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"duplicate.d.ts","sourceRoot":"","sources":["../../src/commands/duplicate.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkEpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4W/D"} | ||
| {"version":3,"file":"duplicate.d.ts","sourceRoot":"","sources":["../../src/commands/duplicate.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoEpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2U/D"} |
+270
-297
| import { getClient } from '../client.js'; | ||
| import { fetchAllBlocks, getPageTitle, getDbTitle } from '../utils/notion-helpers.js'; | ||
| import { fetchAllBlocks, getPageTitle, getDbTitle, isParentDatabase, getParentDatabaseId } from '../utils/notion-helpers.js'; | ||
| import { getDatabaseSchema, queryAllPages } from '../utils/database-resolver.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| // Clean block for duplication (remove IDs, etc.) | ||
@@ -62,77 +64,71 @@ function cleanBlockForDuplication(block) { | ||
| .option('--no-content', 'Copy only properties, not content blocks') | ||
| .action(async (pageId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get source page | ||
| console.log('Fetching source page...'); | ||
| const sourcePage = await client.get(`pages/${pageId}`); | ||
| const sourceTitle = getPageTitle(sourcePage); | ||
| // Determine parent | ||
| let parent; | ||
| if (options.to) { | ||
| parent = options.parentType === 'page' | ||
| ? { page_id: options.to } | ||
| : { database_id: options.to }; | ||
| .action(withErrorHandler(async (pageId, options) => { | ||
| const client = getClient(); | ||
| // Get source page | ||
| console.log('Fetching source page...'); | ||
| const sourcePage = await client.get(`pages/${pageId}`); | ||
| const sourceTitle = getPageTitle(sourcePage); | ||
| // Determine parent | ||
| let parent; | ||
| if (options.to) { | ||
| parent = options.parentType === 'page' | ||
| ? { page_id: options.to } | ||
| : { database_id: options.to }; | ||
| } | ||
| else { | ||
| // Use same parent as source | ||
| if (isParentDatabase(sourcePage.parent)) { | ||
| parent = { database_id: getParentDatabaseId(sourcePage.parent) }; | ||
| } | ||
| else { | ||
| // Use same parent as source | ||
| if (sourcePage.parent.type === 'database_id') { | ||
| parent = { database_id: sourcePage.parent.database_id }; | ||
| } | ||
| else { | ||
| parent = { page_id: sourcePage.parent.page_id }; | ||
| } | ||
| parent = { page_id: sourcePage.parent.page_id }; | ||
| } | ||
| // Prepare new title | ||
| const newTitle = options.title || `Copy of ${sourceTitle}`; | ||
| // Clone properties (with new title) | ||
| const newProperties = {}; | ||
| for (const [name, value] of Object.entries(sourcePage.properties)) { | ||
| const prop = value; | ||
| if (prop.type === 'title') { | ||
| // Set new title | ||
| newProperties[name] = { | ||
| title: [{ text: { content: newTitle } }], | ||
| }; | ||
| } | ||
| else if ( | ||
| // Skip computed/readonly properties | ||
| prop.type !== 'created_time' && | ||
| prop.type !== 'created_by' && | ||
| prop.type !== 'last_edited_time' && | ||
| prop.type !== 'last_edited_by' && | ||
| prop.type !== 'formula' && | ||
| prop.type !== 'rollup') { | ||
| newProperties[name] = { [prop.type]: prop[prop.type] }; | ||
| } | ||
| } | ||
| // Prepare new title | ||
| const newTitle = options.title || `Copy of ${sourceTitle}`; | ||
| // Clone properties (with new title) | ||
| const newProperties = {}; | ||
| for (const [name, value] of Object.entries(sourcePage.properties)) { | ||
| const prop = value; | ||
| if (prop.type === 'title') { | ||
| // Set new title | ||
| newProperties[name] = { | ||
| title: [{ text: { content: newTitle } }], | ||
| }; | ||
| } | ||
| // Create new page | ||
| console.log('Creating new page...'); | ||
| const newPage = await client.post('pages', { | ||
| parent, | ||
| properties: newProperties, | ||
| }); | ||
| let blockCount = 0; | ||
| // Copy content if requested | ||
| if (options.content !== false) { | ||
| console.log('Copying content blocks...'); | ||
| const sourceBlocks = await fetchAllBlocks(client, pageId); | ||
| if (sourceBlocks.length > 0) { | ||
| blockCount = await duplicateBlocksRecursive(client, sourceBlocks, newPage.id); | ||
| } | ||
| else if ( | ||
| // Skip computed/readonly properties | ||
| prop.type !== 'created_time' && | ||
| prop.type !== 'created_by' && | ||
| prop.type !== 'last_edited_time' && | ||
| prop.type !== 'last_edited_by' && | ||
| prop.type !== 'formula' && | ||
| prop.type !== 'rollup') { | ||
| newProperties[name] = { [prop.type]: prop[prop.type] }; | ||
| } | ||
| console.log(`\n✅ Page duplicated`); | ||
| console.log(` Original: ${sourceTitle}`); | ||
| console.log(` New: ${newTitle}`); | ||
| console.log(` ID: ${newPage.id}`); | ||
| if (newPage.url) | ||
| console.log(` URL: ${newPage.url}`); | ||
| if (blockCount > 0) | ||
| console.log(` Copied ${blockCount} blocks`); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| // Create new page | ||
| console.log('Creating new page...'); | ||
| const newPage = await client.post('pages', { | ||
| parent, | ||
| properties: newProperties, | ||
| }); | ||
| let blockCount = 0; | ||
| // Copy content if requested | ||
| if (options.content !== false) { | ||
| console.log('Copying content blocks...'); | ||
| const sourceBlocks = await fetchAllBlocks(client, pageId); | ||
| if (sourceBlocks.length > 0) { | ||
| blockCount = await duplicateBlocksRecursive(client, sourceBlocks, newPage.id); | ||
| } | ||
| } | ||
| }); | ||
| console.log(`\n✅ Page duplicated`); | ||
| console.log(` Original: ${sourceTitle}`); | ||
| console.log(` New: ${newTitle}`); | ||
| console.log(` ID: ${newPage.id}`); | ||
| if (newPage.url) | ||
| console.log(` URL: ${newPage.url}`); | ||
| if (blockCount > 0) | ||
| console.log(` Copied ${blockCount} blocks`); | ||
| })); | ||
| // Clone database structure (schema only) | ||
@@ -145,99 +141,93 @@ duplicate | ||
| .option('-t, --title <title>', 'New database title') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get source database | ||
| console.log('Fetching source database schema...'); | ||
| const sourceDb = await client.get(`databases/${databaseId}`); | ||
| const sourceTitle = getDbTitle(sourceDb); | ||
| // Prepare new title | ||
| const newTitle = options.title || `Copy of ${sourceTitle}`; | ||
| // Clone properties (excluding computed ones) | ||
| const newProperties = {}; | ||
| for (const [name, schema] of Object.entries(sourceDb.properties)) { | ||
| // Skip formula and rollup as they depend on other DBs | ||
| if (schema.type === 'formula' || | ||
| schema.type === 'rollup' || | ||
| schema.type === 'created_time' || | ||
| schema.type === 'created_by' || | ||
| schema.type === 'last_edited_time' || | ||
| schema.type === 'last_edited_by') { | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| // Get source database | ||
| console.log('Fetching source database schema...'); | ||
| const sourceDb = await getDatabaseSchema(client, databaseId); | ||
| const sourceTitle = getDbTitle(sourceDb); | ||
| // Prepare new title | ||
| const newTitle = options.title || `Copy of ${sourceTitle}`; | ||
| // Clone properties (excluding computed ones) | ||
| const newProperties = {}; | ||
| for (const [name, schema] of Object.entries(sourceDb.properties)) { | ||
| // Skip formula and rollup as they depend on other DBs | ||
| if (schema.type === 'formula' || | ||
| schema.type === 'rollup' || | ||
| schema.type === 'created_time' || | ||
| schema.type === 'created_by' || | ||
| schema.type === 'last_edited_time' || | ||
| schema.type === 'last_edited_by') { | ||
| continue; | ||
| } | ||
| // Skip relations to other DBs (would need special handling) | ||
| if (schema.type === 'relation') { | ||
| console.log(` ⚠️ Skipping relation property: ${name}`); | ||
| continue; | ||
| } | ||
| // Clone property | ||
| const propConfig = {}; | ||
| switch (schema.type) { | ||
| case 'title': | ||
| propConfig.title = {}; | ||
| break; | ||
| case 'rich_text': | ||
| propConfig.rich_text = {}; | ||
| break; | ||
| case 'number': | ||
| propConfig.number = { format: schema.number?.format || 'number' }; | ||
| break; | ||
| case 'select': | ||
| propConfig.select = { options: schema.select?.options || [] }; | ||
| break; | ||
| case 'multi_select': | ||
| propConfig.multi_select = { options: schema.multi_select?.options || [] }; | ||
| break; | ||
| case 'status': | ||
| propConfig.status = { | ||
| options: schema.status?.options || [], | ||
| groups: schema.status?.groups || [], | ||
| }; | ||
| break; | ||
| case 'date': | ||
| propConfig.date = {}; | ||
| break; | ||
| case 'people': | ||
| propConfig.people = {}; | ||
| break; | ||
| case 'files': | ||
| propConfig.files = {}; | ||
| break; | ||
| case 'checkbox': | ||
| propConfig.checkbox = {}; | ||
| break; | ||
| case 'url': | ||
| propConfig.url = {}; | ||
| break; | ||
| case 'email': | ||
| propConfig.email = {}; | ||
| break; | ||
| case 'phone_number': | ||
| propConfig.phone_number = {}; | ||
| break; | ||
| default: | ||
| console.log(` ⚠️ Skipping unsupported property type: ${name} (${schema.type})`); | ||
| continue; | ||
| } | ||
| // Skip relations to other DBs (would need special handling) | ||
| if (schema.type === 'relation') { | ||
| console.log(` ⚠️ Skipping relation property: ${name}`); | ||
| continue; | ||
| } | ||
| // Clone property | ||
| const propConfig = {}; | ||
| switch (schema.type) { | ||
| case 'title': | ||
| propConfig.title = {}; | ||
| break; | ||
| case 'rich_text': | ||
| propConfig.rich_text = {}; | ||
| break; | ||
| case 'number': | ||
| propConfig.number = { format: schema.number?.format || 'number' }; | ||
| break; | ||
| case 'select': | ||
| propConfig.select = { options: schema.select?.options || [] }; | ||
| break; | ||
| case 'multi_select': | ||
| propConfig.multi_select = { options: schema.multi_select?.options || [] }; | ||
| break; | ||
| case 'status': | ||
| propConfig.status = { | ||
| options: schema.status?.options || [], | ||
| groups: schema.status?.groups || [], | ||
| }; | ||
| break; | ||
| case 'date': | ||
| propConfig.date = {}; | ||
| break; | ||
| case 'people': | ||
| propConfig.people = {}; | ||
| break; | ||
| case 'files': | ||
| propConfig.files = {}; | ||
| break; | ||
| case 'checkbox': | ||
| propConfig.checkbox = {}; | ||
| break; | ||
| case 'url': | ||
| propConfig.url = {}; | ||
| break; | ||
| case 'email': | ||
| propConfig.email = {}; | ||
| break; | ||
| case 'phone_number': | ||
| propConfig.phone_number = {}; | ||
| break; | ||
| default: | ||
| console.log(` ⚠️ Skipping unsupported property type: ${name} (${schema.type})`); | ||
| continue; | ||
| } | ||
| newProperties[name] = propConfig; | ||
| } | ||
| // Create new database | ||
| console.log('Creating new database...'); | ||
| const newDb = await client.post('databases', { | ||
| parent: { page_id: options.to }, | ||
| title: [{ text: { content: newTitle } }], | ||
| properties: newProperties, | ||
| }); | ||
| console.log(`\n✅ Database schema cloned`); | ||
| console.log(` Original: ${sourceTitle}`); | ||
| console.log(` New: ${newTitle}`); | ||
| console.log(` ID: ${newDb.id}`); | ||
| if (newDb.url) | ||
| console.log(` URL: ${newDb.url}`); | ||
| console.log(` Properties: ${Object.keys(newProperties).length}`); | ||
| newProperties[name] = propConfig; | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| // Create new database | ||
| console.log('Creating new database...'); | ||
| const newDb = await client.post('databases', { | ||
| parent: { page_id: options.to }, | ||
| title: [{ text: { content: newTitle } }], | ||
| properties: newProperties, | ||
| }); | ||
| console.log(`\n✅ Database schema cloned`); | ||
| console.log(` Original: ${sourceTitle}`); | ||
| console.log(` New: ${newTitle}`); | ||
| console.log(` ID: ${newDb.id}`); | ||
| if (newDb.url) | ||
| console.log(` URL: ${newDb.url}`); | ||
| console.log(` Properties: ${Object.keys(newProperties).length}`); | ||
| })); | ||
| // Full database clone (structure + data) | ||
@@ -253,144 +243,127 @@ duplicate | ||
| .option('--dry-run', 'Show what would be cloned') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get source database | ||
| console.log('Fetching source database...'); | ||
| const sourceDb = await client.get(`databases/${databaseId}`); | ||
| const sourceTitle = getDbTitle(sourceDb); | ||
| // Query all entries | ||
| const entries = []; | ||
| let cursor; | ||
| do { | ||
| const body = { page_size: 100 }; | ||
| if (cursor) | ||
| body.start_cursor = cursor; | ||
| if (options.limit && entries.length >= parseInt(options.limit, 10)) | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| // Get source database | ||
| console.log('Fetching source database...'); | ||
| const sourceDb = await getDatabaseSchema(client, databaseId); | ||
| const sourceTitle = getDbTitle(sourceDb); | ||
| // Query all entries | ||
| const entries = await queryAllPages(client, databaseId, { | ||
| pageSize: 100, | ||
| limit: options.limit ? parseInt(options.limit, 10) : undefined, | ||
| onProgress: (fetched) => process.stdout.write(`\rFetching entries: ${fetched}...`), | ||
| }); | ||
| console.log(`\rFound ${entries.length} entries to clone. `); | ||
| if (options.dryRun) { | ||
| console.log('\n🔍 Dry run - would clone:'); | ||
| console.log(` Database: ${sourceTitle}`); | ||
| console.log(` Entries: ${entries.length}`); | ||
| console.log(` Target: page ${options.to}`); | ||
| return; | ||
| } | ||
| // Clone schema first | ||
| console.log('\nCloning database schema...'); | ||
| const newTitle = options.title || `Copy of ${sourceTitle}`; | ||
| const newProperties = {}; | ||
| for (const [name, schema] of Object.entries(sourceDb.properties)) { | ||
| if (['formula', 'rollup', 'relation', 'created_time', 'created_by', | ||
| 'last_edited_time', 'last_edited_by'].includes(schema.type)) { | ||
| continue; | ||
| } | ||
| const propConfig = {}; | ||
| switch (schema.type) { | ||
| case 'title': | ||
| propConfig.title = {}; | ||
| break; | ||
| const result = await client.post(`databases/${databaseId}/query`, body); | ||
| entries.push(...result.results); | ||
| cursor = result.has_more ? result.next_cursor : undefined; | ||
| process.stdout.write(`\rFetching entries: ${entries.length}...`); | ||
| } while (cursor); | ||
| if (options.limit) { | ||
| entries.splice(parseInt(options.limit, 10)); | ||
| case 'rich_text': | ||
| propConfig.rich_text = {}; | ||
| break; | ||
| case 'number': | ||
| propConfig.number = { format: schema.number?.format || 'number' }; | ||
| break; | ||
| case 'select': | ||
| propConfig.select = { options: schema.select?.options || [] }; | ||
| break; | ||
| case 'multi_select': | ||
| propConfig.multi_select = { options: schema.multi_select?.options || [] }; | ||
| break; | ||
| case 'status': | ||
| propConfig.status = { options: schema.status?.options || [], groups: schema.status?.groups || [] }; | ||
| break; | ||
| case 'date': | ||
| propConfig.date = {}; | ||
| break; | ||
| case 'people': | ||
| propConfig.people = {}; | ||
| break; | ||
| case 'files': | ||
| propConfig.files = {}; | ||
| break; | ||
| case 'checkbox': | ||
| propConfig.checkbox = {}; | ||
| break; | ||
| case 'url': | ||
| propConfig.url = {}; | ||
| break; | ||
| case 'email': | ||
| propConfig.email = {}; | ||
| break; | ||
| case 'phone_number': | ||
| propConfig.phone_number = {}; | ||
| break; | ||
| default: continue; | ||
| } | ||
| console.log(`\rFound ${entries.length} entries to clone. `); | ||
| if (options.dryRun) { | ||
| console.log('\n🔍 Dry run - would clone:'); | ||
| console.log(` Database: ${sourceTitle}`); | ||
| console.log(` Entries: ${entries.length}`); | ||
| console.log(` Target: page ${options.to}`); | ||
| return; | ||
| } | ||
| // Clone schema first | ||
| console.log('\nCloning database schema...'); | ||
| const newTitle = options.title || `Copy of ${sourceTitle}`; | ||
| const newProperties = {}; | ||
| for (const [name, schema] of Object.entries(sourceDb.properties)) { | ||
| if (['formula', 'rollup', 'relation', 'created_time', 'created_by', | ||
| 'last_edited_time', 'last_edited_by'].includes(schema.type)) { | ||
| continue; | ||
| newProperties[name] = propConfig; | ||
| } | ||
| const newDb = await client.post('databases', { | ||
| parent: { page_id: options.to }, | ||
| title: [{ text: { content: newTitle } }], | ||
| properties: newProperties, | ||
| }); | ||
| console.log(`Created database: ${newDb.id}`); | ||
| // Clone entries | ||
| console.log('Cloning entries...'); | ||
| let cloned = 0; | ||
| let failed = 0; | ||
| for (const entry of entries) { | ||
| try { | ||
| // Prepare properties | ||
| const entryProps = {}; | ||
| for (const [name, value] of Object.entries(entry.properties)) { | ||
| const prop = value; | ||
| if (['formula', 'rollup', 'relation', 'created_time', 'created_by', | ||
| 'last_edited_time', 'last_edited_by'].includes(prop.type)) { | ||
| continue; | ||
| } | ||
| // Check if property exists in new schema | ||
| if (!newProperties[name]) | ||
| continue; | ||
| entryProps[name] = { [prop.type]: prop[prop.type] }; | ||
| } | ||
| const propConfig = {}; | ||
| switch (schema.type) { | ||
| case 'title': | ||
| propConfig.title = {}; | ||
| break; | ||
| case 'rich_text': | ||
| propConfig.rich_text = {}; | ||
| break; | ||
| case 'number': | ||
| propConfig.number = { format: schema.number?.format || 'number' }; | ||
| break; | ||
| case 'select': | ||
| propConfig.select = { options: schema.select?.options || [] }; | ||
| break; | ||
| case 'multi_select': | ||
| propConfig.multi_select = { options: schema.multi_select?.options || [] }; | ||
| break; | ||
| case 'status': | ||
| propConfig.status = { options: schema.status?.options || [], groups: schema.status?.groups || [] }; | ||
| break; | ||
| case 'date': | ||
| propConfig.date = {}; | ||
| break; | ||
| case 'people': | ||
| propConfig.people = {}; | ||
| break; | ||
| case 'files': | ||
| propConfig.files = {}; | ||
| break; | ||
| case 'checkbox': | ||
| propConfig.checkbox = {}; | ||
| break; | ||
| case 'url': | ||
| propConfig.url = {}; | ||
| break; | ||
| case 'email': | ||
| propConfig.email = {}; | ||
| break; | ||
| case 'phone_number': | ||
| propConfig.phone_number = {}; | ||
| break; | ||
| default: continue; | ||
| } | ||
| newProperties[name] = propConfig; | ||
| } | ||
| const newDb = await client.post('databases', { | ||
| parent: { page_id: options.to }, | ||
| title: [{ text: { content: newTitle } }], | ||
| properties: newProperties, | ||
| }); | ||
| console.log(`Created database: ${newDb.id}`); | ||
| // Clone entries | ||
| console.log('Cloning entries...'); | ||
| let cloned = 0; | ||
| let failed = 0; | ||
| for (const entry of entries) { | ||
| try { | ||
| // Prepare properties | ||
| const entryProps = {}; | ||
| for (const [name, value] of Object.entries(entry.properties)) { | ||
| const prop = value; | ||
| if (['formula', 'rollup', 'relation', 'created_time', 'created_by', | ||
| 'last_edited_time', 'last_edited_by'].includes(prop.type)) { | ||
| continue; | ||
| } | ||
| // Check if property exists in new schema | ||
| if (!newProperties[name]) | ||
| continue; | ||
| entryProps[name] = { [prop.type]: prop[prop.type] }; | ||
| // Create page | ||
| const pageData = { | ||
| parent: { database_id: newDb.id }, | ||
| properties: entryProps, | ||
| }; | ||
| const newPage = await client.post('pages', pageData); | ||
| // Copy content if requested | ||
| if (options.content) { | ||
| const blocks = await fetchAllBlocks(client, entry.id); | ||
| if (blocks.length > 0) { | ||
| await duplicateBlocksRecursive(client, blocks, newPage.id); | ||
| } | ||
| // Create page | ||
| const pageData = { | ||
| parent: { database_id: newDb.id }, | ||
| properties: entryProps, | ||
| }; | ||
| const newPage = await client.post('pages', pageData); | ||
| // Copy content if requested | ||
| if (options.content) { | ||
| const blocks = await fetchAllBlocks(client, entry.id); | ||
| if (blocks.length > 0) { | ||
| await duplicateBlocksRecursive(client, blocks, newPage.id); | ||
| } | ||
| } | ||
| cloned++; | ||
| process.stdout.write(`\r📄 Cloned ${cloned}/${entries.length}...`); | ||
| } | ||
| catch (error) { | ||
| failed++; | ||
| console.error(`\n❌ Failed: ${error.message}`); | ||
| } | ||
| cloned++; | ||
| process.stdout.write(`\r📄 Cloned ${cloned}/${entries.length}...`); | ||
| } | ||
| console.log(`\n\n✅ Database cloned`); | ||
| console.log(` Entries: ${cloned} cloned${failed > 0 ? `, ${failed} failed` : ''}`); | ||
| console.log(` New database ID: ${newDb.id}`); | ||
| catch (error) { | ||
| failed++; | ||
| console.error(`\n❌ Failed: ${error.message}`); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| console.log(`\n\n✅ Database cloned`); | ||
| console.log(` Entries: ${cloned} cloned${failed > 0 ? `, ${failed} failed` : ''}`); | ||
| console.log(` New database ID: ${newDb.id}`); | ||
| })); | ||
| } | ||
| //# sourceMappingURL=duplicate.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"duplicate.js","sourceRoot":"","sources":["../../src/commands/duplicate.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"duplicate.js","sourceRoot":"","sources":["../../src/commands/duplicate.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2JpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgI5D"} | ||
| {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsFpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqG5D"} |
+74
-147
@@ -5,6 +5,15 @@ import { getClient } from '../client.js'; | ||
| import { richTextToMarkdown, } from '../utils/markdown.js'; | ||
| import { blocksToMarkdownAsync } from '../utils/notion-helpers.js'; | ||
| function getPageTitle(page) { | ||
| const props = page.properties; | ||
| for (const [, value] of Object.entries(props)) { | ||
| import { queryAllPages } from '../utils/database-resolver.js'; | ||
| import { blocksToMarkdownAsync, getPropertyRawValue } from '../utils/notion-helpers.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| /** Property raw value options pre-configured with markdown formatting for rich text. */ | ||
| const markdownPropertyOptions = { | ||
| richTextFormatter: (rt) => richTextToMarkdown(rt), | ||
| }; | ||
| /** | ||
| * Extract the title from a Notion page with markdown formatting (bold, italic, etc.). | ||
| * Used by export commands where rich text annotations must be preserved. | ||
| */ | ||
| function getPageTitleMarkdown(page) { | ||
| for (const value of Object.values(page.properties)) { | ||
| const prop = value; | ||
@@ -17,61 +26,2 @@ if (prop.type === 'title' && prop.title) { | ||
| } | ||
| function propertyToValue(prop) { | ||
| const type = prop.type; | ||
| const data = prop[type]; | ||
| switch (type) { | ||
| case 'title': | ||
| case 'rich_text': | ||
| return richTextToMarkdown(data); | ||
| case 'number': | ||
| return data; | ||
| case 'select': | ||
| return data?.name || null; | ||
| case 'multi_select': | ||
| return data?.map(s => s.name) || []; | ||
| case 'status': | ||
| return data?.name || null; | ||
| case 'date': | ||
| const dateData = data; | ||
| if (!dateData) | ||
| return null; | ||
| return dateData.end ? `${dateData.start} - ${dateData.end}` : dateData.start; | ||
| case 'checkbox': | ||
| return data; | ||
| case 'url': | ||
| case 'email': | ||
| case 'phone_number': | ||
| return data; | ||
| case 'people': | ||
| return data?.map(p => p.name).filter(Boolean) || []; | ||
| case 'files': | ||
| return data?.map(f => f.file?.url || f.external?.url || f.name) || []; | ||
| case 'relation': | ||
| return data?.map(r => r.id) || []; | ||
| case 'formula': | ||
| const formula = data; | ||
| switch (formula?.type) { | ||
| case 'string': return formula.string; | ||
| case 'number': return formula.number; | ||
| case 'boolean': return formula.boolean; | ||
| case 'date': return formula.date?.start; | ||
| default: return null; | ||
| } | ||
| case 'rollup': | ||
| const rollup = data; | ||
| switch (rollup?.type) { | ||
| case 'array': return rollup.array; | ||
| case 'number': return rollup.number; | ||
| case 'date': return rollup.date?.start; | ||
| default: return null; | ||
| } | ||
| case 'created_time': | ||
| case 'last_edited_time': | ||
| return data; | ||
| case 'created_by': | ||
| case 'last_edited_by': | ||
| return data?.name || null; | ||
| default: | ||
| return null; | ||
| } | ||
| } | ||
| function generateFrontmatter(page, includeId = true) { | ||
@@ -96,3 +46,3 @@ const lines = ['---']; | ||
| continue; // Title is the filename | ||
| const val = propertyToValue(prop); | ||
| const val = getPropertyRawValue(prop, markdownPropertyOptions); | ||
| if (val === null || val === undefined || val === '') | ||
@@ -140,34 +90,28 @@ continue; | ||
| .option('--no-frontmatter', 'Export only content, no frontmatter') | ||
| .action(async (pageId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Fetch page | ||
| const page = await client.get(`pages/${pageId}`); | ||
| const title = getPageTitle(page); | ||
| let output = ''; | ||
| // Add frontmatter | ||
| if (options.frontmatter !== false && options.obsidian) { | ||
| output += generateFrontmatter(page); | ||
| } | ||
| // Add title | ||
| output += `# ${title}\n\n`; | ||
| // Add content | ||
| if (options.content !== false) { | ||
| const content = await blocksToMarkdownAsync(client, pageId); | ||
| output += content; | ||
| } | ||
| // Output | ||
| if (options.output) { | ||
| fs.writeFileSync(options.output, output); | ||
| console.log(`✅ Exported to ${options.output}`); | ||
| } | ||
| else { | ||
| console.log(output); | ||
| } | ||
| .action(withErrorHandler(async (pageId, options) => { | ||
| const client = getClient(); | ||
| // Fetch page | ||
| const page = await client.get(`pages/${pageId}`); | ||
| const title = getPageTitleMarkdown(page); | ||
| let output = ''; | ||
| // Add frontmatter | ||
| if (options.frontmatter !== false && options.obsidian) { | ||
| output += generateFrontmatter(page); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| // Add title | ||
| output += `# ${title}\n\n`; | ||
| // Add content | ||
| if (options.content !== false) { | ||
| const content = await blocksToMarkdownAsync(client, pageId); | ||
| output += content; | ||
| } | ||
| }); | ||
| // Output | ||
| if (options.output) { | ||
| fs.writeFileSync(options.output, output); | ||
| console.log(`✅ Exported to ${options.output}`); | ||
| } | ||
| else { | ||
| console.log(output); | ||
| } | ||
| })); | ||
| // Export database to Obsidian vault | ||
@@ -183,59 +127,42 @@ exportCmd | ||
| .option('--filter <json>', 'Filter as JSON') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Determine output folder | ||
| const vaultPath = path.resolve(options.vault); | ||
| const outputFolder = options.folder | ||
| ? path.join(vaultPath, options.folder) | ||
| : vaultPath; | ||
| // Create folder if needed | ||
| if (!fs.existsSync(outputFolder)) { | ||
| fs.mkdirSync(outputFolder, { recursive: true }); | ||
| } | ||
| // Query database | ||
| const body = {}; | ||
| if (options.limit) | ||
| body.page_size = parseInt(options.limit, 10); | ||
| if (options.filter) | ||
| body.filter = JSON.parse(options.filter); | ||
| let cursor; | ||
| let exported = 0; | ||
| do { | ||
| if (cursor) | ||
| body.start_cursor = cursor; | ||
| const result = await client.post(`databases/${databaseId}/query`, body); | ||
| for (const page of result.results) { | ||
| const title = getPageTitle(page); | ||
| const filename = sanitizeFilename(title) + '.md'; | ||
| const filepath = path.join(outputFolder, filename); | ||
| let content = generateFrontmatter(page); | ||
| content += `# ${title}\n\n`; | ||
| if (options.content) { | ||
| try { | ||
| const pageContent = await blocksToMarkdownAsync(client, page.id); | ||
| content += pageContent; | ||
| } | ||
| catch { | ||
| content += `<!-- Failed to fetch content -->\n`; | ||
| } | ||
| } | ||
| fs.writeFileSync(filepath, content); | ||
| exported++; | ||
| process.stdout.write(`\r📄 Exported ${exported} pages...`); | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| // Determine output folder | ||
| const vaultPath = path.resolve(options.vault); | ||
| const outputFolder = options.folder | ||
| ? path.join(vaultPath, options.folder) | ||
| : vaultPath; | ||
| // Create folder if needed | ||
| if (!fs.existsSync(outputFolder)) { | ||
| fs.mkdirSync(outputFolder, { recursive: true }); | ||
| } | ||
| // Query all pages from database | ||
| const pages = await queryAllPages(client, databaseId, { | ||
| filter: options.filter ? JSON.parse(options.filter) : undefined, | ||
| limit: options.limit ? parseInt(options.limit, 10) : undefined, | ||
| onProgress: (n) => process.stdout.write(`\r📄 Fetching ${n} pages...`), | ||
| }); | ||
| let exported = 0; | ||
| for (const page of pages) { | ||
| const title = getPageTitleMarkdown(page); | ||
| const filename = sanitizeFilename(title) + '.md'; | ||
| const filepath = path.join(outputFolder, filename); | ||
| let content = generateFrontmatter(page); | ||
| content += `# ${title}\n\n`; | ||
| if (options.content) { | ||
| try { | ||
| const pageContent = await blocksToMarkdownAsync(client, page.id); | ||
| content += pageContent; | ||
| } | ||
| cursor = result.has_more ? result.next_cursor : undefined; | ||
| // Respect limit | ||
| if (options.limit && exported >= parseInt(options.limit, 10)) { | ||
| cursor = undefined; | ||
| catch { | ||
| content += `<!-- Failed to fetch content -->\n`; | ||
| } | ||
| } while (cursor); | ||
| console.log(`\n✅ Exported ${exported} pages to ${outputFolder}`); | ||
| } | ||
| fs.writeFileSync(filepath, content); | ||
| exported++; | ||
| process.stdout.write(`\r📄 Exported ${exported}/${pages.length} pages...`); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| console.log(`\n✅ Exported ${exported} pages to ${outputFolder}`); | ||
| })); | ||
| } | ||
| //# sourceMappingURL=export.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../src/commands/find.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6KpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2L1D"} | ||
| {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../src/commands/find.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+KpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmL1D"} |
+124
-128
| import { getClient } from '../client.js'; | ||
| import { formatOutput } from '../utils/format.js'; | ||
| import { getPageTitle } from '../utils/notion-helpers.js'; | ||
| import { getDatabaseSchema, queryDatabase } from '../utils/database-resolver.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| // Parse natural language query into filter components | ||
@@ -140,155 +142,149 @@ function parseQuery(query) { | ||
| .option('--llm', 'LLM-friendly output') | ||
| .action(async (query, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get database schema first | ||
| const db = await client.get(`databases/${options.database}`); | ||
| const schema = db.properties; | ||
| // Parse the query | ||
| const parsed = parseQuery(query); | ||
| // Build filter | ||
| const filters = []; | ||
| // Status filter | ||
| if (parsed.statusFilter) { | ||
| const statusProp = findProperty(schema, ['status', 'select'], ['status', 'estado', 'state']); | ||
| if (statusProp) { | ||
| const statusValue = findStatusValue(schema, statusProp, parsed.statusFilter); | ||
| if (statusValue) { | ||
| const propType = schema[statusProp].type; | ||
| filters.push({ | ||
| property: statusProp, | ||
| [propType]: { equals: statusValue }, | ||
| }); | ||
| } | ||
| } | ||
| } | ||
| // Assignee filter | ||
| if (parsed.assigneeFilter === 'empty') { | ||
| const assigneeProp = findProperty(schema, ['people'], ['assignee', 'asignado', 'owner', 'responsible', 'assigned']); | ||
| if (assigneeProp) { | ||
| .action(withErrorHandler(async (query, options) => { | ||
| const client = getClient(); | ||
| // Get database schema first | ||
| const db = await getDatabaseSchema(client, options.database); | ||
| const schema = db.properties; | ||
| // Parse the query | ||
| const parsed = parseQuery(query); | ||
| // Build filter | ||
| const filters = []; | ||
| // Status filter | ||
| if (parsed.statusFilter) { | ||
| const statusProp = findProperty(schema, ['status', 'select'], ['status', 'estado', 'state']); | ||
| if (statusProp) { | ||
| const statusValue = findStatusValue(schema, statusProp, parsed.statusFilter); | ||
| if (statusValue) { | ||
| const propType = schema[statusProp].type; | ||
| filters.push({ | ||
| property: assigneeProp, | ||
| people: { is_empty: true }, | ||
| property: statusProp, | ||
| [propType]: { equals: statusValue }, | ||
| }); | ||
| } | ||
| } | ||
| // Date filter (deadline/due) | ||
| if (parsed.dateFilter) { | ||
| const dateProp = findProperty(schema, ['date'], ['deadline', 'due', 'fecha', 'date', 'vencimiento', 'due date']); | ||
| if (dateProp && parsed.dateFilter.type !== 'last_edited_today' && | ||
| parsed.dateFilter.type !== 'created_today') { | ||
| if (parsed.dateFilter.type === 'this_week') { | ||
| filters.push({ | ||
| property: dateProp, | ||
| date: { this_week: {} }, | ||
| }); | ||
| } | ||
| else if (parsed.dateFilter.value) { | ||
| filters.push({ | ||
| property: dateProp, | ||
| date: { [parsed.dateFilter.type]: parsed.dateFilter.value }, | ||
| }); | ||
| } | ||
| } | ||
| // Handle last_edited filter (uses timestamp property) | ||
| if (parsed.dateFilter.type === 'last_edited_today') { | ||
| const today = new Date(); | ||
| today.setHours(0, 0, 0, 0); | ||
| } | ||
| // Assignee filter | ||
| if (parsed.assigneeFilter === 'empty') { | ||
| const assigneeProp = findProperty(schema, ['people'], ['assignee', 'asignado', 'owner', 'responsible', 'assigned']); | ||
| if (assigneeProp) { | ||
| filters.push({ | ||
| property: assigneeProp, | ||
| people: { is_empty: true }, | ||
| }); | ||
| } | ||
| } | ||
| // Date filter (deadline/due) | ||
| if (parsed.dateFilter) { | ||
| const dateProp = findProperty(schema, ['date'], ['deadline', 'due', 'fecha', 'date', 'vencimiento', 'due date']); | ||
| if (dateProp && parsed.dateFilter.type !== 'last_edited_today' && | ||
| parsed.dateFilter.type !== 'created_today') { | ||
| if (parsed.dateFilter.type === 'this_week') { | ||
| filters.push({ | ||
| timestamp: 'last_edited_time', | ||
| last_edited_time: { on_or_after: today.toISOString() }, | ||
| property: dateProp, | ||
| date: { this_week: {} }, | ||
| }); | ||
| } | ||
| if (parsed.dateFilter.type === 'created_today') { | ||
| const today = new Date(); | ||
| today.setHours(0, 0, 0, 0); | ||
| else if (parsed.dateFilter.value) { | ||
| filters.push({ | ||
| timestamp: 'created_time', | ||
| created_time: { on_or_after: today.toISOString() }, | ||
| property: dateProp, | ||
| date: { [parsed.dateFilter.type]: parsed.dateFilter.value }, | ||
| }); | ||
| } | ||
| } | ||
| // Priority filter | ||
| if (parsed.priorityFilter) { | ||
| const priorityProp = findProperty(schema, ['select'], ['priority', 'prioridad', 'importance', 'importancia']); | ||
| if (priorityProp) { | ||
| // Find matching priority value | ||
| const propData = schema[priorityProp].select; | ||
| const options = propData?.options || []; | ||
| const match = options.find(o => o.name.toLowerCase().includes(parsed.priorityFilter.toLowerCase())); | ||
| if (match) { | ||
| filters.push({ | ||
| property: priorityProp, | ||
| select: { equals: match.name }, | ||
| }); | ||
| } | ||
| } | ||
| // Handle last_edited filter (uses timestamp property) | ||
| if (parsed.dateFilter.type === 'last_edited_today') { | ||
| const today = new Date(); | ||
| today.setHours(0, 0, 0, 0); | ||
| filters.push({ | ||
| timestamp: 'last_edited_time', | ||
| last_edited_time: { on_or_after: today.toISOString() }, | ||
| }); | ||
| } | ||
| // Build final filter | ||
| const filter = filters.length > 1 | ||
| ? { and: filters } | ||
| : filters.length === 1 | ||
| ? filters[0] | ||
| : undefined; | ||
| // Explain mode | ||
| if (options.explain) { | ||
| console.log('🔍 Parsed query:', JSON.stringify(parsed, null, 2)); | ||
| console.log('\n📋 Generated filter:', JSON.stringify(filter, null, 2)); | ||
| console.log('\n💡 To execute manually:'); | ||
| console.log(`notion db query ${options.database} --filter '${JSON.stringify(filter)}'`); | ||
| return; | ||
| if (parsed.dateFilter.type === 'created_today') { | ||
| const today = new Date(); | ||
| today.setHours(0, 0, 0, 0); | ||
| filters.push({ | ||
| timestamp: 'created_time', | ||
| created_time: { on_or_after: today.toISOString() }, | ||
| }); | ||
| } | ||
| // Execute query | ||
| const body = { | ||
| page_size: parseInt(options.limit, 10), | ||
| }; | ||
| if (filter) | ||
| body.filter = filter; | ||
| const result = await client.post(`databases/${options.database}/query`, body); | ||
| // Output | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| return; | ||
| } | ||
| if (options.llm) { | ||
| console.log(`## Found ${result.results.length} results for: "${query}"\n`); | ||
| if (filter) { | ||
| console.log(`Filter applied: \`${JSON.stringify(filter)}\`\n`); | ||
| } | ||
| // Priority filter | ||
| if (parsed.priorityFilter) { | ||
| const priorityProp = findProperty(schema, ['select'], ['priority', 'prioridad', 'importance', 'importancia']); | ||
| if (priorityProp) { | ||
| // Find matching priority value | ||
| const propData = schema[priorityProp].select; | ||
| const options = propData?.options || []; | ||
| const match = options.find(o => o.name.toLowerCase().includes(parsed.priorityFilter.toLowerCase())); | ||
| if (match) { | ||
| filters.push({ | ||
| property: priorityProp, | ||
| select: { equals: match.name }, | ||
| }); | ||
| } | ||
| result.results.forEach((page, i) => { | ||
| const title = getPageTitle(page); | ||
| console.log(`${i + 1}. **${title}**`); | ||
| console.log(` ID: ${page.id}`); | ||
| if (page.url) | ||
| console.log(` URL: ${page.url}`); | ||
| }); | ||
| if (result.has_more) { | ||
| console.log(`\n*More results available*`); | ||
| } | ||
| return; | ||
| } | ||
| // Standard output | ||
| console.log(`Found ${result.results.length} results for: "${query}"\n`); | ||
| if (result.results.length === 0) { | ||
| console.log('No matching entries found.'); | ||
| return; | ||
| } | ||
| // Build final filter | ||
| const filter = filters.length > 1 | ||
| ? { and: filters } | ||
| : filters.length === 1 | ||
| ? filters[0] | ||
| : undefined; | ||
| // Explain mode | ||
| if (options.explain) { | ||
| console.log('🔍 Parsed query:', JSON.stringify(parsed, null, 2)); | ||
| console.log('\n📋 Generated filter:', JSON.stringify(filter, null, 2)); | ||
| console.log('\n💡 To execute manually:'); | ||
| console.log(`notion db query ${options.database} --filter '${JSON.stringify(filter)}'`); | ||
| return; | ||
| } | ||
| // Execute query | ||
| const body = { | ||
| page_size: parseInt(options.limit, 10), | ||
| }; | ||
| if (filter) | ||
| body.filter = filter; | ||
| const result = await queryDatabase(client, options.database, body); | ||
| // Output | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| return; | ||
| } | ||
| if (options.llm) { | ||
| console.log(`## Found ${result.results.length} results for: "${query}"\n`); | ||
| if (filter) { | ||
| console.log(`Filter applied: \`${JSON.stringify(filter)}\`\n`); | ||
| } | ||
| for (const page of result.results) { | ||
| result.results.forEach((page, i) => { | ||
| const title = getPageTitle(page); | ||
| console.log(`📄 ${title}`); | ||
| console.log(`${i + 1}. **${title}**`); | ||
| console.log(` ID: ${page.id}`); | ||
| if (page.url) | ||
| console.log(` URL: ${page.url}`); | ||
| console.log(''); | ||
| } | ||
| }); | ||
| if (result.has_more) { | ||
| console.log(`More results available. Use --limit to fetch more.`); | ||
| console.log(`\n*More results available*`); | ||
| } | ||
| return; | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| // Standard output | ||
| console.log(`Found ${result.results.length} results for: "${query}"\n`); | ||
| if (result.results.length === 0) { | ||
| console.log('No matching entries found.'); | ||
| return; | ||
| } | ||
| }); | ||
| for (const page of result.results) { | ||
| const title = getPageTitle(page); | ||
| console.log(`📄 ${title}`); | ||
| console.log(` ID: ${page.id}`); | ||
| if (page.url) | ||
| console.log(` URL: ${page.url}`); | ||
| console.log(''); | ||
| } | ||
| if (result.has_more) { | ||
| console.log(`More results available. Use --limit to fetch more.`); | ||
| } | ||
| })); | ||
| } | ||
| //# sourceMappingURL=find.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/commands/find.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/commands/find.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"help-agent.d.ts","sourceRoot":"","sources":["../../src/commands/help-agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8G/D"} | ||
| {"version":3,"file":"help-agent.d.ts","sourceRoot":"","sources":["../../src/commands/help-agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiH/D"} |
@@ -17,4 +17,5 @@ export function registerHelpAgentCommand(program) { | ||
| \`\`\`bash | ||
| notion inspect ws # List all accessible databases | ||
| notion inspect schema <db_id> # Get database schema with property types | ||
| notion inspect ws --compact # List all accessible databases | ||
| notion inspect ws --json # Full raw inventory | ||
| notion inspect schema <db_id> --llm # Get database schema with valid values | ||
| notion inspect context <db_id> # Full context for working with a database | ||
@@ -27,2 +28,3 @@ \`\`\` | ||
| notion db query <db_id> --limit 10 # Query database entries | ||
| notion db query <db_id> --limit 10 --json | ||
| notion find "overdue tasks" -d <db_id> # Smart natural language query | ||
@@ -47,2 +49,3 @@ \`\`\` | ||
| notion page get <page_id> --content # Include content blocks | ||
| notion page get <page_id> --json # Raw JSON | ||
| notion ai summarize <page_id> # Get concise summary | ||
@@ -95,3 +98,3 @@ \`\`\` | ||
| - --json or -j: Raw JSON (for parsing) | ||
| - --llm: Optimized for LLM consumption | ||
| - --llm: Supported on selected commands such as find, batch, and inspect schema | ||
@@ -98,0 +101,0 @@ ## Tips for AI Agents |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"help-agent.js","sourceRoot":"","sources":["../../src/commands/help-agent.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsGjB,CAAC,CAAC;IACC,CAAC,CAAC,CAAC;AACP,CAAC"} | ||
| {"version":3,"file":"help-agent.js","sourceRoot":"","sources":["../../src/commands/help-agent.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyGjB,CAAC,CAAC;IACC,CAAC,CAAC,CAAC;AACP,CAAC"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoMpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+T5D"} | ||
| {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmNpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6T5D"} |
+237
-233
@@ -5,2 +5,4 @@ import { getClient } from '../client.js'; | ||
| import { markdownToBlocks } from '../utils/markdown.js'; | ||
| import { getDatabaseSchema } from '../utils/database-resolver.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| // Parse YAML frontmatter from markdown content | ||
@@ -68,5 +70,6 @@ function parseFrontMatter(content) { | ||
| const properties = {}; | ||
| const skippedProps = []; | ||
| for (const [key, value] of Object.entries(frontMatter)) { | ||
| // Skip notion-specific metadata | ||
| if (key === 'notion_id' || key === 'notion_url') | ||
| // Skip notion-specific metadata and title (handled separately by caller) | ||
| if (key === 'notion_id' || key === 'notion_url' || key === 'title') | ||
| continue; | ||
@@ -84,4 +87,6 @@ // Find matching property (case-insensitive, underscores to spaces) | ||
| } | ||
| if (!propName || !propSchema) | ||
| if (!propName || !propSchema) { | ||
| skippedProps.push(key); | ||
| continue; | ||
| } | ||
| // Convert value based on property type | ||
@@ -128,5 +133,12 @@ switch (propSchema.type) { | ||
| break; | ||
| case 'phone_number': | ||
| properties[propName] = { phone_number: String(value) || null }; | ||
| break; | ||
| default: | ||
| // Unsupported types: people, relation, files, formula, rollup, created_by, etc. | ||
| skippedProps.push(`${propName} (${propSchema.type})`); | ||
| break; | ||
| } | ||
| } | ||
| return properties; | ||
| return { properties, skipped: skippedProps }; | ||
| } | ||
@@ -176,87 +188,91 @@ // Find title property in schema | ||
| .option('--limit <number>', 'Max files to import') | ||
| .action(async (vaultPath, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get database schema | ||
| const db = await client.get(`databases/${options.to}`); | ||
| const titleProp = findTitleProperty(db.properties); | ||
| // Find markdown files | ||
| const basePath = options.folder | ||
| ? path.join(vaultPath, options.folder) | ||
| : vaultPath; | ||
| if (!fs.existsSync(basePath)) { | ||
| console.error(`Error: Path not found: ${basePath}`); | ||
| process.exit(1); | ||
| } | ||
| const files = []; | ||
| function scanDir(dir) { | ||
| const entries = fs.readdirSync(dir, { withFileTypes: true }); | ||
| for (const entry of entries) { | ||
| if (entry.name.startsWith('.')) | ||
| continue; | ||
| const fullPath = path.join(dir, entry.name); | ||
| if (entry.isDirectory()) { | ||
| scanDir(fullPath); | ||
| } | ||
| else if (entry.name.endsWith('.md')) { | ||
| files.push(fullPath); | ||
| } | ||
| .action(withErrorHandler(async (vaultPath, options) => { | ||
| const client = getClient(); | ||
| // Get database schema | ||
| const db = await getDatabaseSchema(client, options.to); | ||
| const titleProp = findTitleProperty(db.properties); | ||
| // Find markdown files | ||
| const basePath = options.folder | ||
| ? path.join(vaultPath, options.folder) | ||
| : vaultPath; | ||
| if (!fs.existsSync(basePath)) { | ||
| console.error(`Error: Path not found: ${basePath}`); | ||
| process.exit(1); | ||
| } | ||
| const files = []; | ||
| function scanDir(dir) { | ||
| const entries = fs.readdirSync(dir, { withFileTypes: true }); | ||
| for (const entry of entries) { | ||
| if (entry.name.startsWith('.')) | ||
| continue; | ||
| const fullPath = path.join(dir, entry.name); | ||
| if (entry.isDirectory()) { | ||
| scanDir(fullPath); | ||
| } | ||
| else if (entry.name.endsWith('.md')) { | ||
| files.push(fullPath); | ||
| } | ||
| } | ||
| scanDir(basePath); | ||
| if (options.limit) { | ||
| files.splice(parseInt(options.limit, 10)); | ||
| } | ||
| scanDir(basePath); | ||
| if (options.limit) { | ||
| files.splice(parseInt(options.limit, 10)); | ||
| } | ||
| console.log(`Found ${files.length} markdown files\n`); | ||
| if (options.dryRun) { | ||
| console.log('Files to import:'); | ||
| files.slice(0, 20).forEach(f => { | ||
| const name = path.basename(f, '.md'); | ||
| console.log(` - ${name}`); | ||
| }); | ||
| if (files.length > 20) { | ||
| console.log(` ... and ${files.length - 20} more`); | ||
| } | ||
| console.log(`Found ${files.length} markdown files\n`); | ||
| if (options.dryRun) { | ||
| console.log('Files to import:'); | ||
| files.slice(0, 20).forEach(f => { | ||
| const name = path.basename(f, '.md'); | ||
| console.log(` - ${name}`); | ||
| }); | ||
| if (files.length > 20) { | ||
| console.log(` ... and ${files.length - 20} more`); | ||
| console.log('\n🔍 Dry run - no changes made'); | ||
| return; | ||
| } | ||
| let imported = 0; | ||
| let failed = 0; | ||
| for (const file of files) { | ||
| try { | ||
| const content = fs.readFileSync(file, 'utf-8'); | ||
| const { frontMatter, body } = parseFrontMatter(content); | ||
| // Get title from filename or frontmatter | ||
| const title = frontMatter.title || path.basename(file, '.md'); | ||
| // Convert frontmatter to properties | ||
| const { properties, skipped } = frontMatterToProperties(frontMatter, db.properties, titleProp); | ||
| if (skipped.length > 0) { | ||
| console.warn(`\n⚠️ ${path.basename(file)}: skipped unsupported properties: ${skipped.join(', ')}`); | ||
| } | ||
| console.log('\n🔍 Dry run - no changes made'); | ||
| return; | ||
| } | ||
| let imported = 0; | ||
| let failed = 0; | ||
| for (const file of files) { | ||
| try { | ||
| const content = fs.readFileSync(file, 'utf-8'); | ||
| const { frontMatter, body } = parseFrontMatter(content); | ||
| // Get title from filename or frontmatter | ||
| const title = frontMatter.title || path.basename(file, '.md'); | ||
| // Convert frontmatter to properties | ||
| const properties = frontMatterToProperties(frontMatter, db.properties, titleProp); | ||
| // Add title | ||
| properties[titleProp] = { | ||
| title: [{ text: { content: title } }], | ||
| }; | ||
| // Create page | ||
| const pageData = { | ||
| parent: { database_id: options.to }, | ||
| properties, | ||
| }; | ||
| // Add content if requested | ||
| if (options.content && body.trim()) { | ||
| pageData.children = markdownToBlocks(body).slice(0, 100); // Notion limit | ||
| } | ||
| await client.post('pages', pageData); | ||
| imported++; | ||
| process.stdout.write(`\r📥 Imported ${imported}/${files.length}...`); | ||
| // Add title | ||
| properties[titleProp] = { | ||
| title: [{ text: { content: title } }], | ||
| }; | ||
| // Create page | ||
| const pageData = { | ||
| parent: { database_id: options.to }, | ||
| properties, | ||
| }; | ||
| // Add content if requested — chunk at 100 blocks (Notion API limit per request) | ||
| const contentBlocks = (options.content && body.trim()) ? markdownToBlocks(body) : []; | ||
| // First 100 blocks can be included in the create request | ||
| if (contentBlocks.length > 0) { | ||
| pageData.children = contentBlocks.slice(0, 100); | ||
| } | ||
| catch (error) { | ||
| failed++; | ||
| console.error(`\n❌ Failed to import ${path.basename(file)}: ${error.message}`); | ||
| const createdPage = await client.post('pages', pageData); | ||
| // Append remaining blocks in chunks of 100 | ||
| for (let i = 100; i < contentBlocks.length; i += 100) { | ||
| const chunk = contentBlocks.slice(i, i + 100); | ||
| await client.patch(`blocks/${createdPage.id}/children`, { children: chunk }); | ||
| } | ||
| imported++; | ||
| process.stdout.write(`\r📥 Imported ${imported}/${files.length}...`); | ||
| } | ||
| console.log(`\n\n✅ Imported ${imported} files${failed > 0 ? `, ${failed} failed` : ''}`); | ||
| catch (error) { | ||
| failed++; | ||
| console.error(`\n❌ Failed to import ${path.basename(file)}: ${error.message}`); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| console.log(`\n\n✅ Imported ${imported} files${failed > 0 ? `, ${failed} failed` : ''}`); | ||
| })); | ||
| // Import from CSV | ||
@@ -270,116 +286,110 @@ importCmd | ||
| .option('--limit <number>', 'Max rows to import') | ||
| .action(async (filePath, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get database schema | ||
| const db = await client.get(`databases/${options.to}`); | ||
| const titleProp = findTitleProperty(db.properties); | ||
| // Read CSV | ||
| const content = fs.readFileSync(filePath, 'utf-8'); | ||
| const lines = content.split('\n').filter(l => l.trim()); | ||
| if (lines.length < 2) { | ||
| console.error('Error: CSV must have header row and at least one data row'); | ||
| process.exit(1); | ||
| } | ||
| const headers = parseCSVLine(lines[0]); | ||
| let dataLines = lines.slice(1); | ||
| if (options.limit) { | ||
| dataLines = dataLines.slice(0, parseInt(options.limit, 10)); | ||
| } | ||
| console.log(`Found ${dataLines.length} rows to import`); | ||
| console.log(`Columns: ${headers.join(', ')}\n`); | ||
| if (options.dryRun) { | ||
| console.log('Preview (first 5 rows):'); | ||
| dataLines.slice(0, 5).forEach((line, i) => { | ||
| const values = parseCSVLine(line); | ||
| const titleIdx = headers.findIndex(h => h.toLowerCase() === options.titleColumn.toLowerCase()); | ||
| const title = titleIdx >= 0 ? values[titleIdx] : values[0]; | ||
| console.log(` ${i + 1}. ${title}`); | ||
| }); | ||
| console.log('\n🔍 Dry run - no changes made'); | ||
| return; | ||
| } | ||
| let imported = 0; | ||
| let failed = 0; | ||
| for (const line of dataLines) { | ||
| try { | ||
| const values = parseCSVLine(line); | ||
| const properties = {}; | ||
| // Map CSV columns to Notion properties | ||
| for (let i = 0; i < headers.length; i++) { | ||
| const header = headers[i]; | ||
| const value = values[i] || ''; | ||
| // Find matching property | ||
| let propName = null; | ||
| let propSchema = null; | ||
| for (const [schemaName, schemaProp] of Object.entries(db.properties)) { | ||
| if (schemaName.toLowerCase() === header.toLowerCase()) { | ||
| propName = schemaName; | ||
| propSchema = schemaProp; | ||
| break; | ||
| } | ||
| .action(withErrorHandler(async (filePath, options) => { | ||
| const client = getClient(); | ||
| // Get database schema | ||
| const db = await getDatabaseSchema(client, options.to); | ||
| const titleProp = findTitleProperty(db.properties); | ||
| // Read CSV | ||
| const content = fs.readFileSync(filePath, 'utf-8'); | ||
| const lines = content.split('\n').filter(l => l.trim()); | ||
| if (lines.length < 2) { | ||
| console.error('Error: CSV must have header row and at least one data row'); | ||
| process.exit(1); | ||
| } | ||
| const headers = parseCSVLine(lines[0]); | ||
| let dataLines = lines.slice(1); | ||
| if (options.limit) { | ||
| dataLines = dataLines.slice(0, parseInt(options.limit, 10)); | ||
| } | ||
| console.log(`Found ${dataLines.length} rows to import`); | ||
| console.log(`Columns: ${headers.join(', ')}\n`); | ||
| if (options.dryRun) { | ||
| console.log('Preview (first 5 rows):'); | ||
| dataLines.slice(0, 5).forEach((line, i) => { | ||
| const values = parseCSVLine(line); | ||
| const titleIdx = headers.findIndex(h => h.toLowerCase() === options.titleColumn.toLowerCase()); | ||
| const title = titleIdx >= 0 ? values[titleIdx] : values[0]; | ||
| console.log(` ${i + 1}. ${title}`); | ||
| }); | ||
| console.log('\n🔍 Dry run - no changes made'); | ||
| return; | ||
| } | ||
| let imported = 0; | ||
| let failed = 0; | ||
| for (const line of dataLines) { | ||
| try { | ||
| const values = parseCSVLine(line); | ||
| const properties = {}; | ||
| // Map CSV columns to Notion properties | ||
| for (let i = 0; i < headers.length; i++) { | ||
| const header = headers[i]; | ||
| const value = values[i] || ''; | ||
| // Find matching property | ||
| let propName = null; | ||
| let propSchema = null; | ||
| for (const [schemaName, schemaProp] of Object.entries(db.properties)) { | ||
| if (schemaName.toLowerCase() === header.toLowerCase()) { | ||
| propName = schemaName; | ||
| propSchema = schemaProp; | ||
| break; | ||
| } | ||
| if (!propName || !propSchema || !value) | ||
| continue; | ||
| // Convert based on type | ||
| switch (propSchema.type) { | ||
| case 'title': | ||
| properties[propName] = { title: [{ text: { content: value } }] }; | ||
| break; | ||
| case 'rich_text': | ||
| properties[propName] = { rich_text: [{ text: { content: value } }] }; | ||
| break; | ||
| case 'number': | ||
| properties[propName] = { number: parseFloat(value) || null }; | ||
| break; | ||
| case 'checkbox': | ||
| properties[propName] = { checkbox: value.toLowerCase() === 'true' }; | ||
| break; | ||
| case 'select': | ||
| properties[propName] = { select: { name: value } }; | ||
| break; | ||
| case 'multi_select': | ||
| properties[propName] = { | ||
| multi_select: value.split(',').map(v => ({ name: v.trim() })), | ||
| }; | ||
| break; | ||
| case 'status': | ||
| properties[propName] = { status: { name: value } }; | ||
| break; | ||
| case 'date': | ||
| properties[propName] = { date: { start: value } }; | ||
| break; | ||
| case 'url': | ||
| properties[propName] = { url: value }; | ||
| break; | ||
| case 'email': | ||
| properties[propName] = { email: value }; | ||
| break; | ||
| } | ||
| } | ||
| // Ensure title is set | ||
| if (!properties[titleProp]) { | ||
| const titleIdx = headers.findIndex(h => h.toLowerCase() === options.titleColumn.toLowerCase()); | ||
| const title = titleIdx >= 0 ? values[titleIdx] : values[0] || 'Untitled'; | ||
| properties[titleProp] = { title: [{ text: { content: title } }] }; | ||
| if (!propName || !propSchema || !value) | ||
| continue; | ||
| // Convert based on type | ||
| switch (propSchema.type) { | ||
| case 'title': | ||
| properties[propName] = { title: [{ text: { content: value } }] }; | ||
| break; | ||
| case 'rich_text': | ||
| properties[propName] = { rich_text: [{ text: { content: value } }] }; | ||
| break; | ||
| case 'number': | ||
| properties[propName] = { number: parseFloat(value) || null }; | ||
| break; | ||
| case 'checkbox': | ||
| properties[propName] = { checkbox: value.toLowerCase() === 'true' }; | ||
| break; | ||
| case 'select': | ||
| properties[propName] = { select: { name: value } }; | ||
| break; | ||
| case 'multi_select': | ||
| properties[propName] = { | ||
| multi_select: value.split(',').map(v => ({ name: v.trim() })), | ||
| }; | ||
| break; | ||
| case 'status': | ||
| properties[propName] = { status: { name: value } }; | ||
| break; | ||
| case 'date': | ||
| properties[propName] = { date: { start: value } }; | ||
| break; | ||
| case 'url': | ||
| properties[propName] = { url: value }; | ||
| break; | ||
| case 'email': | ||
| properties[propName] = { email: value }; | ||
| break; | ||
| } | ||
| await client.post('pages', { | ||
| parent: { database_id: options.to }, | ||
| properties, | ||
| }); | ||
| imported++; | ||
| process.stdout.write(`\r📥 Imported ${imported}/${dataLines.length}...`); | ||
| } | ||
| catch (error) { | ||
| failed++; | ||
| console.error(`\n❌ Failed: ${error.message}`); | ||
| // Ensure title is set | ||
| if (!properties[titleProp]) { | ||
| const titleIdx = headers.findIndex(h => h.toLowerCase() === options.titleColumn.toLowerCase()); | ||
| const title = titleIdx >= 0 ? values[titleIdx] : values[0] || 'Untitled'; | ||
| properties[titleProp] = { title: [{ text: { content: title } }] }; | ||
| } | ||
| await client.post('pages', { | ||
| parent: { database_id: options.to }, | ||
| properties, | ||
| }); | ||
| imported++; | ||
| process.stdout.write(`\r📥 Imported ${imported}/${dataLines.length}...`); | ||
| } | ||
| console.log(`\n\n✅ Imported ${imported} rows${failed > 0 ? `, ${failed} failed` : ''}`); | ||
| catch (error) { | ||
| failed++; | ||
| console.error(`\n❌ Failed: ${error.message}`); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| console.log(`\n\n✅ Imported ${imported} rows${failed > 0 ? `, ${failed} failed` : ''}`); | ||
| })); | ||
| // Import single markdown file to page | ||
@@ -392,52 +402,46 @@ importCmd | ||
| .option('--dry-run', 'Show what would be imported') | ||
| .action(async (filePath, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Read file | ||
| const content = fs.readFileSync(filePath, 'utf-8'); | ||
| const { body } = parseFrontMatter(content); | ||
| // Convert to blocks | ||
| const blocks = markdownToBlocks(body); | ||
| console.log(`Parsed ${blocks.length} blocks from ${path.basename(filePath)}`); | ||
| if (options.dryRun) { | ||
| console.log('\nBlocks to create:'); | ||
| blocks.slice(0, 10).forEach((block, i) => { | ||
| const type = block.type; | ||
| console.log(` ${i + 1}. ${type}`); | ||
| }); | ||
| if (blocks.length > 10) { | ||
| console.log(` ... and ${blocks.length - 10} more`); | ||
| } | ||
| console.log('\n🔍 Dry run - no changes made'); | ||
| return; | ||
| .action(withErrorHandler(async (filePath, options) => { | ||
| const client = getClient(); | ||
| // Read file | ||
| const content = fs.readFileSync(filePath, 'utf-8'); | ||
| const { body } = parseFrontMatter(content); | ||
| // Convert to blocks | ||
| const blocks = markdownToBlocks(body); | ||
| console.log(`Parsed ${blocks.length} blocks from ${path.basename(filePath)}`); | ||
| if (options.dryRun) { | ||
| console.log('\nBlocks to create:'); | ||
| blocks.slice(0, 10).forEach((block, i) => { | ||
| const type = block.type; | ||
| console.log(` ${i + 1}. ${type}`); | ||
| }); | ||
| if (blocks.length > 10) { | ||
| console.log(` ... and ${blocks.length - 10} more`); | ||
| } | ||
| // Delete existing blocks if replace mode | ||
| if (options.replace) { | ||
| console.log('Removing existing content...'); | ||
| const existing = await client.get(`blocks/${options.to}/children`); | ||
| for (const block of existing.results) { | ||
| await client.delete(`blocks/${block.id}`); | ||
| } | ||
| console.log('\n🔍 Dry run - no changes made'); | ||
| return; | ||
| } | ||
| // Delete existing blocks if replace mode | ||
| if (options.replace) { | ||
| console.log('Removing existing content...'); | ||
| const existing = await client.get(`blocks/${options.to}/children`); | ||
| for (const block of existing.results) { | ||
| await client.delete(`blocks/${block.id}`); | ||
| } | ||
| // Append blocks (Notion has a limit of 100 per request) | ||
| const chunks = []; | ||
| for (let i = 0; i < blocks.length; i += 100) { | ||
| chunks.push(blocks.slice(i, i + 100)); | ||
| } | ||
| let added = 0; | ||
| for (const chunk of chunks) { | ||
| await client.patch(`blocks/${options.to}/children`, { | ||
| children: chunk, | ||
| }); | ||
| added += chunk.length; | ||
| process.stdout.write(`\r📥 Added ${added}/${blocks.length} blocks...`); | ||
| } | ||
| console.log(`\n\n✅ Imported ${blocks.length} blocks to page`); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| // Append blocks (Notion has a limit of 100 per request) | ||
| const chunks = []; | ||
| for (let i = 0; i < blocks.length; i += 100) { | ||
| chunks.push(blocks.slice(i, i + 100)); | ||
| } | ||
| }); | ||
| let added = 0; | ||
| for (const chunk of chunks) { | ||
| await client.patch(`blocks/${options.to}/children`, { | ||
| children: chunk, | ||
| }); | ||
| added += chunk.length; | ||
| process.stdout.write(`\r📥 Added ${added}/${blocks.length} blocks...`); | ||
| } | ||
| console.log(`\n\n✅ Imported ${blocks.length} blocks to page`); | ||
| })); | ||
| } | ||
| //# sourceMappingURL=import.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsEpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqT7D"} | ||
| {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgFpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkT7D"} |
+199
-201
| import { getClient } from '../client.js'; | ||
| import { formatOutput } from '../utils/format.js'; | ||
| import { getDbTitle, getDbDescription } from '../utils/notion-helpers.js'; | ||
| import { getDatabaseSchema, queryDatabase } from '../utils/database-resolver.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| function isMultiDataSource(db) { | ||
| return Array.isArray(db.data_sources) && db.data_sources.length > 1; | ||
| } | ||
| function formatPropertyType(prop) { | ||
@@ -35,3 +40,3 @@ const type = prop.type; | ||
| case 'relation': { | ||
| const relatedDb = data?.database_id || 'unknown'; | ||
| const relatedDb = data?.data_source_id || data?.database_id || 'unknown'; | ||
| return `relation → ${relatedDb.slice(0, 8)}...`; | ||
@@ -63,29 +68,35 @@ } | ||
| .option('--compact', 'Compact output (names only)') | ||
| .action(async (options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Search for all databases | ||
| const result = await client.post('search', { | ||
| filter: { property: 'object', value: 'database' }, | ||
| page_size: parseInt(options.limit, 10), | ||
| }); | ||
| if (options.json) { | ||
| console.log(formatOutput(result.results)); | ||
| return; | ||
| } | ||
| console.log(`Found ${result.results.length} accessible database(s):\n`); | ||
| for (const db of result.results) { | ||
| .action(withErrorHandler(async (options) => { | ||
| const client = getClient(); | ||
| // Search for all databases (data_source in API v2025-09-03) | ||
| const result = await client.post('search', { | ||
| filter: { property: 'object', value: 'data_source' }, | ||
| page_size: parseInt(options.limit, 10), | ||
| }); | ||
| if (options.json) { | ||
| console.log(formatOutput(result.results)); | ||
| return; | ||
| } | ||
| console.log(`Found ${result.results.length} accessible database(s):\n`); | ||
| for (const db of result.results) { | ||
| try { | ||
| const title = getDbTitle(db); | ||
| const multiSource = isMultiDataSource(db); | ||
| const multiTag = multiSource ? ' [multi-source]' : ''; | ||
| const desc = getDbDescription(db); | ||
| if (options.compact) { | ||
| console.log(`📊 ${title} (${db.id.slice(0, 8)}...)`); | ||
| console.log(`📊 ${title} (${db.id.slice(0, 8)}...)${multiTag}`); | ||
| continue; | ||
| } | ||
| console.log(`📊 ${title}`); | ||
| console.log(`📊 ${title}${multiTag}`); | ||
| console.log(` ID: ${db.id}`); | ||
| if (desc) | ||
| console.log(` Description: ${desc}`); | ||
| // List properties | ||
| const props = Object.entries(db.properties) | ||
| .filter(([, p]) => p.type !== 'title') // Skip title, it's obvious | ||
| if (multiSource && db.data_sources) { | ||
| console.log(` Data sources: ${db.data_sources.map(ds => ds.id).join(', ')}`); | ||
| } | ||
| // List properties (guard against missing properties on multi-DS) | ||
| const properties = db.properties || {}; | ||
| const props = Object.entries(properties) | ||
| .filter(([, p]) => p.type !== 'title') | ||
| .slice(0, 8); | ||
@@ -97,3 +108,3 @@ if (props.length > 0) { | ||
| } | ||
| const totalProps = Object.keys(db.properties).length; | ||
| const totalProps = Object.keys(properties).length; | ||
| if (totalProps > 9) { | ||
@@ -105,8 +116,8 @@ console.log(` ... and ${totalProps - 9} more`); | ||
| } | ||
| catch (dbError) { | ||
| console.warn(` Warning: could not read database ${db?.id || 'unknown'}: ${dbError.message}`); | ||
| console.log(''); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| })); | ||
| // Get detailed schema for a database | ||
@@ -118,65 +129,22 @@ inspect | ||
| .option('--llm', 'Output optimized for LLM consumption') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const db = await client.get(`databases/${databaseId}`); | ||
| if (options.json) { | ||
| console.log(formatOutput(db)); | ||
| return; | ||
| } | ||
| const title = getDbTitle(db); | ||
| const desc = getDbDescription(db); | ||
| if (options.llm) { | ||
| // Compact LLM-friendly format | ||
| console.log(`# Database: ${title}\n`); | ||
| console.log(`ID: ${db.id}`); | ||
| if (desc) | ||
| console.log(`Description: ${desc}`); | ||
| console.log(`\n## Properties\n`); | ||
| for (const [name, prop] of Object.entries(db.properties)) { | ||
| const typeInfo = formatPropertyType(prop); | ||
| console.log(`- **${name}** (${typeInfo})`); | ||
| // Add options for select/status | ||
| if (prop.type === 'select' || prop.type === 'multi_select') { | ||
| const data = prop[prop.type]; | ||
| const opts = data?.options || []; | ||
| if (opts.length > 0) { | ||
| console.log(` Options: ${opts.map(o => `"${o.name}"`).join(', ')}`); | ||
| } | ||
| } | ||
| else if (prop.type === 'status') { | ||
| const data = prop.status; | ||
| const opts = data?.options || []; | ||
| const groups = data?.groups || []; | ||
| for (const group of groups) { | ||
| const groupOpts = opts.filter(o => group.option_ids.includes(o.id)); | ||
| if (groupOpts.length > 0) { | ||
| console.log(` ${group.name}: ${groupOpts.map(o => `"${o.name}"`).join(', ')}`); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| console.log(`\n## Usage Examples\n`); | ||
| console.log('```bash'); | ||
| console.log(`# Query this database`); | ||
| console.log(`notion db query ${databaseId.slice(0, 8)}... --limit 10`); | ||
| console.log(''); | ||
| console.log(`# Create a new entry`); | ||
| console.log(`notion page create --parent ${databaseId.slice(0, 8)}... --title "New Item"`); | ||
| console.log('```'); | ||
| return; | ||
| } | ||
| // Standard detailed output | ||
| console.log(`📊 Database: ${title}`); | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| const db = await getDatabaseSchema(client, databaseId); | ||
| if (options.json) { | ||
| console.log(formatOutput(db)); | ||
| return; | ||
| } | ||
| const title = getDbTitle(db); | ||
| const desc = getDbDescription(db); | ||
| if (options.llm) { | ||
| // Compact LLM-friendly format | ||
| console.log(`# Database: ${title}\n`); | ||
| console.log(`ID: ${db.id}`); | ||
| if (db.url) | ||
| console.log(`URL: ${db.url}`); | ||
| if (desc) | ||
| console.log(`Description: ${desc}`); | ||
| console.log('\nProperties:\n'); | ||
| console.log(`\n## Properties\n`); | ||
| for (const [name, prop] of Object.entries(db.properties)) { | ||
| console.log(` ${name}`); | ||
| console.log(` Type: ${prop.type}`); | ||
| console.log(` ID: ${prop.id}`); | ||
| // Show options for select/multi_select | ||
| const typeInfo = formatPropertyType(prop); | ||
| console.log(`- **${name}** (${typeInfo})`); | ||
| // Add options for select/status | ||
| if (prop.type === 'select' || prop.type === 'multi_select') { | ||
@@ -186,33 +154,71 @@ const data = prop[prop.type]; | ||
| if (opts.length > 0) { | ||
| console.log(` Options: ${opts.map(o => o.name).join(', ')}`); | ||
| console.log(` Options: ${opts.map(o => `"${o.name}"`).join(', ')}`); | ||
| } | ||
| } | ||
| // Show status options grouped | ||
| if (prop.type === 'status') { | ||
| else if (prop.type === 'status') { | ||
| const data = prop.status; | ||
| const opts = data?.options || []; | ||
| const groups = data?.groups || []; | ||
| console.log(' Status groups:'); | ||
| for (const group of groups) { | ||
| const groupOpts = opts.filter(o => group.option_ids.includes(o.id)); | ||
| if (groupOpts.length > 0) { | ||
| console.log(` ${group.name}: ${groupOpts.map(o => o.name).join(', ')}`); | ||
| console.log(` ${group.name}: ${groupOpts.map(o => `"${o.name}"`).join(', ')}`); | ||
| } | ||
| } | ||
| } | ||
| // Show relation info | ||
| if (prop.type === 'relation') { | ||
| const data = prop.relation; | ||
| if (data?.database_id) { | ||
| console.log(` Related database: ${data.database_id}`); | ||
| } | ||
| console.log(`\n## Usage Examples\n`); | ||
| console.log('```bash'); | ||
| console.log(`# Query this database`); | ||
| console.log(`notion db query ${databaseId.slice(0, 8)}... --limit 10`); | ||
| console.log(''); | ||
| console.log(`# Create a new entry`); | ||
| console.log(`notion page create --parent ${databaseId.slice(0, 8)}... --title "New Item"`); | ||
| console.log('```'); | ||
| return; | ||
| } | ||
| // Standard detailed output | ||
| console.log(`📊 Database: ${title}`); | ||
| console.log(`ID: ${db.id}`); | ||
| if (db.url) | ||
| console.log(`URL: ${db.url}`); | ||
| if (desc) | ||
| console.log(`Description: ${desc}`); | ||
| console.log('\nProperties:\n'); | ||
| for (const [name, prop] of Object.entries(db.properties)) { | ||
| console.log(` ${name}`); | ||
| console.log(` Type: ${prop.type}`); | ||
| console.log(` ID: ${prop.id}`); | ||
| // Show options for select/multi_select | ||
| if (prop.type === 'select' || prop.type === 'multi_select') { | ||
| const data = prop[prop.type]; | ||
| const opts = data?.options || []; | ||
| if (opts.length > 0) { | ||
| console.log(` Options: ${opts.map(o => o.name).join(', ')}`); | ||
| } | ||
| } | ||
| // Show status options grouped | ||
| if (prop.type === 'status') { | ||
| const data = prop.status; | ||
| const opts = data?.options || []; | ||
| const groups = data?.groups || []; | ||
| console.log(' Status groups:'); | ||
| for (const group of groups) { | ||
| const groupOpts = opts.filter(o => group.option_ids.includes(o.id)); | ||
| if (groupOpts.length > 0) { | ||
| console.log(` ${group.name}: ${groupOpts.map(o => o.name).join(', ')}`); | ||
| } | ||
| } | ||
| console.log(''); | ||
| } | ||
| // Show relation info | ||
| if (prop.type === 'relation') { | ||
| const data = prop.relation; | ||
| const relId = data?.data_source_id ?? data?.database_id; | ||
| if (relId) { | ||
| console.log(` Related database: ${relId}`); | ||
| } | ||
| } | ||
| console.log(''); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| })); | ||
| // Generate context for LLM | ||
@@ -223,112 +229,104 @@ inspect | ||
| .option('--examples <number>', 'Number of example entries to include', '3') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get database schema | ||
| const db = await client.get(`databases/${databaseId}`); | ||
| const title = getDbTitle(db); | ||
| const desc = getDbDescription(db); | ||
| // Get example entries | ||
| const examples = await client.post(`databases/${databaseId}/query`, { | ||
| page_size: parseInt(options.examples, 10), | ||
| }); | ||
| // Generate context | ||
| console.log(`# Notion Database Context: ${title}\n`); | ||
| if (desc) { | ||
| console.log(`> ${desc}\n`); | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| // Get database schema | ||
| const db = await getDatabaseSchema(client, databaseId); | ||
| const title = getDbTitle(db); | ||
| const desc = getDbDescription(db); | ||
| // Get example entries | ||
| const examples = await queryDatabase(client, databaseId, { page_size: parseInt(options.examples, 10) }); | ||
| // Generate context | ||
| console.log(`# Notion Database Context: ${title}\n`); | ||
| if (desc) { | ||
| console.log(`> ${desc}\n`); | ||
| } | ||
| console.log(`**Database ID:** \`${databaseId}\`\n`); | ||
| // Schema summary | ||
| console.log(`## Schema\n`); | ||
| console.log('| Property | Type | Values |'); | ||
| console.log('|----------|------|--------|'); | ||
| for (const [name, prop] of Object.entries(db.properties)) { | ||
| let values = '-'; | ||
| if (prop.type === 'select' || prop.type === 'multi_select') { | ||
| const data = prop[prop.type]; | ||
| const opts = data?.options || []; | ||
| if (opts.length > 0) { | ||
| values = opts.slice(0, 5).map(o => o.name).join(', '); | ||
| if (opts.length > 5) | ||
| values += '...'; | ||
| } | ||
| } | ||
| console.log(`**Database ID:** \`${databaseId}\`\n`); | ||
| // Schema summary | ||
| console.log(`## Schema\n`); | ||
| console.log('| Property | Type | Values |'); | ||
| console.log('|----------|------|--------|'); | ||
| for (const [name, prop] of Object.entries(db.properties)) { | ||
| let values = '-'; | ||
| if (prop.type === 'select' || prop.type === 'multi_select') { | ||
| const data = prop[prop.type]; | ||
| const opts = data?.options || []; | ||
| if (opts.length > 0) { | ||
| values = opts.slice(0, 5).map(o => o.name).join(', '); | ||
| if (opts.length > 5) | ||
| values += '...'; | ||
| } | ||
| else if (prop.type === 'status') { | ||
| const data = prop.status; | ||
| const opts = data?.options || []; | ||
| if (opts.length > 0) { | ||
| values = opts.map(o => o.name).join(', '); | ||
| } | ||
| else if (prop.type === 'status') { | ||
| const data = prop.status; | ||
| const opts = data?.options || []; | ||
| if (opts.length > 0) { | ||
| values = opts.map(o => o.name).join(', '); | ||
| } | ||
| } | ||
| console.log(`| ${name} | ${prop.type} | ${values} |`); | ||
| } | ||
| // Example entries | ||
| if (examples.results.length > 0) { | ||
| console.log(`\n## Example Entries\n`); | ||
| for (let i = 0; i < examples.results.length; i++) { | ||
| const entry = examples.results[i]; | ||
| console.log(`### Entry ${i + 1}`); | ||
| console.log(`ID: ${entry.id}\n`); | ||
| for (const [name, value] of Object.entries(entry.properties)) { | ||
| const prop = value; | ||
| const data = prop[prop.type]; | ||
| let displayValue = '-'; | ||
| switch (prop.type) { | ||
| case 'title': | ||
| case 'rich_text': { | ||
| const texts = data; | ||
| displayValue = texts?.map(t => t.plain_text).join('') || '-'; | ||
| break; | ||
| } | ||
| case 'select': | ||
| case 'status': { | ||
| displayValue = data?.name || '-'; | ||
| break; | ||
| } | ||
| case 'multi_select': { | ||
| const items = data; | ||
| displayValue = items?.map(i => i.name).join(', ') || '-'; | ||
| break; | ||
| } | ||
| case 'number': | ||
| case 'checkbox': | ||
| displayValue = String(data ?? '-'); | ||
| break; | ||
| case 'date': { | ||
| const dateData = data; | ||
| displayValue = dateData?.start || '-'; | ||
| break; | ||
| } | ||
| case 'url': | ||
| case 'email': | ||
| case 'phone_number': | ||
| displayValue = String(data || '-'); | ||
| break; | ||
| console.log(`| ${name} | ${prop.type} | ${values} |`); | ||
| } | ||
| // Example entries | ||
| if (examples.results.length > 0) { | ||
| console.log(`\n## Example Entries\n`); | ||
| for (let i = 0; i < examples.results.length; i++) { | ||
| const entry = examples.results[i]; | ||
| console.log(`### Entry ${i + 1}`); | ||
| console.log(`ID: ${entry.id}\n`); | ||
| for (const [name, value] of Object.entries(entry.properties)) { | ||
| const prop = value; | ||
| const data = prop[prop.type]; | ||
| let displayValue = '-'; | ||
| switch (prop.type) { | ||
| case 'title': | ||
| case 'rich_text': { | ||
| const texts = data; | ||
| displayValue = texts?.map(t => t.plain_text).join('') || '-'; | ||
| break; | ||
| } | ||
| if (displayValue && displayValue !== '-') { | ||
| console.log(`- **${name}:** ${displayValue}`); | ||
| case 'select': | ||
| case 'status': { | ||
| displayValue = data?.name || '-'; | ||
| break; | ||
| } | ||
| case 'multi_select': { | ||
| const items = data; | ||
| displayValue = items?.map(i => i.name).join(', ') || '-'; | ||
| break; | ||
| } | ||
| case 'number': | ||
| case 'checkbox': | ||
| displayValue = String(data ?? '-'); | ||
| break; | ||
| case 'date': { | ||
| const dateData = data; | ||
| displayValue = dateData?.start || '-'; | ||
| break; | ||
| } | ||
| case 'url': | ||
| case 'email': | ||
| case 'phone_number': | ||
| displayValue = String(data || '-'); | ||
| break; | ||
| } | ||
| console.log(''); | ||
| if (displayValue && displayValue !== '-') { | ||
| console.log(`- **${name}:** ${displayValue}`); | ||
| } | ||
| } | ||
| console.log(''); | ||
| } | ||
| // Usage hints | ||
| console.log(`## Quick Commands\n`); | ||
| console.log('```bash'); | ||
| console.log(`# Query all entries`); | ||
| console.log(`notion db query ${databaseId}`); | ||
| console.log(''); | ||
| console.log(`# Filter by status (if applicable)`); | ||
| console.log(`notion db query ${databaseId} --filter-prop "Status" --filter-type equals --filter-value "Done" --filter-prop-type status`); | ||
| console.log(''); | ||
| console.log(`# Create new entry`); | ||
| console.log(`notion page create --parent ${databaseId} --title "New Entry"`); | ||
| console.log('```'); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| // Usage hints | ||
| console.log(`## Quick Commands\n`); | ||
| console.log('```bash'); | ||
| console.log(`# Query all entries`); | ||
| console.log(`notion db query ${databaseId}`); | ||
| console.log(''); | ||
| console.log(`# Filter by status (if applicable)`); | ||
| console.log(`notion db query ${databaseId} --filter-prop "Status" --filter-type equals --filter-value "Done" --filter-prop-type status`); | ||
| console.log(''); | ||
| console.log(`# Create new entry`); | ||
| console.log(`notion page create --parent ${databaseId} --title "New Entry"`); | ||
| console.log('```'); | ||
| })); | ||
| } | ||
| //# sourceMappingURL=inspect.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/commands/pages.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwhB3D"} | ||
| {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/commands/pages.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAogB3D"} |
+351
-376
@@ -5,3 +5,5 @@ import * as fs from 'fs'; | ||
| import { markdownToBlocks } from '../utils/markdown.js'; | ||
| import { blocksToMarkdownAsync, fetchAllBlocks, getPageTitle } from '../utils/notion-helpers.js'; | ||
| import { blocksToMarkdownAsync, fetchAllBlocks, getPageTitle, isParentDatabase, getParentDatabaseId, resolvePropertyName, buildClearPayload, buildTrashPayload, buildBlockPosition } from '../utils/notion-helpers.js'; | ||
| import { getDatabaseSchema } from '../utils/database-resolver.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| export function registerPagesCommand(program) { | ||
@@ -19,32 +21,26 @@ const pages = program | ||
| .option('--content', 'Also fetch page content (blocks)') | ||
| .action(async (pageId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const page = await client.get(`pages/${pageId}`); | ||
| if (options.content) { | ||
| const blocks = await client.get(`blocks/${pageId}/children`); | ||
| if (options.json) { | ||
| console.log(formatOutput({ page, blocks })); | ||
| } | ||
| else { | ||
| console.log('Page:', formatPageTitle(page)); | ||
| console.log('ID:', page.id); | ||
| console.log('\nContent:'); | ||
| console.log(formatOutput(blocks)); | ||
| } | ||
| .action(withErrorHandler(async (pageId, options) => { | ||
| const client = getClient(); | ||
| const page = await client.get(`pages/${pageId}`); | ||
| if (options.content) { | ||
| const blocks = await fetchAllBlocks(client, pageId); | ||
| if (options.json) { | ||
| console.log(formatOutput({ page, blocks })); | ||
| } | ||
| else { | ||
| console.log(options.json ? formatOutput(page) : formatPageTitle(page)); | ||
| if (!options.json) { | ||
| console.log('ID:', page.id); | ||
| console.log('\nProperties:'); | ||
| console.log(formatOutput(page.properties)); | ||
| } | ||
| console.log('Page:', formatPageTitle(page)); | ||
| console.log('ID:', page.id); | ||
| console.log('\nContent:'); | ||
| console.log(formatOutput(blocks)); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| else { | ||
| console.log(options.json ? formatOutput(page) : formatPageTitle(page)); | ||
| if (!options.json) { | ||
| console.log('ID:', page.id); | ||
| console.log('\nProperties:'); | ||
| console.log(formatOutput(page.properties)); | ||
| } | ||
| } | ||
| }); | ||
| })); | ||
| // Create page | ||
@@ -62,69 +58,63 @@ pages | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const parent = options.parentType === 'page' | ||
| ? { page_id: options.parent } | ||
| : { database_id: options.parent }; | ||
| const properties = {}; | ||
| // Handle title - auto-detect title property name from database schema | ||
| if (options.title) { | ||
| let titlePropName = options.titleProp; | ||
| // If not specified and parent is database, fetch schema to find title property | ||
| if (!titlePropName && options.parentType === 'database') { | ||
| try { | ||
| const db = await client.get(`databases/${options.parent}`); | ||
| // Find the property with type "title" | ||
| for (const [name, prop] of Object.entries(db.properties)) { | ||
| if (prop.type === 'title') { | ||
| titlePropName = name; | ||
| break; | ||
| } | ||
| .action(withErrorHandler(async (options) => { | ||
| const client = getClient(); | ||
| const parent = options.parentType === 'page' | ||
| ? { page_id: options.parent } | ||
| : { database_id: options.parent }; | ||
| const properties = {}; | ||
| // Handle title - auto-detect title property name from database schema | ||
| if (options.title) { | ||
| let titlePropName = options.titleProp; | ||
| // If not specified and parent is database, fetch schema to find title property | ||
| if (!titlePropName && options.parentType === 'database') { | ||
| try { | ||
| const db = await getDatabaseSchema(client, options.parent); | ||
| // Find the property with type "title" | ||
| for (const [name, prop] of Object.entries(db.properties)) { | ||
| if (prop.type === 'title') { | ||
| titlePropName = name; | ||
| break; | ||
| } | ||
| } | ||
| catch { | ||
| // Fall back to common defaults | ||
| } | ||
| } | ||
| // Use detected name or fall back based on parent type | ||
| // Non-DB pages (page/workspace parent) use 'title'; DB pages default to 'Name' | ||
| titlePropName = titlePropName || (options.parentType === 'page' ? 'title' : 'Name'); | ||
| properties[titlePropName] = { | ||
| title: [{ text: { content: options.title } }], | ||
| }; | ||
| catch { | ||
| // Fall back to common defaults | ||
| } | ||
| } | ||
| // Handle additional properties | ||
| if (options.prop) { | ||
| const parsed = parseProperties(options.prop); | ||
| Object.assign(properties, parsed); | ||
| } | ||
| const body = { parent, properties }; | ||
| if (options.icon) { | ||
| body.icon = { type: 'emoji', emoji: options.icon }; | ||
| } | ||
| // Add initial content if provided | ||
| if (options.content) { | ||
| body.children = [{ | ||
| object: 'block', | ||
| type: 'paragraph', | ||
| paragraph: { | ||
| rich_text: [{ type: 'text', text: { content: options.content } }], | ||
| }, | ||
| }]; | ||
| } | ||
| const page = await client.post('pages', body); | ||
| if (options.json) { | ||
| console.log(formatOutput(page)); | ||
| } | ||
| else { | ||
| console.log('✅ Page created'); | ||
| console.log('ID:', page.id); | ||
| console.log('URL:', page.url); | ||
| } | ||
| // Use detected name or fall back based on parent type | ||
| // Non-DB pages (page/workspace parent) use 'title'; DB pages default to 'Name' | ||
| titlePropName = titlePropName || (options.parentType === 'page' ? 'title' : 'Name'); | ||
| properties[titlePropName] = { | ||
| title: [{ text: { content: options.title } }], | ||
| }; | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| // Handle additional properties | ||
| if (options.prop) { | ||
| const parsed = parseProperties(options.prop); | ||
| Object.assign(properties, parsed); | ||
| } | ||
| }); | ||
| const body = { parent, properties }; | ||
| if (options.icon) { | ||
| body.icon = { type: 'emoji', emoji: options.icon }; | ||
| } | ||
| // Add initial content if provided | ||
| if (options.content) { | ||
| body.children = [{ | ||
| object: 'block', | ||
| type: 'paragraph', | ||
| paragraph: { | ||
| rich_text: [{ type: 'text', text: { content: options.content } }], | ||
| }, | ||
| }]; | ||
| } | ||
| const page = await client.post('pages', body); | ||
| if (options.json) { | ||
| console.log(formatOutput(page)); | ||
| } | ||
| else { | ||
| console.log('✅ Page created'); | ||
| console.log('ID:', page.id); | ||
| console.log('URL:', page.url); | ||
| } | ||
| })); | ||
| // Update page | ||
@@ -137,2 +127,3 @@ pages | ||
| .option('-p, --prop <key=value...>', 'Set property (can be used multiple times)') | ||
| .option('--clear-prop <name...>', 'Clear a property (type-aware, e.g., --clear-prop "Assignee")') | ||
| .option('--archive', 'Archive the page') | ||
@@ -142,69 +133,83 @@ .option('--unarchive', 'Unarchive the page') | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (pageId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const body = {}; | ||
| const properties = {}; | ||
| if (options.title) { | ||
| let titlePropName = options.titleProp; | ||
| // parentType: 'database' | 'page' | null (null = unknown, page fetch failed) | ||
| let detectedParentType = null; | ||
| if (!titlePropName) { | ||
| try { | ||
| const page = await client.get(`pages/${pageId}`); | ||
| if (page.parent.type === 'database_id' && page.parent.database_id) { | ||
| detectedParentType = 'database'; | ||
| const db = await client.get(`databases/${page.parent.database_id}`); | ||
| for (const [name, prop] of Object.entries(db.properties)) { | ||
| if (prop.type === 'title') { | ||
| titlePropName = name; | ||
| break; | ||
| } | ||
| .action(withErrorHandler(async (pageId, options) => { | ||
| const client = getClient(); | ||
| const body = {}; | ||
| const properties = {}; | ||
| if (options.title) { | ||
| let titlePropName = options.titleProp; | ||
| // parentType: 'database' | 'page' | null (null = unknown, page fetch failed) | ||
| let detectedParentType = null; | ||
| if (!titlePropName) { | ||
| try { | ||
| const page = await client.get(`pages/${pageId}`); | ||
| const parentDbId = getParentDatabaseId(page.parent); | ||
| if (isParentDatabase(page.parent) && parentDbId) { | ||
| detectedParentType = 'database'; | ||
| const db = await getDatabaseSchema(client, parentDbId); | ||
| for (const [name, prop] of Object.entries(db.properties)) { | ||
| if (prop.type === 'title') { | ||
| titlePropName = name; | ||
| break; | ||
| } | ||
| } | ||
| else { | ||
| detectedParentType = 'page'; | ||
| } | ||
| } | ||
| catch { | ||
| // Fall back to common default | ||
| else { | ||
| detectedParentType = 'page'; | ||
| } | ||
| } | ||
| // Non-DB pages use 'title'; DB pages default to 'Name'; unknown (fetch failed) → 'title' | ||
| // Note: if fetch failed entirely we can't know parent type — 'title' is Notion's universal key | ||
| titlePropName = titlePropName || (detectedParentType === 'database' ? 'Name' : 'title'); | ||
| properties[titlePropName] = { | ||
| title: [{ text: { content: options.title } }], | ||
| }; | ||
| catch { | ||
| // Fall back to common default | ||
| } | ||
| } | ||
| if (options.prop) { | ||
| const parsed = parseProperties(options.prop); | ||
| Object.assign(properties, parsed); | ||
| // Non-DB pages use 'title'; DB pages default to 'Name'; unknown (fetch failed) → 'title' | ||
| // Note: if fetch failed entirely we can't know parent type — 'title' is Notion's universal key | ||
| titlePropName = titlePropName || (detectedParentType === 'database' ? 'Name' : 'title'); | ||
| properties[titlePropName] = { | ||
| title: [{ text: { content: options.title } }], | ||
| }; | ||
| } | ||
| if (options.prop) { | ||
| const parsed = parseProperties(options.prop); | ||
| Object.assign(properties, parsed); | ||
| } | ||
| // Handle --clear-prop: fetch schema to determine property type | ||
| if (options.clearProp && options.clearProp.length > 0) { | ||
| const page = await client.get(`pages/${pageId}`); | ||
| const parentDbId = getParentDatabaseId(page.parent); | ||
| if (!parentDbId) { | ||
| console.error('Error: --clear-prop requires a database-backed page'); | ||
| process.exit(1); | ||
| } | ||
| if (Object.keys(properties).length > 0) { | ||
| body.properties = properties; | ||
| const db = await getDatabaseSchema(client, parentDbId); | ||
| for (const rawName of options.clearProp) { | ||
| const resolved = resolvePropertyName(db.properties, rawName); | ||
| if (!resolved) { | ||
| console.error(`Error: Property "${rawName}" not found in database schema`); | ||
| process.exit(1); | ||
| } | ||
| const propSchema = db.properties[resolved]; | ||
| properties[resolved] = buildClearPayload(propSchema.type); | ||
| } | ||
| if (options.archive) { | ||
| body.archived = true; | ||
| } | ||
| else if (options.unarchive) { | ||
| body.archived = false; | ||
| } | ||
| if (options.icon) { | ||
| body.icon = { type: 'emoji', emoji: options.icon }; | ||
| } | ||
| const page = await client.patch(`pages/${pageId}`, body); | ||
| if (options.json) { | ||
| console.log(formatOutput(page)); | ||
| } | ||
| else { | ||
| console.log('✅ Page updated'); | ||
| console.log('ID:', page.id); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| if (Object.keys(properties).length > 0) { | ||
| body.properties = properties; | ||
| } | ||
| }); | ||
| if (options.archive) { | ||
| Object.assign(body, buildTrashPayload(true)); | ||
| } | ||
| else if (options.unarchive) { | ||
| Object.assign(body, buildTrashPayload(false)); | ||
| } | ||
| if (options.icon) { | ||
| body.icon = { type: 'emoji', emoji: options.icon }; | ||
| } | ||
| const page = await client.patch(`pages/${pageId}`, body); | ||
| if (options.json) { | ||
| console.log(formatOutput(page)); | ||
| } | ||
| else { | ||
| console.log('✅ Page updated'); | ||
| console.log('ID:', page.id); | ||
| } | ||
| })); | ||
| // Archive page (convenience) | ||
@@ -214,13 +219,7 @@ pages | ||
| .description('Archive a page') | ||
| .action(async (pageId) => { | ||
| try { | ||
| const client = getClient(); | ||
| await client.patch(`pages/${pageId}`, { archived: true }); | ||
| console.log('✅ Page archived'); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| .action(withErrorHandler(async (pageId) => { | ||
| const client = getClient(); | ||
| await client.patch(`pages/${pageId}`, buildTrashPayload(true)); | ||
| console.log('✅ Page archived'); | ||
| })); | ||
| // Get page property | ||
@@ -231,13 +230,7 @@ pages | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (pageId, propertyId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const property = await client.get(`pages/${pageId}/properties/${propertyId}`); | ||
| console.log(options.json ? formatOutput(property) : property); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| .action(withErrorHandler(async (pageId, propertyId, options) => { | ||
| const client = getClient(); | ||
| const property = await client.get(`pages/${pageId}/properties/${propertyId}`); | ||
| console.log(options.json ? formatOutput(property) : property); | ||
| })); | ||
| // Read page content as Markdown | ||
@@ -250,28 +243,8 @@ pages | ||
| .option('-o, --output <path>', 'Write to file instead of stdout') | ||
| .action(async (pageId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| if (options.json) { | ||
| // Raw JSON mode — return all blocks | ||
| const blocks = await fetchAllBlocks(client, pageId); | ||
| const output = formatOutput(blocks); | ||
| if (options.output) { | ||
| fs.writeFileSync(options.output, output); | ||
| console.error(`Written to ${options.output}`); | ||
| } | ||
| else { | ||
| console.log(output); | ||
| } | ||
| return; | ||
| } | ||
| let output = ''; | ||
| // Include title by default | ||
| if (options.title !== false) { | ||
| const page = await client.get(`pages/${pageId}`); | ||
| const title = getPageTitle(page); | ||
| output += `# ${title}\n\n`; | ||
| } | ||
| // Convert blocks to markdown | ||
| const content = await blocksToMarkdownAsync(client, pageId); | ||
| output += content; | ||
| .action(withErrorHandler(async (pageId, options) => { | ||
| const client = getClient(); | ||
| if (options.json) { | ||
| // Raw JSON mode — return all blocks | ||
| const blocks = await fetchAllBlocks(client, pageId); | ||
| const output = formatOutput(blocks); | ||
| if (options.output) { | ||
@@ -282,10 +255,24 @@ fs.writeFileSync(options.output, output); | ||
| else { | ||
| process.stdout.write(output); | ||
| console.log(output); | ||
| } | ||
| return; | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| let output = ''; | ||
| // Include title by default | ||
| if (options.title !== false) { | ||
| const page = await client.get(`pages/${pageId}`); | ||
| const title = getPageTitle(page); | ||
| output += `# ${title}\n\n`; | ||
| } | ||
| }); | ||
| // Convert blocks to markdown | ||
| const content = await blocksToMarkdownAsync(client, pageId); | ||
| output += content; | ||
| if (options.output) { | ||
| fs.writeFileSync(options.output, output); | ||
| console.error(`Written to ${options.output}`); | ||
| } | ||
| else { | ||
| process.stdout.write(output); | ||
| } | ||
| })); | ||
| // Write Markdown content to a page | ||
@@ -298,78 +285,72 @@ pages | ||
| .option('--dry-run', 'Show what would be written without making changes') | ||
| .action(async (pageId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Read markdown from file or stdin | ||
| let markdown; | ||
| if (options.file) { | ||
| if (!fs.existsSync(options.file)) { | ||
| console.error(`Error: File not found: ${options.file}`); | ||
| process.exit(1); | ||
| } | ||
| markdown = fs.readFileSync(options.file, 'utf-8'); | ||
| } | ||
| else { | ||
| // Read from stdin | ||
| markdown = await readStdin(); | ||
| } | ||
| if (!markdown.trim()) { | ||
| console.error('Error: No content provided. Use --file or pipe content via stdin.'); | ||
| .action(withErrorHandler(async (pageId, options) => { | ||
| const client = getClient(); | ||
| // Read markdown from file or stdin | ||
| let markdown; | ||
| if (options.file) { | ||
| if (!fs.existsSync(options.file)) { | ||
| console.error(`Error: File not found: ${options.file}`); | ||
| process.exit(1); | ||
| } | ||
| // Convert to blocks | ||
| const blocks = markdownToBlocks(markdown); | ||
| if (options.dryRun) { | ||
| console.log(`Parsed ${blocks.length} blocks:`); | ||
| blocks.slice(0, 15).forEach((block, i) => { | ||
| console.log(` ${i + 1}. ${block.type}`); | ||
| }); | ||
| if (blocks.length > 15) { | ||
| console.log(` ... and ${blocks.length - 15} more`); | ||
| } | ||
| console.log('\nDry run - no changes made'); | ||
| return; | ||
| markdown = fs.readFileSync(options.file, 'utf-8'); | ||
| } | ||
| else { | ||
| // Read from stdin | ||
| markdown = await readStdin(); | ||
| } | ||
| if (!markdown.trim()) { | ||
| console.error('Error: No content provided. Use --file or pipe content via stdin.'); | ||
| process.exit(1); | ||
| } | ||
| // Convert to blocks | ||
| const blocks = markdownToBlocks(markdown); | ||
| if (options.dryRun) { | ||
| console.log(`Parsed ${blocks.length} blocks:`); | ||
| blocks.slice(0, 15).forEach((block, i) => { | ||
| console.log(` ${i + 1}. ${block.type}`); | ||
| }); | ||
| if (blocks.length > 15) { | ||
| console.log(` ... and ${blocks.length - 15} more`); | ||
| } | ||
| // Delete existing blocks if --replace | ||
| if (options.replace) { | ||
| const existing = await fetchAllBlocks(client, pageId); | ||
| if (existing.length > 0) { | ||
| console.error(`Warning: --replace will permanently delete ${existing.length} existing block(s). ` + | ||
| `This operation is not atomic — if the subsequent write fails, deleted content cannot be recovered automatically.`); | ||
| // Keep a reference for error recovery attempt | ||
| const backup = existing.map(b => b.id); | ||
| try { | ||
| for (const block of existing) { | ||
| await client.delete(`blocks/${block.id}`); | ||
| } | ||
| console.error(`Removed ${existing.length} existing blocks`); | ||
| console.log('\nDry run - no changes made'); | ||
| return; | ||
| } | ||
| // Delete existing blocks if --replace | ||
| if (options.replace) { | ||
| const existing = await fetchAllBlocks(client, pageId); | ||
| if (existing.length > 0) { | ||
| console.error(`Warning: --replace will permanently delete ${existing.length} existing block(s). ` + | ||
| `This operation is not atomic — if the subsequent write fails, deleted content cannot be recovered automatically.`); | ||
| // Keep a reference for error recovery attempt | ||
| const backup = existing.map(b => b.id); | ||
| try { | ||
| for (const block of existing) { | ||
| await client.delete(`blocks/${block.id}`); | ||
| } | ||
| catch (deleteError) { | ||
| console.error(`Error during block deletion: ${deleteError.message}`); | ||
| console.error(`Partial deletion may have occurred. Block IDs that were targeted:\n${backup.join('\n')}`); | ||
| process.exit(1); | ||
| } | ||
| console.error(`Removed ${existing.length} existing blocks`); | ||
| } | ||
| } | ||
| // Append blocks in chunks of 100 (Notion API limit) | ||
| let added = 0; | ||
| try { | ||
| for (let i = 0; i < blocks.length; i += 100) { | ||
| const chunk = blocks.slice(i, i + 100); | ||
| await client.patch(`blocks/${pageId}/children`, { | ||
| children: chunk, | ||
| }); | ||
| added += chunk.length; | ||
| catch (deleteError) { | ||
| console.error(`Error during block deletion: ${deleteError.message}`); | ||
| console.error(`Partial deletion may have occurred. Block IDs that were targeted:\n${backup.join('\n')}`); | ||
| process.exit(1); | ||
| } | ||
| } | ||
| catch (writeError) { | ||
| console.error(`Error writing blocks (written so far: ${added}/${blocks.length}): ${writeError.message}`); | ||
| process.exit(1); | ||
| } | ||
| // Append blocks in chunks of 100 (Notion API limit) | ||
| let added = 0; | ||
| try { | ||
| for (let i = 0; i < blocks.length; i += 100) { | ||
| const chunk = blocks.slice(i, i + 100); | ||
| await client.patch(`blocks/${pageId}/children`, { | ||
| children: chunk, | ||
| }); | ||
| added += chunk.length; | ||
| } | ||
| console.error(`Written ${added} blocks to page`); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| catch (writeError) { | ||
| console.error(`Error writing blocks (written so far: ${added}/${blocks.length}): ${writeError.message}`); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| console.error(`Written ${added} blocks to page`); | ||
| })); | ||
| // Surgical page editing | ||
@@ -386,130 +367,124 @@ pages | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (pageId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Fetch all current blocks | ||
| const allBlocks = await fetchAllBlocks(client, pageId); | ||
| // Resolve position | ||
| let afterBlockId; | ||
| let deleteStartIndex; | ||
| if (options.after) { | ||
| // Find the block index for --after | ||
| const idx = allBlocks.findIndex(b => b.id === options.after || b.id.replace(/-/g, '') === options.after.replace(/-/g, '')); | ||
| if (idx === -1) { | ||
| console.error(`Error: Block not found: ${options.after}`); | ||
| console.error(`Available blocks (${allBlocks.length}):`); | ||
| allBlocks.slice(0, 10).forEach((b, i) => { | ||
| console.error(` ${i}: ${b.id} (${b.type})`); | ||
| }); | ||
| process.exit(1); | ||
| } | ||
| afterBlockId = allBlocks[idx].id; | ||
| deleteStartIndex = idx + 1; | ||
| .action(withErrorHandler(async (pageId, options) => { | ||
| const client = getClient(); | ||
| // Fetch all current blocks | ||
| const allBlocks = await fetchAllBlocks(client, pageId); | ||
| // Resolve position | ||
| let afterBlockId; | ||
| let deleteStartIndex; | ||
| if (options.after) { | ||
| // Find the block index for --after | ||
| const idx = allBlocks.findIndex(b => b.id === options.after || b.id.replace(/-/g, '') === options.after.replace(/-/g, '')); | ||
| if (idx === -1) { | ||
| console.error(`Error: Block not found: ${options.after}`); | ||
| console.error(`Available blocks (${allBlocks.length}):`); | ||
| allBlocks.slice(0, 10).forEach((b, i) => { | ||
| console.error(` ${i}: ${b.id} (${b.type})`); | ||
| }); | ||
| process.exit(1); | ||
| } | ||
| else if (options.at !== undefined) { | ||
| const atIndex = parseInt(options.at, 10); | ||
| if (atIndex < 0 || atIndex > allBlocks.length) { | ||
| console.error(`Error: Index ${atIndex} out of range (0-${allBlocks.length})`); | ||
| process.exit(1); | ||
| } | ||
| if (atIndex > 0) { | ||
| afterBlockId = allBlocks[atIndex - 1].id; | ||
| } | ||
| deleteStartIndex = atIndex; | ||
| } | ||
| else { | ||
| console.error('Error: Specify a position with --after <block_id> or --at <index>'); | ||
| afterBlockId = allBlocks[idx].id; | ||
| deleteStartIndex = idx + 1; | ||
| } | ||
| else if (options.at !== undefined) { | ||
| const atIndex = parseInt(options.at, 10); | ||
| if (atIndex < 0 || atIndex > allBlocks.length) { | ||
| console.error(`Error: Index ${atIndex} out of range (0-${allBlocks.length})`); | ||
| process.exit(1); | ||
| return; | ||
| } | ||
| // Determine blocks to delete | ||
| const deleteCount = options.delete || 0; | ||
| const blocksToDelete = allBlocks.slice(deleteStartIndex, deleteStartIndex + deleteCount); | ||
| // Parse replacement content | ||
| let newBlocks = []; | ||
| if (options.file) { | ||
| if (!fs.existsSync(options.file)) { | ||
| console.error(`Error: File not found: ${options.file}`); | ||
| process.exit(1); | ||
| } | ||
| const md = fs.readFileSync(options.file, 'utf-8'); | ||
| newBlocks = markdownToBlocks(md); | ||
| if (atIndex > 0) { | ||
| afterBlockId = allBlocks[atIndex - 1].id; | ||
| } | ||
| else if (options.markdown) { | ||
| newBlocks = markdownToBlocks(options.markdown); | ||
| deleteStartIndex = atIndex; | ||
| } | ||
| else { | ||
| console.error('Error: Specify a position with --after <block_id> or --at <index>'); | ||
| process.exit(1); | ||
| return; | ||
| } | ||
| // Determine blocks to delete | ||
| const deleteCount = options.delete || 0; | ||
| const blocksToDelete = allBlocks.slice(deleteStartIndex, deleteStartIndex + deleteCount); | ||
| // Parse replacement content | ||
| let newBlocks = []; | ||
| if (options.file) { | ||
| if (!fs.existsSync(options.file)) { | ||
| console.error(`Error: File not found: ${options.file}`); | ||
| process.exit(1); | ||
| } | ||
| // Dry run | ||
| if (options.dryRun) { | ||
| console.log('Edit plan:'); | ||
| if (blocksToDelete.length > 0) { | ||
| console.log(` Delete ${blocksToDelete.length} block(s):`); | ||
| blocksToDelete.forEach((b, i) => { | ||
| console.log(` ${deleteStartIndex + i}: ${b.id} (${b.type})`); | ||
| }); | ||
| } | ||
| if (newBlocks.length > 0) { | ||
| console.log(` Insert ${newBlocks.length} block(s)${afterBlockId ? ` after ${afterBlockId}` : ' at start'}:`); | ||
| newBlocks.slice(0, 10).forEach((b, i) => { | ||
| console.log(` ${i}: ${b.type}`); | ||
| }); | ||
| if (newBlocks.length > 10) { | ||
| console.log(` ... and ${newBlocks.length - 10} more`); | ||
| } | ||
| } | ||
| if (blocksToDelete.length === 0 && newBlocks.length === 0) { | ||
| console.log(' No changes to make'); | ||
| } | ||
| console.log('\nDry run - no changes made'); | ||
| return; | ||
| } | ||
| // Nothing to do — warn and exit | ||
| if (blocksToDelete.length === 0 && newBlocks.length === 0) { | ||
| console.error('Warning: nothing to do — specify --delete and/or --file/--markdown'); | ||
| return; | ||
| } | ||
| // Execute: delete blocks (not atomic — partial failure leaves page in intermediate state) | ||
| const md = fs.readFileSync(options.file, 'utf-8'); | ||
| newBlocks = markdownToBlocks(md); | ||
| } | ||
| else if (options.markdown) { | ||
| newBlocks = markdownToBlocks(options.markdown); | ||
| } | ||
| // Dry run | ||
| if (options.dryRun) { | ||
| console.log('Edit plan:'); | ||
| if (blocksToDelete.length > 0) { | ||
| console.error(`Deleting ${blocksToDelete.length} block(s)... ` + | ||
| `(note: not atomic — partial failure will leave the page in an intermediate state)`); | ||
| console.log(` Delete ${blocksToDelete.length} block(s):`); | ||
| blocksToDelete.forEach((b, i) => { | ||
| console.log(` ${deleteStartIndex + i}: ${b.id} (${b.type})`); | ||
| }); | ||
| } | ||
| for (const block of blocksToDelete) { | ||
| await client.delete(`blocks/${block.id}`); | ||
| } | ||
| // Execute: insert new blocks | ||
| if (newBlocks.length > 0) { | ||
| // Insert in chunks of 100 | ||
| for (let i = 0; i < newBlocks.length; i += 100) { | ||
| const chunk = newBlocks.slice(i, i + 100); | ||
| const body = { children: chunk }; | ||
| if (afterBlockId) { | ||
| body.after = afterBlockId; | ||
| } | ||
| const result = await client.patch(`blocks/${pageId}/children`, body); | ||
| // Update afterBlockId to the last inserted block for the next chunk | ||
| if (result.results && result.results.length > 0) { | ||
| afterBlockId = result.results[result.results.length - 1].id; | ||
| } | ||
| console.log(` Insert ${newBlocks.length} block(s)${afterBlockId ? ` after ${afterBlockId}` : ' at start'}:`); | ||
| newBlocks.slice(0, 10).forEach((b, i) => { | ||
| console.log(` ${i}: ${b.type}`); | ||
| }); | ||
| if (newBlocks.length > 10) { | ||
| console.log(` ... and ${newBlocks.length - 10} more`); | ||
| } | ||
| } | ||
| const summary = []; | ||
| if (blocksToDelete.length > 0) | ||
| summary.push(`deleted ${blocksToDelete.length}`); | ||
| if (newBlocks.length > 0) | ||
| summary.push(`inserted ${newBlocks.length}`); | ||
| if (options.json) { | ||
| console.log(formatOutput({ | ||
| deleted: blocksToDelete.length, | ||
| inserted: newBlocks.length, | ||
| deleted_ids: blocksToDelete.map(b => b.id), | ||
| })); | ||
| if (blocksToDelete.length === 0 && newBlocks.length === 0) { | ||
| console.log(' No changes to make'); | ||
| } | ||
| else { | ||
| console.log(`Done: ${summary.join(', ')} block(s)`); | ||
| console.log('\nDry run - no changes made'); | ||
| return; | ||
| } | ||
| // Nothing to do — warn and exit | ||
| if (blocksToDelete.length === 0 && newBlocks.length === 0) { | ||
| console.error('Warning: nothing to do — specify --delete and/or --file/--markdown'); | ||
| return; | ||
| } | ||
| // Execute: delete blocks (not atomic — partial failure leaves page in intermediate state) | ||
| if (blocksToDelete.length > 0) { | ||
| console.error(`Deleting ${blocksToDelete.length} block(s)... ` + | ||
| `(note: not atomic — partial failure will leave the page in an intermediate state)`); | ||
| } | ||
| for (const block of blocksToDelete) { | ||
| await client.delete(`blocks/${block.id}`); | ||
| } | ||
| // Execute: insert new blocks | ||
| if (newBlocks.length > 0) { | ||
| // Insert in chunks of 100 | ||
| for (let i = 0; i < newBlocks.length; i += 100) { | ||
| const chunk = newBlocks.slice(i, i + 100); | ||
| const body = { | ||
| children: chunk, | ||
| ...buildBlockPosition(afterBlockId), | ||
| }; | ||
| const result = await client.patch(`blocks/${pageId}/children`, body); | ||
| // Update afterBlockId to the last inserted block for the next chunk | ||
| if (result.results && result.results.length > 0) { | ||
| afterBlockId = result.results[result.results.length - 1].id; | ||
| } | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| const summary = []; | ||
| if (blocksToDelete.length > 0) | ||
| summary.push(`deleted ${blocksToDelete.length}`); | ||
| if (newBlocks.length > 0) | ||
| summary.push(`inserted ${newBlocks.length}`); | ||
| if (options.json) { | ||
| console.log(formatOutput({ | ||
| deleted: blocksToDelete.length, | ||
| inserted: newBlocks.length, | ||
| deleted_ids: blocksToDelete.map(b => b.id), | ||
| })); | ||
| } | ||
| }); | ||
| else { | ||
| console.log(`Done: ${summary.join(', ')} block(s)`); | ||
| } | ||
| })); | ||
| } | ||
@@ -516,0 +491,0 @@ // ─── Helpers ──────────────────────────────────────────────────────────────── |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/commands/pages.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/commands/pages.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/commands/relations.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8a/D"} | ||
| {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/commands/relations.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8Z/D"} |
+284
-301
| import { getClient } from '../client.js'; | ||
| import { formatOutput } from '../utils/format.js'; | ||
| import { getPageTitle } from '../utils/notion-helpers.js'; | ||
| import { getPageTitle, isParentDatabase, getParentDatabaseId } from '../utils/notion-helpers.js'; | ||
| import { getDatabaseSchema, queryDatabase } from '../utils/database-resolver.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| export function registerRelationsCommand(program) { | ||
@@ -16,45 +18,48 @@ const relations = program | ||
| .option('--llm', 'LLM-friendly output') | ||
| .action(async (pageId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get the target page | ||
| const targetPage = await client.get(`pages/${pageId}`); | ||
| const targetTitle = getPageTitle(targetPage); | ||
| console.log(`🔍 Finding backlinks to: ${targetTitle}\n`); | ||
| // Find the parent database | ||
| if (targetPage.parent.type !== 'database_id' || !targetPage.parent.database_id) { | ||
| console.log('Note: Page is not in a database. Checking for relation backlinks only.\n'); | ||
| } | ||
| const backlinks = []; | ||
| // Search for pages that might reference this one | ||
| // Strategy 1: Search by page title (mentions) | ||
| const searchResult = await client.post('search', { | ||
| query: targetTitle, | ||
| filter: { property: 'object', value: 'page' }, | ||
| page_size: 50, | ||
| }); | ||
| // Strategy 2: Check relation properties in the same database | ||
| if (targetPage.parent.database_id) { | ||
| const db = await client.get(`databases/${targetPage.parent.database_id}`); | ||
| // Find relation properties that point to this database | ||
| for (const [propName, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'relation' && schema.relation?.database_id) { | ||
| // Query for entries with relation to our page | ||
| try { | ||
| const relResult = await client.post(`databases/${schema.relation.database_id}/query`, { | ||
| page_size: 100, | ||
| }); | ||
| for (const page of relResult.results) { | ||
| // Check if any relation property points to our target | ||
| for (const [pName, pValue] of Object.entries(page.properties)) { | ||
| const prop = pValue; | ||
| if (prop.type === 'relation' && prop.relation) { | ||
| const hasLink = prop.relation.some(r => r.id === pageId); | ||
| if (hasLink) { | ||
| backlinks.push({ | ||
| type: 'relation', | ||
| page, | ||
| property: pName, | ||
| }); | ||
| } | ||
| .action(withErrorHandler(async (pageId, options) => { | ||
| const client = getClient(); | ||
| // Get the target page | ||
| const targetPage = await client.get(`pages/${pageId}`); | ||
| const targetTitle = getPageTitle(targetPage); | ||
| console.log(`🔍 Finding backlinks to: ${targetTitle}\n`); | ||
| // Find the parent database | ||
| if (!isParentDatabase(targetPage.parent) || !getParentDatabaseId(targetPage.parent)) { | ||
| console.log('Note: Page is not in a database. Checking for relation backlinks only.\n'); | ||
| } | ||
| const backlinks = []; | ||
| // Search for pages that might reference this one | ||
| // Strategy 1: Search by page title (mentions) | ||
| const searchResult = await client.post('search', { | ||
| query: targetTitle, | ||
| filter: { property: 'object', value: 'page' }, | ||
| page_size: 50, | ||
| }); | ||
| // Strategy 2: Check relation properties in the same database | ||
| const parentDbId = getParentDatabaseId(targetPage.parent); | ||
| if (parentDbId) { | ||
| const db = await getDatabaseSchema(client, parentDbId); | ||
| // Find relation properties that point to this database | ||
| for (const [propName, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'relation') { | ||
| const relData = schema.relation; | ||
| const relatedDbId = relData?.data_source_id ?? relData?.database_id; | ||
| if (!relatedDbId) | ||
| continue; | ||
| // Query for entries with relation to our page | ||
| try { | ||
| const relResult = await queryDatabase(client, relatedDbId, { | ||
| page_size: 100, | ||
| }); | ||
| for (const page of relResult.results) { | ||
| // Check if any relation property points to our target | ||
| for (const [pName, pValue] of Object.entries(page.properties)) { | ||
| const prop = pValue; | ||
| if (prop.type === 'relation' && prop.relation) { | ||
| const hasLink = prop.relation.some(r => r.id === pageId); | ||
| if (hasLink) { | ||
| backlinks.push({ | ||
| type: 'relation', | ||
| page, | ||
| property: pName, | ||
| }); | ||
| } | ||
@@ -64,103 +69,99 @@ } | ||
| } | ||
| catch { | ||
| // Database might not be accessible | ||
| } | ||
| } | ||
| catch { | ||
| // Database might not be accessible | ||
| } | ||
| } | ||
| } | ||
| // Also check mentions from search results | ||
| for (const page of searchResult.results) { | ||
| if (page.id === pageId) | ||
| continue; // Skip self | ||
| // Check if this page has relation to target | ||
| for (const [pName, pValue] of Object.entries(page.properties)) { | ||
| const prop = pValue; | ||
| if (prop.type === 'relation' && prop.relation) { | ||
| const hasLink = prop.relation.some(r => r.id === pageId); | ||
| if (hasLink && !backlinks.some(b => b.page.id === page.id)) { | ||
| backlinks.push({ | ||
| type: 'relation', | ||
| page, | ||
| property: pName, | ||
| }); | ||
| } | ||
| } | ||
| // Also check mentions from search results | ||
| for (const page of searchResult.results) { | ||
| if (page.id === pageId) | ||
| continue; // Skip self | ||
| // Check if this page has relation to target | ||
| for (const [pName, pValue] of Object.entries(page.properties)) { | ||
| const prop = pValue; | ||
| if (prop.type === 'relation' && prop.relation) { | ||
| const hasLink = prop.relation.some(r => r.id === pageId); | ||
| if (hasLink && !backlinks.some(b => b.page.id === page.id)) { | ||
| backlinks.push({ | ||
| type: 'relation', | ||
| page, | ||
| property: pName, | ||
| }); | ||
| } | ||
| } | ||
| // Add as potential mention if title matches | ||
| if (!backlinks.some(b => b.page.id === page.id)) { | ||
| backlinks.push({ | ||
| type: 'mention', | ||
| page, | ||
| }); | ||
| } | ||
| } | ||
| // Output | ||
| if (options.json) { | ||
| console.log(formatOutput({ | ||
| target: { id: pageId, title: targetTitle }, | ||
| backlinks: backlinks.map(b => ({ | ||
| type: b.type, | ||
| pageId: b.page.id, | ||
| pageTitle: getPageTitle(b.page), | ||
| property: b.property, | ||
| url: b.page.url, | ||
| })), | ||
| })); | ||
| return; | ||
| // Add as potential mention if title matches | ||
| if (!backlinks.some(b => b.page.id === page.id)) { | ||
| backlinks.push({ | ||
| type: 'mention', | ||
| page, | ||
| }); | ||
| } | ||
| if (backlinks.length === 0) { | ||
| console.log('No backlinks found.'); | ||
| return; | ||
| } | ||
| // Group by type | ||
| const relationLinks = backlinks.filter(b => b.type === 'relation'); | ||
| const mentionLinks = backlinks.filter(b => b.type === 'mention'); | ||
| if (options.llm) { | ||
| console.log(`## Backlinks to "${targetTitle}"\n`); | ||
| if (relationLinks.length > 0) { | ||
| console.log(`### Direct Relations (${relationLinks.length})`); | ||
| for (const b of relationLinks) { | ||
| console.log(`- **${getPageTitle(b.page)}** via \`${b.property}\``); | ||
| console.log(` ID: ${b.page.id}`); | ||
| } | ||
| console.log(''); | ||
| } | ||
| if (mentionLinks.length > 0) { | ||
| console.log(`### Potential Mentions (${mentionLinks.length})`); | ||
| for (const b of mentionLinks.slice(0, 10)) { | ||
| console.log(`- ${getPageTitle(b.page)}`); | ||
| } | ||
| if (mentionLinks.length > 10) { | ||
| console.log(`- ... and ${mentionLinks.length - 10} more`); | ||
| } | ||
| } | ||
| return; | ||
| } | ||
| // Standard output | ||
| console.log(`Found ${backlinks.length} backlinks:\n`); | ||
| } | ||
| // Output | ||
| if (options.json) { | ||
| console.log(formatOutput({ | ||
| target: { id: pageId, title: targetTitle }, | ||
| backlinks: backlinks.map(b => ({ | ||
| type: b.type, | ||
| pageId: b.page.id, | ||
| pageTitle: getPageTitle(b.page), | ||
| property: b.property, | ||
| url: b.page.url, | ||
| })), | ||
| })); | ||
| return; | ||
| } | ||
| if (backlinks.length === 0) { | ||
| console.log('No backlinks found.'); | ||
| return; | ||
| } | ||
| // Group by type | ||
| const relationLinks = backlinks.filter(b => b.type === 'relation'); | ||
| const mentionLinks = backlinks.filter(b => b.type === 'mention'); | ||
| if (options.llm) { | ||
| console.log(`## Backlinks to "${targetTitle}"\n`); | ||
| if (relationLinks.length > 0) { | ||
| console.log('📎 Direct Relations:'); | ||
| console.log(`### Direct Relations (${relationLinks.length})`); | ||
| for (const b of relationLinks) { | ||
| console.log(` ${getPageTitle(b.page)}`); | ||
| console.log(` └─ via property: ${b.property}`); | ||
| console.log(` ID: ${b.page.id}`); | ||
| console.log(''); | ||
| console.log(`- **${getPageTitle(b.page)}** via \`${b.property}\``); | ||
| console.log(` ID: ${b.page.id}`); | ||
| } | ||
| console.log(''); | ||
| } | ||
| if (mentionLinks.length > 0) { | ||
| console.log('📝 Potential Mentions:'); | ||
| console.log(`### Potential Mentions (${mentionLinks.length})`); | ||
| for (const b of mentionLinks.slice(0, 10)) { | ||
| console.log(` ${getPageTitle(b.page)}`); | ||
| console.log(` ID: ${b.page.id}`); | ||
| console.log(`- ${getPageTitle(b.page)}`); | ||
| } | ||
| if (mentionLinks.length > 10) { | ||
| console.log(` ... and ${mentionLinks.length - 10} more`); | ||
| console.log(`- ... and ${mentionLinks.length - 10} more`); | ||
| } | ||
| } | ||
| return; | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| // Standard output | ||
| console.log(`Found ${backlinks.length} backlinks:\n`); | ||
| if (relationLinks.length > 0) { | ||
| console.log('📎 Direct Relations:'); | ||
| for (const b of relationLinks) { | ||
| console.log(` ${getPageTitle(b.page)}`); | ||
| console.log(` └─ via property: ${b.property}`); | ||
| console.log(` ID: ${b.page.id}`); | ||
| console.log(''); | ||
| } | ||
| } | ||
| }); | ||
| if (mentionLinks.length > 0) { | ||
| console.log('📝 Potential Mentions:'); | ||
| for (const b of mentionLinks.slice(0, 10)) { | ||
| console.log(` ${getPageTitle(b.page)}`); | ||
| console.log(` ID: ${b.page.id}`); | ||
| } | ||
| if (mentionLinks.length > 10) { | ||
| console.log(` ... and ${mentionLinks.length - 10} more`); | ||
| } | ||
| } | ||
| })); | ||
| // Link pages | ||
@@ -172,64 +173,58 @@ relations | ||
| .option('--bidirectional', 'Also link target back to source') | ||
| .action(async (sourceId, targetId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get source page | ||
| const sourcePage = await client.get(`pages/${sourceId}`); | ||
| const sourceTitle = getPageTitle(sourcePage); | ||
| // Get target page | ||
| const targetPage = await client.get(`pages/${targetId}`); | ||
| const targetTitle = getPageTitle(targetPage); | ||
| // Check if property exists and is a relation | ||
| const prop = sourcePage.properties[options.property]; | ||
| if (!prop || prop.type !== 'relation') { | ||
| console.error(`Error: Property "${options.property}" is not a relation property`); | ||
| process.exit(1); | ||
| } | ||
| // Get existing relations | ||
| const existingRelations = (prop.relation || []) | ||
| .map(r => ({ id: r.id })); | ||
| // Check if already linked | ||
| if (existingRelations.some(r => r.id === targetId)) { | ||
| console.log(`Already linked: ${sourceTitle} → ${targetTitle}`); | ||
| return; | ||
| } | ||
| // Add new relation | ||
| existingRelations.push({ id: targetId }); | ||
| await client.patch(`pages/${sourceId}`, { | ||
| properties: { | ||
| [options.property]: { | ||
| relation: existingRelations, | ||
| }, | ||
| .action(withErrorHandler(async (sourceId, targetId, options) => { | ||
| const client = getClient(); | ||
| // Get source page | ||
| const sourcePage = await client.get(`pages/${sourceId}`); | ||
| const sourceTitle = getPageTitle(sourcePage); | ||
| // Get target page | ||
| const targetPage = await client.get(`pages/${targetId}`); | ||
| const targetTitle = getPageTitle(targetPage); | ||
| // Check if property exists and is a relation | ||
| const prop = sourcePage.properties[options.property]; | ||
| if (!prop || prop.type !== 'relation') { | ||
| console.error(`Error: Property "${options.property}" is not a relation property`); | ||
| process.exit(1); | ||
| } | ||
| // Get existing relations | ||
| const existingRelations = (prop.relation || []) | ||
| .map(r => ({ id: r.id })); | ||
| // Check if already linked | ||
| if (existingRelations.some(r => r.id === targetId)) { | ||
| console.log(`Already linked: ${sourceTitle} → ${targetTitle}`); | ||
| return; | ||
| } | ||
| // Add new relation | ||
| existingRelations.push({ id: targetId }); | ||
| await client.patch(`pages/${sourceId}`, { | ||
| properties: { | ||
| [options.property]: { | ||
| relation: existingRelations, | ||
| }, | ||
| }); | ||
| console.log(`✅ Linked: ${sourceTitle} → ${targetTitle}`); | ||
| console.log(` Property: ${options.property}`); | ||
| // Bidirectional linking | ||
| if (options.bidirectional) { | ||
| const targetProp = targetPage.properties[options.property]; | ||
| if (targetProp && targetProp.type === 'relation') { | ||
| const targetRelations = (targetProp.relation || []) | ||
| .map(r => ({ id: r.id })); | ||
| if (!targetRelations.some(r => r.id === sourceId)) { | ||
| targetRelations.push({ id: sourceId }); | ||
| await client.patch(`pages/${targetId}`, { | ||
| properties: { | ||
| [options.property]: { | ||
| relation: targetRelations, | ||
| }, | ||
| }, | ||
| }); | ||
| console.log(`✅ Linked: ${sourceTitle} → ${targetTitle}`); | ||
| console.log(` Property: ${options.property}`); | ||
| // Bidirectional linking | ||
| if (options.bidirectional) { | ||
| const targetProp = targetPage.properties[options.property]; | ||
| if (targetProp && targetProp.type === 'relation') { | ||
| const targetRelations = (targetProp.relation || []) | ||
| .map(r => ({ id: r.id })); | ||
| if (!targetRelations.some(r => r.id === sourceId)) { | ||
| targetRelations.push({ id: sourceId }); | ||
| await client.patch(`pages/${targetId}`, { | ||
| properties: { | ||
| [options.property]: { | ||
| relation: targetRelations, | ||
| }, | ||
| }); | ||
| console.log(`✅ Linked: ${targetTitle} → ${sourceTitle} (bidirectional)`); | ||
| } | ||
| }, | ||
| }); | ||
| console.log(`✅ Linked: ${targetTitle} → ${sourceTitle} (bidirectional)`); | ||
| } | ||
| else { | ||
| console.log(`⚠️ Could not create bidirectional link (property not found on target)`); | ||
| } | ||
| } | ||
| else { | ||
| console.log(`⚠️ Could not create bidirectional link (property not found on target)`); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| })); | ||
| // Unlink pages | ||
@@ -241,51 +236,45 @@ relations | ||
| .option('--bidirectional', 'Also unlink target from source') | ||
| .action(async (sourceId, targetId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get source page | ||
| const sourcePage = await client.get(`pages/${sourceId}`); | ||
| const sourceTitle = getPageTitle(sourcePage); | ||
| // Get target page | ||
| const targetPage = await client.get(`pages/${targetId}`); | ||
| const targetTitle = getPageTitle(targetPage); | ||
| // Get existing relations | ||
| const prop = sourcePage.properties[options.property]; | ||
| if (!prop || prop.type !== 'relation') { | ||
| console.error(`Error: Property "${options.property}" is not a relation property`); | ||
| process.exit(1); | ||
| } | ||
| const existingRelations = (prop.relation || []) | ||
| .filter(r => r.id !== targetId) | ||
| .map(r => ({ id: r.id })); | ||
| await client.patch(`pages/${sourceId}`, { | ||
| properties: { | ||
| [options.property]: { | ||
| relation: existingRelations, | ||
| }, | ||
| .action(withErrorHandler(async (sourceId, targetId, options) => { | ||
| const client = getClient(); | ||
| // Get source page | ||
| const sourcePage = await client.get(`pages/${sourceId}`); | ||
| const sourceTitle = getPageTitle(sourcePage); | ||
| // Get target page | ||
| const targetPage = await client.get(`pages/${targetId}`); | ||
| const targetTitle = getPageTitle(targetPage); | ||
| // Get existing relations | ||
| const prop = sourcePage.properties[options.property]; | ||
| if (!prop || prop.type !== 'relation') { | ||
| console.error(`Error: Property "${options.property}" is not a relation property`); | ||
| process.exit(1); | ||
| } | ||
| const existingRelations = (prop.relation || []) | ||
| .filter(r => r.id !== targetId) | ||
| .map(r => ({ id: r.id })); | ||
| await client.patch(`pages/${sourceId}`, { | ||
| properties: { | ||
| [options.property]: { | ||
| relation: existingRelations, | ||
| }, | ||
| }); | ||
| console.log(`✅ Unlinked: ${sourceTitle} ✕ ${targetTitle}`); | ||
| // Bidirectional unlinking | ||
| if (options.bidirectional) { | ||
| const targetProp = targetPage.properties[options.property]; | ||
| if (targetProp && targetProp.type === 'relation') { | ||
| const targetRelations = (targetProp.relation || []) | ||
| .filter(r => r.id !== sourceId) | ||
| .map(r => ({ id: r.id })); | ||
| await client.patch(`pages/${targetId}`, { | ||
| properties: { | ||
| [options.property]: { | ||
| relation: targetRelations, | ||
| }, | ||
| }, | ||
| }); | ||
| console.log(`✅ Unlinked: ${sourceTitle} ✕ ${targetTitle}`); | ||
| // Bidirectional unlinking | ||
| if (options.bidirectional) { | ||
| const targetProp = targetPage.properties[options.property]; | ||
| if (targetProp && targetProp.type === 'relation') { | ||
| const targetRelations = (targetProp.relation || []) | ||
| .filter(r => r.id !== sourceId) | ||
| .map(r => ({ id: r.id })); | ||
| await client.patch(`pages/${targetId}`, { | ||
| properties: { | ||
| [options.property]: { | ||
| relation: targetRelations, | ||
| }, | ||
| }); | ||
| console.log(`✅ Unlinked: ${targetTitle} ✕ ${sourceTitle} (bidirectional)`); | ||
| } | ||
| }, | ||
| }); | ||
| console.log(`✅ Unlinked: ${targetTitle} ✕ ${sourceTitle} (bidirectional)`); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| })); | ||
| // Show graph | ||
@@ -297,87 +286,81 @@ relations | ||
| .option('--format <type>', 'Output format: text, dot, json', 'text') | ||
| .action(async (pageId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const depth = parseInt(options.depth, 10); | ||
| // Track visited pages | ||
| const visited = new Set(); | ||
| const nodes = []; | ||
| const edges = []; | ||
| // BFS traversal | ||
| const queue = [{ id: pageId, level: 0 }]; | ||
| while (queue.length > 0) { | ||
| const { id, level } = queue.shift(); | ||
| if (visited.has(id) || level > depth) | ||
| continue; | ||
| visited.add(id); | ||
| try { | ||
| const page = await client.get(`pages/${id}`); | ||
| const title = getPageTitle(page); | ||
| nodes.push({ id, title, level }); | ||
| // Find relations | ||
| for (const [propName, propValue] of Object.entries(page.properties)) { | ||
| const prop = propValue; | ||
| if (prop.type === 'relation' && prop.relation) { | ||
| for (const rel of prop.relation) { | ||
| edges.push({ from: id, to: rel.id, property: propName }); | ||
| if (!visited.has(rel.id) && level + 1 <= depth) { | ||
| queue.push({ id: rel.id, level: level + 1 }); | ||
| } | ||
| .action(withErrorHandler(async (pageId, options) => { | ||
| const client = getClient(); | ||
| const depth = parseInt(options.depth, 10); | ||
| // Track visited pages | ||
| const visited = new Set(); | ||
| const nodes = []; | ||
| const edges = []; | ||
| // BFS traversal | ||
| const queue = [{ id: pageId, level: 0 }]; | ||
| while (queue.length > 0) { | ||
| const { id, level } = queue.shift(); | ||
| if (visited.has(id) || level > depth) | ||
| continue; | ||
| visited.add(id); | ||
| try { | ||
| const page = await client.get(`pages/${id}`); | ||
| const title = getPageTitle(page); | ||
| nodes.push({ id, title, level }); | ||
| // Find relations | ||
| for (const [propName, propValue] of Object.entries(page.properties)) { | ||
| const prop = propValue; | ||
| if (prop.type === 'relation' && prop.relation) { | ||
| for (const rel of prop.relation) { | ||
| edges.push({ from: id, to: rel.id, property: propName }); | ||
| if (!visited.has(rel.id) && level + 1 <= depth) { | ||
| queue.push({ id: rel.id, level: level + 1 }); | ||
| } | ||
| } | ||
| } | ||
| process.stdout.write(`\rTraversing: ${nodes.length} nodes...`); | ||
| } | ||
| catch { | ||
| // Page might not be accessible | ||
| } | ||
| process.stdout.write(`\rTraversing: ${nodes.length} nodes...`); | ||
| } | ||
| console.log(`\rFound ${nodes.length} nodes, ${edges.length} edges. \n`); | ||
| // Output | ||
| if (options.format === 'json') { | ||
| console.log(formatOutput({ nodes, edges })); | ||
| return; | ||
| catch { | ||
| // Page might not be accessible | ||
| } | ||
| if (options.format === 'dot') { | ||
| console.log('digraph G {'); | ||
| console.log(' rankdir=LR;'); | ||
| for (const node of nodes) { | ||
| const label = node.title.replace(/"/g, '\\"').slice(0, 30); | ||
| console.log(` "${node.id.slice(0, 8)}" [label="${label}"];`); | ||
| } | ||
| console.log(`\rFound ${nodes.length} nodes, ${edges.length} edges. \n`); | ||
| // Output | ||
| if (options.format === 'json') { | ||
| console.log(formatOutput({ nodes, edges })); | ||
| return; | ||
| } | ||
| if (options.format === 'dot') { | ||
| console.log('digraph G {'); | ||
| console.log(' rankdir=LR;'); | ||
| for (const node of nodes) { | ||
| const label = node.title.replace(/"/g, '\\"').slice(0, 30); | ||
| console.log(` "${node.id.slice(0, 8)}" [label="${label}"];`); | ||
| } | ||
| for (const edge of edges) { | ||
| console.log(` "${edge.from.slice(0, 8)}" -> "${edge.to.slice(0, 8)}" [label="${edge.property}"];`); | ||
| } | ||
| console.log('}'); | ||
| return; | ||
| } | ||
| // Text format | ||
| console.log('📊 Relationship Graph:\n'); | ||
| const rootNode = nodes.find(n => n.id === pageId); | ||
| if (rootNode) { | ||
| console.log(`🎯 ${rootNode.title} (root)`); | ||
| const outgoing = edges.filter(e => e.from === pageId); | ||
| const incoming = edges.filter(e => e.to === pageId); | ||
| if (outgoing.length > 0) { | ||
| console.log('\n → Links to:'); | ||
| for (const edge of outgoing) { | ||
| const target = nodes.find(n => n.id === edge.to); | ||
| console.log(` ${target?.title || edge.to.slice(0, 8)} (via ${edge.property})`); | ||
| } | ||
| for (const edge of edges) { | ||
| console.log(` "${edge.from.slice(0, 8)}" -> "${edge.to.slice(0, 8)}" [label="${edge.property}"];`); | ||
| } | ||
| console.log('}'); | ||
| return; | ||
| } | ||
| // Text format | ||
| console.log('📊 Relationship Graph:\n'); | ||
| const rootNode = nodes.find(n => n.id === pageId); | ||
| if (rootNode) { | ||
| console.log(`🎯 ${rootNode.title} (root)`); | ||
| const outgoing = edges.filter(e => e.from === pageId); | ||
| const incoming = edges.filter(e => e.to === pageId); | ||
| if (outgoing.length > 0) { | ||
| console.log('\n → Links to:'); | ||
| for (const edge of outgoing) { | ||
| const target = nodes.find(n => n.id === edge.to); | ||
| console.log(` ${target?.title || edge.to.slice(0, 8)} (via ${edge.property})`); | ||
| } | ||
| if (incoming.length > 0) { | ||
| console.log('\n ← Linked from:'); | ||
| for (const edge of incoming) { | ||
| const source = nodes.find(n => n.id === edge.from); | ||
| console.log(` ${source?.title || edge.from.slice(0, 8)} (via ${edge.property})`); | ||
| } | ||
| if (incoming.length > 0) { | ||
| console.log('\n ← Linked from:'); | ||
| for (const edge of incoming) { | ||
| const source = nodes.find(n => n.id === edge.from); | ||
| console.log(` ${source?.title || edge.from.slice(0, 8)} (via ${edge.property})`); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| })); | ||
| } | ||
| //# sourceMappingURL=relations.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/commands/relations.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/commands/relations.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyD5D"} | ||
| {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyH5D"} |
+106
-41
| import { getClient } from '../client.js'; | ||
| import { formatOutput, formatPageTitle, formatDatabaseTitle } from '../utils/format.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| import { getParentDatabaseId } from '../utils/notion-helpers.js'; | ||
| function getItemTitle(item) { | ||
| if (item.object === 'page') | ||
| return formatPageTitle(item); | ||
| return formatDatabaseTitle(item); | ||
| } | ||
| export function registerSearchCommand(program) { | ||
@@ -11,52 +18,110 @@ program | ||
| .option('--cursor <cursor>', 'Pagination cursor for next page') | ||
| .option('--db <database_id>', 'Filter results to pages in this database') | ||
| .option('--exact', 'Only show exact title matches') | ||
| .option('--first', 'Return only the first result (exit 1 if none)') | ||
| .option('--llm', 'Compact LLM-friendly output') | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (query, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const body = {}; | ||
| if (query) | ||
| body.query = query; | ||
| if (options.type) | ||
| body.filter = { property: 'object', value: options.type }; | ||
| if (options.sort) { | ||
| body.sort = { | ||
| direction: options.sort, | ||
| timestamp: 'last_edited_time', | ||
| }; | ||
| } | ||
| if (options.limit) | ||
| body.page_size = parseInt(options.limit, 10); | ||
| if (options.cursor) | ||
| body.start_cursor = options.cursor; | ||
| .action(withErrorHandler(async (query, options) => { | ||
| const client = getClient(); | ||
| const body = {}; | ||
| if (query) | ||
| body.query = query; | ||
| if (options.type) { | ||
| const apiType = options.type === 'database' ? 'data_source' : options.type; | ||
| body.filter = { property: 'object', value: apiType }; | ||
| } | ||
| if (options.sort) { | ||
| body.sort = { | ||
| direction: options.sort, | ||
| timestamp: 'last_edited_time', | ||
| }; | ||
| } | ||
| const needsPostFilter = options.db || options.exact; | ||
| const requestLimit = parseInt(options.limit || '10', 10); | ||
| body.page_size = needsPostFilter ? 100 : requestLimit; | ||
| if (options.cursor) | ||
| body.start_cursor = options.cursor; | ||
| // When post-filtering (--db, --exact), paginate until we have enough | ||
| // matches or exhaust the cursor. Without post-filters, single request. | ||
| let items = []; | ||
| let lastHasMore = false; | ||
| let lastCursor = null; | ||
| let cursor = options.cursor; | ||
| do { | ||
| if (cursor) | ||
| body.start_cursor = cursor; | ||
| const result = await client.post('search', body); | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| return; | ||
| let batch = result.results; | ||
| if (options.db) { | ||
| batch = batch.filter(item => { | ||
| if (!item.parent) | ||
| return false; | ||
| const parentId = getParentDatabaseId(item.parent); | ||
| return parentId === options.db; | ||
| }); | ||
| } | ||
| // Pretty print results | ||
| if (result.results.length === 0) { | ||
| console.log('No results found.'); | ||
| return; | ||
| if (options.exact && query) { | ||
| const lowerQuery = query.toLowerCase(); | ||
| batch = batch.filter(item => getItemTitle(item).toLowerCase() === lowerQuery); | ||
| } | ||
| for (const item of result.results) { | ||
| const icon = item.object === 'page' ? '📄' : '🗄️'; | ||
| const title = item.object === 'page' | ||
| ? formatPageTitle(item) | ||
| : formatDatabaseTitle(item); | ||
| console.log(`${icon} ${title}`); | ||
| console.log(` ID: ${item.id}`); | ||
| if (item.url) | ||
| console.log(` URL: ${item.url}`); | ||
| console.log(''); | ||
| items.push(...batch); | ||
| lastHasMore = result.has_more; | ||
| lastCursor = result.next_cursor; | ||
| // Stop conditions: enough results, no more pages, or no post-filter | ||
| if (!needsPostFilter) | ||
| break; | ||
| if (options.first && items.length >= 1) | ||
| break; | ||
| if (items.length >= requestLimit) | ||
| break; | ||
| cursor = result.has_more ? (result.next_cursor ?? undefined) : undefined; | ||
| } while (cursor); | ||
| // Trim to requested limit | ||
| if (!options.first && items.length > requestLimit) { | ||
| items = items.slice(0, requestLimit); | ||
| } | ||
| // --first: return one result or exit 1 | ||
| if (options.first) { | ||
| if (items.length === 0) { | ||
| if (!options.json && !options.llm) | ||
| console.error('No matching result found.'); | ||
| process.exit(1); | ||
| } | ||
| if (result.has_more) { | ||
| console.log(`More results available. Use --cursor ${result.next_cursor}`); | ||
| items = [items[0]]; | ||
| } | ||
| if (options.json) { | ||
| console.log(formatOutput(options.first ? items[0] : { results: items, has_more: lastHasMore, next_cursor: lastCursor })); | ||
| return; | ||
| } | ||
| if (items.length === 0) { | ||
| console.log('No results found.'); | ||
| return; | ||
| } | ||
| // --llm: compact output | ||
| if (options.llm) { | ||
| for (const item of items) { | ||
| const title = getItemTitle(item); | ||
| const type = item.object === 'page' ? 'page' : 'db'; | ||
| console.log(`[${type}] ${item.id} ${title}`); | ||
| } | ||
| if (lastHasMore && !options.first) { | ||
| console.log(`(more results available)`); | ||
| } | ||
| return; | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| for (const item of items) { | ||
| const isPage = item.object === 'page'; | ||
| const icon = isPage ? '📄' : '🗄️'; | ||
| const title = getItemTitle(item); | ||
| console.log(`${icon} ${title}`); | ||
| console.log(` ID: ${item.id}`); | ||
| if (item.url) | ||
| console.log(` URL: ${item.url}`); | ||
| console.log(''); | ||
| } | ||
| }); | ||
| if (lastHasMore && !options.first) { | ||
| console.log(`More results available. Use --cursor ${lastCursor}`); | ||
| } | ||
| })); | ||
| } | ||
| //# sourceMappingURL=search.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAkBjE,SAAS,YAAY,CAAC,IAAgB;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,EAAE,EAAE,CAAC;SACjE,MAAM,CAAC,wBAAwB,EAAE,qCAAqC,EAAE,EAAE,CAAC;SAC3E,MAAM,CAAC,sBAAsB,EAAE,uBAAuB,EAAE,IAAI,CAAC;SAC7D,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,CAAC;SAC9D,MAAM,CAAC,oBAAoB,EAAE,0CAA0C,CAAC;SACxE,MAAM,CAAC,SAAS,EAAE,+BAA+B,CAAC;SAClD,MAAM,CAAC,SAAS,EAAE,+CAA+C,CAAC;SAClE,MAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC;SAC9C,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC;SACvC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAyB,EAAE,OAAO,EAAE,EAAE;QACpE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAC9B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;YAC3E,IAAI,CAAC,MAAM,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACvD,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG;gBACV,SAAS,EAAE,OAAO,CAAC,IAAI;gBACvB,SAAS,EAAE,kBAAkB;aAC9B,CAAC;QACJ,CAAC;QACD,MAAM,eAAe,GAAG,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC;QACpD,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM;YAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;QAEvD,qEAAqE;QACrE,uEAAuE;QACvE,IAAI,KAAK,GAAiB,EAAE,CAAC;QAC7B,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,UAAU,GAAkB,IAAI,CAAC;QAErC,IAAI,MAAM,GAAuB,OAAO,CAAC,MAAM,CAAC;QAChD,GAAG,CAAC;YACF,IAAI,MAAM;gBAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAe,QAAQ,EAAE,IAAI,CAAC,CAAC;YAE/D,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;YAE3B,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;gBACf,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBAC1B,IAAI,CAAC,IAAI,CAAC,MAAM;wBAAE,OAAO,KAAK,CAAC;oBAC/B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAa,CAAC,CAAC;oBACzD,OAAO,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;gBACjC,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC;YAChF,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YACrB,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC9B,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;YAEhC,oEAAoE;YACpE,IAAI,CAAC,eAAe;gBAAE,MAAM;YAC5B,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM;YAC9C,IAAI,KAAK,CAAC,MAAM,IAAI,YAAY;gBAAE,MAAM;YACxC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,CAAC,QAAQ,MAAM,EAAE;QAEjB,0BAA0B;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;YAClD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,uCAAuC;QACvC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG;oBAAE,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YACzH,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,WAAW,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO;QACT,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;YACtC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YACnC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,GAAG;gBAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,WAAW,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,wCAAwC,UAAU,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmCpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiQ3D"} | ||
| {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqCpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyO3D"} |
+163
-180
| import { getClient } from '../client.js'; | ||
| import { formatOutput } from '../utils/format.js'; | ||
| import { getDatabaseSchema, queryDatabase, queryAllPages } from '../utils/database-resolver.js'; | ||
| import { getDbTitle } from '../utils/notion-helpers.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| // Stats-specific version: returns 'true'/'false' for checkboxes and only | ||
@@ -38,118 +40,89 @@ // handles property types relevant to statistical breakdowns. | ||
| .option('--llm', 'LLM-friendly output') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get database info | ||
| const db = await client.get(`databases/${databaseId}`); | ||
| const title = getDbTitle(db); | ||
| // Find status/select properties for breakdown | ||
| const breakdownProps = []; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'status') { | ||
| const statusData = schema.status; | ||
| breakdownProps.push({ | ||
| name, | ||
| type: 'status', | ||
| options: statusData?.options?.map(o => o.name) || [], | ||
| }); | ||
| } | ||
| else if (schema.type === 'select' && | ||
| (name.toLowerCase().includes('priority') || | ||
| name.toLowerCase().includes('type') || | ||
| name.toLowerCase().includes('category'))) { | ||
| const selectData = schema.select; | ||
| breakdownProps.push({ | ||
| name, | ||
| type: 'select', | ||
| options: selectData?.options?.map(o => o.name) || [], | ||
| }); | ||
| } | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| // Get database info | ||
| const db = await getDatabaseSchema(client, databaseId); | ||
| const title = getDbTitle(db); | ||
| // Find status/select properties for breakdown | ||
| const breakdownProps = []; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'status') { | ||
| const statusData = schema.status; | ||
| breakdownProps.push({ | ||
| name, | ||
| type: 'status', | ||
| options: statusData?.options?.map(o => o.name) || [], | ||
| }); | ||
| } | ||
| // Query all entries (paginated) | ||
| const entries = []; | ||
| let cursor; | ||
| do { | ||
| const body = { page_size: 100 }; | ||
| if (cursor) | ||
| body.start_cursor = cursor; | ||
| const result = await client.post(`databases/${databaseId}/query`, body); | ||
| entries.push(...result.results); | ||
| cursor = result.has_more ? result.next_cursor : undefined; | ||
| process.stdout.write(`\rFetching entries: ${entries.length}...`); | ||
| } while (cursor); | ||
| console.log(`\rFetched ${entries.length} entries. \n`); | ||
| // Calculate breakdowns | ||
| const breakdowns = {}; | ||
| for (const prop of breakdownProps) { | ||
| breakdowns[prop.name] = {}; | ||
| // Initialize with all options | ||
| for (const opt of prop.options) { | ||
| breakdowns[prop.name][opt] = 0; | ||
| } | ||
| breakdowns[prop.name]['(empty)'] = 0; | ||
| else if (schema.type === 'select' && | ||
| (name.toLowerCase().includes('priority') || | ||
| name.toLowerCase().includes('type') || | ||
| name.toLowerCase().includes('category'))) { | ||
| const selectData = schema.select; | ||
| breakdownProps.push({ | ||
| name, | ||
| type: 'select', | ||
| options: selectData?.options?.map(o => o.name) || [], | ||
| }); | ||
| } | ||
| // Count created/edited over time | ||
| const createdByMonth = {}; | ||
| const editedByMonth = {}; | ||
| for (const entry of entries) { | ||
| // Breakdown counts | ||
| for (const prop of breakdownProps) { | ||
| const value = entry.properties[prop.name]; | ||
| if (value) { | ||
| const strValue = getPropertyValue(value); | ||
| if (strValue) { | ||
| breakdowns[prop.name][strValue] = (breakdowns[prop.name][strValue] || 0) + 1; | ||
| } | ||
| else { | ||
| breakdowns[prop.name]['(empty)']++; | ||
| } | ||
| } | ||
| } | ||
| // Time-based stats | ||
| const createdMonth = entry.created_time.slice(0, 7); | ||
| const editedMonth = entry.last_edited_time.slice(0, 7); | ||
| createdByMonth[createdMonth] = (createdByMonth[createdMonth] || 0) + 1; | ||
| editedByMonth[editedMonth] = (editedByMonth[editedMonth] || 0) + 1; | ||
| } | ||
| // Query all entries (paginated) | ||
| const entries = await queryAllPages(client, databaseId, { | ||
| pageSize: 100, | ||
| onProgress: (fetched) => process.stdout.write(`\rFetching entries: ${fetched}...`), | ||
| }); | ||
| console.log(`\rFetched ${entries.length} entries. \n`); | ||
| // Calculate breakdowns | ||
| const breakdowns = {}; | ||
| for (const prop of breakdownProps) { | ||
| breakdowns[prop.name] = {}; | ||
| // Initialize with all options | ||
| for (const opt of prop.options) { | ||
| breakdowns[prop.name][opt] = 0; | ||
| } | ||
| // Build stats object | ||
| const statsData = { | ||
| database: title, | ||
| databaseId, | ||
| totalEntries: entries.length, | ||
| breakdowns, | ||
| activity: { | ||
| createdByMonth, | ||
| editedByMonth, | ||
| }, | ||
| }; | ||
| if (options.json) { | ||
| console.log(formatOutput(statsData)); | ||
| return; | ||
| } | ||
| if (options.llm) { | ||
| console.log(`# Database Stats: ${title}\n`); | ||
| console.log(`**Total entries:** ${entries.length}\n`); | ||
| for (const [propName, counts] of Object.entries(breakdowns)) { | ||
| console.log(`## ${propName}`); | ||
| const sorted = Object.entries(counts) | ||
| .filter(([, count]) => count > 0) | ||
| .sort((a, b) => b[1] - a[1]); | ||
| for (const [value, count] of sorted) { | ||
| const pct = ((count / entries.length) * 100).toFixed(1); | ||
| console.log(`- ${value}: ${count} (${pct}%)`); | ||
| breakdowns[prop.name]['(empty)'] = 0; | ||
| } | ||
| // Count created/edited over time | ||
| const createdByMonth = {}; | ||
| const editedByMonth = {}; | ||
| for (const entry of entries) { | ||
| // Breakdown counts | ||
| for (const prop of breakdownProps) { | ||
| const value = entry.properties[prop.name]; | ||
| if (value) { | ||
| const strValue = getPropertyValue(value); | ||
| if (strValue) { | ||
| breakdowns[prop.name][strValue] = (breakdowns[prop.name][strValue] || 0) + 1; | ||
| } | ||
| console.log(''); | ||
| else { | ||
| breakdowns[prop.name]['(empty)']++; | ||
| } | ||
| } | ||
| console.log('## Recent Activity'); | ||
| const recentMonths = Object.keys(editedByMonth).sort().slice(-3); | ||
| for (const month of recentMonths) { | ||
| console.log(`- ${month}: ${editedByMonth[month]} edited`); | ||
| } | ||
| return; | ||
| } | ||
| // Standard output | ||
| console.log(`📊 Database: ${title}`); | ||
| console.log(` Total entries: ${entries.length}\n`); | ||
| // Time-based stats | ||
| const createdMonth = entry.created_time.slice(0, 7); | ||
| const editedMonth = entry.last_edited_time.slice(0, 7); | ||
| createdByMonth[createdMonth] = (createdByMonth[createdMonth] || 0) + 1; | ||
| editedByMonth[editedMonth] = (editedByMonth[editedMonth] || 0) + 1; | ||
| } | ||
| // Build stats object | ||
| const statsData = { | ||
| database: title, | ||
| databaseId, | ||
| totalEntries: entries.length, | ||
| breakdowns, | ||
| activity: { | ||
| createdByMonth, | ||
| editedByMonth, | ||
| }, | ||
| }; | ||
| if (options.json) { | ||
| console.log(formatOutput(statsData)); | ||
| return; | ||
| } | ||
| if (options.llm) { | ||
| console.log(`# Database Stats: ${title}\n`); | ||
| console.log(`**Total entries:** ${entries.length}\n`); | ||
| for (const [propName, counts] of Object.entries(breakdowns)) { | ||
| console.log(`${propName}:`); | ||
| console.log(`## ${propName}`); | ||
| const sorted = Object.entries(counts) | ||
@@ -159,22 +132,38 @@ .filter(([, count]) => count > 0) | ||
| for (const [value, count] of sorted) { | ||
| const pct = ((count / entries.length) * 100).toFixed(0); | ||
| const bar = '█'.repeat(Math.ceil(count / entries.length * 20)); | ||
| console.log(` ${value.padEnd(20)} ${String(count).padStart(4)} (${pct.padStart(3)}%) ${bar}`); | ||
| const pct = ((count / entries.length) * 100).toFixed(1); | ||
| console.log(`- ${value}: ${count} (${pct}%)`); | ||
| } | ||
| console.log(''); | ||
| } | ||
| // Activity summary | ||
| console.log('Recent activity:'); | ||
| const recentMonths = Object.keys(editedByMonth).sort().slice(-6); | ||
| console.log('## Recent Activity'); | ||
| const recentMonths = Object.keys(editedByMonth).sort().slice(-3); | ||
| for (const month of recentMonths) { | ||
| const created = createdByMonth[month] || 0; | ||
| const edited = editedByMonth[month] || 0; | ||
| console.log(` ${month}: ${created} created, ${edited} edited`); | ||
| console.log(`- ${month}: ${editedByMonth[month]} edited`); | ||
| } | ||
| return; | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| // Standard output | ||
| console.log(`📊 Database: ${title}`); | ||
| console.log(` Total entries: ${entries.length}\n`); | ||
| for (const [propName, counts] of Object.entries(breakdowns)) { | ||
| console.log(`${propName}:`); | ||
| const sorted = Object.entries(counts) | ||
| .filter(([, count]) => count > 0) | ||
| .sort((a, b) => b[1] - a[1]); | ||
| for (const [value, count] of sorted) { | ||
| const pct = ((count / entries.length) * 100).toFixed(0); | ||
| const bar = '█'.repeat(Math.ceil(count / entries.length * 20)); | ||
| console.log(` ${value.padEnd(20)} ${String(count).padStart(4)} (${pct.padStart(3)}%) ${bar}`); | ||
| } | ||
| console.log(''); | ||
| } | ||
| }); | ||
| // Activity summary | ||
| console.log('Recent activity:'); | ||
| const recentMonths = Object.keys(editedByMonth).sort().slice(-6); | ||
| for (const month of recentMonths) { | ||
| const created = createdByMonth[month] || 0; | ||
| const edited = editedByMonth[month] || 0; | ||
| console.log(` ${month}: ${created} created, ${edited} edited`); | ||
| } | ||
| })); | ||
| // Timeline view | ||
@@ -186,64 +175,58 @@ stats | ||
| .option('-j, --json', 'Output as JSON') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const days = parseInt(options.days, 10); | ||
| const since = new Date(); | ||
| since.setDate(since.getDate() - days); | ||
| since.setHours(0, 0, 0, 0); | ||
| // Query recently edited entries | ||
| const result = await client.post(`databases/${databaseId}/query`, { | ||
| filter: { | ||
| timestamp: 'last_edited_time', | ||
| last_edited_time: { on_or_after: since.toISOString() }, | ||
| }, | ||
| sorts: [{ timestamp: 'last_edited_time', direction: 'descending' }], | ||
| page_size: 100, | ||
| }); | ||
| // Group by day | ||
| const byDay = {}; | ||
| for (const page of result.results) { | ||
| const day = page.last_edited_time.split('T')[0]; | ||
| if (!byDay[day]) | ||
| byDay[day] = []; | ||
| byDay[day].push(page); | ||
| } | ||
| if (options.json) { | ||
| console.log(formatOutput({ days, since: since.toISOString(), byDay })); | ||
| return; | ||
| } | ||
| console.log(`📅 Activity timeline (last ${days} days)\n`); | ||
| // Generate all days | ||
| const allDays = []; | ||
| const current = new Date(since); | ||
| while (current <= new Date()) { | ||
| allDays.push(current.toISOString().split('T')[0]); | ||
| current.setDate(current.getDate() + 1); | ||
| } | ||
| for (const day of allDays.reverse()) { | ||
| const pages = byDay[day] || []; | ||
| const count = pages.length; | ||
| const bar = '█'.repeat(Math.min(count, 30)); | ||
| // Format day name | ||
| const date = new Date(day); | ||
| const dayName = date.toLocaleDateString('en-US', { weekday: 'short' }); | ||
| console.log(`${day} (${dayName}) ${String(count).padStart(3)} ${bar}`); | ||
| // Show top 3 items for the day | ||
| if (count > 0 && count <= 5) { | ||
| for (const page of pages) { | ||
| const title = Object.values(page.properties) | ||
| .find((p) => p.type === 'title'); | ||
| const name = title?.title?.map(t => t.plain_text).join('') || 'Untitled'; | ||
| console.log(` └─ ${name.slice(0, 40)}`); | ||
| } | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| const days = parseInt(options.days, 10); | ||
| const since = new Date(); | ||
| since.setDate(since.getDate() - days); | ||
| since.setHours(0, 0, 0, 0); | ||
| // Query recently edited entries | ||
| const result = await queryDatabase(client, databaseId, { | ||
| filter: { | ||
| timestamp: 'last_edited_time', | ||
| last_edited_time: { on_or_after: since.toISOString() }, | ||
| }, | ||
| sorts: [{ timestamp: 'last_edited_time', direction: 'descending' }], | ||
| page_size: 100, | ||
| }); | ||
| // Group by day | ||
| const byDay = {}; | ||
| for (const page of result.results) { | ||
| const day = page.last_edited_time.split('T')[0]; | ||
| if (!byDay[day]) | ||
| byDay[day] = []; | ||
| byDay[day].push(page); | ||
| } | ||
| if (options.json) { | ||
| console.log(formatOutput({ days, since: since.toISOString(), byDay })); | ||
| return; | ||
| } | ||
| console.log(`📅 Activity timeline (last ${days} days)\n`); | ||
| // Generate all days | ||
| const allDays = []; | ||
| const current = new Date(since); | ||
| while (current <= new Date()) { | ||
| allDays.push(current.toISOString().split('T')[0]); | ||
| current.setDate(current.getDate() + 1); | ||
| } | ||
| for (const day of allDays.reverse()) { | ||
| const pages = byDay[day] || []; | ||
| const count = pages.length; | ||
| const bar = '█'.repeat(Math.min(count, 30)); | ||
| // Format day name | ||
| const date = new Date(day); | ||
| const dayName = date.toLocaleDateString('en-US', { weekday: 'short' }); | ||
| console.log(`${day} (${dayName}) ${String(count).padStart(3)} ${bar}`); | ||
| // Show top 3 items for the day | ||
| if (count > 0 && count <= 5) { | ||
| for (const page of pages) { | ||
| const title = Object.values(page.properties) | ||
| .find((p) => p.type === 'title'); | ||
| const name = title?.title?.map(t => t.plain_text).join('') || 'Untitled'; | ||
| console.log(` └─ ${name.slice(0, 40)}`); | ||
| } | ||
| } | ||
| console.log(`\nTotal: ${result.results.length} entries edited`); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| console.log(`\nTotal: ${result.results.length} entries edited`); | ||
| })); | ||
| } | ||
| //# sourceMappingURL=stats.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqEpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuR9D"} | ||
| {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuFpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6Q9D"} |
+117
-113
| import { getClient } from '../client.js'; | ||
| import { fetchAllBlocks } from '../utils/notion-helpers.js'; | ||
| import { getDatabaseSchema } from '../utils/database-resolver.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| import * as fs from 'fs'; | ||
@@ -7,2 +9,16 @@ import * as path from 'path'; | ||
| const TEMPLATES_DIR = path.join(os.homedir(), '.notion-cli', 'templates'); | ||
| /** | ||
| * Sanitize template name to prevent path traversal. | ||
| * Only allows alphanumeric, hyphens, underscores, and dots. | ||
| */ | ||
| function sanitizeTemplateName(name) { | ||
| const sanitized = path.basename(name).replace(/[^a-zA-Z0-9._-]/g, '-'); | ||
| if (!sanitized || sanitized === '.' || sanitized === '..') { | ||
| throw new Error(`Invalid template name: "${name}"`); | ||
| } | ||
| return sanitized; | ||
| } | ||
| function resolveTemplatePath(name) { | ||
| return path.join(TEMPLATES_DIR, `${sanitizeTemplateName(name)}.json`); | ||
| } | ||
| // Ensure templates directory exists | ||
@@ -91,41 +107,35 @@ function ensureTemplatesDir() { | ||
| .option('--overwrite', 'Overwrite if template exists') | ||
| .action(async (pageId, options) => { | ||
| try { | ||
| ensureTemplatesDir(); | ||
| const templatePath = path.join(TEMPLATES_DIR, `${options.name}.json`); | ||
| if (fs.existsSync(templatePath) && !options.overwrite) { | ||
| console.error(`Template "${options.name}" already exists. Use --overwrite to replace.`); | ||
| process.exit(1); | ||
| } | ||
| const client = getClient(); | ||
| console.log('Fetching page structure...'); | ||
| // Get page | ||
| const page = await client.get(`pages/${pageId}`); | ||
| // Get all blocks recursively | ||
| const blocks = await fetchBlocksRecursive(client, pageId); | ||
| console.log(`Found ${blocks.length} top-level blocks`); | ||
| // Clean blocks for storage | ||
| const cleanBlocks = cleanBlocksForTemplate(blocks); | ||
| // Save template | ||
| const templateData = { | ||
| name: options.name, | ||
| description: options.description || '', | ||
| sourcePageId: pageId, | ||
| createdAt: new Date().toISOString(), | ||
| blocks: cleanBlocks, | ||
| // Store property structure (but not values) for reference | ||
| propertyTypes: Object.fromEntries(Object.entries(page.properties).map(([name, prop]) => [ | ||
| name, | ||
| prop.type, | ||
| ])), | ||
| }; | ||
| fs.writeFileSync(templatePath, JSON.stringify(templateData, null, 2)); | ||
| console.log(`\n✅ Template saved: ${options.name}`); | ||
| console.log(` Location: ${templatePath}`); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| .action(withErrorHandler(async (pageId, options) => { | ||
| ensureTemplatesDir(); | ||
| const templatePath = resolveTemplatePath(options.name); | ||
| if (fs.existsSync(templatePath) && !options.overwrite) { | ||
| console.error(`Template "${options.name}" already exists. Use --overwrite to replace.`); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| const client = getClient(); | ||
| console.log('Fetching page structure...'); | ||
| // Get page | ||
| const page = await client.get(`pages/${pageId}`); | ||
| // Get all blocks recursively | ||
| const blocks = await fetchBlocksRecursive(client, pageId); | ||
| console.log(`Found ${blocks.length} top-level blocks`); | ||
| // Clean blocks for storage | ||
| const cleanBlocks = cleanBlocksForTemplate(blocks); | ||
| // Save template | ||
| const templateData = { | ||
| name: options.name, | ||
| description: options.description || '', | ||
| sourcePageId: pageId, | ||
| createdAt: new Date().toISOString(), | ||
| blocks: cleanBlocks, | ||
| // Store property structure (but not values) for reference | ||
| propertyTypes: Object.fromEntries(Object.entries(page.properties).map(([name, prop]) => [ | ||
| name, | ||
| prop.type, | ||
| ])), | ||
| }; | ||
| fs.writeFileSync(templatePath, JSON.stringify(templateData, null, 2)); | ||
| console.log(`\n✅ Template saved: ${options.name}`); | ||
| console.log(` Location: ${templatePath}`); | ||
| })); | ||
| // Use template | ||
@@ -139,28 +149,38 @@ template | ||
| .option('-p, --prop <key=value...>', 'Set property values') | ||
| .action(async (templateName, options) => { | ||
| try { | ||
| ensureTemplatesDir(); | ||
| const templatePath = path.join(TEMPLATES_DIR, `${templateName}.json`); | ||
| if (!fs.existsSync(templatePath)) { | ||
| console.error(`Template "${templateName}" not found.`); | ||
| console.log('\nAvailable templates:'); | ||
| const files = fs.readdirSync(TEMPLATES_DIR).filter(f => f.endsWith('.json')); | ||
| files.forEach(f => console.log(` - ${path.basename(f, '.json')}`)); | ||
| process.exit(1); | ||
| .action(withErrorHandler(async (templateName, options) => { | ||
| ensureTemplatesDir(); | ||
| const templatePath = resolveTemplatePath(templateName); | ||
| if (!fs.existsSync(templatePath)) { | ||
| console.error(`Template "${templateName}" not found.`); | ||
| console.log('\nAvailable templates:'); | ||
| const files = fs.readdirSync(TEMPLATES_DIR).filter(f => f.endsWith('.json')); | ||
| files.forEach(f => console.log(` - ${path.basename(f, '.json')}`)); | ||
| process.exit(1); | ||
| } | ||
| const template = JSON.parse(fs.readFileSync(templatePath, 'utf-8')); | ||
| const client = getClient(); | ||
| // Build parent | ||
| const parent = options.parentType === 'page' | ||
| ? { page_id: options.parent } | ||
| : { database_id: options.parent }; | ||
| // Build properties | ||
| const properties = {}; | ||
| // Set title if provided | ||
| if (options.title) { | ||
| // Try to find title property name from template or use 'Name' | ||
| let titleProp = 'Name'; | ||
| if (template.propertyTypes) { | ||
| for (const [name, type] of Object.entries(template.propertyTypes)) { | ||
| if (type === 'title') { | ||
| titleProp = name; | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| const template = JSON.parse(fs.readFileSync(templatePath, 'utf-8')); | ||
| const client = getClient(); | ||
| // Build parent | ||
| const parent = options.parentType === 'page' | ||
| ? { page_id: options.parent } | ||
| : { database_id: options.parent }; | ||
| // Build properties | ||
| const properties = {}; | ||
| // Set title if provided | ||
| if (options.title) { | ||
| // Try to find title property name from template or use 'Name' | ||
| let titleProp = 'Name'; | ||
| if (template.propertyTypes) { | ||
| for (const [name, type] of Object.entries(template.propertyTypes)) { | ||
| if (type === 'title') { | ||
| // If database, get actual title prop name | ||
| if (options.parentType === 'database') { | ||
| try { | ||
| const db = await getDatabaseSchema(client, options.parent); | ||
| for (const [name, prop] of Object.entries(db.properties)) { | ||
| if (prop.type === 'title') { | ||
| titleProp = name; | ||
@@ -171,56 +191,40 @@ break; | ||
| } | ||
| // If database, get actual title prop name | ||
| if (options.parentType === 'database') { | ||
| try { | ||
| const db = await client.get(`databases/${options.parent}`); | ||
| for (const [name, prop] of Object.entries(db.properties)) { | ||
| if (prop.type === 'title') { | ||
| titleProp = name; | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| catch { | ||
| // Use default | ||
| } | ||
| catch { | ||
| // Use default | ||
| } | ||
| properties[titleProp] = { | ||
| title: [{ text: { content: options.title } }], | ||
| }; | ||
| } | ||
| // Add custom properties | ||
| if (options.prop) { | ||
| for (const propStr of options.prop) { | ||
| const [key, ...valueParts] = propStr.split('='); | ||
| const value = valueParts.join('='); | ||
| // Simple property setting - could be enhanced | ||
| properties[key] = { rich_text: [{ text: { content: value } }] }; | ||
| } | ||
| } | ||
| // Prepare blocks (remove children for initial creation, we'll add them after) | ||
| const prepareBlocks = (blocks) => { | ||
| return blocks.map(block => { | ||
| const { children, ...rest } = block; | ||
| return rest; | ||
| }).slice(0, 100); // Notion limit | ||
| properties[titleProp] = { | ||
| title: [{ text: { content: options.title } }], | ||
| }; | ||
| console.log('Creating page from template...'); | ||
| // Create page with first batch of blocks | ||
| const pageData = { | ||
| parent, | ||
| properties, | ||
| children: prepareBlocks(template.blocks), | ||
| }; | ||
| const page = await client.post('pages', pageData); | ||
| console.log(`\n✅ Page created from template "${templateName}"`); | ||
| console.log(` ID: ${page.id}`); | ||
| console.log(` URL: ${page.url}`); | ||
| // Note: Nested blocks would need additional API calls to add children | ||
| // This is left as a future enhancement | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| // Add custom properties | ||
| if (options.prop) { | ||
| for (const propStr of options.prop) { | ||
| const [key, ...valueParts] = propStr.split('='); | ||
| const value = valueParts.join('='); | ||
| // Simple property setting - could be enhanced | ||
| properties[key] = { rich_text: [{ text: { content: value } }] }; | ||
| } | ||
| } | ||
| }); | ||
| // Prepare blocks (remove children for initial creation, we'll add them after) | ||
| const prepareBlocks = (blocks) => { | ||
| return blocks.map(block => { | ||
| const { children, ...rest } = block; | ||
| return rest; | ||
| }).slice(0, 100); // Notion limit | ||
| }; | ||
| console.log('Creating page from template...'); | ||
| // Create page with first batch of blocks | ||
| const pageData = { | ||
| parent, | ||
| properties, | ||
| children: prepareBlocks(template.blocks), | ||
| }; | ||
| const page = await client.post('pages', pageData); | ||
| console.log(`\n✅ Page created from template "${templateName}"`); | ||
| console.log(` ID: ${page.id}`); | ||
| console.log(` URL: ${page.url}`); | ||
| // Note: Nested blocks would need additional API calls to add children | ||
| // This is left as a future enhancement | ||
| })); | ||
| // Delete template | ||
@@ -233,3 +237,3 @@ template | ||
| ensureTemplatesDir(); | ||
| const templatePath = path.join(TEMPLATES_DIR, `${templateName}.json`); | ||
| const templatePath = resolveTemplatePath(templateName); | ||
| if (!fs.existsSync(templatePath)) { | ||
@@ -249,3 +253,3 @@ console.error(`Template "${templateName}" not found.`); | ||
| ensureTemplatesDir(); | ||
| const templatePath = path.join(TEMPLATES_DIR, `${templateName}.json`); | ||
| const templatePath = resolveTemplatePath(templateName); | ||
| if (!fs.existsSync(templatePath)) { | ||
@@ -252,0 +256,0 @@ console.error(`Template "${templateName}" not found.`); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/commands/users.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8G3D"} | ||
| {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/commands/users.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyF3D"} |
+54
-72
| import { getClient } from '../client.js'; | ||
| import { formatOutput } from '../utils/format.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| export function registerUsersCommand(program) { | ||
@@ -13,24 +14,18 @@ const users = program | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const user = await client.get('users/me'); | ||
| if (options.json) { | ||
| console.log(formatOutput(user)); | ||
| .action(withErrorHandler(async (options) => { | ||
| const client = getClient(); | ||
| const user = await client.get('users/me'); | ||
| if (options.json) { | ||
| console.log(formatOutput(user)); | ||
| } | ||
| else { | ||
| console.log('🤖 Current User (Integration)'); | ||
| console.log(`Name: ${user.name || 'Unknown'}`); | ||
| console.log(`ID: ${user.id}`); | ||
| console.log(`Type: ${user.type}`); | ||
| if (user.bot?.owner.workspace) { | ||
| console.log('Owner: Workspace'); | ||
| } | ||
| else { | ||
| console.log('🤖 Current User (Integration)'); | ||
| console.log(`Name: ${user.name || 'Unknown'}`); | ||
| console.log(`ID: ${user.id}`); | ||
| console.log(`Type: ${user.type}`); | ||
| if (user.bot?.owner.workspace) { | ||
| console.log('Owner: Workspace'); | ||
| } | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| })); | ||
| // List users | ||
@@ -43,35 +38,28 @@ users | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const query = {}; | ||
| if (options.limit) | ||
| query.page_size = parseInt(options.limit, 10); | ||
| if (options.cursor) | ||
| query.start_cursor = options.cursor; | ||
| const result = await client.get('users', query); | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| return; | ||
| .action(withErrorHandler(async (options) => { | ||
| const client = getClient(); | ||
| const query = {}; | ||
| if (options.limit) | ||
| query.page_size = parseInt(options.limit, 10); | ||
| if (options.cursor) | ||
| query.start_cursor = options.cursor; | ||
| const result = await client.get('users', query); | ||
| if (options.json) { | ||
| console.log(formatOutput(result)); | ||
| return; | ||
| } | ||
| for (const user of result.results) { | ||
| const icon = user.type === 'person' ? '👤' : '🤖'; | ||
| console.log(`${icon} ${user.name || 'Unknown'}`); | ||
| console.log(` ID: ${user.id}`); | ||
| console.log(` Type: ${user.type}`); | ||
| if (user.person?.email) { | ||
| console.log(` Email: ${user.person.email}`); | ||
| } | ||
| const typedResult = result; | ||
| for (const user of typedResult.results) { | ||
| const icon = user.type === 'person' ? '👤' : '🤖'; | ||
| console.log(`${icon} ${user.name || 'Unknown'}`); | ||
| console.log(` ID: ${user.id}`); | ||
| console.log(` Type: ${user.type}`); | ||
| if (user.person?.email) { | ||
| console.log(` Email: ${user.person.email}`); | ||
| } | ||
| console.log(''); | ||
| } | ||
| if (typedResult.has_more) { | ||
| console.log(`More results available. Use --cursor ${typedResult.next_cursor}`); | ||
| } | ||
| console.log(''); | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| if (result.has_more) { | ||
| console.log(`More results available. Use --cursor ${result.next_cursor}`); | ||
| } | ||
| }); | ||
| })); | ||
| // Get user | ||
@@ -82,28 +70,22 @@ users | ||
| .option('-j, --json', 'Output raw JSON') | ||
| .action(async (userId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const user = await client.get(`users/${userId}`); | ||
| if (options.json) { | ||
| console.log(formatOutput(user)); | ||
| .action(withErrorHandler(async (userId, options) => { | ||
| const client = getClient(); | ||
| const user = await client.get(`users/${userId}`); | ||
| if (options.json) { | ||
| console.log(formatOutput(user)); | ||
| } | ||
| else { | ||
| const icon = user.type === 'person' ? '👤' : '🤖'; | ||
| console.log(`${icon} ${user.name || 'Unknown'}`); | ||
| console.log(`ID: ${user.id}`); | ||
| console.log(`Type: ${user.type}`); | ||
| if (user.person?.email) { | ||
| console.log(`Email: ${user.person.email}`); | ||
| } | ||
| else { | ||
| const icon = user.type === 'person' ? '👤' : '🤖'; | ||
| console.log(`${icon} ${user.name || 'Unknown'}`); | ||
| console.log(`ID: ${user.id}`); | ||
| console.log(`Type: ${user.type}`); | ||
| if (user.person?.email) { | ||
| console.log(`Email: ${user.person.email}`); | ||
| } | ||
| if (user.avatar_url) { | ||
| console.log(`Avatar: ${user.avatar_url}`); | ||
| } | ||
| if (user.avatar_url) { | ||
| console.log(`Avatar: ${user.avatar_url}`); | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| })); | ||
| } | ||
| //# sourceMappingURL=users.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/commands/users.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/commands/users.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuDpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0d9D"} | ||
| {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoDpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoc9D"} |
+331
-347
| import { getClient } from '../client.js'; | ||
| import { getDatabaseSchema, queryDatabase, queryAllPages } from '../utils/database-resolver.js'; | ||
| import { formatOutput } from '../utils/format.js'; | ||
| import { getPageTitle } from '../utils/notion-helpers.js'; | ||
| function getPropertyValue(prop) { | ||
| const type = prop.type; | ||
| return prop[type]; | ||
| } | ||
| import { getPageTitle, getDbTitle } from '../utils/notion-helpers.js'; | ||
| import { withErrorHandler } from '../utils/command-handler.js'; | ||
| function isPropertyEmpty(prop) { | ||
@@ -54,196 +52,183 @@ const type = prop.type; | ||
| .option('--fix', 'Show fix suggestions') | ||
| .action(async (databaseId, options) => { | ||
| try { | ||
| const client = getClient(); | ||
| const issues = []; | ||
| // Get database schema | ||
| const db = await client.get(`databases/${databaseId}`); | ||
| const dbTitle = db.title?.map(t => t.plain_text).join('') || 'Untitled'; | ||
| console.log(`🔍 Validating database: ${dbTitle}\n`); | ||
| // Determine required properties | ||
| const requiredProps = options.required | ||
| ? options.required.split(',').map((p) => p.trim()) | ||
| : []; | ||
| // Find status and date properties | ||
| let statusProp = ''; | ||
| let dateProp = ''; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'status') | ||
| statusProp = name; | ||
| if (schema.type === 'date' && name.toLowerCase().includes('deadline')) { | ||
| dateProp = name; | ||
| } | ||
| .action(withErrorHandler(async (databaseId, options) => { | ||
| const client = getClient(); | ||
| const issues = []; | ||
| // Get database schema | ||
| const db = await getDatabaseSchema(client, databaseId); | ||
| const dbTitle = getDbTitle(db); | ||
| console.log(`🔍 Validating database: ${dbTitle}\n`); | ||
| // Determine required properties | ||
| const requiredProps = options.required | ||
| ? options.required.split(',').map((p) => p.trim()) | ||
| : []; | ||
| // Find status and date properties | ||
| let statusProp = ''; | ||
| let dateProp = ''; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'status') | ||
| statusProp = name; | ||
| if (schema.type === 'date' && name.toLowerCase().includes('deadline')) { | ||
| dateProp = name; | ||
| } | ||
| // Query all entries | ||
| const entries = []; | ||
| let cursor; | ||
| do { | ||
| const body = { page_size: 100 }; | ||
| if (cursor) | ||
| body.start_cursor = cursor; | ||
| const result = await client.post(`databases/${databaseId}/query`, body); | ||
| entries.push(...result.results); | ||
| cursor = result.has_more ? result.next_cursor : undefined; | ||
| process.stdout.write(`\rFetching: ${entries.length} entries...`); | ||
| } while (cursor); | ||
| console.log(`\rAnalyzing ${entries.length} entries... \n`); | ||
| const now = new Date(); | ||
| const staleThreshold = options.checkStale | ||
| ? new Date(now.getTime() - parseInt(options.checkStale, 10) * 24 * 60 * 60 * 1000) | ||
| : null; | ||
| // Validate each entry | ||
| for (const entry of entries) { | ||
| const title = getPageTitle(entry); | ||
| // Check for empty title | ||
| const titleProp = Object.entries(entry.properties) | ||
| .find(([, p]) => p.type === 'title'); | ||
| if (titleProp && isPropertyEmpty(titleProp[1])) { | ||
| } | ||
| // Query all entries | ||
| const entries = await queryAllPages(client, databaseId, { | ||
| pageSize: 100, | ||
| onProgress: (fetched) => process.stdout.write(`\rFetching: ${fetched} entries...`), | ||
| }); | ||
| console.log(`\rAnalyzing ${entries.length} entries... \n`); | ||
| const now = new Date(); | ||
| const staleThreshold = options.checkStale | ||
| ? new Date(now.getTime() - parseInt(options.checkStale, 10) * 24 * 60 * 60 * 1000) | ||
| : null; | ||
| // Validate each entry | ||
| for (const entry of entries) { | ||
| const title = getPageTitle(entry); | ||
| // Check for empty title | ||
| const titleProp = Object.entries(entry.properties) | ||
| .find(([, p]) => p.type === 'title'); | ||
| if (titleProp && isPropertyEmpty(titleProp[1])) { | ||
| issues.push({ | ||
| severity: 'error', | ||
| type: 'empty_title', | ||
| message: 'Entry has no title', | ||
| pageId: entry.id, | ||
| pageTitle: '(untitled)', | ||
| }); | ||
| } | ||
| // Check required properties | ||
| for (const propName of requiredProps) { | ||
| const prop = entry.properties[propName]; | ||
| if (!prop || isPropertyEmpty(prop)) { | ||
| issues.push({ | ||
| severity: 'error', | ||
| type: 'empty_title', | ||
| message: 'Entry has no title', | ||
| severity: 'warning', | ||
| type: 'missing_required', | ||
| message: `Missing required property: ${propName}`, | ||
| pageId: entry.id, | ||
| pageTitle: '(untitled)', | ||
| pageTitle: title, | ||
| property: propName, | ||
| }); | ||
| } | ||
| // Check required properties | ||
| for (const propName of requiredProps) { | ||
| const prop = entry.properties[propName]; | ||
| if (!prop || isPropertyEmpty(prop)) { | ||
| } | ||
| // Check for overdue items | ||
| if (options.checkDates && dateProp && statusProp) { | ||
| const dateValue = entry.properties[dateProp]; | ||
| const statusValue = entry.properties[statusProp]; | ||
| if (dateValue?.date?.start && statusValue?.status?.name) { | ||
| const deadline = new Date(dateValue.date.start); | ||
| const status = statusValue.status.name.toLowerCase(); | ||
| // Not completed and past deadline | ||
| if (deadline < now && !['hecho', 'done', 'completed', 'archivado'].some(s => status.includes(s))) { | ||
| issues.push({ | ||
| severity: 'warning', | ||
| type: 'missing_required', | ||
| message: `Missing required property: ${propName}`, | ||
| type: 'overdue', | ||
| message: `Overdue: deadline was ${dateValue.date.start}`, | ||
| pageId: entry.id, | ||
| pageTitle: title, | ||
| property: propName, | ||
| suggestion: `notion page update ${entry.id} --prop "${statusProp}=Archivado"`, | ||
| }); | ||
| } | ||
| } | ||
| // Check for overdue items | ||
| if (options.checkDates && dateProp && statusProp) { | ||
| const dateValue = entry.properties[dateProp]; | ||
| const statusValue = entry.properties[statusProp]; | ||
| if (dateValue?.date?.start && statusValue?.status?.name) { | ||
| const deadline = new Date(dateValue.date.start); | ||
| const status = statusValue.status.name.toLowerCase(); | ||
| // Not completed and past deadline | ||
| if (deadline < now && !['hecho', 'done', 'completed', 'archivado'].some(s => status.includes(s))) { | ||
| issues.push({ | ||
| severity: 'warning', | ||
| type: 'overdue', | ||
| message: `Overdue: deadline was ${dateValue.date.start}`, | ||
| pageId: entry.id, | ||
| pageTitle: title, | ||
| suggestion: `notion page update ${entry.id} --prop "${statusProp}=Archivado"`, | ||
| }); | ||
| } | ||
| } | ||
| } | ||
| // Check for stale items | ||
| if (staleThreshold) { | ||
| const lastEdited = new Date(entry.last_edited_time); | ||
| const statusValue = entry.properties[statusProp]; | ||
| const status = statusValue?.status?.name?.toLowerCase() || ''; | ||
| // In progress but not updated | ||
| if (lastEdited < staleThreshold && | ||
| ['en marcha', 'in progress', 'doing'].some(s => status.includes(s))) { | ||
| const daysSince = Math.floor((now.getTime() - lastEdited.getTime()) / (1000 * 60 * 60 * 24)); | ||
| issues.push({ | ||
| severity: 'info', | ||
| type: 'stale', | ||
| message: `Not updated in ${daysSince} days (status: ${statusValue?.status?.name})`, | ||
| pageId: entry.id, | ||
| pageTitle: title, | ||
| }); | ||
| } | ||
| // Check for stale items | ||
| if (staleThreshold) { | ||
| const lastEdited = new Date(entry.last_edited_time); | ||
| const statusValue = entry.properties[statusProp]; | ||
| const status = statusValue?.status?.name?.toLowerCase() || ''; | ||
| // In progress but not updated | ||
| if (lastEdited < staleThreshold && | ||
| ['en marcha', 'in progress', 'doing'].some(s => status.includes(s))) { | ||
| const daysSince = Math.floor((now.getTime() - lastEdited.getTime()) / (1000 * 60 * 60 * 24)); | ||
| issues.push({ | ||
| severity: 'info', | ||
| type: 'stale', | ||
| message: `Not updated in ${daysSince} days (status: ${statusValue?.status?.name})`, | ||
| pageId: entry.id, | ||
| pageTitle: title, | ||
| }); | ||
| } | ||
| } | ||
| } | ||
| // Output results | ||
| if (options.json) { | ||
| console.log(formatOutput({ | ||
| database: dbTitle, | ||
| totalEntries: entries.length, | ||
| issues, | ||
| summary: { | ||
| errors: issues.filter(i => i.severity === 'error').length, | ||
| warnings: issues.filter(i => i.severity === 'warning').length, | ||
| info: issues.filter(i => i.severity === 'info').length, | ||
| }, | ||
| })); | ||
| return; | ||
| } | ||
| // Group by type | ||
| const byType = {}; | ||
| for (const issue of issues) { | ||
| if (!byType[issue.type]) | ||
| byType[issue.type] = []; | ||
| byType[issue.type].push(issue); | ||
| } | ||
| if (issues.length === 0) { | ||
| console.log('✅ No issues found!\n'); | ||
| } | ||
| else { | ||
| const errors = issues.filter(i => i.severity === 'error').length; | ||
| const warnings = issues.filter(i => i.severity === 'warning').length; | ||
| const infos = issues.filter(i => i.severity === 'info').length; | ||
| console.log(`Found ${issues.length} issues: ${errors} errors, ${warnings} warnings, ${infos} info\n`); | ||
| for (const [type, typeIssues] of Object.entries(byType)) { | ||
| const icon = typeIssues[0].severity === 'error' ? '❌' : | ||
| typeIssues[0].severity === 'warning' ? '⚠️' : 'ℹ️'; | ||
| console.log(`${icon} ${type.replace(/_/g, ' ').toUpperCase()} (${typeIssues.length})`); | ||
| // Show first 5 | ||
| for (const issue of typeIssues.slice(0, 5)) { | ||
| console.log(` - ${issue.pageTitle}: ${issue.message}`); | ||
| if (options.fix && issue.suggestion) { | ||
| console.log(` Fix: ${issue.suggestion}`); | ||
| } | ||
| } | ||
| // Output results | ||
| if (options.json) { | ||
| console.log(formatOutput({ | ||
| database: dbTitle, | ||
| totalEntries: entries.length, | ||
| issues, | ||
| summary: { | ||
| errors: issues.filter(i => i.severity === 'error').length, | ||
| warnings: issues.filter(i => i.severity === 'warning').length, | ||
| info: issues.filter(i => i.severity === 'info').length, | ||
| }, | ||
| })); | ||
| return; | ||
| } | ||
| // Group by type | ||
| const byType = {}; | ||
| for (const issue of issues) { | ||
| if (!byType[issue.type]) | ||
| byType[issue.type] = []; | ||
| byType[issue.type].push(issue); | ||
| } | ||
| if (issues.length === 0) { | ||
| console.log('✅ No issues found!\n'); | ||
| } | ||
| else { | ||
| const errors = issues.filter(i => i.severity === 'error').length; | ||
| const warnings = issues.filter(i => i.severity === 'warning').length; | ||
| const infos = issues.filter(i => i.severity === 'info').length; | ||
| console.log(`Found ${issues.length} issues: ${errors} errors, ${warnings} warnings, ${infos} info\n`); | ||
| for (const [type, typeIssues] of Object.entries(byType)) { | ||
| const icon = typeIssues[0].severity === 'error' ? '❌' : | ||
| typeIssues[0].severity === 'warning' ? '⚠️' : 'ℹ️'; | ||
| console.log(`${icon} ${type.replace(/_/g, ' ').toUpperCase()} (${typeIssues.length})`); | ||
| // Show first 5 | ||
| for (const issue of typeIssues.slice(0, 5)) { | ||
| console.log(` - ${issue.pageTitle}: ${issue.message}`); | ||
| if (options.fix && issue.suggestion) { | ||
| console.log(` Fix: ${issue.suggestion}`); | ||
| } | ||
| if (typeIssues.length > 5) { | ||
| console.log(` ... and ${typeIssues.length - 5} more`); | ||
| } | ||
| console.log(''); | ||
| } | ||
| if (typeIssues.length > 5) { | ||
| console.log(` ... and ${typeIssues.length - 5} more`); | ||
| } | ||
| console.log(''); | ||
| } | ||
| // Health score with weighted factors | ||
| const totalEntries = entries.length || 1; | ||
| const errorRate = issues.filter(i => i.severity === 'error').length / totalEntries; | ||
| const warningRate = issues.filter(i => i.severity === 'warning').length / totalEntries; | ||
| const overdueRate = issues.filter(i => i.type === 'overdue').length / totalEntries; | ||
| const staleRate = issues.filter(i => i.type === 'stale').length / totalEntries; | ||
| // Property fill rates | ||
| let totalFillRate = 0; | ||
| let propCount = 0; | ||
| for (const [propName] of Object.entries(db.properties)) { | ||
| let filled = 0; | ||
| for (const entry of entries) { | ||
| const prop = entry.properties[propName]; | ||
| if (prop && !isPropertyEmpty(prop)) { | ||
| filled++; | ||
| } | ||
| } | ||
| // Health score with weighted factors | ||
| const totalEntries = entries.length || 1; | ||
| const errorRate = issues.filter(i => i.severity === 'error').length / totalEntries; | ||
| const warningRate = issues.filter(i => i.severity === 'warning').length / totalEntries; | ||
| const overdueRate = issues.filter(i => i.type === 'overdue').length / totalEntries; | ||
| const staleRate = issues.filter(i => i.type === 'stale').length / totalEntries; | ||
| // Property fill rates | ||
| let totalFillRate = 0; | ||
| let propCount = 0; | ||
| for (const [propName] of Object.entries(db.properties)) { | ||
| let filled = 0; | ||
| for (const entry of entries) { | ||
| const prop = entry.properties[propName]; | ||
| if (prop && !isPropertyEmpty(prop)) { | ||
| filled++; | ||
| } | ||
| totalFillRate += filled / totalEntries; | ||
| propCount++; | ||
| } | ||
| const avgFillRate = propCount > 0 ? totalFillRate / propCount : 1; | ||
| // Weighted score: fill rate 30%, errors 30%, warnings 20%, timeliness 20% | ||
| const fillScore = avgFillRate * 100; | ||
| const errorScore = Math.max(0, 100 - errorRate * 500); | ||
| const warningScore = Math.max(0, 100 - warningRate * 200); | ||
| const timelinessScore = Math.max(0, 100 - (overdueRate + staleRate) * 300); | ||
| const healthScore = Math.round(fillScore * 0.3 + errorScore * 0.3 + warningScore * 0.2 + timelinessScore * 0.2); | ||
| const emoji = healthScore >= 80 ? '🟢' : healthScore >= 50 ? '🟡' : '🔴'; | ||
| console.log(`\n${'═'.repeat(40)}`); | ||
| console.log(`📊 Health Score: ${healthScore}/100 ${emoji}`); | ||
| console.log(`${'═'.repeat(40)}`); | ||
| console.log(` Fill rate: ${Math.round(fillScore)}/100 (weight: 30%)`); | ||
| console.log(` Errors: ${Math.round(errorScore)}/100 (weight: 30%)`); | ||
| console.log(` Warnings: ${Math.round(warningScore)}/100 (weight: 20%)`); | ||
| console.log(` Timeliness: ${Math.round(timelinessScore)}/100 (weight: 20%)`); | ||
| totalFillRate += filled / totalEntries; | ||
| propCount++; | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| const avgFillRate = propCount > 0 ? totalFillRate / propCount : 1; | ||
| // Weighted score: fill rate 30%, errors 30%, warnings 20%, timeliness 20% | ||
| const fillScore = avgFillRate * 100; | ||
| const errorScore = Math.max(0, 100 - errorRate * 500); | ||
| const warningScore = Math.max(0, 100 - warningRate * 200); | ||
| const timelinessScore = Math.max(0, 100 - (overdueRate + staleRate) * 300); | ||
| const healthScore = Math.round(fillScore * 0.3 + errorScore * 0.3 + warningScore * 0.2 + timelinessScore * 0.2); | ||
| const emoji = healthScore >= 80 ? '🟢' : healthScore >= 50 ? '🟡' : '🔴'; | ||
| console.log(`\n${'═'.repeat(40)}`); | ||
| console.log(`📊 Health Score: ${healthScore}/100 ${emoji}`); | ||
| console.log(`${'═'.repeat(40)}`); | ||
| console.log(` Fill rate: ${Math.round(fillScore)}/100 (weight: 30%)`); | ||
| console.log(` Errors: ${Math.round(errorScore)}/100 (weight: 30%)`); | ||
| console.log(` Warnings: ${Math.round(warningScore)}/100 (weight: 20%)`); | ||
| console.log(` Timeliness: ${Math.round(timelinessScore)}/100 (weight: 20%)`); | ||
| })); | ||
| // Quick lint | ||
@@ -253,99 +238,91 @@ validate | ||
| .description('Quick lint check for common issues') | ||
| .action(async (databaseId) => { | ||
| try { | ||
| const client = getClient(); | ||
| // Get database | ||
| const db = await client.get(`databases/${databaseId}`); | ||
| const dbTitle = db.title?.map(t => t.plain_text).join('') || 'Untitled'; | ||
| console.log(`🔍 Linting: ${dbTitle}\n`); | ||
| // Quick queries for common issues | ||
| const checks = []; | ||
| // Find properties | ||
| let titleProp = ''; | ||
| let statusProp = ''; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'title') | ||
| titleProp = name; | ||
| if (schema.type === 'status') | ||
| statusProp = name; | ||
| } | ||
| // Check for entries without title | ||
| if (titleProp) { | ||
| .action(withErrorHandler(async (databaseId) => { | ||
| const client = getClient(); | ||
| // Get database | ||
| const db = await getDatabaseSchema(client, databaseId); | ||
| const dbTitle = getDbTitle(db); | ||
| console.log(`🔍 Linting: ${dbTitle}\n`); | ||
| // Quick queries for common issues | ||
| const checks = []; | ||
| // Find properties | ||
| let titleProp = ''; | ||
| let statusProp = ''; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'title') | ||
| titleProp = name; | ||
| if (schema.type === 'status') | ||
| statusProp = name; | ||
| } | ||
| // Check for entries without title | ||
| if (titleProp) { | ||
| checks.push({ | ||
| name: 'Empty titles', | ||
| filter: { property: titleProp, title: { is_empty: true } }, | ||
| severity: 'error', | ||
| }); | ||
| } | ||
| // Check for old "in progress" items | ||
| if (statusProp) { | ||
| const statusData = db.properties[statusProp].status; | ||
| const inProgressStatus = statusData?.options?.find(o => o.name.toLowerCase().includes('marcha') || o.name.toLowerCase().includes('progress')); | ||
| if (inProgressStatus) { | ||
| const thirtyDaysAgo = new Date(); | ||
| thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30); | ||
| checks.push({ | ||
| name: 'Empty titles', | ||
| filter: { property: titleProp, title: { is_empty: true } }, | ||
| severity: 'error', | ||
| name: `"${inProgressStatus.name}" for >30 days`, | ||
| filter: { | ||
| and: [ | ||
| { property: statusProp, status: { equals: inProgressStatus.name } }, | ||
| { timestamp: 'last_edited_time', last_edited_time: { before: thirtyDaysAgo.toISOString() } }, | ||
| ], | ||
| }, | ||
| severity: 'warning', | ||
| }); | ||
| } | ||
| // Check for old "in progress" items | ||
| if (statusProp) { | ||
| const statusData = db.properties[statusProp].status; | ||
| const inProgressStatus = statusData?.options?.find(o => o.name.toLowerCase().includes('marcha') || o.name.toLowerCase().includes('progress')); | ||
| if (inProgressStatus) { | ||
| const thirtyDaysAgo = new Date(); | ||
| thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30); | ||
| checks.push({ | ||
| name: `"${inProgressStatus.name}" for >30 days`, | ||
| filter: { | ||
| and: [ | ||
| { property: statusProp, status: { equals: inProgressStatus.name } }, | ||
| { timestamp: 'last_edited_time', last_edited_time: { before: thirtyDaysAgo.toISOString() } }, | ||
| ], | ||
| }, | ||
| severity: 'warning', | ||
| }); | ||
| } | ||
| // Run filter-based checks | ||
| let totalIssues = 0; | ||
| for (const check of checks) { | ||
| try { | ||
| const countResult = await queryDatabase(client, databaseId, { | ||
| filter: check.filter, | ||
| page_size: 100, | ||
| }); | ||
| const count = countResult.results.length; | ||
| if (count > 0) { | ||
| const icon = check.severity === 'error' ? '❌' : '⚠️'; | ||
| console.log(`${icon} ${check.name}: ${count} found`); | ||
| totalIssues += count; | ||
| } | ||
| } | ||
| // Run filter-based checks | ||
| let totalIssues = 0; | ||
| for (const check of checks) { | ||
| try { | ||
| const countResult = await client.post(`databases/${databaseId}/query`, { | ||
| filter: check.filter, | ||
| page_size: 100, | ||
| }); | ||
| const count = countResult.results.length; | ||
| if (count > 0) { | ||
| const icon = check.severity === 'error' ? '❌' : '⚠️'; | ||
| console.log(`${icon} ${check.name}: ${count} found`); | ||
| totalIssues += count; | ||
| } | ||
| else { | ||
| console.log(`✅ ${check.name}: OK`); | ||
| } | ||
| else { | ||
| console.log(`✅ ${check.name}: OK`); | ||
| } | ||
| catch { | ||
| console.log(`⏭️ ${check.name}: skipped (filter not supported)`); | ||
| } | ||
| } | ||
| // Check for duplicate titles (requires fetching entries) | ||
| const allEntries = await client.post(`databases/${databaseId}/query`, { | ||
| page_size: 100, | ||
| }); | ||
| const titleCounts = new Map(); | ||
| for (const entry of allEntries.results) { | ||
| const title = getPageTitle(entry).toLowerCase().trim(); | ||
| if (title && title !== 'untitled') { | ||
| titleCounts.set(title, (titleCounts.get(title) || 0) + 1); | ||
| } | ||
| catch { | ||
| console.log(`⏭️ ${check.name}: skipped (filter not supported)`); | ||
| } | ||
| const duplicates = [...titleCounts.entries()].filter(([, count]) => count > 1); | ||
| if (duplicates.length > 0) { | ||
| const dupeCount = duplicates.reduce((sum, [, count]) => sum + count, 0); | ||
| console.log(`⚠️ Duplicate titles: ${duplicates.length} titles repeated (${dupeCount} entries)`); | ||
| for (const [title, count] of duplicates.slice(0, 3)) { | ||
| console.log(` "${title}" appears ${count} times`); | ||
| } | ||
| totalIssues += dupeCount; | ||
| } | ||
| // Check for duplicate titles (fetch all entries for accuracy) | ||
| const allPages = await queryAllPages(client, databaseId); | ||
| const titleCounts = new Map(); | ||
| for (const entry of allPages) { | ||
| const title = getPageTitle(entry).toLowerCase().trim(); | ||
| if (title && title !== 'untitled') { | ||
| titleCounts.set(title, (titleCounts.get(title) || 0) + 1); | ||
| } | ||
| else { | ||
| console.log('✅ Duplicate titles: OK'); | ||
| } | ||
| const duplicates = [...titleCounts.entries()].filter(([, count]) => count > 1); | ||
| if (duplicates.length > 0) { | ||
| const dupeCount = duplicates.reduce((sum, [, count]) => sum + count, 0); | ||
| console.log(`⚠️ Duplicate titles: ${duplicates.length} titles repeated (${dupeCount} entries)`); | ||
| for (const [title, count] of duplicates.slice(0, 3)) { | ||
| console.log(` "${title}" appears ${count} times`); | ||
| } | ||
| console.log(`\nTotal issues: ${totalIssues}`); | ||
| totalIssues += dupeCount; | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| else { | ||
| console.log('✅ Duplicate titles: OK'); | ||
| } | ||
| }); | ||
| console.log(`\nTotal issues: ${totalIssues}`); | ||
| })); | ||
| // Health check | ||
@@ -355,93 +332,100 @@ validate | ||
| .description('Get a health score for the database') | ||
| .action(async (databaseId) => { | ||
| try { | ||
| const client = getClient(); | ||
| const db = await client.get(`databases/${databaseId}`); | ||
| const dbTitle = db.title?.map(t => t.plain_text).join('') || 'Untitled'; | ||
| // Query recent entries | ||
| const result = await client.post(`databases/${databaseId}/query`, { | ||
| page_size: 100, | ||
| sorts: [{ timestamp: 'last_edited_time', direction: 'descending' }], | ||
| }); | ||
| const entries = result.results; | ||
| // Calculate metrics | ||
| const now = new Date(); | ||
| const recentlyEdited = entries.filter(e => { | ||
| const edited = new Date(e.last_edited_time); | ||
| const daysSince = (now.getTime() - edited.getTime()) / (1000 * 60 * 60 * 24); | ||
| return daysSince <= 7; | ||
| .action(withErrorHandler(async (databaseId) => { | ||
| const client = getClient(); | ||
| const db = await getDatabaseSchema(client, databaseId); | ||
| const dbTitle = getDbTitle(db); | ||
| // Fetch all entries for accurate health scoring | ||
| const entries = await queryAllPages(client, databaseId, { | ||
| sorts: [{ timestamp: 'last_edited_time', direction: 'descending' }], | ||
| onProgress: (n) => process.stdout.write(`\rFetching entries: ${n}...`), | ||
| }); | ||
| if (entries.length > 0) | ||
| process.stdout.write('\r'); | ||
| // Calculate metrics | ||
| const now = new Date(); | ||
| const recentlyEdited = entries.filter(e => { | ||
| const edited = new Date(e.last_edited_time); | ||
| const daysSince = (now.getTime() - edited.getTime()) / (1000 * 60 * 60 * 24); | ||
| return daysSince <= 7; | ||
| }).length; | ||
| let completionRate = 0; | ||
| let statusProp = ''; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'status') { | ||
| statusProp = name; | ||
| break; | ||
| } | ||
| } | ||
| if (statusProp) { | ||
| const completed = entries.filter(e => { | ||
| const status = e.properties[statusProp]; | ||
| const name = status?.status?.name?.toLowerCase() || ''; | ||
| return ['hecho', 'done', 'completed'].some(s => name.includes(s)); | ||
| }).length; | ||
| let completionRate = 0; | ||
| let statusProp = ''; | ||
| for (const [name, schema] of Object.entries(db.properties)) { | ||
| if (schema.type === 'status') { | ||
| statusProp = name; | ||
| break; | ||
| completionRate = entries.length > 0 ? Math.round((completed / entries.length) * 100) : 0; | ||
| } | ||
| // Property fill rates | ||
| const fillRates = {}; | ||
| for (const [propName] of Object.entries(db.properties)) { | ||
| let filled = 0; | ||
| for (const entry of entries) { | ||
| const prop = entry.properties[propName]; | ||
| if (prop && !isPropertyEmpty(prop)) { | ||
| filled++; | ||
| } | ||
| } | ||
| if (statusProp) { | ||
| const completed = entries.filter(e => { | ||
| const status = e.properties[statusProp]; | ||
| const name = status?.status?.name?.toLowerCase() || ''; | ||
| return ['hecho', 'done', 'completed'].some(s => name.includes(s)); | ||
| }).length; | ||
| completionRate = entries.length > 0 ? Math.round((completed / entries.length) * 100) : 0; | ||
| } | ||
| // Property fill rates | ||
| const fillRates = {}; | ||
| for (const [propName] of Object.entries(db.properties)) { | ||
| let filled = 0; | ||
| for (const entry of entries) { | ||
| const prop = entry.properties[propName]; | ||
| if (prop && !isPropertyEmpty(prop)) { | ||
| filled++; | ||
| } | ||
| } | ||
| fillRates[propName] = entries.length > 0 ? Math.round((filled / entries.length) * 100) : 0; | ||
| } | ||
| // Calculate health score | ||
| const activityScore = Math.min(100, (recentlyEdited / entries.length) * 100 * 2); | ||
| const avgFillRate = Object.values(fillRates).reduce((a, b) => a + b, 0) / Object.values(fillRates).length; | ||
| const healthScore = Math.round((activityScore * 0.3) + (avgFillRate * 0.5) + (completionRate * 0.2)); | ||
| // Output | ||
| fillRates[propName] = entries.length > 0 ? Math.round((filled / entries.length) * 100) : 0; | ||
| } | ||
| // Calculate health score (handle empty databases) | ||
| if (entries.length === 0) { | ||
| console.log(`\n📊 Health Report: ${dbTitle}\n`); | ||
| console.log(`${'═'.repeat(40)}`); | ||
| console.log(`Health Score: ${healthScore}/100 ${healthScore >= 80 ? '🟢' : healthScore >= 50 ? '🟡' : '🔴'}`); | ||
| console.log(`Health Score: 0/100 🔴`); | ||
| console.log(`${'═'.repeat(40)}\n`); | ||
| console.log(`📈 Activity (last 7 days): ${recentlyEdited}/${entries.length} entries (${Math.round(recentlyEdited / entries.length * 100)}%)`); | ||
| console.log(`✅ Completion rate: ${completionRate}%`); | ||
| console.log(`📝 Average fill rate: ${Math.round(avgFillRate)}%\n`); | ||
| console.log('Property fill rates:'); | ||
| const sortedFillRates = Object.entries(fillRates) | ||
| .sort((a, b) => b[1] - a[1]); | ||
| for (const [prop, rate] of sortedFillRates) { | ||
| const bar = '█'.repeat(Math.ceil(rate / 10)) + '░'.repeat(10 - Math.ceil(rate / 10)); | ||
| const icon = rate >= 80 ? '✅' : rate >= 50 ? '⚠️' : '❌'; | ||
| console.log(` ${icon} ${prop.padEnd(25)} ${bar} ${rate}%`); | ||
| console.log('Database is empty — no entries to analyze.'); | ||
| return; | ||
| } | ||
| const activityScore = Math.min(100, (recentlyEdited / entries.length) * 100 * 2); | ||
| const fillRateValues = Object.values(fillRates); | ||
| const avgFillRate = fillRateValues.length > 0 | ||
| ? fillRateValues.reduce((a, b) => a + b, 0) / fillRateValues.length | ||
| : 0; | ||
| const healthScore = Math.round((activityScore * 0.3) + (avgFillRate * 0.5) + (completionRate * 0.2)); | ||
| // Output | ||
| console.log(`\n📊 Health Report: ${dbTitle}\n`); | ||
| console.log(`${'═'.repeat(40)}`); | ||
| console.log(`Health Score: ${healthScore}/100 ${healthScore >= 80 ? '🟢' : healthScore >= 50 ? '🟡' : '🔴'}`); | ||
| console.log(`${'═'.repeat(40)}\n`); | ||
| const activityPct = Math.round((recentlyEdited / entries.length) * 100); | ||
| console.log(`📈 Activity (last 7 days): ${recentlyEdited}/${entries.length} entries (${activityPct}%)`); | ||
| console.log(`✅ Completion rate: ${completionRate}%`); | ||
| console.log(`📝 Average fill rate: ${Math.round(avgFillRate)}%\n`); | ||
| console.log('Property fill rates:'); | ||
| const sortedFillRates = Object.entries(fillRates) | ||
| .sort((a, b) => b[1] - a[1]); | ||
| for (const [prop, rate] of sortedFillRates) { | ||
| const bar = '█'.repeat(Math.ceil(rate / 10)) + '░'.repeat(10 - Math.ceil(rate / 10)); | ||
| const icon = rate >= 80 ? '✅' : rate >= 50 ? '⚠️' : '❌'; | ||
| console.log(` ${icon} ${prop.padEnd(25)} ${bar} ${rate}%`); | ||
| } | ||
| // Recommendations | ||
| const recommendations = []; | ||
| const lowFill = sortedFillRates.filter(([, r]) => r < 50); | ||
| if (lowFill.length > 0) { | ||
| recommendations.push(`Fill in "${lowFill[0][0]}" (only ${lowFill[0][1]}% populated)`); | ||
| } | ||
| if (completionRate < 30) { | ||
| recommendations.push('Completion rate is low, review stuck or abandoned items'); | ||
| } | ||
| if (recentlyEdited < entries.length * 0.1) { | ||
| recommendations.push('Most entries are stale, consider archiving inactive items'); | ||
| } | ||
| if (recommendations.length > 0) { | ||
| console.log('\nRecommendations:'); | ||
| for (const rec of recommendations) { | ||
| console.log(` -> ${rec}`); | ||
| } | ||
| // Recommendations | ||
| const recommendations = []; | ||
| const lowFill = sortedFillRates.filter(([, r]) => r < 50); | ||
| if (lowFill.length > 0) { | ||
| recommendations.push(`Fill in "${lowFill[0][0]}" (only ${lowFill[0][1]}% populated)`); | ||
| } | ||
| if (completionRate < 30) { | ||
| recommendations.push('Completion rate is low, review stuck or abandoned items'); | ||
| } | ||
| if (recentlyEdited < entries.length * 0.1) { | ||
| recommendations.push('Most entries are stale, consider archiving inactive items'); | ||
| } | ||
| if (recommendations.length > 0) { | ||
| console.log('\nRecommendations:'); | ||
| for (const rec of recommendations) { | ||
| console.log(` -> ${rec}`); | ||
| } | ||
| } | ||
| } | ||
| catch (error) { | ||
| console.error('Error:', error.message); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| })); | ||
| } | ||
| //# sourceMappingURL=validate.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"} |
@@ -62,2 +62,3 @@ /** | ||
| database_id?: string; | ||
| data_source_id?: string; | ||
| page_id?: string; | ||
@@ -71,2 +72,3 @@ }; | ||
| export interface Database { | ||
| object?: 'database'; | ||
| id: string; | ||
@@ -73,0 +75,0 @@ title?: { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"notion.d.ts","sourceRoot":"","sources":["../../src/types/notion.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"notion.d.ts","sourceRoot":"","sources":["../../src/types/notion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;KAC5B,CAAC;CACH;AAID,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvB,QAAQ,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;AAID,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3F;AAID,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC5C;AAID,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;KAC/B,CAAC;IACF,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAElD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAiBrD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAOvD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAwDlD;AAqCD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA4CxE;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+CzB"} | ||
| {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAElD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAiBrD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAOvD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAwDlD;AAkED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0DxE;AA4BD,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBzB"} |
+70
-28
@@ -102,2 +102,30 @@ /** | ||
| } | ||
| function buildTypedProperty(type, value) { | ||
| switch (type) { | ||
| case 'status': | ||
| return { status: { name: value } }; | ||
| case 'select': | ||
| return { select: { name: value } }; | ||
| case 'multi_select': | ||
| return { multi_select: value.split(',').map(v => ({ name: v.trim() })) }; | ||
| case 'rich_text': | ||
| return { rich_text: [{ text: { content: value } }] }; | ||
| case 'number': | ||
| return { number: parseFloat(value) }; | ||
| case 'checkbox': | ||
| return { checkbox: value === 'true' }; | ||
| case 'date': | ||
| return { date: { start: value } }; | ||
| case 'url': | ||
| return { url: value }; | ||
| case 'email': | ||
| return { email: value }; | ||
| case 'people': | ||
| return { people: value.split(',').map(id => ({ id: id.trim() })) }; | ||
| case 'relation': | ||
| return { relation: value.split(',').map(id => ({ id: id.trim() })) }; | ||
| default: | ||
| return { [type]: value }; | ||
| } | ||
| } | ||
| export function parseProperties(props) { | ||
@@ -109,4 +137,16 @@ const result = {}; | ||
| continue; | ||
| const key = prop.slice(0, eqIndex); | ||
| let key = prop.slice(0, eqIndex); | ||
| const value = prop.slice(eqIndex + 1); | ||
| // Support type hint syntax: "Key:type=Value" | ||
| let typeHint; | ||
| const colonIndex = key.indexOf(':'); | ||
| if (colonIndex !== -1) { | ||
| typeHint = key.slice(colonIndex + 1); | ||
| key = key.slice(0, colonIndex); | ||
| } | ||
| // If type hint is provided, use it directly | ||
| if (typeHint) { | ||
| result[key] = buildTypedProperty(typeHint, value); | ||
| continue; | ||
| } | ||
| // Try to determine property type from value format | ||
@@ -154,2 +194,29 @@ if (value.startsWith('[') || value.startsWith('{')) { | ||
| } | ||
| // Operators that take boolean true instead of a user-supplied value | ||
| const BOOLEAN_OPERATORS = new Set(['is_empty', 'is_not_empty']); | ||
| // Date operators that take an empty object {} instead of a date string | ||
| const VALUELESS_DATE_OPERATORS = new Set([ | ||
| 'past_week', 'past_month', 'past_year', | ||
| 'next_week', 'next_month', 'next_year', | ||
| 'this_week', | ||
| ]); | ||
| /** | ||
| * Resolve the filter value based on operator semantics. | ||
| * - is_empty / is_not_empty → true (boolean) | ||
| * - past_week, next_month, etc. → {} (empty object) | ||
| * - number types → parseFloat | ||
| * - checkbox → boolean | ||
| * - everything else → raw string value | ||
| */ | ||
| function resolveFilterValue(filterType, value, propType) { | ||
| if (BOOLEAN_OPERATORS.has(filterType)) | ||
| return true; | ||
| if (propType === 'date' && VALUELESS_DATE_OPERATORS.has(filterType)) | ||
| return {}; | ||
| if (propType === 'number') | ||
| return parseFloat(value); | ||
| if (propType === 'checkbox') | ||
| return value === 'true'; | ||
| return value; | ||
| } | ||
| export function parseFilter(property, filterType, value, propType) { | ||
@@ -159,28 +226,4 @@ const filter = { property }; | ||
| if (propType) { | ||
| switch (propType) { | ||
| case 'status': | ||
| filter.status = { [filterType]: value }; | ||
| break; | ||
| case 'select': | ||
| filter.select = { [filterType]: value }; | ||
| break; | ||
| case 'multi_select': | ||
| filter.multi_select = { [filterType]: value }; | ||
| break; | ||
| case 'text': | ||
| case 'rich_text': | ||
| filter.rich_text = { [filterType]: value }; | ||
| break; | ||
| case 'number': | ||
| filter.number = { [filterType]: parseFloat(value) }; | ||
| break; | ||
| case 'checkbox': | ||
| filter.checkbox = { [filterType]: value === 'true' }; | ||
| break; | ||
| case 'date': | ||
| filter.date = { [filterType]: value }; | ||
| break; | ||
| default: | ||
| filter[propType] = { [filterType]: value }; | ||
| } | ||
| const resolvedType = propType === 'text' ? 'rich_text' : propType; | ||
| filter[resolvedType] = { [filterType]: resolveFilterValue(filterType, value, propType) }; | ||
| return filter; | ||
@@ -199,3 +242,2 @@ } | ||
| else { | ||
| // Default to select for simple string values (most common case) | ||
| filter.select = { [filterType]: value }; | ||
@@ -202,0 +244,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"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"} |
@@ -15,2 +15,5 @@ /** | ||
| * - getPropertyValue(prop) → string | null (property → display string) | ||
| * - getPropertyRawValue(prop, opts?) → unknown (property → raw value for frontmatter) | ||
| * - getParentDatabaseId(parent) → string | undefined (extract DB/DS id from parent) | ||
| * - isParentDatabase(parent) → boolean (check if parent is a database/data_source) | ||
| */ | ||
@@ -46,2 +49,33 @@ import type { getClient } from '../client.js'; | ||
| /** | ||
| * Resolve a user-supplied property name against the schema. | ||
| * Tries: exact match → case-insensitive → normalized (collapsed whitespace). | ||
| * Returns the canonical schema name or null if no match. | ||
| */ | ||
| export declare function resolvePropertyName(schema: Record<string, unknown>, input: string): string | null; | ||
| /** | ||
| * Generate the correct empty/null payload to clear a property based on its type. | ||
| * Throws for status (Notion doesn't allow clearing status). | ||
| */ | ||
| export declare function buildClearPayload(propType: string): unknown; | ||
| /** | ||
| * Check if a page's parent is a database (or data_source on v2025-09-03). | ||
| */ | ||
| export declare function isParentDatabase(parent: Page['parent']): boolean; | ||
| /** | ||
| * Extract the database ID from a page's parent, regardless of API version. | ||
| * On v2025-09-03, parent.type is 'data_source_id' but database_id is still present. | ||
| */ | ||
| export declare function getParentDatabaseId(parent: Page['parent']): string | undefined; | ||
| /** | ||
| * Build the trash/archive payload for the current API version. | ||
| * v2026-03-11 uses `in_trash` instead of `archived`. | ||
| */ | ||
| export declare function buildTrashPayload(trash: boolean): Record<string, boolean>; | ||
| /** | ||
| * Build the block positioning payload for the current API version. | ||
| * v2026-03-11 uses `position: { after_block: id }` instead of `after: id`. | ||
| * If no afterBlockId, returns empty (appends at end by default). | ||
| */ | ||
| export declare function buildBlockPosition(afterBlockId?: string): Record<string, unknown>; | ||
| /** | ||
| * Convert a Notion property value object to a human-readable string. | ||
@@ -51,5 +85,31 @@ * Returns null for unsupported or empty property types. | ||
| * Handles: title, rich_text, select, status, multi_select, date, number, | ||
| * checkbox, url, email, phone_number, people. | ||
| * checkbox, url, email, phone_number, people, formula, rollup, | ||
| * files, relation, created_time, last_edited_time, created_by, | ||
| * last_edited_by. | ||
| */ | ||
| export declare function getPropertyValue(prop: Record<string, unknown>): string | null; | ||
| /** | ||
| * Options for getPropertyRawValue. | ||
| */ | ||
| export interface PropertyRawValueOptions { | ||
| /** | ||
| * Custom formatter for rich text arrays (title, rich_text). | ||
| * When provided, used instead of plain_text concatenation. | ||
| * Typically set to richTextToMarkdown for markdown output. | ||
| */ | ||
| richTextFormatter?: (richText: { | ||
| plain_text: string; | ||
| }[]) => string; | ||
| } | ||
| /** | ||
| * Convert a Notion property value to its raw representation, preserving | ||
| * native types (numbers, booleans, arrays) instead of stringifying. | ||
| * | ||
| * Used for frontmatter generation where YAML needs typed values. | ||
| * For display strings, use getPropertyValue() instead. | ||
| * | ||
| * Handles all Notion property types including formula, rollup, files, | ||
| * relation, created_time, last_edited_time, created_by, last_edited_by. | ||
| */ | ||
| export declare function getPropertyRawValue(prop: Record<string, unknown>, options?: PropertyRawValueOptions): unknown; | ||
| //# sourceMappingURL=notion-helpers.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"notion-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/notion-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAqB,MAAM,oBAAoB,CAAC;AAKnF;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,EACpC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,EAAE,CAAC,CAelB;AAID;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,EACpC,OAAO,EAAE,MAAM,EACf,MAAM,SAAI,GACT,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAQ/C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAErD;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAyC7E"} | ||
| {"version":3,"file":"notion-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/notion-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAqB,MAAM,oBAAoB,CAAC;AAKnF;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,EACpC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,EAAE,CAAC,CAelB;AAID;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,EACpC,OAAO,EAAE,MAAM,EACf,MAAM,SAAI,GACT,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAQ/C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAErD;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,IAAI,CAmBf;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAwB3D;AAID;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAEhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,SAAS,CAE9E;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGjF;AAID;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAiF7E;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,MAAM,CAAC;CACpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAiFT"} |
@@ -15,2 +15,5 @@ /** | ||
| * - getPropertyValue(prop) → string | null (property → display string) | ||
| * - getPropertyRawValue(prop, opts?) → unknown (property → raw value for frontmatter) | ||
| * - getParentDatabaseId(parent) → string | undefined (extract DB/DS id from parent) | ||
| * - isParentDatabase(parent) → boolean (check if parent is a database/data_source) | ||
| */ | ||
@@ -90,2 +93,88 @@ import { getBlockContent } from './markdown.js'; | ||
| } | ||
| // ─── Property name resolution ──────────────────────────────────────────────── | ||
| /** | ||
| * Resolve a user-supplied property name against the schema. | ||
| * Tries: exact match → case-insensitive → normalized (collapsed whitespace). | ||
| * Returns the canonical schema name or null if no match. | ||
| */ | ||
| export function resolvePropertyName(schema, input) { | ||
| // Exact match | ||
| if (input in schema) | ||
| return input; | ||
| const lowerInput = input.toLowerCase().trim(); | ||
| // Case-insensitive match | ||
| for (const name of Object.keys(schema)) { | ||
| if (name.toLowerCase() === lowerInput) | ||
| return name; | ||
| } | ||
| // Normalized match (collapse whitespace, underscores → spaces) | ||
| const normalizedInput = lowerInput.replace(/[_\s]+/g, ' '); | ||
| for (const name of Object.keys(schema)) { | ||
| const normalizedName = name.toLowerCase().replace(/[_\s]+/g, ' ').trim(); | ||
| if (normalizedName === normalizedInput) | ||
| return name; | ||
| } | ||
| return null; | ||
| } | ||
| /** | ||
| * Generate the correct empty/null payload to clear a property based on its type. | ||
| * Throws for status (Notion doesn't allow clearing status). | ||
| */ | ||
| export function buildClearPayload(propType) { | ||
| switch (propType) { | ||
| case 'people': | ||
| case 'relation': | ||
| case 'multi_select': | ||
| case 'rich_text': | ||
| case 'files': | ||
| return { [propType]: [] }; | ||
| case 'date': | ||
| case 'select': | ||
| case 'number': | ||
| case 'url': | ||
| case 'email': | ||
| case 'phone_number': | ||
| return { [propType]: null }; | ||
| case 'checkbox': | ||
| return { checkbox: false }; | ||
| case 'status': | ||
| throw new Error('Cannot clear status property — Notion requires a valid status value'); | ||
| case 'title': | ||
| throw new Error('Cannot clear title property — pages must have a title'); | ||
| default: | ||
| throw new Error(`Cannot clear property of type "${propType}" — unsupported type`); | ||
| } | ||
| } | ||
| // ─── Parent helpers (v2025-09-03 compat) ──────────────────────────────────── | ||
| /** | ||
| * Check if a page's parent is a database (or data_source on v2025-09-03). | ||
| */ | ||
| export function isParentDatabase(parent) { | ||
| return parent.type === 'database_id' || parent.type === 'data_source_id'; | ||
| } | ||
| /** | ||
| * Extract the database ID from a page's parent, regardless of API version. | ||
| * On v2025-09-03, parent.type is 'data_source_id' but database_id is still present. | ||
| */ | ||
| export function getParentDatabaseId(parent) { | ||
| return parent.database_id ?? parent.data_source_id; | ||
| } | ||
| // ─── API v2026-03-11 helpers ───────────────────────────────────────────────── | ||
| /** | ||
| * Build the trash/archive payload for the current API version. | ||
| * v2026-03-11 uses `in_trash` instead of `archived`. | ||
| */ | ||
| export function buildTrashPayload(trash) { | ||
| return { in_trash: trash }; | ||
| } | ||
| /** | ||
| * Build the block positioning payload for the current API version. | ||
| * v2026-03-11 uses `position: { after_block: id }` instead of `after: id`. | ||
| * If no afterBlockId, returns empty (appends at end by default). | ||
| */ | ||
| export function buildBlockPosition(afterBlockId) { | ||
| if (!afterBlockId) | ||
| return {}; | ||
| return { position: { after_block: afterBlockId } }; | ||
| } | ||
| // ─── Property Value Extraction ────────────────────────────────────────────── | ||
@@ -97,3 +186,5 @@ /** | ||
| * Handles: title, rich_text, select, status, multi_select, date, number, | ||
| * checkbox, url, email, phone_number, people. | ||
| * checkbox, url, email, phone_number, people, formula, rollup, | ||
| * files, relation, created_time, last_edited_time, created_by, | ||
| * last_edited_by. | ||
| */ | ||
@@ -131,2 +222,40 @@ export function getPropertyValue(prop) { | ||
| .join(', ') || null); | ||
| case 'files': | ||
| return (data | ||
| ?.map(f => f.file?.url || f.external?.url || f.name) | ||
| .filter(Boolean) | ||
| .join(', ') || null); | ||
| case 'relation': | ||
| return (data | ||
| ?.map(r => r.id) | ||
| .join(', ') || null); | ||
| case 'formula': { | ||
| const formula = data; | ||
| if (!formula) | ||
| return null; | ||
| switch (formula.type) { | ||
| case 'string': return formula.string ?? null; | ||
| case 'number': return formula.number != null ? String(formula.number) : null; | ||
| case 'boolean': return formula.boolean != null ? String(formula.boolean) : null; | ||
| case 'date': return formula.date?.start ?? null; | ||
| default: return null; | ||
| } | ||
| } | ||
| case 'rollup': { | ||
| const rollup = data; | ||
| if (!rollup) | ||
| return null; | ||
| switch (rollup.type) { | ||
| case 'number': return rollup.number != null ? String(rollup.number) : null; | ||
| case 'date': return rollup.date?.start ?? null; | ||
| case 'array': return rollup.array ? JSON.stringify(rollup.array) : null; | ||
| default: return null; | ||
| } | ||
| } | ||
| case 'created_time': | ||
| case 'last_edited_time': | ||
| return data || null; | ||
| case 'created_by': | ||
| case 'last_edited_by': | ||
| return data?.name || null; | ||
| default: | ||
@@ -136,2 +265,80 @@ return null; | ||
| } | ||
| /** | ||
| * Convert a Notion property value to its raw representation, preserving | ||
| * native types (numbers, booleans, arrays) instead of stringifying. | ||
| * | ||
| * Used for frontmatter generation where YAML needs typed values. | ||
| * For display strings, use getPropertyValue() instead. | ||
| * | ||
| * Handles all Notion property types including formula, rollup, files, | ||
| * relation, created_time, last_edited_time, created_by, last_edited_by. | ||
| */ | ||
| export function getPropertyRawValue(prop, options) { | ||
| const type = prop.type; | ||
| const data = prop[type]; | ||
| switch (type) { | ||
| case 'title': | ||
| case 'rich_text': | ||
| if (options?.richTextFormatter) { | ||
| return options.richTextFormatter(data) || null; | ||
| } | ||
| return data?.map(t => t.plain_text).join('') || null; | ||
| case 'number': | ||
| return data ?? null; | ||
| case 'select': | ||
| case 'status': | ||
| return data?.name || null; | ||
| case 'multi_select': | ||
| return data?.map(s => s.name) || []; | ||
| case 'date': { | ||
| const dateData = data; | ||
| if (!dateData) | ||
| return null; | ||
| return dateData.end ? `${dateData.start} - ${dateData.end}` : dateData.start || null; | ||
| } | ||
| case 'checkbox': | ||
| return data ?? null; | ||
| case 'url': | ||
| case 'email': | ||
| case 'phone_number': | ||
| return data || null; | ||
| case 'people': | ||
| return data?.map(p => p.name).filter(Boolean) || []; | ||
| case 'files': | ||
| return data?.map(f => f.file?.url || f.external?.url || f.name) || []; | ||
| case 'relation': | ||
| return data?.map(r => r.id) || []; | ||
| case 'formula': { | ||
| const formula = data; | ||
| if (!formula) | ||
| return null; | ||
| switch (formula.type) { | ||
| case 'string': return formula.string ?? null; | ||
| case 'number': return formula.number ?? null; | ||
| case 'boolean': return formula.boolean ?? null; | ||
| case 'date': return formula.date?.start ?? null; | ||
| default: return null; | ||
| } | ||
| } | ||
| case 'rollup': { | ||
| const rollup = data; | ||
| if (!rollup) | ||
| return null; | ||
| switch (rollup.type) { | ||
| case 'array': return rollup.array ?? null; | ||
| case 'number': return rollup.number ?? null; | ||
| case 'date': return rollup.date?.start ?? null; | ||
| default: return null; | ||
| } | ||
| } | ||
| case 'created_time': | ||
| case 'last_edited_time': | ||
| return data || null; | ||
| case 'created_by': | ||
| case 'last_edited_by': | ||
| return data?.name || null; | ||
| default: | ||
| return null; | ||
| } | ||
| } | ||
| //# sourceMappingURL=notion-helpers.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"notion-helpers.js","sourceRoot":"","sources":["../../src/utils/notion-helpers.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"notion-helpers.js","sourceRoot":"","sources":["../../src/utils/notion-helpers.ts"],"names":[],"mappings":"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"} |
+6
-5
| { | ||
| "name": "notion-cli-agent", | ||
| "version": "0.7.0", | ||
| "description": "The most powerful CLI for Notion \u2014 built for humans AND AI agents. Features smart queries, Obsidian sync, batch operations, validation, backups, and more.", | ||
| "version": "0.11.0", | ||
| "description": "The most powerful CLI for Notion — built for humans AND AI agents. Features smart queries, Obsidian sync, batch operations, validation, backups, and more.", | ||
| "type": "module", | ||
@@ -55,6 +55,6 @@ "bin": { | ||
| "devDependencies": { | ||
| "@types/node": "^22.0.0", | ||
| "@types/node": "^22.19.15", | ||
| "eslint": "^9.0.0", | ||
| "typescript": "^5.7.0", | ||
| "vitest": "^4.0.18" | ||
| "vitest": "^4.1.0" | ||
| }, | ||
@@ -68,5 +68,6 @@ "engines": { | ||
| "rollup": ">=4.59.0", | ||
| "ajv": ">=6.14.0" | ||
| "ajv": ">=6.14.0", | ||
| "flatted": ">=3.4.2" | ||
| } | ||
| } | ||
| } |
+24
-4
@@ -70,4 +70,4 @@ # notion-cli-agent | ||
| - **Export to Obsidian** — Pages and databases with YAML frontmatter | ||
| - **Import from Obsidian** — Sync your vault to Notion | ||
| - **Bidirectional workflow** — Keep both systems in sync | ||
| - **Import from Obsidian** — Import vault notes to Notion | ||
| - **CSV & Markdown import** — Bulk import from files | ||
@@ -158,2 +158,9 @@ ### 📊 Analytics & Validation | ||
| # Exact lookup in a known database (deterministic) | ||
| notion db query <db_id> --title "Known Page" --json | ||
| # Filtered search (best-effort — Notion search is fuzzy) | ||
| notion search "keyword" --db <db_id> --exact --first --json | ||
| notion search "task" --db <db_id> # Filter by parent database | ||
| # Get page info | ||
@@ -171,6 +178,6 @@ notion page get <page_id> | ||
| # Update page | ||
| notion page update <page_id> --prop "Status=Done" | ||
| notion page update <page_id> --prop "Status:status=Done" | ||
| notion page update <page_id> --title "New Title" | ||
| notion page update <page_id> --icon 🚀 | ||
| notion page update <page_id> --prop "Status=Done" --icon ✅ | ||
| notion page update <page_id> --clear-prop "Assignee" # Type-aware clear | ||
@@ -667,2 +674,15 @@ # Archive page | ||
| **Type hints** — Force a specific property type with `Key:type=Value`: | ||
| ```bash | ||
| # Status properties (vs auto-detected select) | ||
| notion page update <id> --prop "Status:status=Done" | ||
| # Rich text instead of select | ||
| notion page update <id> --prop "Notes:rich_text=Some notes" | ||
| # People by user ID | ||
| notion page update <id> --prop "Assignee:people=user-id-here" | ||
| ``` | ||
| For database queries with non-select properties: | ||
@@ -669,0 +689,0 @@ ```bash |
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
576535
4.56%115
7.48%7180
5.06%784
2.62%11
10%