@keystrokehq/notion 0.1.2 → 0.1.3

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 (266) hide show
  1. package/README.md +1 -1
  2. package/dist/actions/add-multiple-page-content.cjs +5 -5
  3. package/dist/actions/add-multiple-page-content.cjs.map +1 -1
  4. package/dist/actions/add-multiple-page-content.d.cts +18 -16
  5. package/dist/actions/add-multiple-page-content.d.cts.map +1 -1
  6. package/dist/actions/add-multiple-page-content.d.mts +18 -16
  7. package/dist/actions/add-multiple-page-content.d.mts.map +1 -1
  8. package/dist/actions/add-multiple-page-content.mjs +5 -5
  9. package/dist/actions/add-multiple-page-content.mjs.map +1 -1
  10. package/dist/actions/append-code-blocks.cjs +60 -60
  11. package/dist/actions/append-code-blocks.cjs.map +1 -1
  12. package/dist/actions/append-code-blocks.d.cts +167 -149
  13. package/dist/actions/append-code-blocks.d.mts +167 -149
  14. package/dist/actions/append-code-blocks.mjs +60 -60
  15. package/dist/actions/append-code-blocks.mjs.map +1 -1
  16. package/dist/actions/append-layout-blocks.cjs +51 -51
  17. package/dist/actions/append-layout-blocks.cjs.map +1 -1
  18. package/dist/actions/append-layout-blocks.d.cts +151 -141
  19. package/dist/actions/append-layout-blocks.d.mts +151 -141
  20. package/dist/actions/append-layout-blocks.mjs +51 -51
  21. package/dist/actions/append-layout-blocks.mjs.map +1 -1
  22. package/dist/actions/append-media-blocks.cjs +85 -85
  23. package/dist/actions/append-media-blocks.cjs.map +1 -1
  24. package/dist/actions/append-media-blocks.d.cts +217 -174
  25. package/dist/actions/append-media-blocks.d.mts +217 -174
  26. package/dist/actions/append-media-blocks.mjs +85 -85
  27. package/dist/actions/append-media-blocks.mjs.map +1 -1
  28. package/dist/actions/append-table-blocks.cjs +47 -47
  29. package/dist/actions/append-table-blocks.cjs.map +1 -1
  30. package/dist/actions/append-table-blocks.d.cts +143 -137
  31. package/dist/actions/append-table-blocks.d.mts +143 -137
  32. package/dist/actions/append-table-blocks.mjs +47 -47
  33. package/dist/actions/append-table-blocks.mjs.map +1 -1
  34. package/dist/actions/append-task-blocks.cjs +61 -61
  35. package/dist/actions/append-task-blocks.cjs.map +1 -1
  36. package/dist/actions/append-task-blocks.d.cts +169 -150
  37. package/dist/actions/append-task-blocks.d.mts +169 -150
  38. package/dist/actions/append-task-blocks.mjs +61 -61
  39. package/dist/actions/append-task-blocks.mjs.map +1 -1
  40. package/dist/actions/append-text-blocks.cjs +78 -78
  41. package/dist/actions/append-text-blocks.cjs.map +1 -1
  42. package/dist/actions/append-text-blocks.d.cts +203 -167
  43. package/dist/actions/append-text-blocks.d.mts +203 -167
  44. package/dist/actions/append-text-blocks.mjs +78 -78
  45. package/dist/actions/append-text-blocks.mjs.map +1 -1
  46. package/dist/actions/archive-notion-page.cjs +17 -17
  47. package/dist/actions/archive-notion-page.cjs.map +1 -1
  48. package/dist/actions/archive-notion-page.d.cts +20 -20
  49. package/dist/actions/archive-notion-page.d.mts +20 -20
  50. package/dist/actions/archive-notion-page.mjs +17 -17
  51. package/dist/actions/archive-notion-page.mjs.map +1 -1
  52. package/dist/actions/create-comment.d.cts +9 -9
  53. package/dist/actions/create-comment.d.mts +9 -9
  54. package/dist/actions/create-database.cjs +15 -15
  55. package/dist/actions/create-database.cjs.map +1 -1
  56. package/dist/actions/create-database.d.cts +26 -25
  57. package/dist/actions/create-database.d.mts +26 -25
  58. package/dist/actions/create-database.mjs +15 -15
  59. package/dist/actions/create-database.mjs.map +1 -1
  60. package/dist/actions/create-file-upload.cjs +1 -1
  61. package/dist/actions/create-file-upload.cjs.map +1 -1
  62. package/dist/actions/create-file-upload.d.cts +1 -1
  63. package/dist/actions/create-file-upload.d.mts +1 -1
  64. package/dist/actions/create-file-upload.mjs +1 -1
  65. package/dist/actions/create-file-upload.mjs.map +1 -1
  66. package/dist/actions/create-notion-page.cjs +14 -14
  67. package/dist/actions/create-notion-page.cjs.map +1 -1
  68. package/dist/actions/create-notion-page.d.cts +18 -18
  69. package/dist/actions/create-notion-page.d.mts +18 -18
  70. package/dist/actions/create-notion-page.mjs +14 -14
  71. package/dist/actions/create-notion-page.mjs.map +1 -1
  72. package/dist/actions/delete-block.cjs +46 -46
  73. package/dist/actions/delete-block.cjs.map +1 -1
  74. package/dist/actions/delete-block.d.cts +338 -338
  75. package/dist/actions/delete-block.d.mts +338 -338
  76. package/dist/actions/delete-block.mjs +46 -46
  77. package/dist/actions/delete-block.mjs.map +1 -1
  78. package/dist/actions/duplicate-page.cjs +20 -20
  79. package/dist/actions/duplicate-page.cjs.map +1 -1
  80. package/dist/actions/duplicate-page.d.cts +24 -24
  81. package/dist/actions/duplicate-page.d.mts +24 -24
  82. package/dist/actions/duplicate-page.mjs +20 -20
  83. package/dist/actions/duplicate-page.mjs.map +1 -1
  84. package/dist/actions/fetch-all-block-contents.cjs +58 -58
  85. package/dist/actions/fetch-all-block-contents.cjs.map +1 -1
  86. package/dist/actions/fetch-all-block-contents.d.cts +4 -4
  87. package/dist/actions/fetch-all-block-contents.d.mts +4 -4
  88. package/dist/actions/fetch-all-block-contents.mjs +58 -58
  89. package/dist/actions/fetch-all-block-contents.mjs.map +1 -1
  90. package/dist/actions/fetch-block-contents.cjs +49 -49
  91. package/dist/actions/fetch-block-contents.cjs.map +1 -1
  92. package/dist/actions/fetch-block-contents.d.cts +172 -172
  93. package/dist/actions/fetch-block-contents.d.mts +172 -172
  94. package/dist/actions/fetch-block-contents.mjs +49 -49
  95. package/dist/actions/fetch-block-contents.mjs.map +1 -1
  96. package/dist/actions/fetch-block-metadata.cjs +43 -43
  97. package/dist/actions/fetch-block-metadata.cjs.map +1 -1
  98. package/dist/actions/fetch-block-metadata.d.cts +296 -296
  99. package/dist/actions/fetch-block-metadata.d.mts +296 -296
  100. package/dist/actions/fetch-block-metadata.mjs +43 -43
  101. package/dist/actions/fetch-block-metadata.mjs.map +1 -1
  102. package/dist/actions/fetch-comments.cjs +24 -24
  103. package/dist/actions/fetch-comments.cjs.map +1 -1
  104. package/dist/actions/fetch-comments.d.cts +33 -33
  105. package/dist/actions/fetch-comments.d.mts +33 -33
  106. package/dist/actions/fetch-comments.mjs +24 -24
  107. package/dist/actions/fetch-comments.mjs.map +1 -1
  108. package/dist/actions/fetch-data.cjs +33 -33
  109. package/dist/actions/fetch-data.cjs.map +1 -1
  110. package/dist/actions/fetch-data.d.cts +131 -131
  111. package/dist/actions/fetch-data.d.mts +131 -131
  112. package/dist/actions/fetch-data.mjs +33 -33
  113. package/dist/actions/fetch-data.mjs.map +1 -1
  114. package/dist/actions/fetch-database.cjs +13 -13
  115. package/dist/actions/fetch-database.cjs.map +1 -1
  116. package/dist/actions/fetch-database.d.cts +18 -18
  117. package/dist/actions/fetch-database.d.mts +18 -18
  118. package/dist/actions/fetch-database.mjs +13 -13
  119. package/dist/actions/fetch-database.mjs.map +1 -1
  120. package/dist/actions/fetch-row.cjs +23 -23
  121. package/dist/actions/fetch-row.cjs.map +1 -1
  122. package/dist/actions/fetch-row.d.cts +40 -40
  123. package/dist/actions/fetch-row.d.mts +40 -40
  124. package/dist/actions/fetch-row.mjs +23 -23
  125. package/dist/actions/fetch-row.mjs.map +1 -1
  126. package/dist/actions/get-about-user.cjs +6 -6
  127. package/dist/actions/get-about-user.cjs.map +1 -1
  128. package/dist/actions/get-about-user.d.cts +8 -8
  129. package/dist/actions/get-about-user.d.mts +8 -8
  130. package/dist/actions/get-about-user.mjs +6 -6
  131. package/dist/actions/get-about-user.mjs.map +1 -1
  132. package/dist/actions/get-page-markdown.cjs +1 -1
  133. package/dist/actions/get-page-markdown.cjs.map +1 -1
  134. package/dist/actions/get-page-markdown.d.cts +1 -1
  135. package/dist/actions/get-page-markdown.d.mts +1 -1
  136. package/dist/actions/get-page-markdown.mjs +1 -1
  137. package/dist/actions/get-page-markdown.mjs.map +1 -1
  138. package/dist/actions/insert-row-database.cjs +22 -22
  139. package/dist/actions/insert-row-database.cjs.map +1 -1
  140. package/dist/actions/insert-row-database.d.cts +40 -38
  141. package/dist/actions/insert-row-database.d.mts +40 -38
  142. package/dist/actions/insert-row-database.mjs +22 -22
  143. package/dist/actions/insert-row-database.mjs.map +1 -1
  144. package/dist/actions/insert-row-from-nl.cjs +1 -1
  145. package/dist/actions/insert-row-from-nl.cjs.map +1 -1
  146. package/dist/actions/insert-row-from-nl.d.cts +1 -1
  147. package/dist/actions/insert-row-from-nl.d.mts +1 -1
  148. package/dist/actions/insert-row-from-nl.mjs +1 -1
  149. package/dist/actions/insert-row-from-nl.mjs.map +1 -1
  150. package/dist/actions/list-data-source-templates.cjs +2 -2
  151. package/dist/actions/list-data-source-templates.cjs.map +1 -1
  152. package/dist/actions/list-data-source-templates.d.cts +2 -2
  153. package/dist/actions/list-data-source-templates.d.mts +2 -2
  154. package/dist/actions/list-data-source-templates.mjs +2 -2
  155. package/dist/actions/list-data-source-templates.mjs.map +1 -1
  156. package/dist/actions/list-file-uploads.cjs +2 -2
  157. package/dist/actions/list-file-uploads.cjs.map +1 -1
  158. package/dist/actions/list-file-uploads.d.cts +2 -2
  159. package/dist/actions/list-file-uploads.d.mts +2 -2
  160. package/dist/actions/list-file-uploads.mjs +2 -2
  161. package/dist/actions/list-file-uploads.mjs.map +1 -1
  162. package/dist/actions/list-users.cjs +8 -8
  163. package/dist/actions/list-users.cjs.map +1 -1
  164. package/dist/actions/list-users.d.cts +11 -11
  165. package/dist/actions/list-users.d.mts +11 -11
  166. package/dist/actions/list-users.mjs +8 -8
  167. package/dist/actions/list-users.mjs.map +1 -1
  168. package/dist/actions/move-page.cjs +18 -18
  169. package/dist/actions/move-page.cjs.map +1 -1
  170. package/dist/actions/move-page.d.cts +23 -21
  171. package/dist/actions/move-page.d.mts +23 -21
  172. package/dist/actions/move-page.mjs +18 -18
  173. package/dist/actions/move-page.mjs.map +1 -1
  174. package/dist/actions/query-data-source.cjs +18 -18
  175. package/dist/actions/query-data-source.cjs.map +1 -1
  176. package/dist/actions/query-data-source.d.cts +34 -32
  177. package/dist/actions/query-data-source.d.cts.map +1 -1
  178. package/dist/actions/query-data-source.d.mts +34 -32
  179. package/dist/actions/query-data-source.d.mts.map +1 -1
  180. package/dist/actions/query-data-source.mjs +18 -18
  181. package/dist/actions/query-data-source.mjs.map +1 -1
  182. package/dist/actions/query-database-with-filter.cjs +25 -25
  183. package/dist/actions/query-database-with-filter.cjs.map +1 -1
  184. package/dist/actions/query-database-with-filter.d.cts +50 -48
  185. package/dist/actions/query-database-with-filter.d.cts.map +1 -1
  186. package/dist/actions/query-database-with-filter.d.mts +50 -48
  187. package/dist/actions/query-database-with-filter.d.mts.map +1 -1
  188. package/dist/actions/query-database-with-filter.mjs +25 -25
  189. package/dist/actions/query-database-with-filter.mjs.map +1 -1
  190. package/dist/actions/query-database.cjs +24 -24
  191. package/dist/actions/query-database.cjs.map +1 -1
  192. package/dist/actions/query-database.d.cts +49 -48
  193. package/dist/actions/query-database.d.mts +49 -48
  194. package/dist/actions/query-database.mjs +24 -24
  195. package/dist/actions/query-database.mjs.map +1 -1
  196. package/dist/actions/replace-page-content.cjs +130 -130
  197. package/dist/actions/replace-page-content.cjs.map +1 -1
  198. package/dist/actions/replace-page-content.d.cts +261 -131
  199. package/dist/actions/replace-page-content.d.mts +261 -131
  200. package/dist/actions/replace-page-content.mjs +130 -130
  201. package/dist/actions/replace-page-content.mjs.map +1 -1
  202. package/dist/actions/retrieve-database-property.cjs +25 -25
  203. package/dist/actions/retrieve-database-property.cjs.map +1 -1
  204. package/dist/actions/retrieve-database-property.d.cts +28 -28
  205. package/dist/actions/retrieve-database-property.d.mts +28 -28
  206. package/dist/actions/retrieve-database-property.mjs +25 -25
  207. package/dist/actions/retrieve-database-property.mjs.map +1 -1
  208. package/dist/actions/retrieve-file-upload.cjs +1 -1
  209. package/dist/actions/retrieve-file-upload.cjs.map +1 -1
  210. package/dist/actions/retrieve-file-upload.d.cts +1 -1
  211. package/dist/actions/retrieve-file-upload.d.mts +1 -1
  212. package/dist/actions/retrieve-file-upload.mjs +1 -1
  213. package/dist/actions/retrieve-file-upload.mjs.map +1 -1
  214. package/dist/actions/retrieve-page.cjs +23 -23
  215. package/dist/actions/retrieve-page.cjs.map +1 -1
  216. package/dist/actions/retrieve-page.d.cts +38 -38
  217. package/dist/actions/retrieve-page.d.mts +38 -38
  218. package/dist/actions/retrieve-page.mjs +23 -23
  219. package/dist/actions/retrieve-page.mjs.map +1 -1
  220. package/dist/actions/search-notion-page.cjs +34 -34
  221. package/dist/actions/search-notion-page.cjs.map +1 -1
  222. package/dist/actions/search-notion-page.d.cts +157 -157
  223. package/dist/actions/search-notion-page.d.mts +157 -157
  224. package/dist/actions/search-notion-page.mjs +34 -34
  225. package/dist/actions/search-notion-page.mjs.map +1 -1
  226. package/dist/actions/send-file-upload.cjs +1 -1
  227. package/dist/actions/send-file-upload.cjs.map +1 -1
  228. package/dist/actions/send-file-upload.d.cts +1 -1
  229. package/dist/actions/send-file-upload.d.mts +1 -1
  230. package/dist/actions/send-file-upload.mjs +1 -1
  231. package/dist/actions/send-file-upload.mjs.map +1 -1
  232. package/dist/actions/update-block.cjs +47 -47
  233. package/dist/actions/update-block.cjs.map +1 -1
  234. package/dist/actions/update-block.d.cts +141 -141
  235. package/dist/actions/update-block.d.mts +141 -141
  236. package/dist/actions/update-block.mjs +47 -47
  237. package/dist/actions/update-block.mjs.map +1 -1
  238. package/dist/actions/update-page.cjs +16 -16
  239. package/dist/actions/update-page.cjs.map +1 -1
  240. package/dist/actions/update-page.d.cts +23 -23
  241. package/dist/actions/update-page.d.mts +23 -23
  242. package/dist/actions/update-page.mjs +16 -16
  243. package/dist/actions/update-page.mjs.map +1 -1
  244. package/dist/actions/update-row-database.cjs +21 -21
  245. package/dist/actions/update-row-database.cjs.map +1 -1
  246. package/dist/actions/update-row-database.d.cts +29 -28
  247. package/dist/actions/update-row-database.d.mts +29 -28
  248. package/dist/actions/update-row-database.mjs +21 -21
  249. package/dist/actions/update-row-database.mjs.map +1 -1
  250. package/dist/actions/update-schema-database.cjs +8 -8
  251. package/dist/actions/update-schema-database.cjs.map +1 -1
  252. package/dist/actions/update-schema-database.d.cts +12 -11
  253. package/dist/actions/update-schema-database.d.mts +12 -11
  254. package/dist/actions/update-schema-database.mjs +8 -8
  255. package/dist/actions/update-schema-database.mjs.map +1 -1
  256. package/dist/actions/upsert-row-database.cjs +28 -28
  257. package/dist/actions/upsert-row-database.cjs.map +1 -1
  258. package/dist/actions/upsert-row-database.d.cts +54 -30
  259. package/dist/actions/upsert-row-database.d.mts +54 -30
  260. package/dist/actions/upsert-row-database.mjs +28 -28
  261. package/dist/actions/upsert-row-database.mjs.map +1 -1
  262. package/dist/execute.cjs +1 -1
  263. package/dist/execute.cjs.map +1 -1
  264. package/dist/execute.mjs +1 -1
  265. package/dist/execute.mjs.map +1 -1
  266. package/package.json +1 -1
