@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
@@ -32,9 +32,9 @@ const NotionReplacePageContentInput = zod.z.object({
32
32
  ]).default("default").describe("Color of the paragraph text or background.").optional(),
33
33
  rich_text: zod.z.array(zod.z.object({
34
34
  text: zod.z.object({
35
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
35
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
36
36
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
37
- }).describe("The text content object."),
37
+ }).passthrough().describe("The text content object."),
38
38
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
39
39
  annotations: zod.z.object({
40
40
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -63,10 +63,10 @@ const NotionReplacePageContentInput = zod.z.object({
63
63
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
64
64
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
65
65
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
66
- }).describe("Text styling annotations for rich text.").nullable().optional()
67
- }).describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects. Each text.content is limited to 2000 chars.")
68
- }).describe("Paragraph content.")
69
- }).describe("A paragraph block object."),
66
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
67
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects. Each text.content is limited to 2000 chars.")
68
+ }).passthrough().describe("Paragraph content.")
69
+ }).passthrough().describe("A paragraph block object."),
70
70
  zod.z.object({
71
71
  type: zod.z.string().default("heading_1").describe("Block type.").optional(),
72
72
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
@@ -94,9 +94,9 @@ const NotionReplacePageContentInput = zod.z.object({
94
94
  ]).default("default").describe("Color of the heading.").optional(),
95
95
  rich_text: zod.z.array(zod.z.object({
96
96
  text: zod.z.object({
97
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
97
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
98
98
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
99
- }).describe("The text content object."),
99
+ }).passthrough().describe("The text content object."),
100
100
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
101
101
  annotations: zod.z.object({
102
102
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -125,11 +125,11 @@ const NotionReplacePageContentInput = zod.z.object({
125
125
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
126
126
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
127
127
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
128
- }).describe("Text styling annotations for rich text.").nullable().optional()
129
- }).describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the heading text."),
128
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
129
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the heading text."),
130
130
  is_toggleable: zod.z.boolean().default(false).describe("Whether the heading can be toggled to show/hide content.").optional()
131
- }).describe("Heading 1 content.")
132
- }).describe("A heading 1 block object (largest heading)."),
131
+ }).passthrough().describe("Heading 1 content.")
132
+ }).passthrough().describe("A heading 1 block object (largest heading)."),
133
133
  zod.z.object({
134
134
  type: zod.z.string().default("heading_2").describe("Block type.").optional(),
135
135
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
@@ -157,9 +157,9 @@ const NotionReplacePageContentInput = zod.z.object({
157
157
  ]).default("default").describe("Color of the heading.").optional(),
158
158
  rich_text: zod.z.array(zod.z.object({
159
159
  text: zod.z.object({
160
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
160
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
161
161
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
162
- }).describe("The text content object."),
162
+ }).passthrough().describe("The text content object."),
163
163
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
164
164
  annotations: zod.z.object({
165
165
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -188,11 +188,11 @@ const NotionReplacePageContentInput = zod.z.object({
188
188
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
189
189
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
190
190
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
191
- }).describe("Text styling annotations for rich text.").nullable().optional()
192
- }).describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the heading text."),
191
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
192
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the heading text."),
193
193
  is_toggleable: zod.z.boolean().default(false).describe("Whether the heading can be toggled to show/hide content.").optional()
194
- }).describe("Heading 2 content.")
195
- }).describe("A heading 2 block object (medium heading)."),
194
+ }).passthrough().describe("Heading 2 content.")
195
+ }).passthrough().describe("A heading 2 block object (medium heading)."),
196
196
  zod.z.object({
197
197
  type: zod.z.string().default("heading_3").describe("Block type.").optional(),
198
198
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
@@ -220,9 +220,9 @@ const NotionReplacePageContentInput = zod.z.object({
220
220
  ]).default("default").describe("Color of the heading.").optional(),
221
221
  rich_text: zod.z.array(zod.z.object({
222
222
  text: zod.z.object({
223
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
223
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
224
224
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
225
- }).describe("The text content object."),
225
+ }).passthrough().describe("The text content object."),
226
226
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
227
227
  annotations: zod.z.object({
228
228
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -251,11 +251,11 @@ const NotionReplacePageContentInput = zod.z.object({
251
251
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
252
252
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
253
253
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
254
- }).describe("Text styling annotations for rich text.").nullable().optional()
255
- }).describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the heading text."),
254
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
255
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the heading text."),
256
256
  is_toggleable: zod.z.boolean().default(false).describe("Whether the heading can be toggled to show/hide content.").optional()
257
- }).describe("Heading 3 content.")
258
- }).describe("A heading 3 block object (smallest heading)."),
257
+ }).passthrough().describe("Heading 3 content.")
258
+ }).passthrough().describe("A heading 3 block object (smallest heading)."),
259
259
  zod.z.object({
260
260
  type: zod.z.string().default("bulleted_list_item").describe("Block type.").optional(),
261
261
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
@@ -283,9 +283,9 @@ const NotionReplacePageContentInput = zod.z.object({
283
283
  ]).default("default").describe("Color of the list item.").optional(),
284
284
  rich_text: zod.z.array(zod.z.object({
285
285
  text: zod.z.object({
286
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
286
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
287
287
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
288
- }).describe("The text content object."),
288
+ }).passthrough().describe("The text content object."),
289
289
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
290
290
  annotations: zod.z.object({
291
291
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -314,10 +314,10 @@ const NotionReplacePageContentInput = zod.z.object({
314
314
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
315
315
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
316
316
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
317
- }).describe("Text styling annotations for rich text.").nullable().optional()
318
- }).describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the list item text.")
319
- }).describe("Bulleted list item content.")
320
- }).describe("A bulleted list item block object."),
317
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
318
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the list item text.")
319
+ }).passthrough().describe("Bulleted list item content.")
320
+ }).passthrough().describe("A bulleted list item block object."),
321
321
  zod.z.object({
322
322
  type: zod.z.string().default("numbered_list_item").describe("Block type.").optional(),
323
323
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
@@ -345,9 +345,9 @@ const NotionReplacePageContentInput = zod.z.object({
345
345
  ]).default("default").describe("Color of the list item.").optional(),
346
346
  rich_text: zod.z.array(zod.z.object({
347
347
  text: zod.z.object({
348
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
348
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
349
349
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
350
- }).describe("The text content object."),
350
+ }).passthrough().describe("The text content object."),
351
351
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
352
352
  annotations: zod.z.object({
353
353
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -376,10 +376,10 @@ const NotionReplacePageContentInput = zod.z.object({
376
376
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
377
377
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
378
378
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
379
- }).describe("Text styling annotations for rich text.").nullable().optional()
380
- }).describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the list item text.")
381
- }).describe("Numbered list item content.")
382
- }).describe("A numbered list item block object."),
379
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
380
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the list item text.")
381
+ }).passthrough().describe("Numbered list item content.")
382
+ }).passthrough().describe("A numbered list item block object."),
383
383
  zod.z.object({
384
384
  type: zod.z.string().default("to_do").describe("Block type.").optional(),
385
385
  to_do: zod.z.object({
@@ -407,9 +407,9 @@ const NotionReplacePageContentInput = zod.z.object({
407
407
  checked: zod.z.boolean().default(false).describe("Whether the to-do item is checked/completed.").optional(),
408
408
  rich_text: zod.z.array(zod.z.object({
409
409
  text: zod.z.object({
410
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
410
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
411
411
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
412
- }).describe("The text content object."),
412
+ }).passthrough().describe("The text content object."),
413
413
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
414
414
  annotations: zod.z.object({
415
415
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -438,11 +438,11 @@ const NotionReplacePageContentInput = zod.z.object({
438
438
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
439
439
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
440
440
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
441
- }).describe("Text styling annotations for rich text.").nullable().optional()
442
- }).describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the to-do text.")
443
- }).describe("To-do content."),
441
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
442
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the to-do text.")
443
+ }).passthrough().describe("To-do content."),
444
444
  object: zod.z.string().default("block").describe("Always 'block'.").optional()
445
- }).describe("A to-do/checkbox block object."),
445
+ }).passthrough().describe("A to-do/checkbox block object."),
446
446
  zod.z.object({
447
447
  type: zod.z.string().default("toggle").describe("Block type.").optional(),
448
448
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
@@ -470,9 +470,9 @@ const NotionReplacePageContentInput = zod.z.object({
470
470
  ]).default("default").describe("Color of the toggle.").optional(),
471
471
  rich_text: zod.z.array(zod.z.object({
472
472
  text: zod.z.object({
473
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
473
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
474
474
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
475
- }).describe("The text content object."),
475
+ }).passthrough().describe("The text content object."),
476
476
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
477
477
  annotations: zod.z.object({
478
478
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -501,10 +501,10 @@ const NotionReplacePageContentInput = zod.z.object({
501
501
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
502
502
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
503
503
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
504
- }).describe("Text styling annotations for rich text.").nullable().optional()
505
- }).describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the toggle header text.")
506
- }).describe("Toggle content.")
507
- }).describe("A toggle block object (collapsible content)."),
504
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
505
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the toggle header text.")
506
+ }).passthrough().describe("Toggle content.")
507
+ }).passthrough().describe("A toggle block object (collapsible content)."),
508
508
  zod.z.object({
509
509
  type: zod.z.string().default("callout").describe("Block type.").optional(),
510
510
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
@@ -512,7 +512,7 @@ const NotionReplacePageContentInput = zod.z.object({
512
512
  icon: zod.z.object({
513
513
  type: zod.z.string().default("emoji").describe("Icon type.").optional(),
514
514
  emoji: zod.z.string().describe("Emoji character for the icon.")
515
- }).describe("Emoji icon for callout blocks.").nullable().optional(),
515
+ }).passthrough().describe("Emoji icon for callout blocks.").nullable().optional(),
516
516
  color: zod.z.enum([
517
517
  "default",
518
518
  "gray",
@@ -536,9 +536,9 @@ const NotionReplacePageContentInput = zod.z.object({
536
536
  ]).default("default").describe("Background color of the callout.").optional(),
537
537
  rich_text: zod.z.array(zod.z.object({
538
538
  text: zod.z.object({
539
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
539
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
540
540
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
541
- }).describe("The text content object."),
541
+ }).passthrough().describe("The text content object."),
542
542
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
543
543
  annotations: zod.z.object({
544
544
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -567,17 +567,17 @@ const NotionReplacePageContentInput = zod.z.object({
567
567
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
568
568
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
569
569
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
570
- }).describe("Text styling annotations for rich text.").nullable().optional()
571
- }).describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the callout text.")
572
- }).describe("Callout content.")
573
- }).describe("A callout block object (highlighted content with icon)."),
570
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
571
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the callout text.")
572
+ }).passthrough().describe("Callout content.")
573
+ }).passthrough().describe("A callout block object (highlighted content with icon)."),
574
574
  zod.z.object({
575
575
  code: zod.z.object({
576
576
  caption: zod.z.array(zod.z.object({
577
577
  text: zod.z.object({
578
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
578
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
579
579
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
580
- }).describe("The text content object."),
580
+ }).passthrough().describe("The text content object."),
581
581
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
582
582
  annotations: zod.z.object({
583
583
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -606,8 +606,8 @@ const NotionReplacePageContentInput = zod.z.object({
606
606
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
607
607
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
608
608
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
609
- }).describe("Text styling annotations for rich text.").nullable().optional()
610
- }).describe("Rich text object for creating text content in blocks.")).nullable().optional(),
609
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
610
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).nullable().optional(),
611
611
  language: zod.z.enum([
612
612
  "abap",
613
613
  "arduino",
@@ -684,9 +684,9 @@ const NotionReplacePageContentInput = zod.z.object({
684
684
  ]).default("plain text").describe("Programming language for syntax highlighting.").optional(),
685
685
  rich_text: zod.z.array(zod.z.object({
686
686
  text: zod.z.object({
687
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
687
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
688
688
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
689
- }).describe("The text content object."),
689
+ }).passthrough().describe("The text content object."),
690
690
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
691
691
  annotations: zod.z.object({
692
692
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -715,12 +715,12 @@ const NotionReplacePageContentInput = zod.z.object({
715
715
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
716
716
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
717
717
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
718
- }).describe("Text styling annotations for rich text.").nullable().optional()
719
- }).describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects containing the code. Each text.content is limited to 2000 chars.")
720
- }).describe("Code content."),
718
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
719
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects containing the code. Each text.content is limited to 2000 chars.")
720
+ }).passthrough().describe("Code content."),
721
721
  type: zod.z.string().default("code").describe("Block type.").optional(),
722
722
  object: zod.z.string().default("block").describe("Always 'block'.").optional()
723
- }).describe("A code block object with syntax highlighting."),
723
+ }).passthrough().describe("A code block object with syntax highlighting."),
724
724
  zod.z.object({
725
725
  type: zod.z.string().default("quote").describe("Block type.").optional(),
726
726
  quote: zod.z.object({
@@ -747,9 +747,9 @@ const NotionReplacePageContentInput = zod.z.object({
747
747
  ]).default("default").describe("Color of the quote.").optional(),
748
748
  rich_text: zod.z.array(zod.z.object({
749
749
  text: zod.z.object({
750
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
750
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
751
751
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
752
- }).describe("The text content object."),
752
+ }).passthrough().describe("The text content object."),
753
753
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
754
754
  annotations: zod.z.object({
755
755
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -778,25 +778,25 @@ const NotionReplacePageContentInput = zod.z.object({
778
778
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
779
779
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
780
780
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
781
- }).describe("Text styling annotations for rich text.").nullable().optional()
782
- }).describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the quote text.")
783
- }).describe("Quote content."),
781
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
782
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).describe("Array of rich text objects for the quote text.")
783
+ }).passthrough().describe("Quote content."),
784
784
  object: zod.z.string().default("block").describe("Always 'block'.").optional()
