@atikk-co-jp/notion-mcp-server 0.7.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.ja.md +3 -2
  2. package/README.md +3 -2
  3. package/dist/src/converters/__tests__/block-to-markdown.test.js +482 -111
  4. package/dist/src/converters/__tests__/markdown-to-blocks.test.js +116 -13
  5. package/dist/src/converters/__tests__/page-to-markdown.test.js +83 -70
  6. package/dist/src/converters/__tests__/rich-text-to-markdown.test.js +23 -26
  7. package/dist/src/converters/block-to-markdown.d.ts +4 -13
  8. package/dist/src/converters/block-to-markdown.d.ts.map +1 -1
  9. package/dist/src/converters/block-to-markdown.js +117 -120
  10. package/dist/src/converters/index.d.ts +3 -3
  11. package/dist/src/converters/index.d.ts.map +1 -1
  12. package/dist/src/converters/index.js +1 -1
  13. package/dist/src/converters/markdown-to-blocks.d.ts +21 -7
  14. package/dist/src/converters/markdown-to-blocks.d.ts.map +1 -1
  15. package/dist/src/converters/markdown-to-blocks.js +56 -0
  16. package/dist/src/converters/page-to-markdown.d.ts +5 -20
  17. package/dist/src/converters/page-to-markdown.d.ts.map +1 -1
  18. package/dist/src/converters/page-to-markdown.js +47 -37
  19. package/dist/src/converters/rich-text-to-markdown.d.ts +3 -47
  20. package/dist/src/converters/rich-text-to-markdown.d.ts.map +1 -1
  21. package/dist/src/converters/rich-text-to-markdown.js +15 -14
  22. package/dist/src/notion-client.d.ts +5 -177
  23. package/dist/src/notion-client.d.ts.map +1 -1
  24. package/dist/src/notion-client.js +6 -172
  25. package/dist/src/schemas/descriptions/examples.d.ts +14 -0
  26. package/dist/src/schemas/descriptions/examples.d.ts.map +1 -0
  27. package/dist/src/schemas/descriptions/examples.js +87 -0
  28. package/dist/src/schemas/descriptions/fields.d.ts +146 -0
  29. package/dist/src/schemas/descriptions/fields.d.ts.map +1 -0
  30. package/dist/src/schemas/descriptions/fields.js +184 -0
  31. package/dist/src/schemas/descriptions/index.d.ts +3 -0
  32. package/dist/src/schemas/descriptions/index.d.ts.map +1 -0
  33. package/dist/src/schemas/descriptions/index.js +2 -0
  34. package/dist/src/schemas/index.d.ts +1 -5
  35. package/dist/src/schemas/index.d.ts.map +1 -1
  36. package/dist/src/schemas/index.js +2 -10
  37. package/dist/src/tools/__tests__/context-size.test.d.ts +2 -0
  38. package/dist/src/tools/__tests__/context-size.test.d.ts.map +1 -0
  39. package/dist/src/tools/__tests__/context-size.test.js +143 -0
  40. package/dist/src/tools/__tests__/error-handler.test.d.ts +2 -0
  41. package/dist/src/tools/__tests__/error-handler.test.d.ts.map +1 -0
  42. package/dist/src/tools/__tests__/error-handler.test.js +125 -0
  43. package/dist/src/tools/append-block-children.d.ts.map +1 -1
  44. package/dist/src/tools/append-block-children.js +8 -5
  45. package/dist/src/tools/append-blocks-simple.d.ts.map +1 -1
  46. package/dist/src/tools/append-blocks-simple.js +9 -13
  47. package/dist/src/tools/archive-database.d.ts.map +1 -1
  48. package/dist/src/tools/archive-database.js +3 -2
  49. package/dist/src/tools/archive-page.d.ts.map +1 -1
  50. package/dist/src/tools/archive-page.js +2 -1
  51. package/dist/src/tools/create-comment-simple.d.ts.map +1 -1
  52. package/dist/src/tools/create-comment-simple.js +5 -4
  53. package/dist/src/tools/create-comment.d.ts.map +1 -1
  54. package/dist/src/tools/create-comment.js +9 -6
  55. package/dist/src/tools/create-database.d.ts.map +1 -1
  56. package/dist/src/tools/create-database.js +19 -25
  57. package/dist/src/tools/create-page-simple.d.ts +1 -1
  58. package/dist/src/tools/create-page-simple.d.ts.map +1 -1
  59. package/dist/src/tools/create-page-simple.js +26 -27
  60. package/dist/src/tools/create-page.d.ts.map +1 -1
  61. package/dist/src/tools/create-page.js +10 -6
  62. package/dist/src/tools/delete-block.d.ts.map +1 -1
  63. package/dist/src/tools/delete-block.js +2 -1
  64. package/dist/src/tools/get-block-children.d.ts +1 -1
  65. package/dist/src/tools/get-block-children.d.ts.map +1 -1
  66. package/dist/src/tools/get-block-children.js +13 -27
  67. package/dist/src/tools/index.d.ts +2 -2
  68. package/dist/src/tools/index.d.ts.map +1 -1
  69. package/dist/src/tools/index.js +2 -2
  70. package/dist/src/tools/list-comments.d.ts +1 -1
  71. package/dist/src/tools/list-comments.d.ts.map +1 -1
  72. package/dist/src/tools/list-comments.js +11 -10
  73. package/dist/src/tools/list-users.d.ts.map +1 -1
  74. package/dist/src/tools/list-users.js +4 -3
  75. package/dist/src/tools/move-page.d.ts.map +1 -1
  76. package/dist/src/tools/move-page.js +5 -4
  77. package/dist/src/tools/query-data-source.d.ts +1 -1
  78. package/dist/src/tools/query-data-source.d.ts.map +1 -1
  79. package/dist/src/tools/query-data-source.js +23 -30
  80. package/dist/src/tools/retrieve-block.d.ts +1 -1
  81. package/dist/src/tools/retrieve-block.d.ts.map +1 -1
  82. package/dist/src/tools/retrieve-block.js +13 -10
  83. package/dist/src/tools/retrieve-bot-user.js +1 -1
  84. package/dist/src/tools/retrieve-data-source.d.ts +1 -1
  85. package/dist/src/tools/retrieve-data-source.d.ts.map +1 -1
  86. package/dist/src/tools/retrieve-data-source.js +15 -11
  87. package/dist/src/tools/retrieve-database.d.ts +1 -1
  88. package/dist/src/tools/retrieve-database.d.ts.map +1 -1
  89. package/dist/src/tools/retrieve-database.js +11 -6
  90. package/dist/src/tools/retrieve-page-property.d.ts.map +1 -1
  91. package/dist/src/tools/retrieve-page-property.js +6 -5
  92. package/dist/src/tools/retrieve-page.d.ts +1 -1
  93. package/dist/src/tools/retrieve-page.d.ts.map +1 -1
  94. package/dist/src/tools/retrieve-page.js +15 -20
  95. package/dist/src/tools/retrieve-user.d.ts.map +1 -1
  96. package/dist/src/tools/retrieve-user.js +2 -1
  97. package/dist/src/tools/search.d.ts.map +1 -1
  98. package/dist/src/tools/search.js +10 -17
  99. package/dist/src/tools/update-block-simple.d.ts +1 -1
  100. package/dist/src/tools/update-block-simple.d.ts.map +1 -1
  101. package/dist/src/tools/update-block-simple.js +14 -4
  102. package/dist/src/tools/update-block.d.ts.map +1 -1
  103. package/dist/src/tools/update-block.js +8 -5
  104. package/dist/src/tools/update-data-source.d.ts.map +1 -1
  105. package/dist/src/tools/update-data-source.js +7 -7
  106. package/dist/src/tools/update-database.d.ts.map +1 -1
  107. package/dist/src/tools/update-database.js +22 -32
  108. package/dist/src/tools/update-page.d.ts.map +1 -1
  109. package/dist/src/tools/update-page.js +11 -8
  110. package/dist/src/utils/error-handler.d.ts +16 -7
  111. package/dist/src/utils/error-handler.d.ts.map +1 -1
  112. package/dist/src/utils/error-handler.js +44 -17
  113. package/dist/src/utils/index.d.ts +1 -1
  114. package/dist/src/utils/index.d.ts.map +1 -1
  115. package/dist/src/utils/index.js +1 -1
  116. package/package.json +2 -1
  117. package/dist/src/schemas/block.d.ts +0 -3787
  118. package/dist/src/schemas/block.d.ts.map +0 -1
  119. package/dist/src/schemas/block.js +0 -402
  120. package/dist/src/schemas/common.d.ts +0 -638
  121. package/dist/src/schemas/common.d.ts.map +0 -1
  122. package/dist/src/schemas/common.js +0 -163
  123. package/dist/src/schemas/database.d.ts +0 -687
  124. package/dist/src/schemas/database.d.ts.map +0 -1
  125. package/dist/src/schemas/database.js +0 -258
  126. package/dist/src/schemas/filter.d.ts +0 -611
  127. package/dist/src/schemas/filter.d.ts.map +0 -1
  128. package/dist/src/schemas/filter.js +0 -222
  129. package/dist/src/schemas/page.d.ts +0 -2607
  130. package/dist/src/schemas/page.d.ts.map +0 -1
  131. package/dist/src/schemas/page.js +0 -328
  132. package/dist/src/schemas/schemas.test.d.ts +0 -2
  133. package/dist/src/schemas/schemas.test.d.ts.map +0 -1
  134. package/dist/src/schemas/schemas.test.js +0 -418