@@ -11,9 +11,9 @@ const NotionAppendMediaBlocksInput = z.object({
11
11
  type: z.string().default("external").describe("Image source type. Use 'external' for URLs.").optional(),
12
12
  caption: z.array(z.object({
13
13
  text: z.object({
14
- link: z.object({ url: z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
14
+ link: z.object({ url: z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
15
15
  content: z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
16
- }).describe("The text content object."),
16
+ }).passthrough().describe("The text content object."),
17
17
  type: z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
18
18
  annotations: z.object({
19
19
  bold: z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -42,21 +42,21 @@ const NotionAppendMediaBlocksInput = z.object({
42
42
  italic: z.boolean().default(false).describe("Whether the text is italic.").optional(),
43
43
  underline: z.boolean().default(false).describe("Whether the text is underlined.").optional(),
44
44
  strikethrough: z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
45
- }).describe("Text styling annotations for rich text.").nullable().optional()
46
- }).describe("Rich text object for creating text content in blocks.")).nullable().optional(),
47
- external: z.object({ url: z.string().describe("URL of the external file, image, or video.") }).describe("External image URL.")
48
- }).describe("Image content."),
45
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
46
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).nullable().optional(),
47
+ external: z.object({ url: z.string().describe("URL of the external file, image, or video.") }).passthrough().describe("External image URL.")
48
+ }).passthrough().describe("Image content."),
49
49
  object: z.string().default("block").describe("Always 'block'.").optional()
50
- }).describe("An image block object."),
50
+ }).passthrough().describe("An image block object."),
51
51
  z.object({
52
52
  type: z.string().default("video").describe("Block type.").optional(),
53
53
  video: z.object({
54
54
  type: z.string().default("external").describe("Video source type. Use 'external' for URLs.").optional(),
55
55
  caption: z.array(z.object({
56
56
  text: z.object({
57
- link: z.object({ url: z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
57
+ link: z.object({ url: z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
58
58
  content: z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
59
- }).describe("The text content object."),
59
+ }).passthrough().describe("The text content object."),
60
60
  type: z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
61
61
  annotations: z.object({
62
62
  bold: z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -85,21 +85,21 @@ const NotionAppendMediaBlocksInput = z.object({
85
85
  italic: z.boolean().default(false).describe("Whether the text is italic.").optional(),
86
86
  underline: z.boolean().default(false).describe("Whether the text is underlined.").optional(),
87
87
  strikethrough: z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
88
- }).describe("Text styling annotations for rich text.").nullable().optional()
89
- }).describe("Rich text object for creating text content in blocks.")).nullable().optional(),
90
- external: z.object({ url: z.string().describe("URL of the external file, image, or video.") }).describe("External video URL. Supports YouTube, Vimeo, and direct video file URLs.")
91
- }).describe("Video content."),
88
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
89
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).nullable().optional(),
90
+ external: z.object({ url: z.string().describe("URL of the external file, image, or video.") }).passthrough().describe("External video URL. Supports YouTube, Vimeo, and direct video file URLs.")
91
+ }).passthrough().describe("Video content."),
92
92
  object: z.string().default("block").describe("Always 'block'.").optional()
93
- }).describe("A video block object."),
93
+ }).passthrough().describe("A video block object."),
94
94
  z.object({
95
95
  type: z.string().default("audio").describe("Block type.").optional(),
96
96
  audio: z.object({
97
97
  type: z.string().default("external").describe("Audio source type. Use 'external' for URLs.").optional(),
98
98
  caption: z.array(z.object({
99
99
  text: z.object({
100
- link: z.object({ url: z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
100
+ link: z.object({ url: z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
101
101
  content: z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
102
- }).describe("The text content object."),
102
+ }).passthrough().describe("The text content object."),
103
103
  type: z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
104
104
  annotations: z.object({
105
105
  bold: z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -128,20 +128,20 @@ const NotionAppendMediaBlocksInput = z.object({
128
128
  italic: z.boolean().default(false).describe("Whether the text is italic.").optional(),
129
129
  underline: z.boolean().default(false).describe("Whether the text is underlined.").optional(),
130
130
  strikethrough: z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
131
- }).describe("Text styling annotations for rich text.").nullable().optional()
132
- }).describe("Rich text object for creating text content in blocks.")).nullable().optional(),
133
- external: z.object({ url: z.string().describe("URL of the external file, image, or video.") }).describe("External audio URL.")
134
- }).describe("Audio content."),
131
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
132
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).nullable().optional(),
133
+ external: z.object({ url: z.string().describe("URL of the external file, image, or video.") }).passthrough().describe("External audio URL.")
134
+ }).passthrough().describe("Audio content."),
135
135
  object: z.string().default("block").describe("Always 'block'.").optional()
136
- }).describe("An audio block object."),
136
+ }).passthrough().describe("An audio block object."),
137
137
  z.object({
138
138
  file: z.object({
139
139
  type: z.string().default("external").describe("File source type. Use 'external' for URLs.").optional(),
140
140
  caption: z.array(z.object({
141
141
  text: z.object({
142
- link: z.object({ url: z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
142
+ link: z.object({ url: z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
143
143
  content: z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
144
- }).describe("The text content object."),
144
+ }).passthrough().describe("The text content object."),
145
145
  type: z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
146
146
  annotations: z.object({
147
147
  bold: z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -170,21 +170,21 @@ const NotionAppendMediaBlocksInput = z.object({
170
170
  italic: z.boolean().default(false).describe("Whether the text is italic.").optional(),
171
171
  underline: z.boolean().default(false).describe("Whether the text is underlined.").optional(),
172
172
  strikethrough: z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
173
- }).describe("Text styling annotations for rich text.").nullable().optional()
174
- }).describe("Rich text object for creating text content in blocks.")).nullable().optional(),
175
- external: z.object({ url: z.string().describe("URL of the external file, image, or video.") }).describe("External file URL.")
176
- }).describe("File content."),
173
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
174
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).nullable().optional(),
175
+ external: z.object({ url: z.string().describe("URL of the external file, image, or video.") }).passthrough().describe("External file URL.")
176
+ }).passthrough().describe("File content."),
177
177
  type: z.string().default("file").describe("Block type.").optional(),
178
178
  object: z.string().default("block").describe("Always 'block'.").optional()
179
- }).describe("A file block object."),
179
+ }).passthrough().describe("A file block object."),
180
180
  z.object({
181
181
  pdf: z.object({
182
182
  type: z.string().default("external").describe("PDF source type. Use 'external' for URLs.").optional(),
183
183
  caption: z.array(z.object({
184
184
  text: z.object({
185
- link: z.object({ url: z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
185
+ link: z.object({ url: z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
186
186
  content: z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
187
- }).describe("The text content object."),
187
+ }).passthrough().describe("The text content object."),
188
188
  type: z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
189
189
  annotations: z.object({
190
190
  bold: z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -213,18 +213,18 @@ const NotionAppendMediaBlocksInput = z.object({
213
213
  italic: z.boolean().default(false).describe("Whether the text is italic.").optional(),
214
214
  underline: z.boolean().default(false).describe("Whether the text is underlined.").optional(),
215
215
  strikethrough: z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
216
- }).describe("Text styling annotations for rich text.").nullable().optional()
217
- }).describe("Rich text object for creating text content in blocks.")).nullable().optional(),
218
- external: z.object({ url: z.string().describe("URL of the external file, image, or video.") }).describe("External PDF URL.")
219
- }).describe("PDF content."),
216
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
217
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).nullable().optional(),
218
+ external: z.object({ url: z.string().describe("URL of the external file, image, or video.") }).passthrough().describe("External PDF URL.")
219
+ }).passthrough().describe("PDF content."),
220
220
  type: z.string().default("pdf").describe("Block type.").optional(),
221
221
  object: z.string().default("block").describe("Always 'block'.").optional()
222
- }).describe("A PDF block object."),
222
+ }).passthrough().describe("A PDF block object."),
223
223
  z.object({
224
224
  type: z.string().default("embed").describe("Block type.").optional(),
225
- embed: z.object({ url: z.string().describe("URL to embed. Supports Twitter, Google Maps, Figma, CodePen, and more.") }).describe("Embed content."),
225
+ embed: z.object({ url: z.string().describe("URL to embed. Supports Twitter, Google Maps, Figma, CodePen, and more.") }).passthrough().describe("Embed content."),
226
226
  object: z.string().default("block").describe("Always 'block'.").optional()
227
- }).describe("An embed block object (iframe for supported services)."),
227
+ }).passthrough().describe("An embed block object (iframe for supported services)."),
228
228
  z.object({
229
229
  type: z.string().default("bookmark").describe("Block type.").optional(),
230
230
  object: z.string().default("block").describe("Always 'block'.").optional(),
@@ -232,9 +232,9 @@ const NotionAppendMediaBlocksInput = z.object({
232
232
  url: z.string().describe("URL of the webpage to bookmark."),
233
233
  caption: z.array(z.object({
234
234
  text: z.object({
235
- link: z.object({ url: z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
235
+ link: z.object({ url: z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
236
236
  content: z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
237
- }).describe("The text content object."),
237
+ }).passthrough().describe("The text content object."),
238
238
  type: z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
239
239
  annotations: z.object({
240
240
  bold: z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -263,22 +263,22 @@ const NotionAppendMediaBlocksInput = z.object({
263
263
  italic: z.boolean().default(false).describe("Whether the text is italic.").optional(),
264
264
  underline: z.boolean().default(false).describe("Whether the text is underlined.").optional(),
265
265
  strikethrough: z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
266
- }).describe("Text styling annotations for rich text.").nullable().optional()
267
- }).describe("Rich text object for creating text content in blocks.")).nullable().optional()
268
- }).describe("Bookmark content.")
269
- }).describe("A bookmark block object (link preview).")
266
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
267
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).nullable().optional()
268
+ }).passthrough().describe("Bookmark content.")
269
+ }).passthrough().describe("A bookmark block object (link preview).")
270
270
  ])).describe("Array of media block objects to append. Supported types:\n- image: Image from external URL\n- video: Video from YouTube, Vimeo, or direct URL\n- audio: Audio file from external URL\n- file: Generic file download link\n- pdf: PDF document (rendered inline)\n- embed: Embed from supported services (Twitter, Figma, CodePen, etc.)\n- bookmark: Link preview with title and description\n\nAll media types require an external URL.\nMax 100 blocks per request.")