785
- }).describe("A quote block object."),
785
+ }).passthrough().describe("A quote block object."),
786
786
  zod.z.object({
787
787
  type: zod.z.string().default("equation").describe("Block type.").optional(),
788
788
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
789
- equation: zod.z.object({ expression: zod.z.string().describe("LaTeX/KaTeX expression for the equation.") }).describe("Equation content.")
790
- }).describe("An equation block object (LaTeX/KaTeX)."),
789
+ equation: zod.z.object({ expression: zod.z.string().describe("LaTeX/KaTeX expression for the equation.") }).passthrough().describe("Equation content.")
790
+ }).passthrough().describe("An equation block object (LaTeX/KaTeX)."),
791
791
  zod.z.object({
792
792
  type: zod.z.string().default("image").describe("Block type.").optional(),
793
793
  image: zod.z.object({
794
794
  type: zod.z.string().default("external").describe("Image source type. Use 'external' for URLs.").optional(),
795
795
  caption: zod.z.array(zod.z.object({
796
796
  text: zod.z.object({
797
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
797
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
798
798
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
799
- }).describe("The text content object."),
799
+ }).passthrough().describe("The text content object."),
800
800
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
801
801
  annotations: zod.z.object({
802
802
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -825,21 +825,21 @@ const NotionReplacePageContentInput = zod.z.object({
825
825
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
826
826
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
827
827
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
828
- }).describe("Text styling annotations for rich text.").nullable().optional()
829
- }).describe("Rich text object for creating text content in blocks.")).nullable().optional(),
830
- external: zod.z.object({ url: zod.z.string().describe("URL of the external file, image, or video.") }).describe("External image URL.")
831
- }).describe("Image content."),
828
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
829
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).nullable().optional(),
830
+ external: zod.z.object({ url: zod.z.string().describe("URL of the external file, image, or video.") }).passthrough().describe("External image URL.")
831
+ }).passthrough().describe("Image content."),
832
832
  object: zod.z.string().default("block").describe("Always 'block'.").optional()