@@ -1 +0,0 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../src/schemas/block.ts"],"names":[],"mappings":"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"}
@@ -1,402 +0,0 @@
1
- import { z } from 'zod';
2
- import { ColorSchema, RichTextArraySchema } from './common.js';
3
- // File object schemas (used by image, video, audio, file, pdf blocks)
4
- export const ExternalFileSchema = z.object({
5
- type: z.literal('external'),
6
- external: z.object({
7
- url: z.string(),
8
- }),
9
- });
10
- export const NotionFileSchema = z.object({
11
- type: z.literal('file'),
12
- file: z.object({
13
- url: z.string(),
14
- expiry_time: z.string().optional(),
15
- }),
16
- });
17
- export const FileUploadSchema = z.object({
18
- type: z.literal('file_upload'),
19
- file_upload: z.object({
20
- id: z.string(),
21
- expiry_time: z.string().optional(),
22
- }),
23
- });
24
- export const FileObjectSchema = z.union([ExternalFileSchema, NotionFileSchema, FileUploadSchema]);
25
- // Icon schemas for callout
26
- export const EmojiIconBlockSchema = z.object({
27
- type: z.literal('emoji'),
28
- emoji: z.string(),
29
- });
30
- export const FileIconBlockSchema = z.object({
31
- type: z.literal('file'),
32
- file: z.object({
33
- url: z.string(),
34
- expiry_time: z.string().optional(),
35
- }),
36
- });
37
- export const ExternalIconBlockSchema = z.object({
38
- type: z.literal('external'),
39
- external: z.object({
40
- url: z.string(),
41
- }),
42
- });
43
- export const IconBlockSchema = z.union([
44
- EmojiIconBlockSchema,
45
- FileIconBlockSchema,
46
- ExternalIconBlockSchema,
47
- ]);
48
- // Paragraph block
49
- export const ParagraphBlockSchema = z.object({
50
- object: z.literal('block').optional(),
51
- type: z.literal('paragraph'),
52
- paragraph: z.object({
53
- rich_text: RichTextArraySchema,
54
- color: ColorSchema.optional(),
55
- children: z.array(z.lazy(() => BlockSchema)).optional(),
56
- }),
57
- });
58
- // Heading 1 block
59
- export const Heading1BlockSchema = z.object({
60
- object: z.literal('block').optional(),
61
- type: z.literal('heading_1'),
62
- heading_1: z.object({
63
- rich_text: RichTextArraySchema,
64
- color: ColorSchema.optional(),
65
- is_toggleable: z.boolean().optional(),
66
- children: z.array(z.lazy(() => BlockSchema)).optional(),
67
- }),
68
- });
69
- // Heading 2 block
70
- export const Heading2BlockSchema = z.object({
71
- object: z.literal('block').optional(),
72
- type: z.literal('heading_2'),
73
- heading_2: z.object({
74
- rich_text: RichTextArraySchema,
75
- color: ColorSchema.optional(),
76
- is_toggleable: z.boolean().optional(),
77
- children: z.array(z.lazy(() => BlockSchema)).optional(),
78
- }),
79
- });
80
- // Heading 3 block
81
- export const Heading3BlockSchema = z.object({
82
- object: z.literal('block').optional(),
83
- type: z.literal('heading_3'),
84
- heading_3: z.object({
85
- rich_text: RichTextArraySchema,
86
- color: ColorSchema.optional(),
87
- is_toggleable: z.boolean().optional(),
88
- children: z.array(z.lazy(() => BlockSchema)).optional(),
89
- }),
90
- });
91
- // Bulleted list item block
92
- export const BulletedListItemBlockSchema = z.object({
93
- object: z.literal('block').optional(),
94
- type: z.literal('bulleted_list_item'),
95
- bulleted_list_item: z.object({
96
- rich_text: RichTextArraySchema,
97
- color: ColorSchema.optional(),
98
- children: z.array(z.lazy(() => BlockSchema)).optional(),
99
- }),
100
- });
101
- // Numbered list item block
102
- export const NumberedListItemBlockSchema = z.object({
103
- object: z.literal('block').optional(),
104
- type: z.literal('numbered_list_item'),
105
- numbered_list_item: z.object({
106
- rich_text: RichTextArraySchema,
107
- color: ColorSchema.optional(),
108
- children: z.array(z.lazy(() => BlockSchema)).optional(),
109
- }),
110
- });
111
- // To-do block
112
- export const ToDoBlockSchema = z.object({
113
- object: z.literal('block').optional(),
114
- type: z.literal('to_do'),
115
- to_do: z.object({
116
- rich_text: RichTextArraySchema,
117
- checked: z.boolean().optional(),
118
- color: ColorSchema.optional(),
119
- children: z.array(z.lazy(() => BlockSchema)).optional(),
120
- }),
121
- });
122
- // Toggle block
123
- export const ToggleBlockSchema = z.object({
124
- object: z.literal('block').optional(),
125
- type: z.literal('toggle'),
126
- toggle: z.object({
127
- rich_text: RichTextArraySchema,
128
- color: ColorSchema.optional(),
129
- children: z.array(z.lazy(() => BlockSchema)).optional(),
130
- }),
131
- });
132
- // Code block
133
- export const CodeBlockSchema = z.object({
134
- object: z.literal('block').optional(),
135
- type: z.literal('code'),
136
- code: z.object({
137
- rich_text: RichTextArraySchema,
138
- language: z.string(),
139
- caption: RichTextArraySchema.optional(),
140
- }),
141
- });
142
- // Quote block
143
- export const QuoteBlockSchema = z.object({
144
- object: z.literal('block').optional(),
145
- type: z.literal('quote'),
146
- quote: z.object({
147
- rich_text: RichTextArraySchema,
148
- color: ColorSchema.optional(),
149
- children: z.array(z.lazy(() => BlockSchema)).optional(),
150
- }),
151
- });
152
- // Callout block
153
- export const CalloutBlockSchema = z.object({
154
- object: z.literal('block').optional(),
155
- type: z.literal('callout'),
156
- callout: z.object({
157
- rich_text: RichTextArraySchema,
158
- icon: IconBlockSchema.optional(),
159
- color: ColorSchema.optional(),
160
- children: z.array(z.lazy(() => BlockSchema)).optional(),
161
- }),
162
- });
163
- // Divider block
164
- export const DividerBlockSchema = z.object({
165
- object: z.literal('block').optional(),
166
- type: z.literal('divider'),
167
- divider: z.object({}).optional(),
168
- });
169
- // Bookmark block
170
- export const BookmarkBlockSchema = z.object({
171
- object: z.literal('block').optional(),
172
- type: z.literal('bookmark'),
173
- bookmark: z.object({
174
- url: z.string(),
175
- caption: RichTextArraySchema.optional(),
176
- }),
177
- });
178
- // Image block (supports external, file, file_upload)
179
- export const ImageBlockSchema = z.object({
180
- object: z.literal('block').optional(),
181
- type: z.literal('image'),
182
- image: z
183
- .object({
184
- caption: RichTextArraySchema.optional(),
185
- })
186
- .and(FileObjectSchema),
187
- });
188
- // Video block (supports external, file, file_upload)
189
- export const VideoBlockSchema = z.object({
190
- object: z.literal('block').optional(),
191
- type: z.literal('video'),
192
- video: z
193
- .object({
194
- caption: RichTextArraySchema.optional(),
195
- })
196
- .and(FileObjectSchema),
197
- });
198
- // Audio block
199
- export const AudioBlockSchema = z.object({
200
- object: z.literal('block').optional(),
201
- type: z.literal('audio'),
202
- audio: FileObjectSchema,
203
- });
204
- // File block
205
- export const FileBlockSchema = z.object({
206
- object: z.literal('block').optional(),
207
- type: z.literal('file'),
208
- file: z
209
- .object({
210
- caption: RichTextArraySchema.optional(),
211
- name: z.string().optional(),
212
- })
213
- .and(FileObjectSchema),
214
- });
215
- // PDF block
216
- export const PdfBlockSchema = z.object({
217
- object: z.literal('block').optional(),
218
- type: z.literal('pdf'),
219
- pdf: z
220
- .object({
221
- caption: RichTextArraySchema.optional(),
222
- })
223
- .and(FileObjectSchema),
224
- });
225
- // Embed block
226
- export const EmbedBlockSchema = z.object({
227
- object: z.literal('block').optional(),
228
- type: z.literal('embed'),
229
- embed: z.object({
230
- url: z.string(),
231
- caption: RichTextArraySchema.optional(),
232
- }),
233
- });
234
- // Equation block
235
- export const EquationBlockSchema = z.object({
236
- object: z.literal('block').optional(),
237
- type: z.literal('equation'),
238
- equation: z.object({
239
- expression: z.string(),
240
- }),
241
- });
242
- // Table of contents block
243
- export const TableOfContentsBlockSchema = z.object({
244
- object: z.literal('block').optional(),
245
- type: z.literal('table_of_contents'),
246
- table_of_contents: z.object({
247
- color: ColorSchema.optional(),
248
- }),
249
- });
250
- // Breadcrumb block
251
- export const BreadcrumbBlockSchema = z.object({
252
- object: z.literal('block').optional(),
253
- type: z.literal('breadcrumb'),
254
- breadcrumb: z.object({}),
255
- });
256
- // Column list block
257
- export const ColumnListBlockSchema = z.object({
258
- object: z.literal('block').optional(),
259
- type: z.literal('column_list'),
260
- column_list: z.object({
261
- children: z.array(z.lazy(() => ColumnBlockSchema)).optional(),
262
- }),
263
- });
264
- // Column block
265
- export const ColumnBlockSchema = z.object({
266
- object: z.literal('block').optional(),
267
- type: z.literal('column'),
268
- column: z.object({
269
- children: z.array(z.lazy(() => BlockSchema)).optional(),
270
- }),
271
- });
272
- // Child page block
273
- export const ChildPageBlockSchema = z.object({
274
- object: z.literal('block').optional(),
275
- type: z.literal('child_page'),
276
- child_page: z.object({
277
- title: z.string(),
278
- }),
279
- });
280
- // Child database block
281
- export const ChildDatabaseBlockSchema = z.object({
282
- object: z.literal('block').optional(),
283
- type: z.literal('child_database'),
284
- child_database: z.object({
285
- title: z.string(),
286
- }),
287
- });
288
- // Link preview block (read-only)
289
- export const LinkPreviewBlockSchema = z.object({
290
- object: z.literal('block').optional(),
291
- type: z.literal('link_preview'),
292
- link_preview: z.object({
293
- url: z.string(),
294
- }),
295
- });
296
- // Link to page block
297
- export const LinkToPageBlockSchema = z.object({
298
- object: z.literal('block').optional(),
299
- type: z.literal('link_to_page'),
300
- link_to_page: z.union([
301
- z.object({
302
- type: z.literal('page_id'),
303
- page_id: z.string(),
304
- }),
305
- z.object({
306
- type: z.literal('database_id'),
307
- database_id: z.string(),
308
- }),
309
- ]),
310
- });
311
- // Synced block (original)
312
- export const SyncedBlockOriginalSchema = z.object({
313
- object: z.literal('block').optional(),
314
- type: z.literal('synced_block'),
315
- synced_block: z.object({
316
- synced_from: z.null(),
317
- children: z.array(z.lazy(() => BlockSchema)).optional(),
318
- }),
319
- });
320
- // Synced block (duplicate/reference)
321
- export const SyncedBlockDuplicateSchema = z.object({
322
- object: z.literal('block').optional(),
323
- type: z.literal('synced_block'),
324
- synced_block: z.object({
325
- synced_from: z.object({
326
- type: z.literal('block_id').optional(),
327
- block_id: z.string(),
328
- }),
329
- }),
330
- });
331
- export const SyncedBlockSchema = z.union([SyncedBlockOriginalSchema, SyncedBlockDuplicateSchema]);
332
- // Table block
333
- export const TableBlockSchema = z.object({
334
- object: z.literal('block').optional(),
335
- type: z.literal('table'),
336
- table: z.object({
337
- table_width: z.number().int(),
338
- has_column_header: z.boolean().optional(),
339
- has_row_header: z.boolean().optional(),
340
- children: z.array(z.lazy(() => TableRowBlockSchema)).optional(),
341
- }),
342
- });
343
- // Table row block
344
- export const TableRowBlockSchema = z.object({
345
- object: z.literal('block').optional(),
346
- type: z.literal('table_row'),
347
- table_row: z.object({
348
- cells: z.array(RichTextArraySchema),
349
- }),
350
- });
351
- // Template block (deprecated)
352
- export const TemplateBlockSchema = z.object({
353
- object: z.literal('block').optional(),
354
- type: z.literal('template'),
355
- template: z.object({
356
- rich_text: RichTextArraySchema,
357
- children: z.array(z.lazy(() => BlockSchema)).optional(),
358
- }),
359
- });
360
- // Unsupported block (for read-only blocks)
361
- export const UnsupportedBlockSchema = z.object({
362
- object: z.literal('block').optional(),
363
- type: z.literal('unsupported'),
364
- unsupported: z.object({}).optional(),
365
- });
366
- // Combined block schema with proper type annotation for recursive structure
367
- export const BlockSchema = z.lazy(() => z.union([
368
- ParagraphBlockSchema,
369
- Heading1BlockSchema,
370
- Heading2BlockSchema,
371
- Heading3BlockSchema,
372
- BulletedListItemBlockSchema,
373
- NumberedListItemBlockSchema,
374
- ToDoBlockSchema,
375
- ToggleBlockSchema,
376
- CodeBlockSchema,
377
- QuoteBlockSchema,
378
- CalloutBlockSchema,
379
- DividerBlockSchema,
380
- BookmarkBlockSchema,
381
- ImageBlockSchema,
382
- VideoBlockSchema,
383
- AudioBlockSchema,
384
- FileBlockSchema,
385
- PdfBlockSchema,
386
- EmbedBlockSchema,
387
- EquationBlockSchema,
388
- TableOfContentsBlockSchema,
389
- BreadcrumbBlockSchema,
390
- ColumnListBlockSchema,
391
- ColumnBlockSchema,
392
- ChildPageBlockSchema,
393
- ChildDatabaseBlockSchema,
394
- LinkPreviewBlockSchema,
395
- LinkToPageBlockSchema,
396
- SyncedBlockSchema,
397
- TableBlockSchema,
398
- TableRowBlockSchema,
399
- TemplateBlockSchema,
400
- UnsupportedBlockSchema,
401
- ]));
402
- export const BlockChildrenSchema = z.array(BlockSchema);