@atikk-co-jp/notion-mcp-server 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +1 -0
- package/README.md +1 -0
- package/dist/src/converters/__tests__/block-to-markdown.test.js +482 -111
- package/dist/src/converters/__tests__/markdown-to-blocks.test.js +116 -13
- package/dist/src/converters/__tests__/page-to-markdown.test.js +83 -70
- package/dist/src/converters/__tests__/rich-text-to-markdown.test.js +23 -26
- package/dist/src/converters/block-to-markdown.d.ts +4 -13
- package/dist/src/converters/block-to-markdown.d.ts.map +1 -1
- package/dist/src/converters/block-to-markdown.js +117 -120
- package/dist/src/converters/index.d.ts +3 -3
- package/dist/src/converters/index.d.ts.map +1 -1
- package/dist/src/converters/index.js +1 -1
- package/dist/src/converters/markdown-to-blocks.d.ts +21 -7
- package/dist/src/converters/markdown-to-blocks.d.ts.map +1 -1
- package/dist/src/converters/markdown-to-blocks.js +56 -0
- package/dist/src/converters/page-to-markdown.d.ts +5 -20
- package/dist/src/converters/page-to-markdown.d.ts.map +1 -1
- package/dist/src/converters/page-to-markdown.js +47 -37
- package/dist/src/converters/rich-text-to-markdown.d.ts +3 -47
- package/dist/src/converters/rich-text-to-markdown.d.ts.map +1 -1
- package/dist/src/converters/rich-text-to-markdown.js +15 -14
- package/dist/src/notion-client.d.ts +5 -177
- package/dist/src/notion-client.d.ts.map +1 -1
- package/dist/src/notion-client.js +6 -172
- package/dist/src/schemas/descriptions/examples.d.ts +14 -0
- package/dist/src/schemas/descriptions/examples.d.ts.map +1 -0
- package/dist/src/schemas/descriptions/examples.js +87 -0
- package/dist/src/schemas/descriptions/fields.d.ts +146 -0
- package/dist/src/schemas/descriptions/fields.d.ts.map +1 -0
- package/dist/src/schemas/descriptions/fields.js +184 -0
- package/dist/src/schemas/descriptions/index.d.ts +3 -0
- package/dist/src/schemas/descriptions/index.d.ts.map +1 -0
- package/dist/src/schemas/descriptions/index.js +2 -0
- package/dist/src/schemas/index.d.ts +1 -5
- package/dist/src/schemas/index.d.ts.map +1 -1
- package/dist/src/schemas/index.js +2 -10
- package/dist/src/tools/__tests__/context-size.test.d.ts +2 -0
- package/dist/src/tools/__tests__/context-size.test.d.ts.map +1 -0
- package/dist/src/tools/__tests__/context-size.test.js +143 -0
- package/dist/src/tools/__tests__/error-handler.test.d.ts +2 -0
- package/dist/src/tools/__tests__/error-handler.test.d.ts.map +1 -0
- package/dist/src/tools/__tests__/error-handler.test.js +125 -0
- package/dist/src/tools/append-block-children.d.ts.map +1 -1
- package/dist/src/tools/append-block-children.js +8 -5
- package/dist/src/tools/append-blocks-simple.d.ts.map +1 -1
- package/dist/src/tools/append-blocks-simple.js +9 -13
- package/dist/src/tools/archive-database.d.ts.map +1 -1
- package/dist/src/tools/archive-database.js +3 -2
- package/dist/src/tools/archive-page.d.ts.map +1 -1
- package/dist/src/tools/archive-page.js +2 -1
- package/dist/src/tools/create-comment-simple.d.ts.map +1 -1
- package/dist/src/tools/create-comment-simple.js +5 -4
- package/dist/src/tools/create-comment.d.ts.map +1 -1
- package/dist/src/tools/create-comment.js +9 -6
- package/dist/src/tools/create-database.d.ts.map +1 -1
- package/dist/src/tools/create-database.js +19 -25
- package/dist/src/tools/create-page-simple.d.ts +1 -1
- package/dist/src/tools/create-page-simple.d.ts.map +1 -1
- package/dist/src/tools/create-page-simple.js +26 -27
- package/dist/src/tools/create-page.d.ts.map +1 -1
- package/dist/src/tools/create-page.js +10 -6
- package/dist/src/tools/delete-block.d.ts.map +1 -1
- package/dist/src/tools/delete-block.js +2 -1
- package/dist/src/tools/get-block-children.d.ts +1 -1
- package/dist/src/tools/get-block-children.d.ts.map +1 -1
- package/dist/src/tools/get-block-children.js +13 -27
- package/dist/src/tools/index.d.ts +2 -2
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +2 -2
- package/dist/src/tools/list-comments.d.ts +1 -1
- package/dist/src/tools/list-comments.d.ts.map +1 -1
- package/dist/src/tools/list-comments.js +11 -10
- package/dist/src/tools/list-users.d.ts.map +1 -1
- package/dist/src/tools/list-users.js +4 -3
- package/dist/src/tools/move-page.d.ts.map +1 -1
- package/dist/src/tools/move-page.js +5 -4
- package/dist/src/tools/query-data-source.d.ts +1 -1
- package/dist/src/tools/query-data-source.d.ts.map +1 -1
- package/dist/src/tools/query-data-source.js +23 -30
- package/dist/src/tools/retrieve-block.d.ts +1 -1
- package/dist/src/tools/retrieve-block.d.ts.map +1 -1
- package/dist/src/tools/retrieve-block.js +13 -10
- package/dist/src/tools/retrieve-bot-user.js +1 -1
- package/dist/src/tools/retrieve-data-source.d.ts +1 -1
- package/dist/src/tools/retrieve-data-source.d.ts.map +1 -1
- package/dist/src/tools/retrieve-data-source.js +15 -11
- package/dist/src/tools/retrieve-database.d.ts +1 -1
- package/dist/src/tools/retrieve-database.d.ts.map +1 -1
- package/dist/src/tools/retrieve-database.js +11 -6
- package/dist/src/tools/retrieve-page-property.d.ts.map +1 -1
- package/dist/src/tools/retrieve-page-property.js +6 -5
- package/dist/src/tools/retrieve-page.d.ts +1 -1
- package/dist/src/tools/retrieve-page.d.ts.map +1 -1
- package/dist/src/tools/retrieve-page.js +15 -20
- package/dist/src/tools/retrieve-user.d.ts.map +1 -1
- package/dist/src/tools/retrieve-user.js +2 -1
- package/dist/src/tools/search.d.ts.map +1 -1
- package/dist/src/tools/search.js +10 -17
- package/dist/src/tools/update-block-simple.d.ts +1 -1
- package/dist/src/tools/update-block-simple.d.ts.map +1 -1
- package/dist/src/tools/update-block-simple.js +14 -4
- package/dist/src/tools/update-block.d.ts.map +1 -1
- package/dist/src/tools/update-block.js +8 -5
- package/dist/src/tools/update-data-source.d.ts.map +1 -1
- package/dist/src/tools/update-data-source.js +7 -7
- package/dist/src/tools/update-database.d.ts.map +1 -1
- package/dist/src/tools/update-database.js +22 -32
- package/dist/src/tools/update-page.d.ts.map +1 -1
- package/dist/src/tools/update-page.js +11 -8
- package/dist/src/utils/error-handler.d.ts +16 -7
- package/dist/src/utils/error-handler.d.ts.map +1 -1
- package/dist/src/utils/error-handler.js +44 -17
- package/dist/src/utils/index.d.ts +1 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +1 -1
- package/package.json +2 -1
- package/dist/src/schemas/block.d.ts +0 -3787
- package/dist/src/schemas/block.d.ts.map +0 -1
- package/dist/src/schemas/block.js +0 -402
- package/dist/src/schemas/common.d.ts +0 -638
- package/dist/src/schemas/common.d.ts.map +0 -1
- package/dist/src/schemas/common.js +0 -163
- package/dist/src/schemas/database.d.ts +0 -687
- package/dist/src/schemas/database.d.ts.map +0 -1
- package/dist/src/schemas/database.js +0 -258
- package/dist/src/schemas/filter.d.ts +0 -611
- package/dist/src/schemas/filter.d.ts.map +0 -1
- package/dist/src/schemas/filter.js +0 -222
- package/dist/src/schemas/page.d.ts +0 -2607
- package/dist/src/schemas/page.d.ts.map +0 -1
- package/dist/src/schemas/page.js +0 -328
- package/dist/src/schemas/schemas.test.d.ts +0 -2
- package/dist/src/schemas/schemas.test.d.ts.map +0 -1
- package/dist/src/schemas/schemas.test.js +0 -418
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Notionページプロパティをシンプルな形式に変換するモジュール
|
|
3
3
|
*/
|
|
4
|
+
import type { PageObjectResponse } from '../notion-client.js';
|
|
4
5
|
/**
|
|
5
6
|
* シンプル化されたプロパティの型
|
|
6
7
|
*/
|
|
@@ -13,26 +14,18 @@ export interface SimpleProperty {
|
|
|
13
14
|
* プロパティ値の型
|
|
14
15
|
*/
|
|
15
16
|
export type PropertyValue = string | number | boolean | string[] | null | Record<string, unknown>;
|
|
16
|
-
/**
|
|
17
|
-
* Notionプロパティオブジェクトの型
|
|
18
|
-
*/
|
|
19
|
-
export interface NotionProperty {
|
|
20
|
-
id?: string;
|
|
21
|
-
type: string;
|
|
22
|
-
[key: string]: unknown;
|
|
23
|
-
}
|
|
24
17
|
/**
|
|
25
18
|
* ページプロパティをシンプルな形式に変換
|
|
26
19
|
* @param properties - Notion APIから取得したプロパティオブジェクト
|
|
27
20
|
* @returns シンプル化されたプロパティの配列
|
|
28
21
|
*/
|
|
29
|
-
export declare function pagePropertiesToSimple(properties:
|
|
22
|
+
export declare function pagePropertiesToSimple(properties: PageObjectResponse['properties']): SimpleProperty[];
|
|
30
23
|
/**
|
|
31
24
|
* ページプロパティをオブジェクト形式に変換(キー: プロパティ名、値: 値)
|
|
32
25
|
* @param properties - Notion APIから取得したプロパティオブジェクト
|
|
33
26
|
* @returns シンプル化されたプロパティオブジェクト
|
|
34
27
|
*/
|
|
35
|
-
export declare function pagePropertiesToObject(properties:
|
|
28
|
+
export declare function pagePropertiesToObject(properties: PageObjectResponse['properties']): Record<string, PropertyValue>;
|
|
36
29
|
/**
|
|
37
30
|
* シンプル化されたページオブジェクトの型
|
|
38
31
|
*/
|
|
@@ -46,19 +39,11 @@ export interface SimplePage {
|
|
|
46
39
|
* @param page - Notion APIから取得したページオブジェクト
|
|
47
40
|
* @returns シンプル化されたページオブジェクト
|
|
48
41
|
*/
|
|
49
|
-
export declare function pageToSimple(page:
|
|
50
|
-
id: string;
|
|
51
|
-
url?: string;
|
|
52
|
-
properties: Record<string, NotionProperty>;
|
|
53
|
-
}): SimplePage;
|
|
42
|
+
export declare function pageToSimple(page: PageObjectResponse): SimplePage;
|
|
54
43
|
/**
|
|
55
44
|
* ページ配列をシンプルな形式に変換
|
|
56
45
|
* @param pages - Notion APIから取得したページ配列
|
|
57
46
|
* @returns シンプル化されたページ配列
|
|
58
47
|
*/
|
|
59
|
-
export declare function pagesToSimple(pages:
|
|
60
|
-
id: string;
|
|
61
|
-
url?: string;
|
|
62
|
-
properties: Record<string, NotionProperty>;
|
|
63
|
-
}[]): SimplePage[];
|
|
48
|
+
export declare function pagesToSimple(pages: PageObjectResponse[]): SimplePage[];
|
|
64
49
|
//# sourceMappingURL=page-to-markdown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-to-markdown.d.ts","sourceRoot":"","sources":["../../../src/converters/page-to-markdown.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"page-to-markdown.d.ts","sourceRoot":"","sources":["../../../src/converters/page-to-markdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAwB,MAAM,qBAAqB,CAAA;AAGnF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,aAAa,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AA4KjG;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAC3C,cAAc,EAAE,CAUlB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAC3C,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAU/B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,UAAU,CAMjE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,UAAU,EAAE,CAKvE"}
|
|
@@ -7,31 +7,27 @@ import { richTextToPlain } from './rich-text-to-markdown.js';
|
|
|
7
7
|
*/
|
|
8
8
|
function extractPropertyValue(prop) {
|
|
9
9
|
const type = prop.type;
|
|
10
|
-
const data = prop[type];
|
|
11
10
|
switch (type) {
|
|
12
11
|
case 'title': {
|
|
13
|
-
return richTextToPlain(
|
|
12
|
+
return richTextToPlain(prop.title);
|
|
14
13
|
}
|
|
15
14
|
case 'rich_text': {
|
|
16
|
-
return richTextToPlain(
|
|
15
|
+
return richTextToPlain(prop.rich_text);
|
|
17
16
|
}
|
|
18
17
|
case 'number': {
|
|
19
|
-
return
|
|
18
|
+
return prop.number ?? null;
|
|
20
19
|
}
|
|
21
20
|
case 'select': {
|
|
22
|
-
|
|
23
|
-
return select?.name ?? null;
|
|
21
|
+
return prop.select?.name ?? null;
|
|
24
22
|
}
|
|
25
23
|
case 'multi_select': {
|
|
26
|
-
|
|
27
|
-
return multiSelect?.map((item) => item.name) ?? [];
|
|
24
|
+
return prop.multi_select?.map((item) => item.name) ?? [];
|
|
28
25
|
}
|
|
29
26
|
case 'status': {
|
|
30
|
-
|
|
31
|
-
return status?.name ?? null;
|
|
27
|
+
return prop.status?.name ?? null;
|
|
32
28
|
}
|
|
33
29
|
case 'date': {
|
|
34
|
-
const date =
|
|
30
|
+
const date = prop.date;
|
|
35
31
|
if (!date)
|
|
36
32
|
return null;
|
|
37
33
|
if (date.end) {
|
|
@@ -40,19 +36,19 @@ function extractPropertyValue(prop) {
|
|
|
40
36
|
return date.start;
|
|
41
37
|
}
|
|
42
38
|
case 'checkbox': {
|
|
43
|
-
return
|
|
39
|
+
return prop.checkbox;
|
|
44
40
|
}
|
|
45
41
|
case 'url': {
|
|
46
|
-
return
|
|
42
|
+
return prop.url ?? null;
|
|
47
43
|
}
|
|
48
44
|
case 'email': {
|
|
49
|
-
return
|
|
45
|
+
return prop.email ?? null;
|
|
50
46
|
}
|
|
51
47
|
case 'phone_number': {
|
|
52
|
-
return
|
|
48
|
+
return prop.phone_number ?? null;
|
|
53
49
|
}
|
|
54
50
|
case 'formula': {
|
|
55
|
-
const formula =
|
|
51
|
+
const formula = prop.formula;
|
|
56
52
|
if (!formula)
|
|
57
53
|
return null;
|
|
58
54
|
switch (formula.type) {
|
|
@@ -69,11 +65,10 @@ function extractPropertyValue(prop) {
|
|
|
69
65
|
}
|
|
70
66
|
}
|
|
71
67
|
case 'relation': {
|
|
72
|
-
|
|
73
|
-
return relations?.map((item) => item.id) ?? [];
|
|
68
|
+
return prop.relation?.map((item) => item.id) ?? [];
|
|
74
69
|
}
|
|
75
70
|
case 'rollup': {
|
|
76
|
-
const rollup =
|
|
71
|
+
const rollup = prop.rollup;
|
|
77
72
|
if (!rollup)
|
|
78
73
|
return null;
|
|
79
74
|
switch (rollup.type) {
|
|
@@ -88,48 +83,63 @@ function extractPropertyValue(prop) {
|
|
|
88
83
|
}
|
|
89
84
|
}
|
|
90
85
|
case 'people': {
|
|
91
|
-
|
|
92
|
-
|
|
86
|
+
return (prop.people?.map((person) => {
|
|
87
|
+
if ('name' in person && person.name) {
|
|
88
|
+
return person.name;
|
|
89
|
+
}
|
|
90
|
+
return person.id;
|
|
91
|
+
}) ?? []);
|
|
93
92
|
}
|
|
94
93
|
case 'files': {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
94
|
+
return (prop.files?.map((f) => {
|
|
95
|
+
if (f.type === 'external') {
|
|
96
|
+
return f.name ?? f.external.url ?? 'file';
|
|
97
|
+
}
|
|
98
|
+
if (f.type === 'file') {
|
|
99
|
+
return f.name ?? f.file.url ?? 'file';
|
|
100
|
+
}
|
|
101
|
+
// 未知のファイルタイプの場合は name または 'file'
|
|
102
|
+
return f.name ?? 'file';
|
|
99
103
|
}) ?? []);
|
|
100
104
|
}
|
|
101
105
|
case 'created_time': {
|
|
102
|
-
return
|
|
106
|
+
return prop.created_time ?? null;
|
|
103
107
|
}
|
|
104
108
|
case 'created_by': {
|
|
105
|
-
const user =
|
|
106
|
-
|
|
109
|
+
const user = prop.created_by;
|
|
110
|
+
if (!user)
|
|
111
|
+
return null;
|
|
112
|
+
if ('name' in user && user.name) {
|
|
113
|
+
return user.name;
|
|
114
|
+
}
|
|
115
|
+
return user.id;
|
|
107
116
|
}
|
|
108
117
|
case 'last_edited_time': {
|
|
109
|
-
return
|
|
118
|
+
return prop.last_edited_time ?? null;
|
|
110
119
|
}
|
|
111
120
|
case 'last_edited_by': {
|
|
112
|
-
const user =
|
|
113
|
-
|
|
121
|
+
const user = prop.last_edited_by;
|
|
122
|
+
if (!user)
|
|
123
|
+
return null;
|
|
124
|
+
if ('name' in user && user.name) {
|
|
125
|
+
return user.name;
|
|
126
|
+
}
|
|
127
|
+
return user.id;
|
|
114
128
|
}
|
|
115
129
|
case 'unique_id': {
|
|
116
|
-
const uniqueId =
|
|
130
|
+
const uniqueId = prop.unique_id;
|
|
117
131
|
if (!uniqueId)
|
|
118
132
|
return null;
|
|
119
133
|
return uniqueId.prefix ? `${uniqueId.prefix}-${uniqueId.number}` : String(uniqueId.number);
|
|
120
134
|
}
|
|
121
135
|
case 'verification': {
|
|
122
|
-
|
|
123
|
-
return verification?.state ?? null;
|
|
136
|
+
return prop.verification?.state ?? null;
|
|
124
137
|
}
|
|
125
138
|
case 'button': {
|
|
126
139
|
return '[Button]';
|
|
127
140
|
}
|
|
128
141
|
default: {
|
|
129
142
|
// 未知のプロパティタイプ
|
|
130
|
-
if (data !== undefined && data !== null) {
|
|
131
|
-
return JSON.stringify(data);
|
|
132
|
-
}
|
|
133
143
|
return null;
|
|
134
144
|
}
|
|
135
145
|
}
|
|
@@ -1,61 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* RichText配列をマークダウン文字列に変換するモジュール
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
* Notion APIのRichTextアイテムの型定義
|
|
6
|
-
*/
|
|
7
|
-
export interface RichTextItem {
|
|
8
|
-
type?: string;
|
|
9
|
-
text?: {
|
|
10
|
-
content: string;
|
|
11
|
-
link?: {
|
|
12
|
-
url: string;
|
|
13
|
-
} | null;
|
|
14
|
-
};
|
|
15
|
-
annotations?: {
|
|
16
|
-
bold?: boolean;
|
|
17
|
-
italic?: boolean;
|
|
18
|
-
strikethrough?: boolean;
|
|
19
|
-
underline?: boolean;
|
|
20
|
-
code?: boolean;
|
|
21
|
-
color?: string;
|
|
22
|
-
};
|
|
23
|
-
plain_text?: string;
|
|
24
|
-
href?: string | null;
|
|
25
|
-
mention?: {
|
|
26
|
-
type: string;
|
|
27
|
-
user?: {
|
|
28
|
-
name?: string;
|
|
29
|
-
id: string;
|
|
30
|
-
};
|
|
31
|
-
page?: {
|
|
32
|
-
id: string;
|
|
33
|
-
};
|
|
34
|
-
database?: {
|
|
35
|
-
id: string;
|
|
36
|
-
};
|
|
37
|
-
date?: {
|
|
38
|
-
start: string;
|
|
39
|
-
end?: string | null;
|
|
40
|
-
};
|
|
41
|
-
link_preview?: {
|
|
42
|
-
url: string;
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
equation?: {
|
|
46
|
-
expression: string;
|
|
47
|
-
};
|
|
48
|
-
}
|
|
4
|
+
import type { RichTextItemResponse } from '../notion-client.js';
|
|
49
5
|
/**
|
|
50
6
|
* RichText配列をマークダウン文字列に変換
|
|
51
7
|
* @param richTexts - Notion APIから取得したRichText配列
|
|
52
8
|
* @returns マークダウン文字列
|
|
53
9
|
*/
|
|
54
|
-
export declare function richTextToMarkdown(richTexts:
|
|
10
|
+
export declare function richTextToMarkdown(richTexts: RichTextItemResponse[]): string;
|
|
55
11
|
/**
|
|
56
12
|
* RichText配列からプレーンテキストを抽出
|
|
57
13
|
* @param richTexts - Notion APIから取得したRichText配列
|
|
58
14
|
* @returns プレーンテキスト文字列
|
|
59
15
|
*/
|
|
60
|
-
export declare function richTextToPlain(richTexts:
|
|
16
|
+
export declare function richTextToPlain(richTexts: RichTextItemResponse[]): string;
|
|
61
17
|
//# sourceMappingURL=rich-text-to-markdown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text-to-markdown.d.ts","sourceRoot":"","sources":["../../../src/converters/rich-text-to-markdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH
|
|
1
|
+
{"version":3,"file":"rich-text-to-markdown.d.ts","sourceRoot":"","sources":["../../../src/converters/rich-text-to-markdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAqF/D;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAK5E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAKzE"}
|
|
@@ -6,19 +6,19 @@
|
|
|
6
6
|
*/
|
|
7
7
|
function convertRichTextItem(item) {
|
|
8
8
|
// テキスト内容を取得
|
|
9
|
-
let text = item.
|
|
9
|
+
let text = item.plain_text;
|
|
10
10
|
// Mention type の処理
|
|
11
11
|
if (item.type === 'mention' && item.mention) {
|
|
12
12
|
const mention = item.mention;
|
|
13
13
|
switch (mention.type) {
|
|
14
14
|
case 'user':
|
|
15
|
-
text = `@${mention.user
|
|
15
|
+
text = `@${mention.user && 'name' in mention.user ? mention.user.name : 'user'}`;
|
|
16
16
|
break;
|
|
17
17
|
case 'page':
|
|
18
|
-
text = item.plain_text
|
|
18
|
+
text = item.plain_text || `[page](${mention.page.id})`;
|
|
19
19
|
break;
|
|
20
20
|
case 'database':
|
|
21
|
-
text = item.plain_text
|
|
21
|
+
text = item.plain_text || `[database](${mention.database.id})`;
|
|
22
22
|
break;
|
|
23
23
|
case 'date':
|
|
24
24
|
text = mention.date?.start ?? '';
|
|
@@ -30,7 +30,7 @@ function convertRichTextItem(item) {
|
|
|
30
30
|
text = mention.link_preview?.url ?? '';
|
|
31
31
|
break;
|
|
32
32
|
default:
|
|
33
|
-
text = item.plain_text
|
|
33
|
+
text = item.plain_text || '';
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
// Equation type の処理
|
|
@@ -41,31 +41,32 @@ function convertRichTextItem(item) {
|
|
|
41
41
|
if (!text) {
|
|
42
42
|
return '';
|
|
43
43
|
}
|
|
44
|
-
|
|
44
|
+
// annotations がない場合はデフォルト値を使用(テスト用データ対応)
|
|
45
|
+
const annotations = item.annotations ?? {};
|
|
45
46
|
// アノテーション適用(内側から外側へ)
|
|
46
47
|
// code が最も内側
|
|
47
|
-
if (annotations
|
|
48
|
+
if (annotations.code) {
|
|
48
49
|
text = `\`${text}\``;
|
|
49
50
|
}
|
|
50
51
|
// strikethrough
|
|
51
|
-
if (annotations
|
|
52
|
+
if (annotations.strikethrough) {
|
|
52
53
|
text = `~~${text}~~`;
|
|
53
54
|
}
|
|
54
55
|
// italic
|
|
55
|
-
if (annotations
|
|
56
|
+
if (annotations.italic) {
|
|
56
57
|
text = `*${text}*`;
|
|
57
58
|
}
|
|
58
59
|
// bold
|
|
59
|
-
if (annotations
|
|
60
|
+
if (annotations.bold) {
|
|
60
61
|
text = `**${text}**`;
|
|
61
62
|
}
|
|
62
63
|
// underline はマークダウンで標準サポートされていないため、HTMLタグを使用
|
|
63
|
-
if (annotations
|
|
64
|
+
if (annotations.underline) {
|
|
64
65
|
text = `<u>${text}</u>`;
|
|
65
66
|
}
|
|
66
67
|
// リンク処理(text.link または href)
|
|
67
|
-
const href = item.text
|
|
68
|
-
if (href && !annotations
|
|
68
|
+
const href = (item.type === 'text' && item.text.link?.url) ?? item.href;
|
|
69
|
+
if (href && !annotations.code) {
|
|
69
70
|
// コード内のリンクは無視
|
|
70
71
|
text = `[${text}](${href})`;
|
|
71
72
|
}
|
|
@@ -91,5 +92,5 @@ export function richTextToPlain(richTexts) {
|
|
|
91
92
|
if (!richTexts || richTexts.length === 0) {
|
|
92
93
|
return '';
|
|
93
94
|
}
|
|
94
|
-
return richTexts.map((item) => item.plain_text
|
|
95
|
+
return richTexts.map((item) => item.plain_text).join('');
|
|
95
96
|
}
|
|
@@ -1,181 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import type { FilterSchema, SortSchema } from './schemas/filter.js';
|
|
6
|
-
import type { PropertyValueSchema } from './schemas/page.js';
|
|
7
|
-
type RichText = z.infer<typeof RichTextSchema>;
|
|
8
|
-
type Icon = z.infer<typeof IconSchema>;
|
|
9
|
-
type Cover = z.infer<typeof CoverSchema>;
|
|
10
|
-
type PropertyValue = z.infer<typeof PropertyValueSchema>;
|
|
11
|
-
type DatabaseProperties = z.infer<typeof DatabasePropertiesSchema>;
|
|
12
|
-
type Filter = z.infer<typeof FilterSchema>;
|
|
13
|
-
type Sort = z.infer<typeof SortSchema>;
|
|
1
|
+
import { Client } from '@notionhq/client';
|
|
2
|
+
export type { AppendBlockChildrenParameters, AppendBlockChildrenResponse, BlockObjectRequest, BlockObjectResponse, BotUserObjectResponse, CommentObjectResponse, CreateCommentParameters, CreateCommentResponse, CreateDatabaseParameters, CreateDatabaseResponse, CreateDataSourceParameters, CreateDataSourceResponse, CreatePageParameters, CreatePageResponse, DatabaseObjectResponse, DataSourceObjectResponse, DeleteBlockParameters, DeleteBlockResponse, EquationRichTextItemResponse, GetBlockParameters, GetBlockResponse, GetDatabaseParameters, GetDatabaseResponse, GetDataSourceParameters, GetDataSourceResponse, GetPageParameters, GetPagePropertyParameters, GetPagePropertyResponse, GetPageResponse, GetSelfParameters, GetSelfResponse, GetUserParameters, GetUserResponse, ListBlockChildrenParameters, ListBlockChildrenResponse, ListCommentsParameters, ListCommentsResponse, ListUsersParameters, ListUsersResponse, MentionRichTextItemResponse, MovePageParameters, MovePageResponse, PageObjectResponse, PartialBlockObjectResponse, PartialCommentObjectResponse, PartialDatabaseObjectResponse, PartialDataSourceObjectResponse, PartialPageObjectResponse, PartialUserObjectResponse, PersonUserObjectResponse, PropertyItemListResponse, PropertyItemObjectResponse, QueryDataSourceParameters, QueryDataSourceResponse, RichTextItemResponse, SearchParameters, SearchResponse, TextRichTextItemResponse, UpdateBlockParameters, UpdateBlockResponse, UpdateDatabaseParameters, UpdateDatabaseResponse, UpdateDataSourceParameters, UpdateDataSourceResponse, UpdatePageParameters, UpdatePageResponse, UserObjectResponse, } from '@notionhq/client';
|
|
3
|
+
export { APIResponseError, Client as NotionClient, collectPaginatedAPI, isFullBlock, isFullComment, isFullDatabase, isFullDataSource, isFullPage, isFullUser, isNotionClientError, iteratePaginatedAPI, } from '@notionhq/client';
|
|
4
|
+
export type { NotionClientError } from '@notionhq/client';
|
|
14
5
|
export interface NotionClientOptions {
|
|
15
6
|
token: string;
|
|
16
7
|
}
|
|
17
|
-
export
|
|
18
|
-
method?: 'GET' | 'POST' | 'PATCH' | 'DELETE';
|
|
19
|
-
body?: unknown;
|
|
20
|
-
query?: Record<string, string | number | undefined>;
|
|
21
|
-
}
|
|
22
|
-
export interface NotionError {
|
|
23
|
-
object: 'error';
|
|
24
|
-
status: number;
|
|
25
|
-
code: string;
|
|
26
|
-
message: string;
|
|
27
|
-
}
|
|
28
|
-
export declare class NotionClient {
|
|
29
|
-
private token;
|
|
30
|
-
constructor(options: NotionClientOptions);
|
|
31
|
-
private request;
|
|
32
|
-
pages: {
|
|
33
|
-
create: <T>(params: {
|
|
34
|
-
parent: {
|
|
35
|
-
database_id: string;
|
|
36
|
-
} | {
|
|
37
|
-
page_id: string;
|
|
38
|
-
} | {
|
|
39
|
-
data_source_id: string;
|
|
40
|
-
};
|
|
41
|
-
properties: Record<string, PropertyValue>;
|
|
42
|
-
children?: Block[];
|
|
43
|
-
icon?: Icon;
|
|
44
|
-
cover?: Cover;
|
|
45
|
-
}) => Promise<T>;
|
|
46
|
-
retrieve: <T>(params: {
|
|
47
|
-
page_id: string;
|
|
48
|
-
}) => Promise<T>;
|
|
49
|
-
update: <T>(params: {
|
|
50
|
-
page_id: string;
|
|
51
|
-
properties?: Record<string, PropertyValue>;
|
|
52
|
-
archived?: boolean;
|
|
53
|
-
icon?: Icon | null;
|
|
54
|
-
cover?: Cover | null;
|
|
55
|
-
is_locked?: boolean;
|
|
56
|
-
}) => Promise<T>;
|
|
57
|
-
retrieveProperty: <T>(params: {
|
|
58
|
-
page_id: string;
|
|
59
|
-
property_id: string;
|
|
60
|
-
start_cursor?: string;
|
|
61
|
-
page_size?: number;
|
|
62
|
-
}) => Promise<T>;
|
|
63
|
-
move: <T>(params: {
|
|
64
|
-
page_id: string;
|
|
65
|
-
parent: {
|
|
66
|
-
page_id: string;
|
|
67
|
-
} | {
|
|
68
|
-
database_id: string;
|
|
69
|
-
} | {
|
|
70
|
-
data_source_id: string;
|
|
71
|
-
};
|
|
72
|
-
}) => Promise<T>;
|
|
73
|
-
};
|
|
74
|
-
dataSources: {
|
|
75
|
-
retrieve: <T>(params: {
|
|
76
|
-
data_source_id: string;
|
|
77
|
-
}) => Promise<T>;
|
|
78
|
-
query: <T>(params: {
|
|
79
|
-
data_source_id: string;
|
|
80
|
-
filter?: Filter;
|
|
81
|
-
sorts?: Sort[];
|
|
82
|
-
start_cursor?: string;
|
|
83
|
-
page_size?: number;
|
|
84
|
-
}) => Promise<T>;
|
|
85
|
-
update: <T>(params: {
|
|
86
|
-
data_source_id: string;
|
|
87
|
-
properties?: DatabaseProperties;
|
|
88
|
-
}) => Promise<T>;
|
|
89
|
-
};
|
|
90
|
-
databases: {
|
|
91
|
-
create: <T>(params: {
|
|
92
|
-
parent: {
|
|
93
|
-
page_id: string;
|
|
94
|
-
};
|
|
95
|
-
title?: RichText[];
|
|
96
|
-
initial_data_source?: {
|
|
97
|
-
properties: DatabaseProperties;
|
|
98
|
-
};
|
|
99
|
-
icon?: Icon;
|
|
100
|
-
cover?: Cover;
|
|
101
|
-
is_inline?: boolean;
|
|
102
|
-
}) => Promise<T>;
|
|
103
|
-
retrieve: <T>(params: {
|
|
104
|
-
database_id: string;
|
|
105
|
-
}) => Promise<T>;
|
|
106
|
-
update: <T>(params: {
|
|
107
|
-
database_id: string;
|
|
108
|
-
title?: RichText[];
|
|
109
|
-
description?: RichText[];
|
|
110
|
-
icon?: Icon | null;
|
|
111
|
-
cover?: Cover | null;
|
|
112
|
-
is_inline?: boolean;
|
|
113
|
-
archived?: boolean;
|
|
114
|
-
is_locked?: boolean;
|
|
115
|
-
}) => Promise<T>;
|
|
116
|
-
};
|
|
117
|
-
blocks: {
|
|
118
|
-
retrieve: <T>(params: {
|
|
119
|
-
block_id: string;
|
|
120
|
-
}) => Promise<T>;
|
|
121
|
-
update: <T>(params: {
|
|
122
|
-
block_id: string;
|
|
123
|
-
[key: string]: unknown;
|
|
124
|
-
}) => Promise<T>;
|
|
125
|
-
delete: <T>(params: {
|
|
126
|
-
block_id: string;
|
|
127
|
-
}) => Promise<T>;
|
|
128
|
-
children: {
|
|
129
|
-
list: <T>(params: {
|
|
130
|
-
block_id: string;
|
|
131
|
-
start_cursor?: string;
|
|
132
|
-
page_size?: number;
|
|
133
|
-
}) => Promise<T>;
|
|
134
|
-
append: <T>(params: {
|
|
135
|
-
block_id: string;
|
|
136
|
-
children: Block[];
|
|
137
|
-
after?: string;
|
|
138
|
-
}) => Promise<T>;
|
|
139
|
-
};
|
|
140
|
-
};
|
|
141
|
-
comments: {
|
|
142
|
-
create: <T>(params: {
|
|
143
|
-
parent: {
|
|
144
|
-
page_id: string;
|
|
145
|
-
};
|
|
146
|
-
discussion_id?: string;
|
|
147
|
-
rich_text: RichText[];
|
|
148
|
-
}) => Promise<T>;
|
|
149
|
-
list: <T>(params: {
|
|
150
|
-
block_id?: string;
|
|
151
|
-
start_cursor?: string;
|
|
152
|
-
page_size?: number;
|
|
153
|
-
}) => Promise<T>;
|
|
154
|
-
};
|
|
155
|
-
users: {
|
|
156
|
-
list: <T>(params?: {
|
|
157
|
-
start_cursor?: string;
|
|
158
|
-
page_size?: number;
|
|
159
|
-
}) => Promise<T>;
|
|
160
|
-
retrieve: <T>(params: {
|
|
161
|
-
user_id: string;
|
|
162
|
-
}) => Promise<T>;
|
|
163
|
-
me: <T>() => Promise<T>;
|
|
164
|
-
};
|
|
165
|
-
search: <T>(params?: {
|
|
166
|
-
query?: string;
|
|
167
|
-
filter?: {
|
|
168
|
-
value: "page" | "data_source";
|
|
169
|
-
property: "object";
|
|
170
|
-
};
|
|
171
|
-
sort?: {
|
|
172
|
-
direction: "ascending" | "descending";
|
|
173
|
-
timestamp: "last_edited_time";
|
|
174
|
-
};
|
|
175
|
-
start_cursor?: string;
|
|
176
|
-
page_size?: number;
|
|
177
|
-
}) => Promise<T>;
|
|
178
|
-
}
|
|
179
|
-
export declare function createNotionClient(): NotionClient;
|
|
180
|
-
export {};
|
|
8
|
+
export declare function createNotionClient(): Client;
|
|
181
9
|
//# sourceMappingURL=notion-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notion-client.d.ts","sourceRoot":"","sources":["../../src/notion-client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"notion-client.d.ts","sourceRoot":"","sources":["../../src/notion-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAIzC,YAAY,EACV,6BAA6B,EAC7B,2BAA2B,EAC3B,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EAErB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAElB,sBAAsB,EAEtB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,4BAA4B,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,EAC3B,kBAAkB,EAClB,gBAAgB,EAEhB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EAExB,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EAEvB,oBAAoB,EAEpB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAElB,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EACL,gBAAgB,EAChB,MAAM,IAAI,YAAY,EACtB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AAGzB,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEzD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAS3C"}
|