833
- }).describe("An image block object."),
833
+ }).passthrough().describe("An image block object."),
834
834
  zod.z.object({
835
835
  type: zod.z.string().default("video").describe("Block type.").optional(),
836
836
  video: zod.z.object({
837
837
  type: zod.z.string().default("external").describe("Video source type. Use 'external' for URLs.").optional(),
838
838
  caption: zod.z.array(zod.z.object({
839
839
  text: zod.z.object({
840
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
840
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
841
841
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
842
- }).describe("The text content object."),
842
+ }).passthrough().describe("The text content object."),
843
843
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
844
844
  annotations: zod.z.object({
845
845
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -868,21 +868,21 @@ const NotionReplacePageContentInput = zod.z.object({
868
868
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
869
869
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
870
870
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
871
- }).describe("Text styling annotations for rich text.").nullable().optional()
872
- }).describe("Rich text object for creating text content in blocks.")).nullable().optional(),
873
- external: zod.z.object({ url: zod.z.string().describe("URL of the external file, image, or video.") }).describe("External video URL. Supports YouTube, Vimeo, and direct video file URLs.")
874
- }).describe("Video content."),
871
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
872
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).nullable().optional(),
873
+ external: zod.z.object({ url: zod.z.string().describe("URL of the external file, image, or video.") }).passthrough().describe("External video URL. Supports YouTube, Vimeo, and direct video file URLs.")
874
+ }).passthrough().describe("Video content."),
875
875
  object: zod.z.string().default("block").describe("Always 'block'.").optional()