271
271
  }).describe("Request model for appending media blocks to a Notion page.");
272
- const NotionAppendMediaBlocks_EmptyBlockObjectSchema = z.object({}).describe("Empty object for the 'block' field in list responses.\n\nThe Notion API returns an empty object {} for this field.");
272
+ const NotionAppendMediaBlocks_EmptyBlockObjectSchema = z.record(z.string(), z.unknown()).describe("Empty object for the 'block' field in list responses.\n\nThe Notion API returns an empty object {} for this field.");
273
273
  const NotionAppendMediaBlocks_NotionHostedFileResponseSchema = z.object({
274
274
  url: z.string().describe("Temporary URL for the file.").nullable(),
275
275
  expiry_time: z.string().describe("ISO 8601 timestamp when the URL expires.").nullable()
276
- }).describe("Notion-hosted file in API responses.");
277
- const NotionAppendMediaBlocks_TextLinkSchema = z.object({ url: z.string().describe("The URL the text links to.").nullable() }).describe("Link object for hyperlinked text.");
276
+ }).passthrough().describe("Notion-hosted file in API responses.");
277
+ const NotionAppendMediaBlocks_TextLinkSchema = z.object({ url: z.string().describe("The URL the text links to.").nullable() }).passthrough().describe("Link object for hyperlinked text.");
278
278
  const NotionAppendMediaBlocks_RichTextTextContentSchema = z.object({
279
279
  link: NotionAppendMediaBlocks_TextLinkSchema.nullable().optional(),
280
280
  content: z.string().describe("The actual text content.").nullable()
281
- }).describe("Text content object in rich text responses.");
281
+ }).passthrough().describe("Text content object in rich text responses.");
282
282
  const NotionAppendMediaBlocks_RichTextAnnotationsResponseSchema = z.object({
283
283
  bold: z.boolean().describe("Whether the text is bold.").nullable(),
284
284
  code: z.boolean().describe("Whether the text is inline code.").nullable(),
@@ -286,70 +286,70 @@ const NotionAppendMediaBlocks_RichTextAnnotationsResponseSchema = z.object({
286
286
  italic: z.boolean().describe("Whether the text is italic.").nullable(),
287
287
  underline: z.boolean().describe("Whether the text is underlined.").nullable(),
288
288
  strikethrough: z.boolean().describe("Whether the text has strikethrough.").nullable()
289
- }).describe("Text styling annotations returned in API responses.");
289
+ }).passthrough().describe("Text styling annotations returned in API responses.");
290
290
  const NotionAppendMediaBlocks_RichTextResponseSchema = z.object({
291
291
  href: z.string().describe("URL if the text is a link.").nullable().optional(),
292
292
  text: NotionAppendMediaBlocks_RichTextTextContentSchema.nullable().optional(),
293
293
  type: z.string().describe("Type of rich text (text, mention, equation).").nullable(),
294
294
  plain_text: z.string().describe("Plain text without formatting.").nullable(),
295
295
  annotations: NotionAppendMediaBlocks_RichTextAnnotationsResponseSchema.nullable()
296
- }).describe("Rich text object returned in API responses.");
297
- const NotionAppendMediaBlocks_ExternalFileResponseSchema = z.object({ url: z.string().describe("URL of the external file.").nullable() }).describe("External file URL in API responses.");
296
+ }).passthrough().describe("Rich text object returned in API responses.");
297
+ const NotionAppendMediaBlocks_ExternalFileResponseSchema = z.object({ url: z.string().describe("URL of the external file.").nullable() }).passthrough().describe("External file URL in API responses.");
298
298
  const NotionAppendMediaBlocks_PdfBlockContentSchema = z.object({
299
299
  file: NotionAppendMediaBlocks_NotionHostedFileResponseSchema.nullable().optional(),
300
300
  type: z.string().describe("PDF source type (external, file).").nullable(),
301
301
  caption: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("PDF caption as rich text.").nullable().optional(),
302
302
  external: NotionAppendMediaBlocks_ExternalFileResponseSchema.nullable().optional()
303
- }).describe("Content of a PDF block in API responses.");
303
+ }).passthrough().describe("Content of a PDF block in API responses.");
304
304
  const NotionAppendMediaBlocks_CodeBlockContentSchema = z.object({
305
305
  caption: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Code block caption.").nullable().optional(),
306
306
  language: z.string().describe("Programming language of the code.").nullable(),
307
307
  rich_text: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Rich text content of the code.")
308
- }).describe("Content of a code block in API responses.");
308
+ }).passthrough().describe("Content of a code block in API responses.");
309
309
  const NotionAppendMediaBlocks_FileBlockContentSchema = z.object({
310
310
  file: NotionAppendMediaBlocks_NotionHostedFileResponseSchema.nullable().optional(),
311
311
  name: z.string().describe("Name of the file.").nullable().optional(),
312
312
  type: z.string().describe("File source type (external, file).").nullable(),
313
313
  caption: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("File caption as rich text.").nullable().optional(),
314
314
  external: NotionAppendMediaBlocks_ExternalFileResponseSchema.nullable().optional()
315
- }).describe("Content of a file block in API responses.");
315
+ }).passthrough().describe("Content of a file block in API responses.");
316
316
  const NotionAppendMediaBlocks_AudioBlockContentSchema = z.object({
317
317
  file: NotionAppendMediaBlocks_NotionHostedFileResponseSchema.nullable().optional(),
318
318
  type: z.string().describe("Audio source type (external, file).").nullable(),
319
319
  caption: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Audio caption as rich text.").nullable().optional(),
320
320
  external: NotionAppendMediaBlocks_ExternalFileResponseSchema.nullable().optional()
321
- }).describe("Content of an audio block in API responses.");
321
+ }).passthrough().describe("Content of an audio block in API responses.");
322
322
  const NotionAppendMediaBlocks_EmbedBlockContentSchema = z.object({
323
323
  url: z.string().describe("URL of the embedded content.").nullable(),
324
324
  caption: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Embed caption as rich text.").nullable().optional()
325
- }).describe("Content of an embed block in API responses.");
325
+ }).passthrough().describe("Content of an embed block in API responses.");
326
326
  const NotionAppendMediaBlocks_ImageBlockContentSchema = z.object({
327
327
  file: NotionAppendMediaBlocks_NotionHostedFileResponseSchema.nullable().optional(),
328
328
  type: z.string().describe("Image source type (external, file).").nullable(),
329
329
  caption: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Image caption as rich text.").nullable().optional(),
330
330
  external: NotionAppendMediaBlocks_ExternalFileResponseSchema.nullable().optional()
331
- }).describe("Content of an image block in API responses.");
331
+ }).passthrough().describe("Content of an image block in API responses.");
332
332
  const NotionAppendMediaBlocks_QuoteBlockContentSchema = z.object({
333
333
  color: z.string().default("default").describe("Color of the quote.").nullable().optional(),
334
334
  rich_text: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Rich text content of the quote.")
335
- }).describe("Content of a quote block in API responses.");
335
+ }).passthrough().describe("Content of a quote block in API responses.");
336
336
  const NotionAppendMediaBlocks_TableBlockContentSchema = z.object({
337
337
  table_width: z.number().int().describe("Number of columns in the table.").nullable(),
338
338
  has_row_header: z.boolean().describe("Whether the first column is a header.").nullable(),
339
339
  has_column_header: z.boolean().describe("Whether the first row is a header.").nullable()
340
- }).describe("Content of a table block in API responses.");
340
+ }).passthrough().describe("Content of a table block in API responses.");
341
341
  const NotionAppendMediaBlocks_ToDoBlockContentSchema = z.object({
342
342
  color: z.string().default("default").describe("Color of the to-do item.").nullable().optional(),
343
343
  checked: z.boolean().default(false).describe("Whether the to-do is checked.").nullable().optional(),
344
344
  rich_text: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Rich text content of the to-do item.")
345
- }).describe("Content of a to-do block in API responses.");
345
+ }).passthrough().describe("Content of a to-do block in API responses.");
346
346
  const NotionAppendMediaBlocks_VideoBlockContentSchema = z.object({
347
347
  file: NotionAppendMediaBlocks_NotionHostedFileResponseSchema.nullable().optional(),
348
348
  type: z.string().describe("Video source type (external, file).").nullable(),
349
349
  caption: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Video caption as rich text.").nullable().optional(),
350
350
  external: NotionAppendMediaBlocks_ExternalFileResponseSchema.nullable().optional()
351
- }).describe("Content of a video block in API responses.");
352
- const NotionAppendMediaBlocks_ColumnBlockContentSchema = z.object({}).describe("Content of a column block (empty object).");
351
+ }).passthrough().describe("Content of a video block in API responses.");
352
+ const NotionAppendMediaBlocks_ColumnBlockContentSchema = z.record(z.string(), z.unknown()).describe("Content of a column block (empty object).");
353
353
  const NotionAppendMediaBlocks_BlockParentSchema = z.object({
354
354
  type: z.enum([
355
355
  "page_id",
@@ -359,37 +359,37 @@ const NotionAppendMediaBlocks_BlockParentSchema = z.object({
359
359
  page_id: z.string().describe("UUID of the parent page (when type is 'page_id').").nullable().optional(),
360
360
  block_id: z.string().describe("UUID of the parent block (when type is 'block_id').").nullable().optional(),
361
361
  data_source_id: z.string().describe("UUID of the parent data source (when type is 'data_source_id').").nullable().optional()
362
- }).describe("Information about a block's parent.");
362
+ }).passthrough().describe("Information about a block's parent.");
363
363
  const NotionAppendMediaBlocks_ToggleBlockContentSchema = z.object({
364
364
  color: z.string().default("default").describe("Color of the toggle.").nullable().optional(),
365
365
  rich_text: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Rich text content of the toggle.")
366
- }).describe("Content of a toggle block in API responses.");
366
+ }).passthrough().describe("Content of a toggle block in API responses.");
367
367
  const NotionAppendMediaBlocks_IconEmojiResponseSchema = z.object({
368
368
  type: z.string().describe("Icon type, always 'emoji'.").nullable(),
369
369
  emoji: z.string().describe("Emoji character for the icon.").nullable()
370
- }).describe("Emoji icon in API response.");
370
+ }).passthrough().describe("Emoji icon in API response.");
371
371
  const NotionAppendMediaBlocks_CustomEmojiObjectSchema = z.object({
372
372
  id: z.string().describe("Unique identifier for the custom emoji.").nullable(),
373
373
  url: z.string().describe("HTTPS URL pointing to the custom emoji image.").nullable(),
374
374
  name: z.string().describe("Display name of the custom emoji.").nullable()
375
- }).describe("Custom emoji object in API response.");
375
+ }).passthrough().describe("Custom emoji object in API response.");
376
376
  const NotionAppendMediaBlocks_IconCustomEmojiResponseSchema = z.object({
377
377
  type: z.string().describe("Icon type, always 'custom_emoji'.").nullable(),
378
378
  custom_emoji: NotionAppendMediaBlocks_CustomEmojiObjectSchema.nullable()
379
- }).describe("Custom emoji icon in API response.");
380
- const NotionAppendMediaBlocks_ExternalFileObjectSchema = z.object({ url: z.string().describe("URL of the external file.").nullable() }).describe("External file URL object in API response.");
379
+ }).passthrough().describe("Custom emoji icon in API response.");
380
+ const NotionAppendMediaBlocks_ExternalFileObjectSchema = z.object({ url: z.string().describe("URL of the external file.").nullable() }).passthrough().describe("External file URL object in API response.");
381
381
  const NotionAppendMediaBlocks_IconExternalResponseSchema = z.object({
382
382
  type: z.string().describe("Icon type, always 'external'.").nullable(),
383
383
  external: NotionAppendMediaBlocks_ExternalFileObjectSchema.nullable()
384
- }).describe("External file icon in API response.");
384
+ }).passthrough().describe("External file icon in API response.");
385
385
  const NotionAppendMediaBlocks_NotionFileObjectSchema = z.object({
386
386
  url: z.string().describe("Authenticated S3 URL to the file.").nullable(),
387
387
  expiry_time: z.string().describe("ISO 8601 timestamp when the URL expires.").nullable().optional()
388
- }).describe("Notion-hosted file object in API response.");
388
+ }).passthrough().describe("Notion-hosted file object in API response.");
389
389
  const NotionAppendMediaBlocks_IconFileResponseSchema = z.object({
390
390
  file: NotionAppendMediaBlocks_NotionFileObjectSchema.nullable(),
391
391
  type: z.string().describe("Icon type, always 'file'.").nullable()
392
- }).describe("Notion-hosted file icon in API response.");
392
+ }).passthrough().describe("Notion-hosted file icon in API response.");
393
393
  const NotionAppendMediaBlocks_CalloutBlockContentSchema = z.object({
394
394
  icon: z.union([
395
395
  NotionAppendMediaBlocks_IconEmojiResponseSchema,
@@ -399,38 +399,38 @@ const NotionAppendMediaBlocks_CalloutBlockContentSchema = z.object({
399
399
  ]).nullable().optional(),
400
400
  color: z.string().default("default").describe("Color of the callout.").nullable().optional(),
401
401
  rich_text: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Rich text content of the callout.")
402
- }).describe("Content of a callout block in API responses.");
403
- const NotionAppendMediaBlocks_DividerBlockContentSchema = z.object({}).describe("Content of a divider block (empty object).");
402
+ }).passthrough().describe("Content of a callout block in API responses.");
403
+ const NotionAppendMediaBlocks_DividerBlockContentSchema = z.record(z.string(), z.unknown()).describe("Content of a divider block (empty object).");
404
404
  const NotionAppendMediaBlocks_BookmarkBlockContentSchema = z.object({
405
405
  url: z.string().describe("URL of the bookmarked page.").nullable(),
406
406
  caption: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Bookmark caption as rich text.").nullable().optional()
407
- }).describe("Content of a bookmark block in API responses.");
408
- const NotionAppendMediaBlocks_EquationBlockContentSchema = z.object({ expression: z.string().describe("LaTeX expression for the equation.").nullable() }).describe("Content of an equation block in API responses.");
407
+ }).passthrough().describe("Content of a bookmark block in API responses.");
408
+ const NotionAppendMediaBlocks_EquationBlockContentSchema = z.object({ expression: z.string().describe("LaTeX expression for the equation.").nullable() }).passthrough().describe("Content of an equation block in API responses.");
409
409
  const NotionAppendMediaBlocks_HeadingBlockContentSchema = z.object({
410
410
  color: z.string().default("default").describe("Color of the heading.").nullable().optional(),
411
411
  rich_text: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Rich text content of the heading."),
412
412
  is_toggleable: z.boolean().default(false).describe("Whether the heading is toggleable.").nullable().optional()
413
- }).describe("Content of a heading block in API responses.");
413
+ }).passthrough().describe("Content of a heading block in API responses.");
414
414
  const NotionAppendMediaBlocks_ParagraphBlockContentSchema = z.object({
415
415
  color: z.string().default("default").describe("Color of the paragraph.").nullable().optional(),
416
416
  rich_text: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Rich text content of the paragraph.")
417
- }).describe("Content of a paragraph block in API responses.");
418
- const NotionAppendMediaBlocks_TableRowBlockContentSchema = z.object({ cells: z.array(z.array(NotionAppendMediaBlocks_RichTextResponseSchema)).describe("Array of cell contents (each cell is an array of rich text).") }).describe("Content of a table row block in API responses.");
419
- const NotionAppendMediaBlocks_BreadcrumbBlockContentSchema = z.object({}).describe("Content of a breadcrumb block (empty object).");
417
+ }).passthrough().describe("Content of a paragraph block in API responses.");
418
+ const NotionAppendMediaBlocks_TableRowBlockContentSchema = z.object({ cells: z.array(z.array(NotionAppendMediaBlocks_RichTextResponseSchema)).describe("Array of cell contents (each cell is an array of rich text).") }).passthrough().describe("Content of a table row block in API responses.");
419
+ const NotionAppendMediaBlocks_BreadcrumbBlockContentSchema = z.record(z.string(), z.unknown()).describe("Content of a breadcrumb block (empty object).");
420
420
  const NotionAppendMediaBlocks_PartialUserSchema = z.object({
421
421
  id: z.string().describe("Unique identifier for the user (UUID format).").nullable(),
422
422
  object: z.string().describe("Always 'user'.").nullable()
423
- }).describe("Partial user object representing a Notion user.");
424
- const NotionAppendMediaBlocks_ColumnListBlockContentSchema = z.object({}).describe("Content of a column list block (empty object).");
425
- const NotionAppendMediaBlocks_TableOfContentsBlockContentSchema = z.object({ color: z.string().default("default").describe("Color of the table of contents.").nullable().optional() }).describe("Content of a table of contents block in API responses.");
423
+ }).passthrough().describe("Partial user object representing a Notion user.");
424
+ const NotionAppendMediaBlocks_ColumnListBlockContentSchema = z.record(z.string(), z.unknown()).describe("Content of a column list block (empty object).");
425
+ const NotionAppendMediaBlocks_TableOfContentsBlockContentSchema = z.object({ color: z.string().default("default").describe("Color of the table of contents.").nullable().optional() }).passthrough().describe("Content of a table of contents block in API responses.");
426
426
  const NotionAppendMediaBlocks_BulletedListItemBlockContentSchema = z.object({
427
427
  color: z.string().default("default").describe("Color of the list item.").nullable().optional(),
428
428
  rich_text: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Rich text content of the list item.")
429
- }).describe("Content of a bulleted list item block in API responses.");
429
+ }).passthrough().describe("Content of a bulleted list item block in API responses.");
430
430
  const NotionAppendMediaBlocks_NumberedListItemBlockContentSchema = z.object({
431
431
  color: z.string().default("default").describe("Color of the list item.").nullable().optional(),
432
432
  rich_text: z.array(NotionAppendMediaBlocks_RichTextResponseSchema).describe("Rich text content of the list item.")
433
- }).describe("Content of a numbered list item block in API responses.");
433
+ }).passthrough().describe("Content of a numbered list item block in API responses.");
434
434
  const NotionAppendMediaBlocks_BlockSchema = z.object({
435
435
  id: z.string().describe("Unique identifier for the block (UUID v4 format).").nullable(),
436
436
  pdf: NotionAppendMediaBlocks_PdfBlockContentSchema.nullable().optional(),
@@ -469,7 +469,7 @@ const NotionAppendMediaBlocks_BlockSchema = z.object({
469
469
  table_of_contents: NotionAppendMediaBlocks_TableOfContentsBlockContentSchema.nullable().optional(),
470
470
  bulleted_list_item: NotionAppendMediaBlocks_BulletedListItemBlockContentSchema.nullable().optional(),
471
471
  numbered_list_item: NotionAppendMediaBlocks_NumberedListItemBlockContentSchema.nullable().optional()
472
- }).describe("Notion block object returned in the results array.\n\nContains common block metadata and type-specific content fields.\nOnly one of the block type content fields will be populated based on the 'type' field.");
472
+ }).passthrough().describe("Notion block object returned in the results array.\n\nContains common block metadata and type-specific content fields.\nOnly one of the block type content fields will be populated based on the 'type' field.");
473
473
  const notionAppendMediaBlocks = action("NOTION_APPEND_MEDIA_BLOCKS", {
474
474
  slug: "notion-append-media-blocks",
475
475
  name: "Append media blocks (image, video, audio, files)",
@@ -482,7 +482,7 @@ const notionAppendMediaBlocks = action("NOTION_APPEND_MEDIA_BLOCKS", {
482
482
  results: z.array(NotionAppendMediaBlocks_BlockSchema).describe("Array of newly created block objects that were appended as children."),
483
483
  has_more: z.boolean().describe("Whether there are more results available beyond this page.").nullable(),
484
484
  next_cursor: z.string().describe("Cursor for pagination. Null if there are no more results.").nullable().optional()
485
- }).describe("Standard response model for all append block actions.")
485
+ }).passthrough().describe("Standard response model for all append block actions.")
486
486
  });
487
487
  //#endregion
488
488
  export { notionAppendMediaBlocks };