876
- }).describe("A video block object."),
876
+ }).passthrough().describe("A video block object."),
877
877
  zod.z.object({
878
878
  type: zod.z.string().default("audio").describe("Block type.").optional(),
879
879
  audio: zod.z.object({
880
880
  type: zod.z.string().default("external").describe("Audio source type. Use 'external' for URLs.").optional(),
881
881
  caption: zod.z.array(zod.z.object({
882
882
  text: zod.z.object({
883
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
883
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
884
884
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
885
- }).describe("The text content object."),
885
+ }).passthrough().describe("The text content object."),
886
886
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
887
887
  annotations: zod.z.object({
888
888
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -911,20 +911,20 @@ const NotionReplacePageContentInput = zod.z.object({
911
911
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
912
912
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
913
913
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
914
- }).describe("Text styling annotations for rich text.").nullable().optional()
915
- }).describe("Rich text object for creating text content in blocks.")).nullable().optional(),
916
- external: zod.z.object({ url: zod.z.string().describe("URL of the external file, image, or video.") }).describe("External audio URL.")
917
- }).describe("Audio content."),
914
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
915
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).nullable().optional(),
916
+ external: zod.z.object({ url: zod.z.string().describe("URL of the external file, image, or video.") }).passthrough().describe("External audio URL.")
917
+ }).passthrough().describe("Audio content."),
918
918
  object: zod.z.string().default("block").describe("Always 'block'.").optional()
919
- }).describe("An audio block object."),
919
+ }).passthrough().describe("An audio block object."),
920
920
  zod.z.object({
921
921
  file: zod.z.object({
922
922
  type: zod.z.string().default("external").describe("File source type. Use 'external' for URLs.").optional(),
923
923
  caption: zod.z.array(zod.z.object({
924
924
  text: zod.z.object({
925
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
925
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
926
926
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
927
- }).describe("The text content object."),
927
+ }).passthrough().describe("The text content object."),
928
928
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
929
929
  annotations: zod.z.object({
930
930
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -953,21 +953,21 @@ const NotionReplacePageContentInput = zod.z.object({
953
953
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
954
954
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
955
955
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
956
- }).describe("Text styling annotations for rich text.").nullable().optional()
957
- }).describe("Rich text object for creating text content in blocks.")).nullable().optional(),
958
- external: zod.z.object({ url: zod.z.string().describe("URL of the external file, image, or video.") }).describe("External file URL.")
959
- }).describe("File content."),
956
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
957
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).nullable().optional(),
958
+ external: zod.z.object({ url: zod.z.string().describe("URL of the external file, image, or video.") }).passthrough().describe("External file URL.")
959
+ }).passthrough().describe("File content."),
960
960
  type: zod.z.string().default("file").describe("Block type.").optional(),
961
961
  object: zod.z.string().default("block").describe("Always 'block'.").optional()
962
- }).describe("A file block object."),
962
+ }).passthrough().describe("A file block object."),
963
963
  zod.z.object({
964
964
  pdf: zod.z.object({
965
965
  type: zod.z.string().default("external").describe("PDF source type. Use 'external' for URLs.").optional(),
966
966
  caption: zod.z.array(zod.z.object({
967
967
  text: zod.z.object({
968
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
968
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
969
969
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
970
- }).describe("The text content object."),
970
+ }).passthrough().describe("The text content object."),
971
971
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
972
972
  annotations: zod.z.object({
973
973
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -996,18 +996,18 @@ const NotionReplacePageContentInput = zod.z.object({
996
996
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
997
997
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
998
998
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
999
- }).describe("Text styling annotations for rich text.").nullable().optional()
1000
- }).describe("Rich text object for creating text content in blocks.")).nullable().optional(),
1001
- external: zod.z.object({ url: zod.z.string().describe("URL of the external file, image, or video.") }).describe("External PDF URL.")
1002
- }).describe("PDF content."),
999
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
1000
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).nullable().optional(),
1001
+ external: zod.z.object({ url: zod.z.string().describe("URL of the external file, image, or video.") }).passthrough().describe("External PDF URL.")
1002
+ }).passthrough().describe("PDF content."),
1003
1003
  type: zod.z.string().default("pdf").describe("Block type.").optional(),
1004
1004
  object: zod.z.string().default("block").describe("Always 'block'.").optional()
1005
- }).describe("A PDF block object."),
1005
+ }).passthrough().describe("A PDF block object."),
1006
1006
  zod.z.object({
1007
1007
  type: zod.z.string().default("embed").describe("Block type.").optional(),
1008
- embed: zod.z.object({ url: zod.z.string().describe("URL to embed. Supports Twitter, Google Maps, Figma, CodePen, and more.") }).describe("Embed content."),
1008
+ embed: zod.z.object({ url: zod.z.string().describe("URL to embed. Supports Twitter, Google Maps, Figma, CodePen, and more.") }).passthrough().describe("Embed content."),
1009
1009
  object: zod.z.string().default("block").describe("Always 'block'.").optional()
1010
- }).describe("An embed block object (iframe for supported services)."),
1010
+ }).passthrough().describe("An embed block object (iframe for supported services)."),
1011
1011
  zod.z.object({
1012
1012
  type: zod.z.string().default("bookmark").describe("Block type.").optional(),
1013
1013
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
@@ -1015,9 +1015,9 @@ const NotionReplacePageContentInput = zod.z.object({
1015
1015
  url: zod.z.string().describe("URL of the webpage to bookmark."),
1016
1016
  caption: zod.z.array(zod.z.object({
1017
1017
  text: zod.z.object({
1018
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
1018
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
1019
1019
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
1020
- }).describe("The text content object."),
1020
+ }).passthrough().describe("The text content object."),
1021
1021
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
1022
1022
  annotations: zod.z.object({
1023
1023
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -1046,15 +1046,15 @@ const NotionReplacePageContentInput = zod.z.object({
1046
1046
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
1047
1047
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
1048
1048
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
1049
- }).describe("Text styling annotations for rich text.").nullable().optional()
1050
- }).describe("Rich text object for creating text content in blocks.")).nullable().optional()
1051
- }).describe("Bookmark content.")
1052
- }).describe("A bookmark block object (link preview)."),
1049
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
1050
+ }).passthrough().describe("Rich text object for creating text content in blocks.")).nullable().optional()
1051
+ }).passthrough().describe("Bookmark content.")
1052
+ }).passthrough().describe("A bookmark block object (link preview)."),
1053
1053
  zod.z.object({
1054
1054
  type: zod.z.string().default("divider").describe("Block type.").optional(),
1055
1055
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
1056
1056
  divider: zod.z.object({}).describe("Divider content (empty object).").optional()
1057
- }).describe("A divider block object (horizontal line)."),
1057
+ }).passthrough().describe("A divider block object (horizontal line)."),
1058
1058
  zod.z.object({
1059
1059
  type: zod.z.string().default("table_of_contents").describe("Block type.").optional(),
1060
1060
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
@@ -1078,23 +1078,23 @@ const NotionReplacePageContentInput = zod.z.object({
1078
1078
  "purple_background",
1079
1079
  "pink_background",
1080
1080
  "red_background"
1081
- ]).default("default").describe("Color of the table of contents.").optional() }).describe("Table of contents content.").optional()
1082
- }).describe("A table of contents block object."),
1081
+ ]).default("default").describe("Color of the table of contents.").optional() }).passthrough().describe("Table of contents content.").optional()
1082
+ }).passthrough().describe("A table of contents block object."),
1083
1083
  zod.z.object({
1084
1084
  type: zod.z.string().default("breadcrumb").describe("Block type.").optional(),
1085
1085
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
1086
1086
  breadcrumb: zod.z.object({}).describe("Breadcrumb content (empty object - auto-generated).").optional()
1087
- }).describe("A breadcrumb block object."),
1087
+ }).passthrough().describe("A breadcrumb block object."),
1088
1088
  zod.z.object({
1089
1089
  type: zod.z.string().default("column_list").describe("Block type.").optional(),
1090
1090
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
1091
1091
  column_list: zod.z.object({ children: zod.z.array(zod.z.record(zod.z.string(), zod.z.unknown())).nullable().optional() }).describe("Column list content.").optional()
1092
- }).describe("A column list block object. Children must be column blocks."),
1092
+ }).passthrough().describe("A column list block object. Children must be column blocks."),
1093
1093
  zod.z.object({
1094
1094
  type: zod.z.string().default("column").describe("Block type.").optional(),
1095
1095
  column: zod.z.object({ children: zod.z.array(zod.z.record(zod.z.string(), zod.z.unknown())).nullable().optional() }).describe("Column content.").optional(),
1096
1096
  object: zod.z.string().default("block").describe("Always 'block'.").optional()
1097
- }).describe("A column block object. Must be a child of column_list."),
1097
+ }).passthrough().describe("A column block object. Must be a child of column_list."),
1098
1098
  zod.z.object({
1099
1099
  type: zod.z.string().default("table").describe("Block type.").optional(),
1100
1100
  table: zod.z.object({
@@ -1102,17 +1102,17 @@ const NotionReplacePageContentInput = zod.z.object({
1102
1102
  table_width: zod.z.number().int().describe("Number of columns in the table. Cannot be changed after creation."),
1103
1103
  has_row_header: zod.z.boolean().default(false).describe("Whether the first column is styled as a header.").optional(),
1104
1104
  has_column_header: zod.z.boolean().default(false).describe("Whether the first row is styled as a header.").optional()
1105
- }).describe("Table content."),
1105
+ }).passthrough().describe("Table content."),
1106
1106
  object: zod.z.string().default("block").describe("Always 'block'.").optional()
1107
- }).describe("A table block object."),
1107
+ }).passthrough().describe("A table block object."),
1108
1108
  zod.z.object({
1109
1109
  type: zod.z.string().default("table_row").describe("Block type.").optional(),
1110
1110
  object: zod.z.string().default("block").describe("Always 'block'.").optional(),
1111
1111
  table_row: zod.z.object({ cells: zod.z.array(zod.z.array(zod.z.object({
1112
1112
  text: zod.z.object({
1113
- link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).describe("Link object for hyperlinked text.").nullable().optional(),
1113
+ link: zod.z.object({ url: zod.z.string().describe("The URL the text links to.") }).passthrough().describe("Link object for hyperlinked text.").nullable().optional(),
1114
1114
  content: zod.z.string().describe("The actual text content. CRITICAL: Maximum 2000 characters per text object.")
1115
- }).describe("The text content object."),
1115
+ }).passthrough().describe("The text content object."),
1116
1116
  type: zod.z.string().default("text").describe("Type of rich text. Currently only 'text' is supported for input.").optional(),
1117
1117
  annotations: zod.z.object({
1118
1118
  bold: zod.z.boolean().default(false).describe("Whether the text is bold.").optional(),
@@ -1141,9 +1141,9 @@ const NotionReplacePageContentInput = zod.z.object({
1141
1141
  italic: zod.z.boolean().default(false).describe("Whether the text is italic.").optional(),
1142
1142
  underline: zod.z.boolean().default(false).describe("Whether the text is underlined.").optional(),
1143
1143
  strikethrough: zod.z.boolean().default(false).describe("Whether the text has strikethrough.").optional()
1144
- }).describe("Text styling annotations for rich text.").nullable().optional()
1145
- }).describe("Rich text object for creating text content in blocks."))).describe("Array of cells, where each cell is an array of rich text objects. Number of cells must match table_width.") }).describe("Table row content.")
1146
- }).describe("A table_row block object. Must be a child of table.")
1144
+ }).passthrough().describe("Text styling annotations for rich text.").nullable().optional()
1145
+ }).passthrough().describe("Rich text object for creating text content in blocks."))).describe("Array of cells, where each cell is an array of rich text objects. Number of cells must match table_width.") }).passthrough().describe("Table row content.")
1146
+ }).passthrough().describe("A table_row block object. Must be a child of table.")
1147
1147
  ])).describe("Array of block objects to append to the page after clearing existing content. Supported types: paragraph, heading_1/2/3, bulleted_list_item, numbered_list_item, to_do, toggle, callout, code, quote, equation, image, video, audio, file, pdf, embed, bookmark, divider, table_of_contents, breadcrumb, column_list, column, table, table_row. Each block MUST include 'type' field and type-specific content. Text blocks must use 'rich_text' array structure with max 2000 chars per text.content. Will be appended in batches of up to 100 blocks to respect Notion API limits."),
1148
1148
  backup_parent: zod.z.object({
1149
1149
  page_id: zod.z.string().describe("UUID of the parent page for the backup. If both page_id and data_source_id are None, the original page's parent will be used.").optional(),
@@ -1161,7 +1161,7 @@ const NotionReplacePageContentOutput = zod.z.object({
1161
1161
  backup_page_id: zod.z.string().describe("UUID of the backup page if create_backup was True.").nullable().optional(),
1162
1162
  appended_block_ids: zod.z.array(zod.z.string()).describe("List of block IDs that were appended. Empty if dry_run was True."),
1163
1163
  deleted_child_block_ids: zod.z.array(zod.z.string()).describe("List of block IDs that were deleted (archived). Empty if archive_existing_children was False or dry_run was True.")
1164
- }).describe("Response model for the replace page content action.");
1164
+ }).passthrough().describe("Response model for the replace page content action.");
1165
1165
  const notionReplacePageContent = require_action.action("NOTION_REPLACE_PAGE_CONTENT", {
1166
1166
  slug: "notion-replace-page-content",
1167
1167
  name: "Replace page content (with backup)",